Ir para conteúdo

Featured Replies

Postado

     Olá usuários do Tibia King, eu criei 3 spells de transformação que dão buffs ao char, a minha duvida é como
torna-las dependentes entre si, por exemplo, para usar a transformação "B" você tem que ter se transformado na "A" e para se transformar na "C" tem que ter passado pela "B".
         
     Vou deixar aqui o script das spells na ordem da dependência:
 
Spell "A":

local time = 180 * 1000 -- 180 * 1000 = 3 min

local addShielding = 40 -- quanto de defesa aumenta
local skillfist = 50 -- quantos ira aumentar o skill de Fist


local cloth = {lookType = 82, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}

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


local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, time)
setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, skillfist)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, addShielding)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_HASTE)
setConditionParam(condition, CONDITION_PARAM_SPEED, 250)
setConditionParam(condition, CONDITION_PARAM_TICKS, time)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)


local outfit = createConditionObject(CONDITION_OUTFIT)
setConditionParam(outfit, CONDITION_PARAM_TICKS, time)
addOutfitCondition(outfit, cloth)
setCombatCondition(combat, outfit)

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end
 

Spell "B":

local time = 120 * 1000 -- 120 * 1000 = 2 min

local addShielding = 50 -- quanto de defesa aumenta
local skillfist = 70 -- quantos ira aumentar o skill de Fist


local cloth = {lookType = 83, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}

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


local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, time)
setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, skillfist)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, addShielding)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_HASTE)
setConditionParam(condition, CONDITION_PARAM_SPEED, 500)
setConditionParam(condition, CONDITION_PARAM_TICKS, time)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)


local outfit = createConditionObject(CONDITION_OUTFIT)
setConditionParam(outfit, CONDITION_PARAM_TICKS, time)
addOutfitCondition(outfit, cloth)
setCombatCondition(combat, outfit)

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end
 

Spell "C":

local time = 60 * 1000 -- 60 * 1000 = 1 min

local addShielding = 60 -- quanto de defesa aumenta
local skillfist = 90 -- quantos ira aumentar o skill de Fist
local health = 130 -- A cada 1 segundo quantos aumentar de vida


local cloth = {lookType = 330, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}

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


local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, time)
setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, skillfist)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, addShielding)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_HASTE)
setConditionParam(condition, CONDITION_PARAM_SPEED, 750)
setConditionParam(condition, CONDITION_PARAM_TICKS, time)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)


local outfit = createConditionObject(CONDITION_OUTFIT)
setConditionParam(outfit, CONDITION_PARAM_TICKS, time)
addOutfitCondition(outfit, cloth)
setCombatCondition(combat, outfit)

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

Eu sou novo aqui, peço que me perdoem se cometi algum erro em relação ao post, desde já agradeço atenção!

Resolvido por xWhiteWolf

Ir para solução
  • Respostas 5
  • Visualizações 726
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • ele não casta a A? ps: usa os.time() pq assim se ele castar a A uma vez ele vai poder castar a B sempre porque o storage vai permanecer; A: B:

  • vc pode setar um storage na transform A e só permitir a B se tiver o storage da A.. e dps fazer a mesma coisa pra B e C. Também dá pra vc checar pelo outfit

Postado

vc pode setar um storage na transform A e só permitir a B se tiver o storage da A.. e dps fazer a mesma coisa pra B e C. Também dá pra vc checar pelo outfit

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

Eu acrescentei um local storage na spell A:

local storage = 102054

function onCastSpell(cid, var)
setPlayerStorageValue(cid, 102054,1)
doCombat(cid, combat, var)

end

e isso na B:

local storage = 102055

function onCastSpell(cid, var)
if getPlayerStorageValue(cid, 102054) == 1 then
doCombat(cid, combat, var)
setPlayerStorageValue(cid, 102055,1)
else
doPlayerSendCancel(cid, "Desculpe mas voce nao se transformou em A")
end

Mas agora ele nem casta a spell, pode me dizer oque eu errei?


Achei meu erro os scripts ficaram assim:

 

Spell A:

local time = 180 * 1000 -- 180 * 1000 = 3 min

local addShielding = 40 -- quanto de defesa aumenta
local skillfist = 50 -- quantos ira aumentar o skill de Fist
local storage = getPlayerStorageValue(cid,102054)

local cloth = {lookType = 82, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}

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


local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, time)
setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, skillfist)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, addShielding)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_HASTE)
setConditionParam(condition, CONDITION_PARAM_SPEED, 250)
setConditionParam(condition, CONDITION_PARAM_TICKS, time)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)


local outfit = createConditionObject(CONDITION_OUTFIT)
setConditionParam(outfit, CONDITION_PARAM_TICKS, time)
addOutfitCondition(outfit, cloth)
setCombatCondition(combat, outfit)

function onCastSpell(cid, var)
if getPlayerStorageValue(cid,102054) ~= 1 then
doCombat(cid, combat, var)		
setPlayerStorageValue(cid, 102054,1)
else
doPlayerSendCancel(cid, "Voce ja esta transformado")
end
end

Spell B:

local time = 120 * 1000 -- 120 * 1000 = 2 min

local addShielding = 50 -- quanto de defesa aumenta
local skillfist = 70 -- quantos ira aumentar o skill de Fist
local storage = getPlayerStorageValue(cid,102055)


local cloth = {lookType = 83, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}

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


local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, time)
setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, skillfist)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, addShielding)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_HASTE)
setConditionParam(condition, CONDITION_PARAM_SPEED, 500)
setConditionParam(condition, CONDITION_PARAM_TICKS, time)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)


local outfit = createConditionObject(CONDITION_OUTFIT)
setConditionParam(outfit, CONDITION_PARAM_TICKS, time)
addOutfitCondition(outfit, cloth)
setCombatCondition(combat, outfit)

function onCastSpell(cid, var)
if getPlayerStorageValue(cid,102054) == 1 then
	if getPlayerStorageValue(cid,102055) ~= 1 then 
		doCombat(cid, combat, var)		
		setPlayerStorageValue(cid, 102055,1)
	else
		doPlayerSendCancel(cid, "Voce ja esta transformado")
	end		
else
	doPlayerSendCancel(cid, "Voce ainda nao abriu os tres portoes")
end
end

Mas agora quanto eu uso a spell B a outfit permanece a da spell A, saberia me responder?

Agradeço pela resposta de antes, ja curti e soubesse eu reputava :D

Postado
  • Solução

ele não casta a A? ps: usa os.time() pq assim se ele castar a A uma vez ele vai poder castar a B sempre porque o storage vai permanecer;
A:

local time = 180 * 1000 -- 180 * 1000 = 3 min

local addShielding = 40 -- quanto de defesa aumenta
local skillfist = 50 -- quantos ira aumentar o skill de Fist


local cloth = {lookType = 82, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}

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


local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, time)
setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, skillfist)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, addShielding)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_HASTE)
setConditionParam(condition, CONDITION_PARAM_SPEED, 250)
setConditionParam(condition, CONDITION_PARAM_TICKS, time)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)


local outfit = createConditionObject(CONDITION_OUTFIT)
setConditionParam(outfit, CONDITION_PARAM_TICKS, time)
addOutfitCondition(outfit, cloth)
setCombatCondition(combat, outfit)

function onCastSpell(cid, var)
setPlayerStorageValue(cid, 10205, os.time() + 5) -- diminui em 1 digito o tamanho da key e to setando 5 segundos pra usar a prox transformacao
doCombat(cid, combat, var)
return true
end
 


B:

local time = 120 * 1000 -- 120 * 1000 = 2 min

local addShielding = 50 -- quanto de defesa aumenta
local skillfist = 70 -- quantos ira aumentar o skill de Fist


local cloth = {lookType = 83, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}

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


local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, time)
setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, skillfist)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, addShielding)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_HASTE)
setConditionParam(condition, CONDITION_PARAM_SPEED, 500)
setConditionParam(condition, CONDITION_PARAM_TICKS, time)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)


local outfit = createConditionObject(CONDITION_OUTFIT)
setConditionParam(outfit, CONDITION_PARAM_TICKS, time)
addOutfitCondition(outfit, cloth)
setCombatCondition(combat, outfit)

function onCastSpell(cid, var)
if getPlayerStorageValue(cid, 10205) - os.time() >= 0 then
setPlayerStorageValue(cid, 10206, os.time() + 5)
doCombat(cid, combat, var)
else
doPlayerSendCancel(cid, "Desculpe mas voce nao se transformou em A")
end
return true
end

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)

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.7k

Informação Importante

Confirmação de Termo