Ir para conteúdo

[AVATAR] Water Pouch System.


Posts Recomendados

/data/actions/scripts crie um arquivo .lua e renomeie para waterRefill.lua e adicione isso dentro:

 

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

local _ = {4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4665, 4666, 4820, 4821, 4822, 4823, 4824, 4825}
local slot = getPlayerSlotItem(cid, CONST_SLOTARROW)
local water = getWater(slot.uid)
local refil = 2 -- % of reffil

  local add = water == 99 and 1 or refil

  if getWater(slot.uid) ~= 100 then
       if isInArray(_, itemEx.itemid) then
            setWaterPouchPercent(slot.uid, add)
       end
          else
       doPlayerSendCancel(cid, "Your pouch is full")
  end
  return true
end

 

 

em actions.xml adicione essa linha:

<action itemid = "ID DA POUCH" event = "script" value="waterRefill.lua"/>


 

Agora como fazer para coloca na spell, vá em /data/spells, vá no arquivo da spell desejado, procure o onCastSpell no arquivo, e mude para este.

 

function onCastSpell(cid, var)

local slot = getPlayerSlotItem(cid, CONST_SLOTARROW)
local waters = {4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4665, 4666, 4820, 4821, 4822, 4823, 4824, 4825}
        local water = true
        local p = 2 -- quantos porcentos de agua vai usar

        if getPlayerStorageValue(cid, 372872) < 1 then
           setWaterPouchPercent(slot.uid, 100)
           setPlayerStorageValue(cid, 372872, 1)
       end


        if slot.uid < 1 then
           return true
       end

        if getWaterInArea(waters, getThingPos(cid), 5, 5) then
           water = false
        end


     if getWater(slot.uid) < p then
           doPlayerSendTextMessage(cid, 27, "Sorry, you don't have any water") return true
     end

     if water then
        setWaterPouchPercent(slot.uid, getWater(slot.uid) - p)
        doPlayerSendTextMessage(cid, 27, "You use " .. p .. "% of your pouch now have" ..  getWater(slot.uid))
            else
        doPlayerSendTextMessage(cid, 27, "Using ambient water.")
     end
     return doCombat(cid, var)
end

 


 

PARTE MUITO IMPORTANTE, NÃO COMETA ERROS.

Vá em /data/libs/050-function e adicione essas três funções:

 

function setWaterPouchPercent(pouch, percent)

doSetItemAttribute(pouch, "water", percent)
  doSetItemAttribute(pouch, "description", getWater(pouch) .. "% of water in this pouch.")
end

function getWater(pouch)

return getItemAttribute(pouch, "water")
end

function getWaterInArea(ItemIds, pos, rangex, rangey) -- dalvo

for itemId in pairs(ItemIds) do
	for x = -rangex, rangex do
		for y = -rangey, rangey do
			local posi = {x = pos.x + x, y = pos.y + y, z = pos.z}
			local item = getTileItemById(posi, itemId)
			if item.uid > 0 and not (x == 0 and y == 0) then
				return true
			end
		end
	end
end
return false
end

 


 

Qualquer erro postem no tópico.

Editado por Skymagnum
Link para o comentário
Compartilhar em outros sites

acho q está na area errada..

é na area de servidores derivados que vc tem q postar esse script ^^

 

e PS: tente explicar aos usuarios como fazer nas spells que for usar o pouch (é facil explicar, se quiser pode copiar o do pedido la q eu deixei em vermelho)

Link para o comentário
Compartilhar em outros sites

erro ao dar look

 

 

[Error - CreatureScript Interface]

data/creaturescripts/scripts/waterpouch.lua:onLook

Description:

data/lib/050-function.lua:441: attempt to index local 'pouch' (a number value)

stack traceback:

data/lib/050-function.lua:441: in function 'getWater'

data/creaturescripts/scripts/waterpouch.lua:5: in function (data/creaturescripts/scripts/waterpouch.lua:1)

Link para o comentário
Compartilhar em outros sites

Mano, eu to com dúvida na parte do "--FOR LOOK HOW WATER YOUR PUNCH HAVE" e "FOR REFFIL THE PUNCH" lá no Pastebin...

Eu não sei onde adiciona esses dois scripts, e não sei se devem ter um nome específico... ou tem q por no msm script? pq pra mim ficaria estranho na função look ele abastecer o wp.

 

 

@edit1:

VocÊ testo isso antes de postar? Poderia Melhorar o tutorial de instalação do script (imagens , detalhe, até mesmo dê nome para os arquivos para não causar confusão,e dê exemplo de um id que pode ser tratado como wp) estou vendo que não sou apenas eu que não esta conseguindo instalar este sistema.

 

@edit2: ta dando erro nesse script, eu tentei adicionar ela no actions como vc n especificou:

 

 

function onUse(cid, item, fromPosition, itemEx, toPosition) -- part's of DrakyLukas

  local _ = {4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4665, 4666, 4820, 4821, 4822, 4823, 4824,4825}
  local slot = getPlayerSlotItem(cid, CONST_SLOTARROW)
  local water = getWater(slot.uid)
  local refil = 2 -- % of reffil

  if getWater(slot.uid) ~= 100 then
 if isInArray(_, itemEx.itemid)
	 setWaterPouchPercent(slot.uid, water == 99 and water + 1 or water + refil)
	 end
		else
	 doPlayerSendCancel(cid, "Your pounch is full")
  return true
end

 

[Error - LuaScriptInterface::loadFile] data/actions/scripts/waterpouch.lua:10: '
then' expected near 'setWaterPouchPercent'
[Warning - Event::loadScript] Cannot load script (data/actions/scripts/waterpouc
h.lua)
data/actions/scripts/waterpouch.lua:10: 'then' expected near 'setWaterPouchPerce
nt'

Editado por FilipeMAN
Link para o comentário
Compartilhar em outros sites

No action xml é o id dela cheia ou vazia? Posta uns print do sistema aew .

 

Vlw

 

@EDIT

 

No script do oncastspell mais especificamente nesta linha:

 

local water_pounch = 2184

 

O id que esta ali seria o do Water pouch?

 

@EDIT2

 

Erro:

 

[Error - LuaScriptInterface::loadFile] data/actions/scripts/waterRefill.lua:18:
'then' expected near 'setWaterPouchPercent'
[Warning - Event::loadScript] Cannot load script (data/actions/scripts/waterRefi
ll.lua)
data/actions/scripts/waterRefill.lua:18: 'then' expected near 'setWaterPouchPerc
ent'

Editado por KikimDaPadaria
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...