leandrozera 4 Postado Agosto 5, 2015 Share Postado Agosto 5, 2015 olá galerinha do Xtibia gostaria de saber como faço para por quando player não tiver ml para usar tal magia usar a forma doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml x para usar essa magia!.") em vez de sendCancel("You do not have enough magic level."); nessa magia aqui no caso local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90) local arr = { {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Link para o comentário https://xtibia.com/forum/topic/236017-ajuda-com-script-de-spell/ Compartilhar em outros sites More sharing options...
0 Bruno 536 Postado Agosto 5, 2015 Share Postado Agosto 5, 2015 assim fica do modo normal preciso em doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml " .. ml .. " para usar essa magia!.") se player ficar dando spam no default da muted nele Tenta assim: local ml = 100 --- QUANTO DE ML VAI PRECISAR local storage = 99488 -- STORAGE PARA CONTROLAR O EXAUST local seconds = 10 -- TEMPO EM SEGUNDOS PARA REPETIR A MENSAGEM local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90) local arr = { {0, 1, 0}, {0, 1, 0}, {0, 1, 0} } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) if getPlayerMagLevel(cid) < ml then if exhaustion.check(cid, storage) > 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml " .. ml .. " para usar essa magia!.") exhaustion.set(cid, storage, seconds) end doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false else return doCombat(cid, combat, var) end end Link para o comentário https://xtibia.com/forum/topic/236017-ajuda-com-script-de-spell/#findComment-1663955 Compartilhar em outros sites More sharing options...
0 SkyLigh 453 Postado Agosto 5, 2015 Share Postado Agosto 5, 2015 tente local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90) local arr = { {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml x para usar essa magia!.") return doCombat(cid, combat, var) end Link para o comentário https://xtibia.com/forum/topic/236017-ajuda-com-script-de-spell/#findComment-1663893 Compartilhar em outros sites More sharing options...
0 leandrozera 4 Postado Agosto 5, 2015 Autor Share Postado Agosto 5, 2015 tente local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90) local arr = { {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml x para usar essa magia!.") return doCombat(cid, combat, var) end dessa forma se ele não tiver ml continua usando função sendCancel("You do not have enough magic level."); caso tenha ele tenha ml vai apenas executar magia normalmente + mensagem em doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml x para usar essa magia!.") Link para o comentário https://xtibia.com/forum/topic/236017-ajuda-com-script-de-spell/#findComment-1663894 Compartilhar em outros sites More sharing options...
0 SkyLigh 453 Postado Agosto 5, 2015 Share Postado Agosto 5, 2015 foi mal msm pensei merda na hora. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90) local arr = { {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) local ml = 100 --- QUANTO DE ML VAI PRECISAR if getPlayerMagLevel(cid) == ml then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml x para usar essa magia!.") return doCombat(cid, combat, var) end end edita o ml na linha ali e poem no spells.xml também Link para o comentário https://xtibia.com/forum/topic/236017-ajuda-com-script-de-spell/#findComment-1663896 Compartilhar em outros sites More sharing options...
0 leandrozera 4 Postado Agosto 5, 2015 Autor Share Postado Agosto 5, 2015 foi mal msm pensei merda na hora. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90) local arr = { {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) local ml = 100 --- QUANTO DE ML VAI PRECISAR if getPlayerMagLevel(cid) == ml then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml x para usar essa magia!.") return doCombat(cid, combat, var) end end edita o ml na linha ali e poem no spells.xml também não apareceu nem um erro no console mais também não esta aparecendo nem uma mensagem quando mando spell Link para o comentário https://xtibia.com/forum/topic/236017-ajuda-com-script-de-spell/#findComment-1663898 Compartilhar em outros sites More sharing options...
0 SkyLigh 453 Postado Agosto 5, 2015 Share Postado Agosto 5, 2015 local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90) local arr = { {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) local ml = 100 --- QUANTO DE ML VAI PRECISAR if getPlayerMagLevel(cid) == ml then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml x para usar essa magia!.") return doCombat(cid, combat, var) end end Link para o comentário https://xtibia.com/forum/topic/236017-ajuda-com-script-de-spell/#findComment-1663900 Compartilhar em outros sites More sharing options...
0 leandrozera 4 Postado Agosto 5, 2015 Autor Share Postado Agosto 5, 2015 local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90) local arr = { {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) local ml = 100 --- QUANTO DE ML VAI PRECISAR if getPlayerMagLevel(cid) == ml then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml x para usar essa magia!.") return doCombat(cid, combat, var) end end agora aparece mensagem "você precisa ter ml x para usar essa magia!." + mensagem do nome da spell e gasta a mana se player n tiver magic level Link para o comentário https://xtibia.com/forum/topic/236017-ajuda-com-script-de-spell/#findComment-1663904 Compartilhar em outros sites More sharing options...
0 Bruno 536 Postado Agosto 5, 2015 Share Postado Agosto 5, 2015 agora aparece mensagem "você precisa ter ml x para usar essa magia!." + mensagem do nome da spell e gasta a mana se player n tiver magic level Tente assim: local ml = 100 --- QUANTO DE ML VAI PRECISAR local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90) local arr = { {0, 1, 0}, {0, 1, 0}, {0, 1, 0} } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) if getPlayerMagLevel(cid) < ml then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml " .. ml .. " para usar essa magia!.") return false else return doCombat(cid, combat, var) end end Link para o comentário https://xtibia.com/forum/topic/236017-ajuda-com-script-de-spell/#findComment-1663905 Compartilhar em outros sites More sharing options...
0 SkyLigh 453 Postado Agosto 5, 2015 Share Postado Agosto 5, 2015 local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90) local arr = { {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) local ml = 100 --- QUANTO DE ML VAI PRECISAR if getPlayerMagLevel(cid) == ml then doPlayerSendCancel(MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml x para usar essa magia!.") return doCombat(cid, combat, var) end end Link para o comentário https://xtibia.com/forum/topic/236017-ajuda-com-script-de-spell/#findComment-1663906 Compartilhar em outros sites More sharing options...
0 leandrozera 4 Postado Agosto 5, 2015 Autor Share Postado Agosto 5, 2015 (editado) Tente assim: local ml = 100 --- QUANTO DE ML VAI PRECISAR local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90) local arr = { {0, 1, 0}, {0, 1, 0}, {0, 1, 0} } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) if getPlayerMagLevel(cid) < ml then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml " .. ml .. " para usar essa magia!.") return false else return doCombat(cid, combat, var) end end dessa forma agora deu certo só que player fica apertando hotkay sem parar n tem exhausted isso pode lagar o server, poderia colocar um magicefect tb, constpoft? Editado Agosto 5, 2015 por leandrozera Link para o comentário https://xtibia.com/forum/topic/236017-ajuda-com-script-de-spell/#findComment-1663908 Compartilhar em outros sites More sharing options...
0 SkyLigh 453 Postado Agosto 5, 2015 Share Postado Agosto 5, 2015 com exhaust local ml = 100 --- QUANTO DE ML VAI PRECISAR local exhastor = 5 --- Segundos de exhaust local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90) local arr = { {0, 1, 0}, {0, 1, 0}, {0, 1, 0} } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) if exhaustion.check(cid, exhastor) then return true end if getPlayerMagLevel(cid) < ml then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml " .. ml .. " para usar essa magia!.") return false else return doCombat(cid, combat, var) end end Link para o comentário https://xtibia.com/forum/topic/236017-ajuda-com-script-de-spell/#findComment-1663910 Compartilhar em outros sites More sharing options...
0 Bruno 536 Postado Agosto 5, 2015 Share Postado Agosto 5, 2015 dessa forma agora deu certo só que player fica apertando hotkay sem parar n tem exhausted isso pode lagar o server, poderia colocar um magicefect tb, constpoft? Segue: local ml = 100 --- QUANTO DE ML VAI PRECISAR local storage = 99488 -- STORAGE PARA CONTROLAR O EXAUST local seconds = 60 -- TEMPO EM SEGUNDOS PARA REPETIR A MENSAGEM local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90) local arr = { {0, 1, 0}, {0, 1, 0}, {0, 1, 0} } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) if getPlayerMagLevel(cid) < ml then if getPlayerStorageValue(tid, storage) < os.time() then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml " .. ml .. " para usar essa magia!.") setPlayerStorageValue(tid, storage, os.time() + seconds) end doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false else return doCombat(cid, combat, var) end end Link para o comentário https://xtibia.com/forum/topic/236017-ajuda-com-script-de-spell/#findComment-1663911 Compartilhar em outros sites More sharing options...
0 leandrozera 4 Postado Agosto 5, 2015 Autor Share Postado Agosto 5, 2015 com exhaust local ml = 100 --- QUANTO DE ML VAI PRECISAR local exhastor = 5 --- Segundos de exhaust local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90) local arr = { {0, 1, 0}, {0, 1, 0}, {0, 1, 0} } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) if exhaustion.check(cid, exhastor) then return true end if getPlayerMagLevel(cid) < ml then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml " .. ml .. " para usar essa magia!.") return false else return doCombat(cid, combat, var) end end ainda fico do mesmo jeito amigo Segue: local ml = 100 --- QUANTO DE ML VAI PRECISAR local storage = 99488 -- STORAGE PARA CONTROLAR O EXAUST local seconds = 60 -- TEMPO EM SEGUNDOS PARA REPETIR A MENSAGEM local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90) local arr = { {0, 1, 0}, {0, 1, 0}, {0, 1, 0} } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) if getPlayerMagLevel(cid) < ml then if getPlayerStorageValue(tid, storage) < os.time() then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml " .. ml .. " para usar essa magia!.") setPlayerStorageValue(tid, storage, os.time() + seconds) end doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false else return doCombat(cid, combat, var) end end [5/8/2015 9:25:44] [Error - Spell Interface] [5/8/2015 9:25:45] data/spells/scripts/magias/super exevo mas mort.lua:onCastSpell [5/8/2015 9:25:45] Description: [5/8/2015 9:25:45] data/spells/scripts/magias/super exevo mas mort.lua:24: attempt to compare boolean with number [5/8/2015 9:25:45] stack traceback: [5/8/2015 9:25:45] data/spells/scripts/magias/super exevo mas mort.lua:24: in function <data/spells/scripts/pbot/super exevo mas mort.lua:22> Link para o comentário https://xtibia.com/forum/topic/236017-ajuda-com-script-de-spell/#findComment-1663912 Compartilhar em outros sites More sharing options...
0 Bruno 536 Postado Agosto 5, 2015 Share Postado Agosto 5, 2015 [5/8/2015 9:25:44] [Error - Spell Interface] [5/8/2015 9:25:45] data/spells/scripts/magias/super exevo mas mort.lua:onCastSpell [5/8/2015 9:25:45] Description: [5/8/2015 9:25:45] data/spells/scripts/magias/super exevo mas mort.lua:24: attempt to compare boolean with number [5/8/2015 9:25:45] stack traceback: [5/8/2015 9:25:45] data/spells/scripts/magias/super exevo mas mort.lua:24: in function <data/spells/scripts/pbot/super exevo mas mort.lua:22> Usando a função que já existe no servidor: local ml = 100 --- QUANTO DE ML VAI PRECISAR local storage = 99488 -- STORAGE PARA CONTROLAR O EXAUST local seconds = 60 -- TEMPO EM SEGUNDOS PARA REPETIR A MENSAGEM local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90) local arr = { {0, 1, 0}, {0, 1, 0}, {0, 1, 0} } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) if getPlayerMagLevel(cid) < ml then if exhaustion.check(cid, storage) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml " .. ml .. " para usar essa magia!.") exhaustion.set(cid, storage, seconds) end doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false else return doCombat(cid, combat, var) end end Link para o comentário https://xtibia.com/forum/topic/236017-ajuda-com-script-de-spell/#findComment-1663918 Compartilhar em outros sites More sharing options...
0 leandrozera 4 Postado Agosto 5, 2015 Autor Share Postado Agosto 5, 2015 (editado) Usando a função que já existe no servidor: local ml = 100 --- QUANTO DE ML VAI PRECISAR local storage = 99488 -- STORAGE PARA CONTROLAR O EXAUST local seconds = 60 -- TEMPO EM SEGUNDOS PARA REPETIR A MENSAGEM local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90) local arr = { {0, 1, 0}, {0, 1, 0}, {0, 1, 0} } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) if getPlayerMagLevel(cid) < ml then if exhaustion.check(cid, storage) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml " .. ml .. " para usar essa magia!.") exhaustion.set(cid, storage, seconds) end doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false else return doCombat(cid, combat, var) end end CONST_ME_POFF agora deu certo so não esta mostrando mensagem doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml " .. ml .. " para usar essa magia!.") Editado Agosto 5, 2015 por leandrozera Link para o comentário https://xtibia.com/forum/topic/236017-ajuda-com-script-de-spell/#findComment-1663920 Compartilhar em outros sites More sharing options...
Pergunta
leandrozera 4
olá galerinha do Xtibia gostaria de saber como faço para por quando player não tiver ml para usar tal magia usar a forma
em vez de
sendCancel("You do not have enough magic level.");
nessa magia aqui no caso
Link para o comentário
https://xtibia.com/forum/topic/236017-ajuda-com-script-de-spell/Compartilhar em outros sites
21 respostass a esta questão
Posts Recomendados