Ir para conteúdo

Fazer o Buff trocar de vocation por 30 min depois voltar ao normal.

Featured Replies

Postado
15 minutos atrás, Nother disse:

Fiz essas alterações que me informou mas ainda esta da mesma forma, ele usa o buff mas a vocation não muda e não apresenta nenhum erro na distro


A função pra trocar a vocação é: 
 

doPlayerSetVocation(cid, ID)


Se não ta tendo nenhum erro na distro é porque a função ta funcionando o.O

 

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

Top Posters In This Topic

Most Popular Posts

  • Testa,  

  • Agora que eu parei pra ler o script inteiro. Tava cheio de problemas, esse do tempo era um deles, a vocação de fato mudava pra 11, mas 0.030 segundos depois o char voltava pra voc original  Essa var

  • Se deslogar, morrer, ou passar 30 min, perde a transformação. O cooldown é 30 min e continua contando mesmo se o player morrer.

Posted Images

Postado
  • Autor
4 minutos atrás, 139 disse:


A função pra trocar a vocação é: 
 


doPlayerSetVocation(cid, ID)


Se não ta tendo nenhum erro na distro é porque a função ta funcionando o.O

 

Estranho, fiz toda a revisão e realmente ta tudo certo, pode ser que seja o buff. sera que se remover algumas funções como de perder vida por segundo resolva? Ou será que tem alguma coisa a ver com storage?

1 minuto atrás, Nother disse:

Estranho, fiz toda a revisão e realmente ta tudo certo, pode ser que seja o buff. sera que se remover algumas funções como de perder vida por segundo resolva? Ou será que tem alguma coisa a ver com storage?

Pode até não ser um buff eu só preciso que o char troque de vocation por 30 min e volte ao normal depois, com um coldown ajustavel.

Postado
  • Autor
2 minutos atrás, 139 disse:

function onCastSpell(cid, var)
doPlayerSetVocation(cid, 11)
end


Testa só com isso no script

Agora funcionou, ele virou a vocation 11. Removi tudo que tinha e so deixei essa função

Postado
46 minutos atrás, Nother disse:

Agora funcionou, ele virou a vocation 11. Removi tudo que tinha e so deixei essa função


Testa,

Spoiler

local tempo = 30 * 60
local effect = {80}
local effect1 = {80}
local outfit = {lookType = 3}
local points = 20
local health = 0.05
local new_voc = 11 -- id da voc

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo * 1000)
setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, points)
setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, points)
setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, points)
setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, points)
setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, points)
setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, points)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, points)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)

function doHealthSecond(cid, amount, delay) -- function by vodka
    if not isCreature(cid) then 
        return 
        LUA_ERROR 
    end
    doCreatureAddHealth(cid, amount)
    if delay ~= 1 then 
        addEvent(doHealthSecond, 1000, cid, amount, delay-1) 
    end
end

local function doMagica(cid, times)
    if times > 0 and isCreature(cid) then
        for i=1, #effect do
            local position = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z}
            local position1 = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z}
            doSendMagicEffect(position, effect[i])
            doSendMagicEffect(position1, effect1[i])
        end
        addEvent(doMagica, 1000, cid, times-1)
    end
end

local function doOutfitzinha(cid, times)
    if times > 0 and isCreature(cid) then
        doRemoveCondition(cid, CONDITION_OUTFIT)
        addEvent(doOutfitzinha, 1000, cid, times-1)
    end
end
                  
function onCastSpell(cid, var)
    registerCreatureEvent(cid, "stordeath")
    registerCreatureEvent(cid, "stordeath_off")
    setPlayerStorageValue(cid, voc_stor, getPlayerVocation(cid))
    addEvent(doPlayerSetVocation, tempo * 1000, cid, getPlayerStorageValue(cid, voc_stor))
    addEvent(setPlayerStorageValue, tempo * 1000, cid, voc_stor, 0)
    doPlayerSetVocation(cid, new_voc)
    if exhaustion.check(cid, 102053) == FALSE then
        doCombat(cid, combat, var)
        doMagica(cid, tempo)
        doOutfitzinha(cid, tempo)
        local position = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z}
        exhaustion.set(cid, 102053, tempo)
        doCreatureSay(cid, "KAIOKEEEEEEEN", TALKTYPE_MONSTER)
        doSendMagicEffect(position, 80)
        doHealthSecond(cid, -getCreatureMaxHealth(cid) * health, tempo)
        doSetCreatureOutfit(cid, outfit)
    else
        doPlayerSendCancel(cid, "Desculpe, voce ja esta Transformado.")
    end
end

 

Editado por 139 (veja o histórico de edições)

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo