Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado

TFS 0.4

 

Preciso de ajuda com um Script de uma Magia  Buff :

Saudações, estou com um problema em uma script de um Buff que tem como ideia a, Alteração da Vocação + Outif + Bonus de Atributos por um determinado Tempo, apos o tempo de duração da magia esgotar o a vocação retorna a original e o buff se encerra.

 

Magia Buff.lua

local outfit = {lookType = 157} -- Outif que usará durante o tempo da magia.
local tempo = 300 * 1000 -- Tempo de duração da magia.
local voc = 50  -- Vocação atribuida durante o tempo da magia.
 
local ml = 70 -- Bonus Magic Level
local skillfist = 50 -- Bonus Atributos
local skillsword = 50 -- Bonus Atributos
local skillaxe = 50 -- Bonus Atributos
local skillclub = 50 -- Bonus Atributos
local skilldistance = 50 -- Bonus Atributos
local skillshield = 50 -- Bonus Atributos
local health = 1000 -- Bonus Atributos
local mana = 1000-- Bonus Atributos
local combat = createCombatObject()
local mhealth = 10000 -- Bonus Atributos
local mmana = 10000 -- Bonus Atributos
setCombatParam(combat, COMBAT_PARAM_EFFECT, 42)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)
 
local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo)
setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, ml)
setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, skillfist)
setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, skillsword)
setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, skillaxe)
setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, skillclub)
setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, skilldistance)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, skillshield)
setConditionParam(condition, CONDITION_PARAM_OUTFIT, outfit)
setConditionParam(condition, CONDITION_PARAM_STAT_MAXHEALTH, mhealth)
setConditionParam(condition, CONDITION_PARAM_STAT_MAXMANA, mmana)
setCombatCondition(combat, condition)
 
local condition = createConditionObject(CONDITION_HASTE)
setConditionParam(condition, CONDITION_PARAM_SPEED, 100)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)
 
local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo)
setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, health)
setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000)
setConditionParam(condition, CONDITION_PARAM_MANAGAIN, mana)
setConditionParam(condition, CONDITION_PARAM_MANATICKS, 1000)

 
setCombatCondition(combat, condition)
 
local sys = createConditionObject(CONDITION_OUTFIT)
setConditionParam(sys, CONDITION_PARAM_TICKS, tempo)
addOutfitCondition(sys, outfit)
setCombatCondition(combat, sys)
 

function onCastSpell(cid, var)
	registerCreatureEvent(cid, "stordeath")
	setPlayerStorageValue(cid, voc_stor, getPlayerVocation(cid))
	doPlayerSetVocation(cid, voc)
	addEvent(doPlayerSetVocation,tempo,cid,getPlayerStorageValue(cid, voc_stor))
	addEvent(setPlayerStorageValue,tempo,cid,voc_stor,0)
local waittime = 3600 -- Cooldown da Magia.
local storage = 86825

if exhaustion.check(cid, storage) then
doCreatureSay(cid, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos.", TALKTYPE_MONSTER)
return false
end
	exhaustion.set(cid, storage, waittime)
	return doCombat(cid, combat, var)
end

Creaturescripts : stordeath.lua

function onDeath(cid, corpse, deathList)
	local i = getPlayerStorageValue(cid, voc_stor)
	if i > 0 then
		doPlayerSetVocation(cid, i)
		setPlayerStorageValue(cid, voc_stor, 0)
	end
	return true
end

Lib : 000-constant.lua

voc_stor = 86666 -- Storage que salva vocação

 

 

ERRO : Consiste apos o buff se encerrar, a vocação original não volta, o buff mesmo se encerrando, acabando os atributos e voltando a outif a vocação que o buff adciona fica, permanece, ficando com a vocação para sempre, sendo que essa vocação deveria ficar somente durante o tempo de duração.

Espero que tenham entendido, e que me ajudem a corrigir ! Agradeço desde já

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

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

Top Posters In This Topic

Postado
-- Por Jeremias em 17/03/2018 -- Tibiaking.com

local skills = { efeito = 2, tempo = 30, magicLevel = 10, sword = 10,
axe = 10, club = 10, distance = 10, shield = 10, storage = 86825, roupa = 100, voc = 1}

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, skills.magicLevel)
setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, skills.sword)
setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, skills.axe)
setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, skills.club)
setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, skills.distance)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, skills.shield)
setConditionParam(condition, CONDITION_PARAM_TICKS, skills.tempo*1000)
setConditionParam(condition, CONDITION_PARAM_SUBID, 101)

function onCastSpell(cid, var)
if exhaustion.check(cid, skills.storage) then
return doCreatureSay(cid, "Aguarde " .. exhaustion.get(cid, skills.storage) .. " segundos.", TALKTYPE_MONSTER)
end

salvarVoc = getPlayerVocation(cid)
vocAntiga = tonumber(salvarVoc)

outfit = getCreatureOutfit(cid)
outfit.lookType = skills.roupa
doSetCreatureOutfit(cid, outfit, (skills.tempo*1000))
doPlayerSetVocation(cid, skills.voc)

addEvent(function()
doPlayerSetVocation(cid, vocAntiga)
exhaustion.set(cid, skills.storage, skills.tempo)
end, (skills.tempo)*1000)

doAddCondition(cid, condition)

return true
end

 

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

Postado
  • Autor

@jeremias 

Olá Jeremias.

Seu script apos usar, transforma a vocação, muda a newtype, porem o buff não acaba.

Caso o personagem relogue a roupa volta ao normal, porem a vocação não volta.

A Storage que conta o tempo, cooldown da magia não funciona permitindo que seja usada o tempo todo.

 

Acredito que o erro esteja somente na segunda parte do script, a parte da storage.

Agradeço por tentar ajudar, espero que continue ! haha  :D pois eu não consegui resolver

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