Postado Março 21, 2018 7 anos Olá, gostaria de fazer um Pedido ! Que consiste em : Adcionar a função de alterar a vocação do personagem por um determinado Xtempo, e apos terminar o Xtempo, voltar a vocação original. Script Base : --Spell Method by Night Wolf local config = { tempo = 30, --- tempo que vai durar a spell (em segundos) -- Skills -- ml = 30, -- quantos ira aumentar o skill de ML skillfist = 30, -- quantos ira aumentar o skill de Fist skillsword = 0, -- quantos ira aumentar o skill de Sword skillaxe = 0, -- quantos ira aumentar o skill de Axe skillclub = 0, -- quantos ira aumentar o skill de Club skilldistance = 0, -- quantos ira aumentar o skill de Distance skillshield = 0, -- quantos ira aumentar o skill de Shield -- //Skills -- outfit = 612, --- outfit que o player ira ter storage = 15674, -- storage que salva o cooldown cooldown = 60, -- tempo em segundos de 1 uso e outro efeito = 5 -- efeito que sai ao castar a spell } local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, config.efeito) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, config.ml) setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, config.skillfist) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, config.skillsword) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, config.skillaxe) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, config.skillclub) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, config.skilldistance) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, config.skillshield) setConditionParam(condition, CONDITION_PARAM_OUTFIT, config.outfit) setConditionParam(condition, CONDITION_PARAM_SPEED, 500) setCombatCondition(combat, condition) function onCastSpell(cid, var) if getPlayerStorageValue(cid, config.storage) - os.time() <= 0 then setPlayerStorageValue(cid, config.storage, os.time() + config.cooldown) local outfit = getCreatureOutfit(cid) outfit.lookType = config.outfit doSetCreatureOutfit(cid, outfit, config.tempo * 1000) doCombat(cid, combat, var) else doPlayerSendCancel(cid, "Your spell is in cooldown.") return false end return true end TFS 0.4 Editado Março 21, 2018 7 anos por r0bert0lol (veja o histórico de edições)
Postado Março 22, 2018 7 anos --Spell Method by Night Wolf local config = { tempo = 30, --- tempo que vai durar a spell (em segundos) -- Skills -- ml = 30, -- quantos ira aumentar o skill de ML skillfist = 30, -- quantos ira aumentar o skill de Fist skillsword = 0, -- quantos ira aumentar o skill de Sword skillaxe = 0, -- quantos ira aumentar o skill de Axe skillclub = 0, -- quantos ira aumentar o skill de Club skilldistance = 0, -- quantos ira aumentar o skill de Distance skillshield = 0, -- quantos ira aumentar o skill de Shield -- //Skills -- outfit = 612, --- outfit que o player ira ter storage = 15674, -- storage que salva o cooldown cooldown = 60, -- tempo em segundos de 1 uso e outro efeito = 5 -- efeito que sai ao castar a spell } local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, config.efeito) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, config.ml) setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, config.skillfist) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, config.skillsword) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, config.skillaxe) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, config.skillclub) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, config.skilldistance) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, config.skillshield) setConditionParam(condition, CONDITION_PARAM_OUTFIT, config.outfit) setConditionParam(condition, CONDITION_PARAM_SPEED, 500) setCombatCondition(combat, condition) function onCastSpell(cid, var) t = {} local voc = 60 -- Segundos para a vocation voltar ao normal , lembrando que se o player ficar off durante esse tempo vai dar erro if getPlayerStorageValue(cid, config.storage) - os.time() <= 0 then setPlayerStorageValue(cid, config.storage, os.time() + config.cooldown) local outfit = getCreatureOutfit(cid) outfit.lookType = config.outfit doSetCreatureOutfit(cid, outfit, config.tempo * 1000) table.insert(t, getPlayerVocation(cid)) addEvent(doPlayerSetVocation, voc * 1000, cid, t[1]) doCombat(cid, combat, var) else doPlayerSendCancel(cid, "Your spell is in cooldown.") return false end return true end
Postado Março 22, 2018 7 anos Autor Muito bom Storm,funcionou ! agora para ficar perfeito e atender todas as necessidades será que voce conseguiria adcionar uma função CreatureEvent que salva a vocação original do player em uma storage e se caso o player morra ele nasce com a vocação salva pela storage, no caso a original ? @Sttorm Editado Março 22, 2018 7 anos por r0bert0lol (veja o histórico de edições)
Postado Março 25, 2018 7 anos Solução Spoiler --Spell Method by Night Wolf local config = { tempo = 30, --- tempo que vai durar a spell (em segundos) -- Skills -- ml = 30, -- quantos ira aumentar o skill de ML skillfist = 30, -- quantos ira aumentar o skill de Fist skillsword = 0, -- quantos ira aumentar o skill de Sword skillaxe = 0, -- quantos ira aumentar o skill de Axe skillclub = 0, -- quantos ira aumentar o skill de Club skilldistance = 0, -- quantos ira aumentar o skill de Distance skillshield = 0, -- quantos ira aumentar o skill de Shield -- //Skills -- outfit = 612, --- outfit que o player ira ter storage = 15674, -- storage que salva o cooldown cooldown = 60, -- tempo em segundos de 1 uso e outro efeito = 5, -- efeito que sai ao castar a spell storage2 = 41225, -- Storage que salva a vocação newvoc = 34 -- ID da nova vocação! } local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, config.efeito) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, config.ml) setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, config.skillfist) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, config.skillsword) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, config.skillaxe) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, config.skillclub) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, config.skilldistance) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, config.skillshield) setConditionParam(condition, CONDITION_PARAM_OUTFIT, config.outfit) setConditionParam(condition, CONDITION_PARAM_SPEED, 500) setCombatCondition(combat, condition) function onCastSpell(cid, var) if getPlayerStorageValue(cid, config.storage) - os.time() <= 0 then setPlayerStorageValue(cid, config.storage, os.time() + config.cooldown) local outfit = getCreatureOutfit(cid) outfit.lookType = config.outfit doSetCreatureOutfit(cid, outfit, config.tempo * 1000) doCreatureSetStorage(cid, config.storage2, getPlayerVocation(cid)) doPlayerSetVocation(cid, config.newvoc) addEvent(function() local cid = cid if isPlayer(cid) then doPlayerSetVocation(cid, getCreatureStorage(cid, config.storage2)) end end, config.tempo*1000) doCombat(cid, combat, var) else doPlayerSendCancel(cid, "Your spell is in cooldown.") return false end return true end Coloque isso no seu login.lua para caso o player morra antes de terminar o cooldown: local storage_spell = 234234 -- 234234 é a mesma storage2 da spell. if getCreatureStorage(cid, storage_spell) ~= -1 then doPlayerSetVocation(cid, getCreatureStorage(cid, storage_spell)) end .Coloque isso antes do primeiro registerCreatureEvent.
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.