Hey, aqui nao ta mostrando não.
info
Grupo: Campones
Registrado: 01/07/13
Posts: 50
Reputação: +2

info
Grupo: Marquês
Registrado: 16/06/07
Posts: 1.2k
Reputação: +377
Gênero: Masculino
Char no Tibia: Nenhum

Hey, aqui nao ta mostrando não.
Não tá mostrando a correção em spoiler?
info
Grupo: Campones
Registrado: 01/07/13
Posts: 50
Reputação: +2

Hey, aqui nao ta mostrando não.
Não tá mostrando a correção em spoiler?
No Notebook, não estava aparecendo. Mais entrei aqui no Desketop apareceu
Valeu. Vou testa e amanha respondo aqui te avisar se tiver algum BUG.
Mais mesmo assim obrigado.
Editado Setembro 3 por MathhCunha
info
Grupo: Marquês
Registrado: 16/06/07
Posts: 1.2k
Reputação: +377
Gênero: Masculino
Char no Tibia: Nenhum

Hey, aqui nao ta mostrando não.
Não tá mostrando a correção em spoiler?
No Notebook, não estava aparecendo. Mais entrei aqui no Desketop apareceu
Valeu. Vou testa e amanha respondo aqui te avisar se tiver algum BUG.
Mais mesmo assim obrigado.
Erro :[03/09/2013 13:27:01] [Error - CreatureScript Interface][03/09/2013 13:27:01] data/creaturescripts/scripts/new/wand.lua:onLogin[03/09/2013 13:27:01] Description:[03/09/2013 13:27:01] data/creaturescripts/scripts/new/wand.lua:5: attempt to call global 'doRemoveWand' (a nil value)[03/09/2013 13:27:01] stack traceback:[03/09/2013 13:27:01] data/creaturescripts/scripts/new/wand.lua:5: in function <data/creaturescripts/scripts/new/wand.lua:3>
Cara, não tá lendo a função doRemoveWand antes... tenta passar pra functions.lua na lib ou copiar e colar ela antes do script de login
info
Grupo: Campones
Registrado: 01/07/13
Posts: 50
Reputação: +2

Hey, aqui nao ta mostrando não.
Não tá mostrando a correção em spoiler?
No Notebook, não estava aparecendo. Mais entrei aqui no Desketop apareceu
Valeu. Vou testa e amanha respondo aqui te avisar se tiver algum BUG.
Mais mesmo assim obrigado.
Erro :[03/09/2013 13:27:01] [Error - CreatureScript Interface][03/09/2013 13:27:01] data/creaturescripts/scripts/new/wand.lua:onLogin[03/09/2013 13:27:01] Description:[03/09/2013 13:27:01] data/creaturescripts/scripts/new/wand.lua:5: attempt to call global 'doRemoveWand' (a nil value)[03/09/2013 13:27:01] stack traceback:[03/09/2013 13:27:01] data/creaturescripts/scripts/new/wand.lua:5: in function <data/creaturescripts/scripts/new/wand.lua:3>
Cara, não tá lendo a função doRemoveWand antes... tenta passar pra functions.lua na lib ou copiar e colar ela antes do script de login
Tem como me ajudar? Eu tentai colocar ele em functions.lua não deu. Coloquei ele no script de Login e não deu.
info
Grupo: Marquês
Registrado: 16/06/07
Posts: 1.2k
Reputação: +377
Gênero: Masculino
Char no Tibia: Nenhum

Cara, tira e bota de novo todos os arquivos dessa wand, reinicia o servidor e vê o que acontece. Se não der certo, eu tento te ajudar melhor.
info
Grupo: Campones
Registrado: 01/07/13
Posts: 50
Reputação: +2

[03/09/2013 14:34:39] [Error - CreatureScript Interface][03/09/2013 14:34:39] data/creaturescripts/scripts/new/wand.lua:onLogin[03/09/2013 14:34:39] Description:[03/09/2013 14:34:39] data/creaturescripts/scripts/new/wand.lua:5: attempt to call global 'doRemoveWand' (a nil value)[03/09/2013 14:34:39] stack traceback:[03/09/2013 14:34:39] data/creaturescripts/scripts/new/wand.lua:5: in function <data/creaturescripts/scripts/new/wand.lua:3>
Deu erro novamento :'(
info
Grupo: Marquês
Registrado: 16/06/07
Posts: 1.2k
Reputação: +377
Gênero: Masculino
Char no Tibia: Nenhum

Tá dando erro mesmo, mas pondo na lib, funciona. Tenta cria um arquivo na pasta lib, pôr só essa função:
function doRemoveWand(cid) if not isPlayer(cid) then return false end if exhaustion.check(cid,wandsto) == true then return false end for slot = 5,6 do if getPlayerSlotItem(cid, slot).itemid == id_da_wand then doPlayerRemoveItem(cid,id_da_wand,1) end end return true end
E salvar como wandfunction.lua
Aqui ainda tá dando uns erros, mas não é nessa parte.
Edit: pronto, agora tá funcionando!
As tags continuam as mesmas, mas vou repassar os arquivos modificados:
wandlogin.lua (creaturescripts/scripts)
local id_da_wand = 102 function onLogin(cid) if getPlayerItemCount(cid,id_da_wand) >= 1 then if doRemoveWand(cid) == true then return true else local tempo_restante = getPlayerStorageValue(cid,505090) - os.time(t) addEvent(doRemoveWand,tempo_restante*1000,cid) end end return true end
wandmove.lua (movements/scripts)
function onDeEquip(cid, item, slot)
pos = getThingPos(item.uid)
local player = getThingFromPos({x=pos.x,y=pos.y,z=pos.z,stackpos=253}).uid
doRemoveItem(item.uid)
doPlayerAddItem(player,item.itemid,1)
return true
end
conjurewand.lua (spells/scripts)
local id_da_wand = 102 local tempo_de_exhaust = 30 -- em minutos (da spell) local tempo_de_wand = 30 -- em minutos (de duração da wand) local wandsto = 505090 local storage = 505091 function onCastSpell(cid, var) tempo_de_wand = tempo_de_wand * 60 tempo_de_exhaust = tempo_de_exhaust * 60 if exhaustion.check(cid, storage) == false then if exhaustion.check(cid,wandsto) == false then if getPlayerSlotItem(cid, 5).itemid == 0 or getPlayerSlotItem(cid,6).itemid == 0 then doPlayerAddItem(cid,id_da_wand,1) doSendMagicEffect(getCreaturePosition(cid),12) exhaustion.set(cid,wandsto,tempo_de_wand) exhaustion.set(cid,storage,tempo_de_exhaust) addEvent(doRemoveWand,(tempo_de_wand*1000)+1000,cid) return true else doPlayerSendCancel(cid,'You cannot use this spell with your hands full.') doSendMagicEffect(getCreaturePosition(cid),2) end else doPlayerSendCancel(cid,'You are exhausted.') doSendMagicEffect(getCreaturePosition(cid),2) end else doSendMagicEffect(getCreaturePosition(cid),2) doPlayerSendCancel(cid,'You are exhausted.') end return false end
wandfunction.lua (lib/)
function doRemoveWand(cid) if not isPlayer(cid) then return false end if exhaustion.check(cid,wandsto) == true then return false end for slot = 5,6 do if getPlayerSlotItem(cid, slot).itemid == id_da_wand then doPlayerRemoveItem(cid,id_da_wand,1) end end return true end
Editado Setembro 3 por omega blueheaven
info
Grupo: Campones
Registrado: 01/07/13
Posts: 50
Reputação: +2

Tá dando erro mesmo, mas pondo na lib, funciona. Tenta cria um arquivo na pasta lib, pôr só essa função:
function doRemoveWand(cid) if not isPlayer(cid) then return false end if exhaustion.check(cid,wandsto) == true then return false end for slot = 5,6 do if getPlayerSlotItem(cid, slot).itemid == id_da_wand then doPlayerRemoveItem(cid,id_da_wand,1) end end return true endE salvar como wandfunction.lua
Aqui ainda tá dando uns erros, mas não é nessa parte.
Edit: pronto, agora tá funcionando!
As tags continuam as mesmas, mas vou repassar os arquivos modificados:
wandlogin.lua (creaturescripts/scripts)
local id_da_wand = 102 function onLogin(cid) if getPlayerItemCount(cid,id_da_wand) >= 1 then if doRemoveWand(cid) == true then return true else local tempo_restante = getPlayerStorageValue(cid,505090) - os.time(t) addEvent(doRemoveWand,tempo_restante*1000,cid) end end return true end
wandmove.lua (movements/scripts)
function onDeEquip(cid, item, slot) pos = getThingPos(item.uid) local player = getThingFromPos({x=pos.x,y=pos.y,z=pos.z,stackpos=253}).uid doRemoveItem(item.uid) doPlayerAddItem(player,item.itemid,1) return true end
conjurewand.lua (spells/scripts)
local id_da_wand = 102 local tempo_de_exhaust = 30 -- em minutos (da spell) local tempo_de_wand = 30 -- em minutos (de duração da wand) local wandsto = 505090 local storage = 505091 function onCastSpell(cid, var) tempo_de_wand = tempo_de_wand * 60 tempo_de_exhaust = tempo_de_exhaust * 60 if exhaustion.check(cid, storage) == false then if exhaustion.check(cid,wandsto) == false then if getPlayerSlotItem(cid, 5).itemid == 0 or getPlayerSlotItem(cid,6).itemid == 0 then doPlayerAddItem(cid,id_da_wand,1) doSendMagicEffect(getCreaturePosition(cid),12) exhaustion.set(cid,wandsto,tempo_de_wand) exhaustion.set(cid,storage,tempo_de_exhaust) addEvent(doRemoveWand,(tempo_de_wand*1000)+1000,cid) return true else doPlayerSendCancel(cid,'You cannot use this spell with your hands full.') doSendMagicEffect(getCreaturePosition(cid),2) end else doPlayerSendCancel(cid,'You are exhausted.') doSendMagicEffect(getCreaturePosition(cid),2) end else doSendMagicEffect(getCreaturePosition(cid),2) doPlayerSendCancel(cid,'You are exhausted.') end return false end
wandfunction.lua (lib/)
function doRemoveWand(cid) if not isPlayer(cid) then return false end if exhaustion.check(cid,wandsto) == true then return false end for slot = 5,6 do if getPlayerSlotItem(cid, slot).itemid == id_da_wand then doPlayerRemoveItem(cid,id_da_wand,1) end end return true end
Com este script ai, quando da 30 minutos a wand desaparece? (e que eu estou sem tempo para testar agora)
info
Grupo: Marquês
Registrado: 16/06/07
Posts: 1.2k
Reputação: +377
Gênero: Masculino
Char no Tibia: Nenhum

É pra sumir, sim. Tenta colocar pra sumir em um tempo bem pequeno e testa. Se não funcionar, volta pra cá.
(Mas vai funcionar sim... =D)
info
Grupo: Campones
Registrado: 01/07/13
Posts: 50
Reputação: +2

Quote
[03/09/2013 20:24:03] [Error - MoveEvents Interface]
[03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:onDeEquip
[03/09/2013 20:24:03] Description:
[03/09/2013 20:24:03] (luaGetThingPosition) Thing not found
[03/09/2013 20:24:03] [Error - MoveEvents Interface]
[03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:onDeEquip
[03/09/2013 20:24:03] Description:
[03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:4: attempt to index global 'pos' (a boolean value)
[03/09/2013 20:24:03] stack traceback:
[03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:4: in function <data/movements/scripts/wandmove.lua:1>
Esse e o erro de MoveEvents.
Tambem tem outro erro. o Seguinte, quando a gente loga some a wand BOM, mais ai quando eu entro denovo ae não da pra criar outra wand. Depois que cria 1 Wand. não cria outra.
Editado Setembro 3 por MathhCunha
info
Grupo: Marquês
Registrado: 16/06/07
Posts: 1.2k
Reputação: +377
Gênero: Masculino
Char no Tibia: Nenhum

E vamos à luta...
[03/09/2013 20:24:03] [Error - MoveEvents Interface][03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:onDeEquip[03/09/2013 20:24:03] Description:[03/09/2013 20:24:03] (luaGetThingPosition) Thing not found[03/09/2013 20:24:03] [Error - MoveEvents Interface][03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:onDeEquip[03/09/2013 20:24:03] Description:[03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:4: attempt to index global 'pos' (a boolean value)[03/09/2013 20:24:03] stack traceback:[03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:4: in function <data/movements/scripts/wandmove.lua:1>
Esse e o erro de MoveEvents.
Tambem tem outro erro. o Seguinte, quando a gente loga some a wand BOM, mais ai quando eu entro denovo ae não da pra criar outra wand. Depois que cria 1 Wand. Não cria outra. A wand ainda nao sumiu. e o Outro Erro e que tipo se eu coloca menos tempo a wand cria e some. Se eu tirar de 30 Min a wand some eu coloquei 29 a wand criou e imediatamente ela sumiu.
Cara, aqui funcionou o movement, eu testei esse bastante antes de postar porque o outro tava dando erro
Mas testa assim:
function onDeEquip(cid, item, slot) doRemoveItem(item.uid) doPlayerAddItem(cid,item.itemid,1) return true end
Não é pra sumir quando loga. É pra sumir somente se o tempo já passou, aí se não tiver passado, o script coloca pra sumir no tempo certo. Só some se você mudou os storages que eu tava usando.
Achei um possível erro, troca o script da magia:
local id_da_wand = 102 local tempo_de_exhaust = 30 -- em minutos (da spell) local tempo_de_wand = 30 -- em minutos (de duração da wand) local wandsto = 505090 local storage = 505091 function onCastSpell(cid, var) tempo_de_wand = tempo_de_wand * 60 tempo_de_exhaust = tempo_de_exhaust * 60 if exhaustion.check(cid, storage) == false then if exhaustion.check(cid,wandsto) == false then if getPlayerSlotItem(cid, 5).itemid == 0 or getPlayerSlotItem(cid,6).itemid == 0 then doPlayerAddItem(cid,id_da_wand,1) doSendMagicEffect(getCreaturePosition(cid),12) exhaustion.set(cid,wandsto,tempo_de_wand) exhaustion.set(cid,storage,tempo_de_exhaust) addEvent(doRemoveWand,(tempo_de_wand*1000)+100,cid) return true else doPlayerSendCancel(cid,'You cannot use this spell with your hands full.') doSendMagicEffect(getCreaturePosition(cid),2) end else doPlayerSendCancel(cid,'You are exhausted.') doSendMagicEffect(getCreaturePosition(cid),2) end else doSendMagicEffect(getCreaturePosition(cid),2) doPlayerSendCancel(cid,'You are exhausted.') end return false end
lib:
function doRemoveWand(cid) if not isPlayer(cid) then return false end if exhaustion.check(cid,505090) == true then return false end for slot = 5,6 do if getPlayerSlotItem(cid, slot).itemid == id_da_wand then doPlayerRemoveItem(cid,id_da_wand,1) end end return true end
Não esquece de colocar o id da wand na lib também. Cara, vendo aqui não me parece ter nenhum erro. Se aparecer mais algum, tenta dar um up e pedir pra algum outro desocupado dar uma olhada no que eu fiz ou refazer. Se eu tiver tempo, testo e vejo se o problema é aí.
info
Grupo: Campones
Registrado: 01/07/13
Posts: 50
Reputação: +2

E vamos à luta...
[03/09/2013 20:24:03] [Error - MoveEvents Interface][03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:onDeEquip[03/09/2013 20:24:03] Description:[03/09/2013 20:24:03] (luaGetThingPosition) Thing not found[03/09/2013 20:24:03] [Error - MoveEvents Interface][03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:onDeEquip[03/09/2013 20:24:03] Description:[03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:4: attempt to index global 'pos' (a boolean value)[03/09/2013 20:24:03] stack traceback:[03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:4: in function <data/movements/scripts/wandmove.lua:1>
Esse e o erro de MoveEvents.
Tambem tem outro erro. o Seguinte, quando a gente loga some a wand BOM, mais ai quando eu entro denovo ae não da pra criar outra wand. Depois que cria 1 Wand. Não cria outra. A wand ainda nao sumiu. e o Outro Erro e que tipo se eu coloca menos tempo a wand cria e some. Se eu tirar de 30 Min a wand some eu coloquei 29 a wand criou e imediatamente ela sumiu.
Cara, aqui funcionou o movement, eu testei esse bastante antes de postar porque o outro tava dando erro
Mas testa assim:
function onDeEquip(cid, item, slot) doRemoveItem(item.uid) doPlayerAddItem(cid,item.itemid,1) return true endNão é pra sumir quando loga. É pra sumir somente se o tempo já passou, aí se não tiver passado, o script coloca pra sumir no tempo certo. Só some se você mudou os storages que eu tava usando.
Achei um possível erro, troca o script da magia:
local id_da_wand = 102 local tempo_de_exhaust = 30 -- em minutos (da spell) local tempo_de_wand = 30 -- em minutos (de duração da wand) local wandsto = 505090 local storage = 505091 function onCastSpell(cid, var) tempo_de_wand = tempo_de_wand * 60 tempo_de_exhaust = tempo_de_exhaust * 60 if exhaustion.check(cid, storage) == false then if exhaustion.check(cid,wandsto) == false then if getPlayerSlotItem(cid, 5).itemid == 0 or getPlayerSlotItem(cid,6).itemid == 0 then doPlayerAddItem(cid,id_da_wand,1) doSendMagicEffect(getCreaturePosition(cid),12) exhaustion.set(cid,wandsto,tempo_de_wand) exhaustion.set(cid,storage,tempo_de_exhaust) addEvent(doRemoveWand,(tempo_de_wand*1000)+100,cid) return true else doPlayerSendCancel(cid,'You cannot use this spell with your hands full.') doSendMagicEffect(getCreaturePosition(cid),2) end else doPlayerSendCancel(cid,'You are exhausted.') doSendMagicEffect(getCreaturePosition(cid),2) end else doSendMagicEffect(getCreaturePosition(cid),2) doPlayerSendCancel(cid,'You are exhausted.') end return false end
lib:
function doRemoveWand(cid) if not isPlayer(cid) then return false end if exhaustion.check(cid,505090) == true then return false end for slot = 5,6 do if getPlayerSlotItem(cid, slot).itemid == id_da_wand then doPlayerRemoveItem(cid,id_da_wand,1) end end return true end
Não esquece de colocar o id da wand na lib também. Cara, vendo aqui não me parece ter nenhum erro. Se aparecer mais algum, tenta dar um up e pedir pra algum outro desocupado dar uma olhada no que eu fiz ou refazer. Se eu tiver tempo, testo e vejo se o problema é aí.
Hey, o negocio de sumir e a creatureevent que tu postou. Ele quando loga some a wand.
Cara, Valeu pela a ajuda. Mais eu acho que o erro e no meu ot. Mais mesmo assim Obrigado.
Quando você tiver um tempo e eu entender mais um pouco sobre scripts eu tento introduzir esse sistema no meu server. Mais Quando voce tiver um tempo, tenta ver se tu acha mais algum erro.
Eu uso o Ot New Slayer 8.6
info
Grupo: Marquês
Registrado: 16/06/07
Posts: 1.2k
Reputação: +377
Gênero: Masculino
Char no Tibia: Nenhum

Vou tentar, qualquer coisa te mando PM, então.
Boa sorte aí, recomendo que comece com esses tutoriais se quiser começar a aprender scripting:
http://www.xtibia.com/forum/topic/99746-pasta-data-enciclopedia-13-tutoriais-para-entender-ela-toda/
Depois pode dar uma olhada na Escolinha de Scripting do Roksas também.


info
Grupo: Marquês
Registrado: 16/06/07
Posts: 1.2k
Reputação: +377
Gênero: Masculino
Char no Tibia: Nenhum
tenta essa correção pro conjurewand.lua