Postado Julho 29, 2016 8 anos Olá a todos, eu possuo um script de trap no qual se utilizar a pessoa fica presa, só que esse script possui um erro, queria saber se vocês podem me ajudar a solicionar, o erro consiste no qual se uma pessoa usar uma trap dentro de outra trap, elas vão se estacando, fazendo assim, duas pessoas conseguirem trapar uma pessoa infinitamente, gostaria de pedir a ajuda no qual colocasse algo para impedir que a pessoa consiga usar duas traps no mesmo sqm, segue uma foto mostrando o error Vou postar o script abaixo, qualquer dúvida pode deixar mensagem no tópico, que auxilio, o script não é de minha autoria, apenas peguei na internet e adaptei do modo que eu sei. obs: ambas as magias são o mesmo script, só muda o id local config = { gatesTime = 5, -- tempo em segundos exhaustStorage = 41000, exhaustTime = 5, createGates = {2730, 2730, 2730, 2730, 2730,2730, 2730, 2730, 2730, 2730,2730, 2730, 2730, 2730, 2730, 2730, 2730, 2730, 2730, 2730, 2730, 2730, 2730} -- ID dos portoes na ordem certa } local combat = createCombatObject() setCombatArea(combat, createCombatArea({ {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 3, 3, 3, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, })) local permittedPos = {} function onTargetTile(cid, pos) table.insert(permittedPos[cid], pos) end setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") local function doSpell(cid, var) if(not isCreature(cid)) then return true end doCombat(cid, combat, var) for n, pos in ipairs(permittedPos[cid]) do doSendMagicEffect(pos, 130) doCreateItem(config.createGates[n], 1, pos) addEvent(function() if(getTileItemById(pos, config.createGates[n]).uid > 0) then doRemoveItem(getTileItemById(pos, config.createGates[n]).uid, 1) end end, config.gatesTime*1000) end return true end function onCastSpell(cid, var) permittedPos[cid] = {} if(isPlayer(cid) and exhaustion.check(cid, config.exhaustStorage)) then doPlayerSendCancel(cid, "Aguarde "..exhaustion.get(cid, config.exhaustStorage).." segundo"..(exhaustion.get(cid, config.exhaustStorage) > 1 and "s" or "").." para usar novamente.") doSendMagicEffect(getThingPos(cid), 2) return false end return doSpell(cid, var) end
Postado Julho 29, 2016 8 anos Tente assim: Spoiler local config = { gatesTime = 5, -- tempo em segundos exhaustStorage = 41000, exhaustTime = 5, createGates = {2730, 2730, 2730, 2730, 2730,2730, 2730, 2730, 2730, 2730,2730, 2730, 2730, 2730, 2730, 2730, 2730, 2730, 2730, 2730, 2730, 2730, 2730} -- ID dos portoes na ordem certa } local combat = createCombatObject() setCombatArea(combat, createCombatArea({ {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 3, 3, 3, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, })) local permittedPos = {} function onTargetTile(cid, pos) table.insert(permittedPos[cid], pos) end setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") local function doSpell(cid, var) if(not isCreature(cid)) then return true end doCombat(cid, combat, var) for n, pos in ipairs(permittedPos[cid]) do if(getTileItemById(pos, config.createGates[n]).uid > 0) then doPlayerSendCancel(cid, "Ja existe um TRAP aq!") else doSendMagicEffect(pos, 130) doCreateItem(config.createGates[n], 1, pos) addEvent(function() if(getTileItemById(pos, config.createGates[n]).uid > 0) then doRemoveItem(getTileItemById(pos, config.createGates[n]).uid, 1) end end, config.gatesTime*1000) end end return true end function onCastSpell(cid, var) permittedPos[cid] = {} if(isPlayer(cid) and exhaustion.check(cid, config.exhaustStorage)) then doPlayerSendCancel(cid, "Aguarde "..exhaustion.get(cid, config.exhaustStorage).." segundo"..(exhaustion.get(cid, config.exhaustStorage) > 1 and "s" or "").." para usar novamente.") doSendMagicEffect(getThingPos(cid), 2) return false end return doSpell(cid, var) end
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.