Ir para conteúdo

Featured Replies

Postado
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

 

  • Respostas 18
  • Visualizações 6k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • utevosio: --Spell Method by Night Wolf local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39) setComb

  • Pergunta Pro XwhitWolf eu vi um topico dele que tinha isso.

  • 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 t

Postado
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

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Postado
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 por gleison157
PROBLEMA RESOLVIDO! (veja o histórico de edições)

  • 3 months later...

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo