Postado Julho 31, 2017 7 anos 16 horas atrás, xWhiteWolf disse: me mostra como vc tá fazendo, pq os passos são os seguintes: se o cooldown - (tempo atual - tempo salvo) > 0 então retorna a mensagem de que está em cooldown fim faz a magia salva o tempo atual + cooldown no storage "tempo salvo" fim Bom é o seguinte, eu consegui fazer a magia dar todos os atributos que eu gostaria que tivesse. Consegui também ativar o Cooldown, agora eu so tenho um problema com o Cooldown a contagem que aparece para poder usar a magia novamente o numero fica negativo por exemplo: Cooldown: [-115] eu queria apenas retirar esse sinal (-) do contador, mais o tempo conta certinho. Aproveitando já, teria como ao usar a magia aparecer uma mensagem em Laranja no Default do player que usar, por exemplo: Druid Buff: Heal 30k HP e 50k MANA em 2s / 25% a mais HP 45% a mais de MANA / Skills: +200 e Def: +190 / Tempo: 2min / Cooldown: 2min Essa mensagem é so um exemplo, eu gostaria que ela fosse editável. Segue abaixo o meu script: Spoiler --Spell Method by Night Wolf local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { cooldown = 120, -- tempo entre uma magia e outra storage = 19330, tempo = 300, --- tempo que vai durar a spell percent = 15, -- quanto % vai aumentar hp percent2 = 25, -- quanto % vai aumentar mana hp = 65000, -- quanto de hp ganha a cada intervalo mana = 75000, -- quanto de mana ganha a cada intervalo intervalo = 2, --- intervalo que leva pra recuperar X de mana ml = 15, -- quantos ira aumentar o skill de ML sword = 0, -- quantos ira aumentar o skill de Sword shield = 20, -- quantos ira aumentar o skill de Shield } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_STAT_MAXMANAPERCENT, 100+config.percent2) setConditionParam(condition, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 100+config.percent) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, config.ml) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, config.sword) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, config.shield) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_FOOD) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_MANAGAIN, config.mana) setConditionParam(condition, CONDITION_PARAM_MANATICKS, config.intervalo*1000) setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, config.hp) setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, config.intervalo*1000) setCombatCondition(combat, condition) function onCastSpell(cid, var) if getPlayerStorageValue(cid, config.storage) > os.time() then doPlayerSendCancel(cid, "Cooldown: [" ..os.time() - getPlayerStorageValue(cid, config.storage).."]") return true else setPlayerStorageValue(cid, config.storage, os.time()+config.cooldown) end return doCombat(cid, combat, var) end
Postado Agosto 1, 2017 7 anos 8 hours ago, gleison157 said: Bom é o seguinte, eu consegui fazer a magia dar todos os atributos que eu gostaria que tivesse. Consegui também ativar o Cooldown, agora eu so tenho um problema com o Cooldown a contagem que aparece para poder usar a magia novamente o numero fica negativo por exemplo: Cooldown: [-115] eu queria apenas retirar esse sinal (-) do contador, mais o tempo conta certinho. Aproveitando já, teria como ao usar a magia aparecer uma mensagem em Laranja no Default do player que usar, por exemplo: Druid Buff: Heal 30k HP e 50k MANA em 2s / 25% a mais HP 45% a mais de MANA / Skills: +200 e Def: +190 / Tempo: 2min / Cooldown: 2min Essa mensagem é so um exemplo, eu gostaria que ela fosse editável. Segue abaixo o meu script: Hide contents --Spell Method by Night Wolf local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { cooldown = 120, -- tempo entre uma magia e outra storage = 19330, tempo = 300, --- tempo que vai durar a spell percent = 15, -- quanto % vai aumentar hp percent2 = 25, -- quanto % vai aumentar mana hp = 65000, -- quanto de hp ganha a cada intervalo mana = 75000, -- quanto de mana ganha a cada intervalo intervalo = 2, --- intervalo que leva pra recuperar X de mana ml = 15, -- quantos ira aumentar o skill de ML sword = 0, -- quantos ira aumentar o skill de Sword shield = 20, -- quantos ira aumentar o skill de Shield } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_STAT_MAXMANAPERCENT, 100+config.percent2) setConditionParam(condition, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 100+config.percent) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, config.ml) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, config.sword) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, config.shield) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_FOOD) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_MANAGAIN, config.mana) setConditionParam(condition, CONDITION_PARAM_MANATICKS, config.intervalo*1000) setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, config.hp) setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, config.intervalo*1000) setCombatCondition(combat, condition) function onCastSpell(cid, var) if getPlayerStorageValue(cid, config.storage) > os.time() then doPlayerSendCancel(cid, "Cooldown: [" ..os.time() - getPlayerStorageValue(cid, config.storage).."]") return true else setPlayerStorageValue(cid, config.storage, os.time()+config.cooldown) end return doCombat(cid, combat, var) end troca isso aqui doPlayerSendCancel(cid, "Cooldown: [" ..os.time() - getPlayerStorageValue(cid, config.storage).."]") por doPlayerSendCancel(cid, "Cooldown: [" ..getPlayerStorageValue(cid, config.storage) - os.time() .."]") Se o if tá verificando se o storage é maior que o os.time() não tem pq subtrair o storage do os.time, se não isso obviamente vai dar um numero negativo xP Quanto a mensagem, usa doPlayerSendTextMessage, em data/lib/constant.lua vc tem o id do type que é o texto laranja; Em alguns scripts meus como frozen orb ou aegis of immortal vc tb acha essa mensagem em laranja Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
Postado Agosto 1, 2017 7 anos 19 horas atrás, xWhiteWolf disse: troca isso aqui doPlayerSendCancel(cid, "Cooldown: [" ..os.time() - getPlayerStorageValue(cid, config.storage).."]") por doPlayerSendCancel(cid, "Cooldown: [" ..getPlayerStorageValue(cid, config.storage) - os.time() .."]") Se o if tá verificando se o storage é maior que o os.time() não tem pq subtrair o storage do os.time, se não isso obviamente vai dar um numero negativo xP Quanto a mensagem, usa doPlayerSendTextMessage, em data/lib/constant.lua vc tem o id do type que é o texto laranja; Em alguns scripts meus como frozen orb ou aegis of immortal vc tb acha essa mensagem em laranja Bom quanto a contagem de Cooldown, agora ta funcionando perfeitamente! Obrigaod, vai meu REP+ Agora quanto a questão da mensagem, que envia ao player, eu ate consegui fazer enviar, mais ela fica em branco e envia para o serverlog, nao aparece no default estou tentando dar um jeito... Mais se possível ver um jeito para mim, eu gosto das suas respostas que vc nao da tudo de mão beijada, vc tenta ensinar, tudo oque sei ate hoje de Scripts foi vendo seus post's e trabalhos! Se possível me explicar como corrigi esse problema agradeço, ja aproveitando, eu to querendo um script que não acho em lugar nenhum e nem sei como fazer, eu posso criar um topico e te mandar PM, para vc verificar se consegue fazer para mim ? EDIT---- Consegui resolver a questão da mensagem enviar no default, sua dica foi de muita ajuda! Obrigado @xWhiteWolf ganhou outro REP+ meu!!! Quanto a minha outra duvida, posso te enviar um PM para vc dar uma olhada para mim ? Editado Agosto 1, 2017 7 anos por gleison157 PROBLEMA RESOLVIDO! (veja o histórico de edições)
Postado Novembro 3, 2017 7 anos bom, o meu aqui n pegou, tipo eu qnd vou soltar a magia ela n sai , ela sai como se eu tivesse escrevendo alguma mensagem ela sai no default
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.