Ir para conteúdo
Banner com Efeitos

xWhiteWolf

Héroi
  • Registro em

  • Última visita

Tudo que xWhiteWolf postou

  1. a vip do seu server é por storage?? pega o sistema da minha assinatura e coloca um if getPlayerStorageValue (cid, storage da sua vip) >= 1 then e dps disso adiciona um end antes do return true
  2. tem certeza que não faz sentido?
  3. se nao me engano dá pra banir pelo console do server mas não é certeza.
  4. não dá pra banir por conta deles serem da staff, vc tem que retirar o acess deles e depois banir
  5. é exatamente pra isso que a gente usa os storages... Faz uma action que quando clique na estátua com actionid X dê o valor 1 para o storage Y. Daí o outro script seria porta, se o player tiver o valor 1 no storage Y então abre a porta. Depois disso só precisaria do movements pra fechar a porta quando o player passasse e evitar que um abrisse e todo mundo fizesse a quest
  6. eu fiz a segunda spell igualzinha do server dos caras, com o dano e tudo.. dá uma olhada na minha assinatura. A primeira spell o item não some porque o jeito que tem de fazer ele sumir é por Decay e pra isso precisaria criar um item diferente no item editor com a mesma sprite de um item existente (a menos que vc nao ligue de perder um item do seu server). A forma que o Eduardo fez é muito boa mas ela é falha (quando alguém faz um item na mesma hr que o item anterior foi removido o item atual é removido e o antigo não). Se vc manjar de item editor ou tiver disposto a perder o item do seu server é só trocar o script por esse daqui: local config = { storage = 49607, tempo = 10 } local positions = {} function onCastSpell(cid, var) local itemid = math.random (5787, 5788) if getPlayerStorageValue(cid, config.storage) <= 0 then table.insert(positions, getThingPos(cid)) doPlayerSetStorageValue(cid, config.storage, #positions) doDecayItem(doCreateItem(itemid, getThingPos(cid))) doSendMagicEffect(getThingPos(cid), 3) addEvent(function() if isCreature(cid) then doPlayerSendTextMessage(cid, 22, "Your item has expired.") doPlayerSetStorageValue(cid, config.storage, 0) table.remove(positions, getPlayerStorageValue(cid, config.storage)) end end, 1000*config.tempo) elseif getPlayerStorageValue (cid, config.storage) > 0 then doTeleportThing(cid, positions[getPlayerStorageValue(cid, config.storage)]) doSendMagicEffect(getThingPos(cid), 2) end return true end e em items.xml vc tem que editar o item que vc for usar (no meu caso eu usei os dois target dummie (5788, 5787) e editei de acordo no items.xml: <item fromid="5787" toid="5788" article="a" name="target" > <attribute key="decayTo" value="0" /> <attribute key="duration" value="10" /> </item> ajustando a duration com o tempo do script fica perfeito e acredito q foi assim q os caras do server pioneiro desse sistema fizeram, mas o problema é que se vc usa um item normal (que não foi criado a + no item editor) todos os items iguais a ele vão desaparecer do mapa, então fazendo isso eu perdi todos os items 5787 e 5788 que tinham no meu mapa.
  7. xWhiteWolf postou uma resposta no tópico em Scripts tfs 0.4 (OLD)
    Fala galera do TK, um cara tinha pedido no suporte pra eu fazer essa spell aqui http://youtu.be/ZWrsRvVYgys?t=1m54s e eu fiz rapidinho e ficou uma bosta, então eu decidi melhorar ela e postar aqui pra vocês. O vídeo é bem explicativo então eu acho que não preciso ficar prologando isso daqui, se vc não quiser ver o vídeo tente entender pelas fotos: Bom, antes de tudo vá em spells.xml e coloque isso daqui: <instant name="Tibia King" words="Hirashin ni no dan" lvl="50" mana="100" prem="1" range="6" needtarget="1" blockwalls="1" exhaustion="1000" needlearn="0" event="script" value="especiais/playerport.lua"> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant> aqui vc configura nome da magia, palavras pra usar ela, level pra usar, mana que custa, se precisa ser premio, o alcance máximo dela, se precisa de um target (nessa magia em específico eu vou pedir pra que vc não mexa nisso), se ela é bloqueada pelas paredes (1 quer dizer que sim), a exaustão entre um uso e outro (nesse caso vc usa a magia e precisa esperar 1 segundo (1000 milisegundos) pra usá-la novamente) se ela precisa ser aprendida (0 significa que vc já vem com ela) e em value você tem o diretório em que ela vai ficar (no caso dentro da pasta spells\scripts vai ter uma pasta chamada especiais e dentro dessa pasta vai ter um arquivo chamado playerport.lua Feito isso crie o arquivo playerport.lua que deverá conter o seguinte: local config = { storage = 49708, tempo = 1.5, effect = 65 } local exception = {"Trainer", "Training Monk", "GOD"} function onCastSpell(cid, var) local name = getCreatureName(getCreatureTarget(cid)) if not isInArray(exception, name) then if getPlayerStorageValue(cid, config.storage) <= 0 then doPlayerSetStorageValue(cid, config.storage, 1) doSendMagicEffect(getThingPos(cid), config.effect) doSendMagicEffect(getThingPos(variantToNumber(var)), config.effect) addEvent(function() doPlayerSetStorageValue(cid, config.storage, 0) if isCreature(cid) and isCreature(variantToNumber(var)) then if isWalkable(getCreaturePosition(variantToNumber(var)), false, true, true) then doTeleportThing(cid, getThingPos(variantToNumber(var)), true) arr = {3} doAreaCombatHealth(cid, 1, getThingPos(variantToNumber(var)), arr, -getPlayerLevel(cid), -2*(getPlayerLevel(cid)), 0) elseif isCreature(cid) and not isWalkable(getCreaturePosition(variantToNumber(var)), false, true, true) then doPlayerSendCancel(cid, "You can't reach your target") end end end, 1000*config.tempo) elseif getPlayerStorageValue (cid, config.storage) > 0 then doSendMagicEffect(getThingPos(cid), 2) doPlayerSendCancel(cid, "You've already set your target.") end else doPlayerSendCancel (cid, "You can't use this spell in this creature.") return false end return true end Ali no começo é possível configurar algumas coisas do script: o script em si é bem fácil de se configurar. Agora pra evitar possíveis bugs você deve ir em creaturescripts\scripts\login.lua e adicionar essas linhas antes do ultimo return true: ---------- PlayerPort--------------- if getPlayerStorageValue(cid, 49708) ~= 0 then setPlayerStorageValue(cid, 49708, 0) end Lembrando que o storage no login.lua tem que ser igual ao storage no script!! OBS: a fórmula pode ser mudada nessa linha aqui: doAreaCombatHealth(cid, 1, getThingPos(variantToNumber(var)), arr, -getPlayerLevel(cid), -2*(getPlayerLevel(cid)), config.effectdamage) aqui é a fórmula: -getPlayerLevel(cid), -2*(getPlayerLevel(cid)) sendo min, max respectivamente. Em outras palavras, o mínimo que a magia tira é o level do player e o máximo que ela tira é 2x o level; Espero que vcs tenham gostado :]
  8. eu usei if doPlayerRemoveMoney(cid, config.price) then se vc quiser que seja um item é só mudar pra local itemid = 2160 --- id do item que vai ser cobrado if doPlayerRemoveItem(cid, itemid, config.price) then e em price lá em cima vc coloca a quantidade que vai precisar desse item.
  9. como assim adaptação? Poketibia tem as mesmas funções que tibia normal... vai rodar sem problemas
  10. agora dá --[[Critical System By Night Wolf]] local lvlcrit = 48913 local multiplier = 1.5 local efeito = 2 --- efeito que vai sair do player/criatura que tomar o crítico function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS and isCreature(attacker) then if (getPlayerStorageValue(attacker, lvlcrit)*3) >= math.random (0,1000) then dano = math.ceil(value*(multiplier)) doTargetCombatHealth(attacker, cid, combat, -dano, -dano, 255) doSendAnimatedText(getCreaturePos(attacker), "CRITICAL!!", 144) doSendMagicEffect(getCreaturePos(attacker), efeito) return false end end return true end
  11. Eae galera do TK, vim trazer pra vocês um script do Fox World que já me pediram no suporte um monte de vezes, é a magma boots absorvendo metade do dano e podendo ser usado a cada 2 minutos. Pra quem não entendeu tenta acompanhar aqui nas screenshots: Nesse caso o player iria tomar 1124 de dano, mas ele tomou só 562 e a bota absorveu a outra metade do dano! Bom, vamos ao script: em actions.xml adicione: <action itemid="7891" script="magmaboots.lua"/> agora em actions\scripts\magmaboots.lua adicione: local config = { storagetempo = 19500, -- storage que contará os segundos storageskill = 19501, -- storage que vai dizer se a skill está ativada ou desativada itemid = 7891, -- id da boots itemplace = 8, -- feet tempo = 2*60 -- tempo em segundo (2 minutos) } function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, config.storageskill) <= 0 and (getPlayerSlotItem(cid, config.itemplace).itemid == config.itemid) then if getPlayerStorageValue(cid, config.storagetempo) - os.time() <= 0 then timenow = os.time() + config.tempo setPlayerStorageValue(cid, config.storagetempo, timenow) setPlayerStorageValue(cid, config.storageskill, 1) doPlayerSendTextMessage(cid, 23, "You activated your "..getItemNameById(config.itemid)..", it's ready to absorb damages!") for j= 0,(config.tempo -1) do addEvent(function() if isPlayer(cid) then doPlayerSendCancel(cid, "Time until next use: ".. config.tempo - j .." second(s)") end end, (50+(j*1000))) end else doPlayerSendTextMessage(cid, 23, "You have to wait ".. getPlayerStorageValue(cid, config.storagetempo) - os.time() .." second(s) until you can use it again!") end else doPlayerSendTextMessage(cid, 23, "Your "..getItemNameById(config.itemid).." is already active or it isn't equiped.") end return true end em creaturescripts.xml adicione essa linha: <event type="statschange" name="magmaboots" event="script" value="magmaboots.lua"/> agora crie o script magmaboots.lua em creaturescripts\scripts e adicione o seguinte nele: local config = { percent = 0.5, --- porcentagem do dano que irá levar (0.5 = 50%) storageskill = 19501, -- storage da skill itemplace = 8, -- lugar q ela deve estar (8 é o feet) itemid = 7891, -- id do item damagemin = 100 --- minimo de dano que deve ser pro player absorver } function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS and isCreature(attacker) and value >= config.damagemin then if getPlayerSlotItem(cid, config.itemplace).itemid == config.itemid then if getPlayerStorageValue(cid, config.storageskill) >= 1 then value = math.ceil(value*(config.percent)) setPlayerStorageValue(cid, config.storageskill, getPlayerStorageValue(cid, config.storageskill)-1) doTargetCombatHealth(attacker, cid, combat, -value, -value, 255) doPlayerSendTextMessage(cid, 23, "Your "..getItemNameById(config.itemid).." absorved "..value.." of damage.") return false end end end return true end feito isso você só vai ter que ir no login.lua que fica em creaturescripts\scripts e adicionar essas linhas antes do ultimo return true: ----------MAGMA BOOTS DO FOX---------------- registerCreatureEvent(cid, "magmaboots") if getPlayerStorageValue(cid, 19501) ~= 0 then setPlayerStorageValue(cid, 19501, 0) end --------------------------------------- Não tem muito oque configurar, no actions você pode editar isso daqui: e em creaturescripts vc pode editar isso daqui: Se vc ativar ela e deslogar, vc vai precisar ativar de novo quando logar. Testei em 8.54 então se não funcionar no seu server 12.0 nao é problema meu, procura as funções que mudaram e faça as alterações necessárias. Não me peça pra adaptar o script pra 7.51, eu não sou programmer e não sei fazer isso. Bom é isso, qualquer coisa manda nos comentários que eu tento ajudar ou explicar melhor. Abraço pra vocês
  12. Fala galera do TK, hoje vim trazer um script que eu já fiz a algum tempo prum cara no suporte, é nada mais e nada menos doque um sistema de broadcast onde players maiores que um determinado level pagam um determinado valor de gp's para soltarem uma mensagem para o server todo. talkactions\scripts\broadcast22.lua: local config = { storage = 19400, -- storage em que será salvo o tempo cor = "advance", -- de acordo com o constant.lua da lib tempo = 2, -- em minutos price = 1000, -- preço pra usar o broadcast level = 100 -- level pra poder utilizar o broadcast } function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end if getPlayerLevel(cid) >= config.level then if getPlayerStorageValue(cid, config.storage) - os.time() <= 0 then if doPlayerRemoveMoney(cid, config.price) then setPlayerStorageValue(cid, config.storage, os.time() + (config.tempo*60)) doBroadcastMessage("[BROADCAST] "..getCreatureName(cid)..": "..param.."", config.cor) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You have successfully sent a broadcast, now you'll have to wait " ..config.tempo.. " minute(s) until you broadcast again.") return false else doPlayerSendCancel(cid, "You don't have " ..config.price.. " gp's for broadcasting.") return false end else doPlayerSendCancel(cid, "You have to wait " ..(getPlayerStorageValue(cid, config.storage) - os.time()).. " seconds until you can broadcast again.") return false end else doPlayerSendCancel(cid, "You have to be level " ..config.level.. " or more in order to use broadcast.") end end e em talkactions.xml adicione essa linha: <talkaction log="yes" words="/all" event="script" value="broadcast22.lua"/> Da forma que tá configurado os players nv 100 ou mais poderão digitar /all Mensagem e por apenas 1000 gp's eles falarão a mensagem para o server inteiro, feito isso ele terá que esperar 2 minutos para mandar outro broadcast. Se você quiser mudar a cor é só ir no constant.lib e procurar algo parecido com isso daqui: MESSAGE_TYPES = { ["advance"] = MESSAGE_EVENT_ADVANCE, ["event"] = MESSAGE_EVENT_DEFAULT, ["white"] = MESSAGE_EVENT_DEFAULT, ["orange"] = MESSAGE_STATUS_CONSOLE_ORANGE, ["info"] = MESSAGE_INFO_DESCR, ["green"] = MESSAGE_INFO_DESCR, ["small"] = MESSAGE_STATUS_SMALL, ["blue"] = MESSAGE_STATUS_CONSOLE_BLUE, ["red"] = MESSAGE_STATUS_CONSOLE_RED, ["warning"] = MESSAGE_STATUS_WARNING, ["status"] = MESSAGE_STATUS_DEFAULT } Uma imagem pra vcs verem como é:
  13. Antes de tudo queria agradecer ao cara do suporte que me pediu pra fazer isso, achei muito legal a idéia. Fala galera do TK, vim trazer um script bem simpleszinho mas que abre um leque de opções de RPG e diversão pro seu OT.. Trata-se do Mining System, um sistema que você pode utilizar a pick normal (ou uma outra pick especial) para minerar a terra e tentar conseguir items que você pode trocar por dinheiro, items ou utilizar para craftar items. São 70 leveis de Mining que vão upando conforme vc minera. Enfim, vamos ao script: actions\scripts\mining.lua: terra = {351,352,353,354,355} levels = { [-1] = 2229, ---- skull [0] = 1294, --- small stone [1] = 3976, --- worm [10] = 2149, -- Small Emerald [12] = 2146, -- Small Sapphire [15] = 2145, -- Small Diamond [17] = 2150, -- Small Amethyst [20] = 2147, -- Small Ruby [25] = 2144, -- Black Pearls [27] = 2143, -- White Pearls [30] = 2157, -- Gold Nuggets [35] = 2156, --- red gem [36] = 2158, -- blue gem [37] = 2155, -- green gem [38] = 2153, -- violet gem [39] = 2154, -- yellow gem [40] = 7761, -- small enchanted emerald [42] = 7759, -- Small Enchanted Sapphiire [45] = 7762, -- Small Enchanted Amethyst [50] = 7760, -- Small Enchanted Ruby [70] = 2177 -- Life Crystal } local config = { storage = 19333, chance = 40, --- chance de achar um item ou não k = 2, --- constante de level.. quanto maior, mais fácil é upar. (a fórmula é level ao quadrado dividido pela constante) experience = 19334 } function onUse(cid, item, fromPosition, itemEx, toPosition) local drops = {} function getDrops(cid) for i= -1,getPlayerStorageValue(cid, config.storage) do if levels[i] then table.insert(drops, levels[i]) end end return true end if isInArray(terra, itemEx.itemid) then getDrops(cid) doPlayerSetStorageValue(cid, config.experience, getPlayerStorageValue(cid, config.experience)+1) local experience = getPlayerStorageValue(cid, config.experience) if experience >= (8+(getPlayerStorageValue(cid, config.storage)^2))/config.k then doPlayerSetStorageValue(cid, config.storage, getPlayerStorageValue(cid, config.storage)+1) doPlayerSendTextMessage(cid, 27, "Congratulations, you have leveled! Your currect level is "..getPlayerStorageValue(cid, config.storage) ..".") if getPlayerStorageValue(cid, config.storage) == 50 then doPlayerSendTextMessage(cid, 20, "For reaching level "..getPlayerStorageValue(cid, config.storage) .." you have been awarded with Mining Helmet.") doPlayerAddItem(cid, 7497, 1, true) end end if config.chance >= math.random(1,100) then if #drops >= 1 then local item = drops[math.random(1,#drops)] doPlayerSendTextMessage(cid, 27, "You have found a "..getItemNameById(item)..".") doPlayerAddItem(cid, item, 1, true) end doSendMagicEffect(toPosition, 3) else doSendMagicEffect(toPosition, 2) return true end elseif itemEx.itemid == item.itemid then doPlayerSendTextMessage(cid, 27, "You're currenctly level "..getPlayerStorageValue(cid, config.storage)..".") else return false end return true end em terra vc coloca os ids dos chãos em que é possível minerar, levels é o level da skill e o ID do respectivo item que você fica capaz de conseguir após alcançar esse nível. Em outras palavras, no começo vc só consegue minerar skull, no nv 70 vc vai ter a chance de conseguir todos os items anteriores e não só life crystal. O restante das configurações está no meio do script: local config = { storage = 19333, chance = 40, --- chance de achar um item ou não k = 2, --- constante de level.. quanto maior, mais fácil é upar. (a fórmula é level ao quadrado dividido pela constante) experience = 19334 } o storage é onde vai salvar o seu nível chance é a chance de pegar um item cada vez que minera. k é a constante de level, o nivel 10 precisa de 10*10/k de experiencia para ser alcançado (com k sendo 2 dá 50 de experiencia), ou seja, com 50 picaretadas na terra vc pega nivel 10. experience é o storage que fica salvo sua experiencia. Bônus: Ao alcançar level 50 você ganha o Mining Helmet como prêmio, ele não faz nada de especial mas é como se fosse um troféu. No meu server tem uma série de troféus que voce pode colecionar e fica como sendo uma conquista épica para os players. e no actions.xml: <action itemid="2553" script="mining.lua"/> OBS: Sugiro que vcs utilizem uma outra pick pra não dar conflito mas você faz oque quiser. PS: Uma fotinha pra vcs verem Espero que tenham gostado!
  14. Fala galera do TK, vejo que tem bastante gente procurando esse sisteminha que é praticamente igual ao dodge system, então eu decidi fazer visto que na realidade era só mudar 3 linhas kkkk em todo caso ta aí pra quem quiser: creaturescripts.xml: <!-- CRITICAL SYSTEM --> <event type="statschange" name="critical" event="script" value="critical.lua"/> creaturescripts\scripts\login.lua: --- CRITICAL SYSTEM ---- registerCreatureEvent(cid, "critical") if getPlayerStorageValue(cid, 48913) == -1 then setPlayerStorageValue(cid, 48913, 0) end creaturescritps\scripts\critical.lua: --[[Critical System ------------------------- By Night Wolf]] local lvlcrit = 48913 local multiplier = 1.5 function onStatsChange(cid, attacker, type, combat, value) if isPlayer(attacker) and (not (attacker == cid)) and (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) then if (getPlayerStorageValue(attacker, lvlcrit)*3) >= math.random (0,1000) then dano = math.ceil(value*(multiplier)) doTargetCombatHealth(attacker, cid, combat, -dano, -dano, 255) doSendAnimatedText(getCreaturePos(attacker), "CRITICAL!!", 144) return false end end return true end lvlcrit é o storage que fica salvo o seu level de critical e multiplier é o multiplicador do dano para ataques críticos.. nesse caso um ataque critico vai ser 1,5 vezes maior doque um ataque normal (50% maior) Agora em actions.xml adicione: <action itemid="1294" script="criticalrock.lua"/> e em actions\scripts\criticalrock.lua adicione: --- CRITICAL System by Night Wolf local config = { effectonuse = 14, -- efeito que sai levelscrit = 100, --- leveis que terão storagecrit = 48913 -- storage que será verificado } function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, config.storagecrit) < config.levelscrit then doRemoveItem(item.uid, 1) doSendMagicEffect(topos,config.effectonuse) doPlayerSendTextMessage(cid,22,"You've Leveled your Critical Skill to ["..(getPlayerStorageValue(cid, config.storagecrit)+1).."/"..config.levelscrit.."].") setPlayerStorageValue(cid, config.storagecrit, getPlayerStorageValue(cid, config.storagecrit)+1) elseif getPlayerStorageValue(cid, config.storagecrit) >= config.levelscrit then doPlayerSendTextMessage(cid,22,"You've already reached the MAX level of Critical Skill.\nCongratulations!!!!") return 0 end return 1 end Feito isso tá pronto, pra editar o item que dá a skill de critical vc edita no actions.xml mesmo: <action itemid="1294" << ID do item que será usado pra dar a skill. A config tá bem simples: effectonuse = 14, -- efeito que sai levelscrit = 100, --- leveis que terão storagecrit = 48913 -- storage que será verificado. Lembrando que cada pedra utilizada dará 0,3% a mais de chance.. 10 pedras dão 3% de chance de dar critico a cada ataque e 100 pedras (NIVEL MÁXIMO PADRÃO) dará 30% de chance de dar crítico em cada ataque. Espero que vcs gostem, qualquer coisa deixem os comentários aqui. Obs: aqui tá uma foto Note que esse script só funciona em players, se vc quiser que funcione em monstros você vai ter que abrir um por um todos os monstros do server e colocar essa tag aqui: <script> <event name="critical"/> </script> coloque antes de </monster> Minha dica: coloquem apenas no Trainer pra que o player consiga ver que ele tem o critical e quanto ele tira e deixem avisado que o sistema só vai funcionar em players.
  15. não sei dizer, só testei em 8.54 mas acredito que funcione sim. Na pior das hipóteses vc terá que substituir uma função ou outra mas isso é o console que vai dizer pra gente qnd vc testar e der errado rs.
  16. @kk4444 eu não fiz esse script, o meu é o dodge igual do fox world, que toma metade do dano.. o dele defende o dano inteiro. Os créditos são dele, inclusive se vc olhar o script é totalmente diferente, até mesmo as funções são diferentes. @topic Parabéns pelo script e obrigado por trazer pro Tibia King!
  17. local config = { pos = {x=42, y=234, z=7}, -- posição da aegis dimension tempo = 15, -- tempo pra voltar effect1 = 66, -- efeito ao ser teleportado effect2 = 10 -- efeito ao voltar } function onCastSpell(cid, var) if isPlayer(getCreatureTarget(cid)) then target = getCreatureTarget(cid) addEvent(doTeleportThing, 1000*config.tempo, target, getThingPos(target), true) addEvent(doSendMagicEffect, 1000*config.tempo, getThingPos(target), config.effect2) doSendMagicEffect(getThingPos(target), config.effect1) doTeleportThing(target, config.pos) if isCreature(cid) then doPlayerSendTextMessage(target, 27, "You were teleported by ".. getCreatureName(cid) ..".") end if isPlayer(cid) and isCreature(target) then doPlayerSendTextMessage(cid, 27, "You teleported ".. getCreatureName(target) .."!") end for i = 1,config.tempo do addEvent(function() if isCreature(target) then doPlayerSendTextMessage(target,25,"You'll be back in " .. config.tempo -i +1 .. " second(s)") end end, 1000*i) end else doPlayerSendCancel(cid, "You can only use this spell in players") end return true end
  18. me manda uma foto ou um vídeo que eu ainda não entendi '-'
  19. mas tava funcionando antes? pq se não tava o problema não é no nome né kkk
  20. oque é um itemtype?? você quis dizer outfit?
  21. storage é o storage que vai salvar se tá ativo ou desativo '-' se vc n sabe oque é, não mexe. O erro que tá retornando é na função getItemNameById... É uma função do 8.54, ela provavelmente deve ter mudado de nome, procura o nome da função nova, as vezes é uma mudança simpleszinha tipo getItemNameById > doGetItemName (isso é um exemplo) qnd vc achar, é só substituir nos scripts que vai ficar perfeito
  22. sim... mude o nome pra que não haja conflito
  23. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 38) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -100.2, 1, -100.2, 1) function onCastSpell(cid, var) if exhaustion.check(cid, 100) == TRUE then doPlayerSendCancel(cid, "You are exhausted.") doSendMagicEffect(getCreaturePosition(cid), 2) return FALSE end local position1 = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z} local position2 = getThingPosition(cid) exhaustion.set(cid, 100, 1) doSendMagicEffect(position1, 174) doSendMagicEffect(position2, 262) return doCombat(cid, combat, var) end
  24. mesmo q vc faça o item introcável o player ainda vai poder morrer e perder ele junto com a bp.. teria que ser algo + ou - como o Aura Bold system que eu fiz, mas ao invés de deletar o item removeria ele e criaria outro no mesmo lugar
  25. puts cara, eu pensei uma forma mas é muito complicada e não ia ser 100% funcional igual vc quer... ia tentar fazer por creaturescripts mas daí só funcionaria em players. Se vc atacasse monstros o dano ia ser normal

Informação Importante

Confirmação de Termo