vigonetto 0 Postado Setembro 9, 2012 Share Postado Setembro 9, 2012 Quero saber com fazer, para fazer com que um item (arvores) sejam removidas, depois de terem sido conjuradas. Segue o script que tenho: local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ANI_POISON) setCombatParam(combat1, COMBAT_PARAM_CREATEITEM, 2768) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_CREATEITEM, 2708) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_CREATEITEM, 2700) local arr1 = { {3} } local arr2 = { {0, 1, 0}, {1, 2, 1} } local arr3 = { {1, 1, 1}, {1, 0, 1}, {0, 2, 0} } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) local area3 = createCombatArea(arr3) setCombatArea(combat1, area1) setCombatArea(combat2, area2) setCombatArea(combat3, area3) function onCastSpell11(parameters1) doCombat(parameters1.cid, combat1, parameters1.var) end function onCastSpell12(parameters1) doCombat(parameters1.cid, combat2, parameters1.var) end function onCastSpell13(parameters1) doCombat(parameters1.cid, combat3, parameters1.var) end function onCastSpell(cid, var) local parameters1 = { cid = cid, var = var } addEvent(onCastSpell11, 0, parameters1) addEvent(onCastSpell12, 1000, parameters1) addEvent(onCastSpell13, 2500, parameters1) return true end A ideia, é que as arvores fiquem um tempo, e depois sejam removidas. Link para o comentário https://xtibia.com/forum/topic/193791-ajuda-com-um-detalhe-importante-em-uma-spell/ Compartilhar em outros sites More sharing options...
0 brun123 369 Postado Setembro 9, 2012 Share Postado Setembro 9, 2012 (editado) Teste assim: local TEMPO_PARA_REMOVER = 5 * 1000 -- em ms, 5 * 1000 = 5 segundos local EFFECT_AO_REMOVER = CONST_ME_POFF -- efeito que aparece ao remover os itens local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ANI_POISON) setCombatParam(combat1, COMBAT_PARAM_CREATEITEM, 2768) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_CREATEITEM, 2708) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_CREATEITEM, 2700) local arr1 = { {3} } local arr2 = { {0, 1, 0}, {1, 2, 1} } local arr3 = { {1, 1, 1}, {1, 0, 1}, {0, 2, 0} } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) local area3 = createCombatArea(arr3) setCombatArea(combat1, area1) setCombatArea(combat2, area2) setCombatArea(combat3, area3) function onTargetTile(cid, pos) local function doRemoveItemFromPos(pos, id) local i = getTileItemById(pos, id).uid i = i > 1 and doRemoveItem(i) and true or false if i and tonumber(EFFECT_AO_REMOVER) and EFFECT_AO_REMOVER >= 0 and EFFECT_AO_REMOVER <= 255 then doSendMagicEffect(pos, EFFECT_AO_REMOVER) end end local iI = {getTileItemById(pos, 2768), getTileItemById(pos, 2708), getTileItemById(pos, 2700)} for _, i in pairs (iI) do if i.uid > 1 then addEvent(doRemoveItemFromPos, TEMPO_PARA_REMOVER, pos, i.itemid) end end end function onTargetTile1(cid, pos) onTargetTile(cid, pos) end function onTargetTile2(cid, pos) onTargetTile(cid, pos) end function onTargetTile3(cid, pos) onTargetTile(cid, pos) end setCombatCallback(combat1, CALLBACK_PARAM_TARGETTILE, "onTargetTile1") setCombatCallback(combat2, CALLBACK_PARAM_TARGETTILE, "onTargetTile2") setCombatCallback(combat3, CALLBACK_PARAM_TARGETTILE, "onTargetTile3") function doExecuteCombat(cid, var, combat) if not isCreature(cid) then return true end return doCombat(cid, combat, var) end function onCastSpell(cid, var) local combats = {[0] = combat1, [1000] = combat2, [2500] = combat3} for timing, c in pairs (combats) do addEvent(doExecuteCombat, timing, cid, var, c) end return true end Editado Setembro 9, 2012 por brun123 Link para o comentário https://xtibia.com/forum/topic/193791-ajuda-com-um-detalhe-importante-em-uma-spell/#findComment-1335519 Compartilhar em outros sites More sharing options...
0 vigonetto 0 Postado Setembro 10, 2012 Autor Share Postado Setembro 10, 2012 Teste assim: local TEMPO_PARA_REMOVER = 5 * 1000 -- em ms, 5 * 1000 = 5 segundos local EFFECT_AO_REMOVER = CONST_ME_POFF -- efeito que aparece ao remover os itens local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ANI_POISON) setCombatParam(combat1, COMBAT_PARAM_CREATEITEM, 2768) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_CREATEITEM, 2708) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_CREATEITEM, 2700) local arr1 = { {3} } local arr2 = { {0, 1, 0}, {1, 2, 1} } local arr3 = { {1, 1, 1}, {1, 0, 1}, {0, 2, 0} } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) local area3 = createCombatArea(arr3) setCombatArea(combat1, area1) setCombatArea(combat2, area2) setCombatArea(combat3, area3) function onTargetTile(cid, pos) local function doRemoveItemFromPos(pos, id) local i = getTileItemById(pos, id).uid i = i > 1 and doRemoveItem(i) and true or false if i and tonumber(EFFECT_AO_REMOVER) and EFFECT_AO_REMOVER >= 0 and EFFECT_AO_REMOVER <= 255 then doSendMagicEffect(pos, EFFECT_AO_REMOVER) end end local iI = {getTileItemById(pos, 2768), getTileItemById(pos, 2708), getTileItemById(pos, 2700)} for _, i in pairs (iI) do if i.uid > 1 then addEvent(doRemoveItemFromPos, TEMPO_PARA_REMOVER, pos, i.itemid) end end end function onTargetTile1(cid, pos) onTargetTile(cid, pos) end function onTargetTile2(cid, pos) onTargetTile(cid, pos) end function onTargetTile3(cid, pos) onTargetTile(cid, pos) end setCombatCallback(combat1, CALLBACK_PARAM_TARGETTILE, "onTargetTile1") setCombatCallback(combat2, CALLBACK_PARAM_TARGETTILE, "onTargetTile2") setCombatCallback(combat3, CALLBACK_PARAM_TARGETTILE, "onTargetTile3") function doExecuteCombat(cid, var, combat) if not isCreature(cid) then return true end return doCombat(cid, combat, var) end function onCastSpell(cid, var) local combats = {[0] = combat1, [1000] = combat2, [2500] = combat3} for timing, c in pairs (combats) do addEvent(doExecuteCombat, timing, cid, var, c) end return true end Nada demais aconteceu, no tibia. No entanto, aconteceu um erro no servidor, ao rodar a spell. Valeu pela força, e se der, me ajuda, que ainda não deu certo! Link para o comentário https://xtibia.com/forum/topic/193791-ajuda-com-um-detalhe-importante-em-uma-spell/#findComment-1336079 Compartilhar em outros sites More sharing options...
0 brun123 369 Postado Setembro 10, 2012 Share Postado Setembro 10, 2012 (editado) não dá pra ver a imagem, não precisa tirar print não só da ctrl c/v no texto e cola aqui, acabei de testar a script e funcionou normalmente, provavelmente é alguma incompatibilidade devido a diferença das versões utilizadas Editado Setembro 10, 2012 por brun123 Link para o comentário https://xtibia.com/forum/topic/193791-ajuda-com-um-detalhe-importante-em-uma-spell/#findComment-1336192 Compartilhar em outros sites More sharing options...
0 vigonetto 0 Postado Setembro 10, 2012 Autor Share Postado Setembro 10, 2012 Ok, valeu pela ajuda. Vou ver oque posso fazer! (Ainda sou muito novo, em script) Link para o comentário https://xtibia.com/forum/topic/193791-ajuda-com-um-detalhe-importante-em-uma-spell/#findComment-1336330 Compartilhar em outros sites More sharing options...
Pergunta
vigonetto 0
Quero saber com fazer, para fazer com que um item (arvores) sejam removidas, depois de terem sido conjuradas. Segue o script que tenho:
local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ANI_POISON) setCombatParam(combat1, COMBAT_PARAM_CREATEITEM, 2768) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_CREATEITEM, 2708) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_CREATEITEM, 2700) local arr1 = { {3} } local arr2 = { {0, 1, 0}, {1, 2, 1} } local arr3 = { {1, 1, 1}, {1, 0, 1}, {0, 2, 0} } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) local area3 = createCombatArea(arr3) setCombatArea(combat1, area1) setCombatArea(combat2, area2) setCombatArea(combat3, area3) function onCastSpell11(parameters1) doCombat(parameters1.cid, combat1, parameters1.var) end function onCastSpell12(parameters1) doCombat(parameters1.cid, combat2, parameters1.var) end function onCastSpell13(parameters1) doCombat(parameters1.cid, combat3, parameters1.var) end function onCastSpell(cid, var) local parameters1 = { cid = cid, var = var } addEvent(onCastSpell11, 0, parameters1) addEvent(onCastSpell12, 1000, parameters1) addEvent(onCastSpell13, 2500, parameters1) return true endA ideia, é que as arvores fiquem um tempo, e depois sejam removidas.
Link para o comentário
https://xtibia.com/forum/topic/193791-ajuda-com-um-detalhe-importante-em-uma-spell/Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados