Ir para conteúdo
  • 0

Por que meu script n ta funfando? Dar CAP


luccagomes

Pergunta

O script era simples, o player equipa a BP e ganha 1000 de CAP, não sei pq, mas não ta funcionado, alguem pode me dar uma luz?

Tinha CAP 128, equipei a BP era pra ficar 1128
Mas ficou 821 e quando eu removi a BP ficou 0

O que tem de errado nesse script?


    <!-- sorcerer -->
    <movevent type="Equip" itemid="10518" slot="backpack" event="script" value="magevipbag.lua">
        <vocation id="1"/>
        <vocation id="5" showInDescription="0"/>
    </movevent>
    <movevent type="DeEquip" itemid="10518" slot="backpack" event="script" value="magevipbag.lua"/>


local block  = 0
local capacidade = 1000 -- aqui coloca quanto que vai almentar

function onEquip(cid, item, slot)
block = block+1
      if block == 3 then
            doPlayerSetMaxCapacity(cid,(getPlayerFreeCap(cid)+capacidade))
            block = 0
      end
      return true
end

function onDeEquip(cid, item, slot)
   doPlayerSetMaxCapacity(cid,(getPlayerFreeCap(cid)-capacidade))
return true
end
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

@@luccagomes,

 

Tenta alterar o magevipbag.lua por este:

local block = 135410 -- storage de controle
local capacidade = 1000 -- aqui coloca quanto que vai aumentar

function onEquip(cid, item, slot)
	setPlayerStorageValue(cid, block, getPlayerStorageValue(cid, block) < 0 and 1 or getPlayerStorageValue(cid, block) + 1)
	if getPlayerStorageValue(cid, block) == 3 then
		doPlayerSetMaxCapacity(cid, (getPlayerFreeCap(cid) + capacidade))
		setPlayerStorageValue(cid, block, 0)
	end
	return true
end

function onDeEquip(cid, item, slot)
	doPlayerSetMaxCapacity(cid, (getPlayerFreeCap(cid) - capacidade))
	return true
end
Eu não entendi muito bem o porque ele só vai dar cap após ele usar 3 vezes, mas caso você deseja retirar isso, segue abaixo:

local capacidade = 1000 -- aqui coloca quanto que vai aumentar

function onEquip(cid, item, slot)
	doPlayerSetMaxCapacity(cid, (getPlayerFreeCap(cid) + capacidade))
	return true
end

function onDeEquip(cid, item, slot)
	doPlayerSetMaxCapacity(cid, (getPlayerFreeCap(cid) - capacidade))
	return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

@@luccagomes,

 

Tenta alterar o magevipbag.lua por este:

local block = 135410 -- storage de controle
local capacidade = 1000 -- aqui coloca quanto que vai aumentar

function onEquip(cid, item, slot)
	setPlayerStorageValue(cid, block, getPlayerStorageValue(cid, block) < 0 and 1 or getPlayerStorageValue(cid, block) + 1)
	if getPlayerStorageValue(cid, block) == 3 then
		doPlayerSetMaxCapacity(cid, (getPlayerFreeCap(cid) + capacidade))
		setPlayerStorageValue(cid, block, 0)
	end
	return true
end

function onDeEquip(cid, item, slot)
	doPlayerSetMaxCapacity(cid, (getPlayerFreeCap(cid) - capacidade))
	return true
end
Eu não entendi muito bem o porque ele só vai dar cap após ele usar 3 vezes, mas caso você deseja retirar isso, segue abaixo:

local capacidade = 1000 -- aqui coloca quanto que vai aumentar

function onEquip(cid, item, slot)
	doPlayerSetMaxCapacity(cid, (getPlayerFreeCap(cid) + capacidade))
	return true
end

function onDeEquip(cid, item, slot)
	doPlayerSetMaxCapacity(cid, (getPlayerFreeCap(cid) - capacidade))
	return true
end

 

Testando seu script também tive problemas

 

Antes de eu colocar a BAG minha CAP estava: 3216

Depois que eu coloquei a bag minha CAP foi para: 5295 dps que coloca

Quando eu tirei a BP minha CAP foi para: 3988 qnd tira

Link para o comentário
Compartilhar em outros sites

  • 0

Testando seu script também tive problemas

 

Antes de eu colocar a BAG minha CAP estava: 3216

Depois que eu coloquei a bag minha CAP foi para: 5295 dps que coloca

Quando eu tirei a BP minha CAP foi para: 3988 qnd tira

Porque ele faz a conta em cima da getPlayerFreeCap (capacidade livre).

 

Tenta assim:

local capacidade = 1000 -- aqui coloca quanto que vai almentar

function getPlayerCap(cid)
	query = db.getResult("SELECT `cap` FROM `players` WHERE `id` = " .. getPlayerGUID(cid) .. ";")
	if(query:getID() < 1) then
		return nil
	end
	cap = query:getDataInt("cap")
	query:free()
	return cap
end

function onEquip(cid, item, slot)
	doPlayerSetMaxCapacity(cid, (getPlayerCap(cid) + capacidade))
	return true
end

function onDeEquip(cid, item, slot)
	doPlayerSetMaxCapacity(cid, (getPlayerCap(cid) - capacidade))
	return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

Porque ele faz a conta em cima da getPlayerFreeCap (capacidade livre).

 

Tenta assim:

local capacidade = 1000 -- aqui coloca quanto que vai almentar

function getPlayerCap(cid)
	query = db.getResult("SELECT `cap` FROM `players` WHERE `id` = " .. getPlayerGUID(cid) .. ";")
	if(query:getID() < 1) then
		return nil
	end
	cap = query:getDataInt("cap")
	query:free()
	return cap
end

function onEquip(cid, item, slot)
	doPlayerSetMaxCapacity(cid, (getPlayerCap(cid) + capacidade))
	return true
end

function onDeEquip(cid, item, slot)
	doPlayerSetMaxCapacity(cid, (getPlayerCap(cid) - capacidade))
	return true
end

 

Ué agora não ta dando pra colocar a BP no lugar da BP :S

 

Diz isso \/

You cannot dress this object there.

 

Lá onde aparece aquelas msg em branco de

Sorry, not possible.

 

@bruno ta dando um erro no console eu não tinha visto!

 

MlBp1jP.png

Link para o comentário
Compartilhar em outros sites

  • 0

Again

 

local capacidade = 1000 -- aqui coloca quanto que vai almentar

function getPlayerCap(cid)
	local query = db.getResult("SELECT `cap` FROM `players` WHERE `id` = " .. getPlayerGUID(cid))
	if query:getID() ~= -1 then
		return tonumber(query:getDataString("cap"))
	end
	return 0
end

function onEquip(cid, item, slot)
	doPlayerSetMaxCapacity(cid, (getPlayerCap(cid) + capacidade))
	return true
end

function onDeEquip(cid, item, slot)
	doPlayerSetMaxCapacity(cid, (getPlayerCap(cid) - capacidade))
	return true
end
Link para o comentário
Compartilhar em outros sites

  • 0
local capacidade = 1000 -- aqui coloca quanto que vai almentar

function getPlayerCap(cid)
	local query = db.getResult("SELECT `cap` FROM `players` WHERE `id` = " .. getPlayerGUID(cid))
	if query:getID() ~= -1 then
		return tonumber(query:getDataString("cap"))
	end
	return 0
end

function onEquip(cid, item, slot)
	doPlayerSetMaxCapacity(cid, (getPlayerCap(cid) + capacidade))
	return true
end

function onDeEquip(cid, item, slot)
	doPlayerSetMaxCapacity(cid, (getPlayerCap(cid) - capacidade))
	return true
end

 

Agora parece que ta funcionando, tipo eu tinha 25 de cap, coloquei a BP no lugar da BP fiquei com 1025

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...