Ir para conteúdo
  • 0

Dar use, se tranformar e ganhar skills, hpmax e manamax


dheikon

Pergunta

Eu tentei fazer um script que ao dar use em um certo item o jogador iria se transformar em um bicho e ganhar hp, mana, skills, porém eu já estou enfrentando um problema logo no começo.

Esse é o inicio do script:

function onUse(cid, item)

if getPlayerLevel(cid) <= 99 then
doSendMagicEffect(getCreaturePosition(cid),2)
doPlayerSendCancel(cid, "Você não está apto a utilizar esse item.")

elseif getPlayerLevel(cid) >= 100 then
doSendMagicEffect(getCreaturePosition(cid),1)
doSetCreatureOutfit(cid,{lookType = 114, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet, lookAddons = getCreatureOutfit(cid).lookAddons},4 * 60 * 1000)
doCreatureSay(cid, "<name monster>", TALKTYPE_ORANGE_1)
addEvent(returnTransform, 1*1000*60, cid)

else
doPlayerSendCancel(cid, "Você já está Transformado.")
end
end

 

Como podem ele ainda não está completo (sou newbie).

Nesse script ao dar use no item da a mensagem de erro: "(luaAddEvent) Callback parameter should be a function.". E eu não sei como arrumar, se for possível alguém me dizer como arrumar eu agradeço. Outro pedido que eu gostaria de saber é como escrever a parte para ganhar o bônus, já que o condition não funciona.

Caso alguém for fazer o script essa é a ordem que previ para faze-lo.

Dar use (não remove o item);

Checar level;

Lançar efeito;

Mudar outift;

Aumentar ml, fist, club, axe, sword, distance, shield, fishing, hp max, mana max;

Mandar mensagem de transformação;

Tempo de transformação;

Cooldown para se transformar novamente;

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Eu fiz so que teve um problema, não vai adiciona skill.

caso vc ja tenha jogado ot de war você vio que quando vai loga costuma da sempre uma travado pois ta adicionando os skill.

então se eu adiciona-se nessa script ia trava o char sempre que clika-se no item ,eu sabia um jeito de adiciona sem trava só que o boneco ia ter que desloga sempre.

e tambem eu não conseguir fazer com que remove-se a skill.

então fiz so pra adicionar hp,mp,troca de outfit e aumenta a velocidade, espero que sirva.

 

Testado(superficialmente) e funcionando.

 

function returnTransform(cid)
 
local hp = 300 -- quantidade de hp que vai perde
local mp = 300 -- quantidade de mp que vai perde
 
if isCreature(cid) then 
setCreatureMaxHealth(cid, - hp)
setCreatureMaxMana(cid, - mp)
doChangeSpeed(cid, (getCreatureSpeed(cid)) - 400)
doPlayerSetStorageValue(cid, 123123122, -1)
doPlayerSendCancel(cid, "Voce volto ao normal.")
end
return true
end
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
 
local level = 0 -- level pra pode usa
local outfit = 130 -- outfit que vai virar
local timer = 1 -- quantos minutos vai demora pra perde a skill
local effect = 1 -- efeito que vai sai
local hp = 300 -- quantidade de hp que vai ganha
local mp = 300 -- quantidade de mp que vai ganha
 
if getPlayerLevel(cid) >= level then
if getPlayerStorageValue(cid, 123123122) < 0 then
doSendMagicEffect(getCreaturePosition(cid), effect)
doCreatureSay(cid, "Ohhhhw", TALKTYPE_ORANGE_1)
doSetCreatureOutfit(cid,{lookType = 52, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet, lookAddons = getCreatureOutfit(cid).lookAddons},timer * 60 * 1000)
doPlayerSetStorageValue(cid, 123123122, 1)
setCreatureMaxHealth(cid, (getCreatureHealth(cid)) + hp)
setCreatureMaxMana(cid, (getCreatureMana(cid)) + mp)
doCreatureAddMana(cid, mp)
doCreatureAddHealth(cid, hp)
doChangeSpeed(cid, (getCreatureSpeed(cid)) + 400)
addEvent(returnTransform, timer*1000*60, cid)
else
doPlayerSendCancel(cid, "Você ja ta transformado.") 
end
else
doPlayerSendCancel(cid, "Voce não tem level nessessario.")
end
return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

Pô cara muito obrigado!

Mas caso eu quisesse adicionar as skills, você saberia me dizer qual seria o código? Eu tentei com as CONDITION_PARAM_STAT_MAGICLEVEL/FIST/CLUB/AXE... Mas não funcionou.

Link para o comentário
Compartilhar em outros sites

  • 0

Nao to em casa, nao testei e fiz correndo:

local config = {
level = 100, -- level necessario para usar
effect = {10}, -- efeito que ira soltar ao usar o buff, caso for mais de um, adicionar virgulas dentro da tabela
time = 60, -- tempo em segundos que ira durar o buff
outfit = 130, -- outfit que vai virar
health = 11, -- quantidade de hp que vai almentar
mana = 11, -- quantidade de mp que vai almentar
ml = 11, -- quantos ira aumentar o skill de ML
fist = 11, -- quantos ira aumentar o skill de Fist
sword = 11, -- quantos ira aumentar o skill de Sword
axe = 11, -- quantos ira aumentar o skill de Axe
club = 11, -- quantos ira aumentar o skill de Club
distance = 11, -- quantos ira aumentar o skill de Distance
shield = 11 -- quantos ira aumentar o skill de Shield
}

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, config.time*1000)
setConditionParam(condition, CONDITION_PARAM_STAT_MAXHEALTH, config.health)
setConditionParam(condition, CONDITION_PARAM_STAT_MAXMANA, config.mana)
setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, config.ml)
setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, config.fist)
setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, config.sword)
setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, config.axe)
setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, config.club)
setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, config.distance)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, config.shield)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
local condition = createConditionObject(CONDITION_OUTFIT)
setConditionParam(condition, CONDITION_PARAM_TICKS, config.time*1000)
setConditionParam(condition, CONDITION_PARAM_OUTFIT, {lookType = config.outfit})
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
 
if getPlayerLevel(cid) >= config.level then
if getCreatureCondition(cid, CONDITION_ATTRIBUTES) == false then
for i=1, #config.effect do
doSendMagicEffect(getCreaturePosition(cid), config.effect[i])
end
doCreatureSay(cid, "Ohhhhw", TALKTYPE_ORANGE_1)
doAddCondition(cid, condition)
else
doPlayerSendCancel(cid, "Você ja ta transformado.") 
end
else
doPlayerSendCancel(cid, "Voce não tem level nessessario.")
end
return true
end
Editado por MasterDino
Link para o comentário
Compartilhar em outros sites

  • 0

@MasterDino

Cara muito obrigado, eu não testei, apenas abri o server e não deu nenhuma mensagem de erro. Quando for possível eu testo o script, infelizmente só será possível no sábado, isso se eu consegui arrumar o erro no site pra criar a conta do ADM, mas de qualquer maneira muito obrigado a vocês dois por essa força.

Link para o comentário
Compartilhar em outros sites

  • 0

@RidBy

Eae cara, então finalmente consegui abrir o server depois de muitos problemas com os sites, mas infelizmente o seu script não funcionou em TFS 1.0 (10.35). Ao dar use no item ele da a seguinte mensagem de erro:

140304110823823081.png

Detalhe que não adicionou HP e nem Mana, e após um tempo a transformação acabou, mas também não perdi HP nem Mana.

 

@MasterDino

Então fera eu também testei o seu e não se saiu melhor do que o do carinha acima. A unica coisa que funcionou foi a mensagem e o effect do script, entretanto não deu nenhuma mensagem de erro. Também testei em TFS 1.0 (10.35).

Editado por Dheikon
Link para o comentário
Compartilhar em outros sites

  • 0

Tenta assim:


function returnTransform(cid)
 
local hp = 300 -- quantidade de hp que vai perde
local mp = 300 -- quantidade de mp que vai perde
 
if isCreature(cid) then 
setCreatureMaxHealth(cid, - hp)
setCreatureMaxMana(cid, - mp)
doChangeSpeed(cid, (getCreatureSpeed(cid)) - 400)
setPlayerStorageValue(cid, 123123122, -1)
doPlayerSendCancel(cid, "Voce volto ao normal.")
end
return true
end
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
 
local level = 0 -- level pra pode usa
local outfit = 130 -- outfit que vai virar
local timer = 1 -- quantos minutos vai demora pra perde a skill
local effect = 1 -- efeito que vai sai
local hp = 300 -- quantidade de hp que vai ganha
local mp = 300 -- quantidade de mp que vai ganha
 
if getPlayerLevel(cid) >= level then
if getPlayerStorageValue(cid, 123123122) < 0 then
doSendMagicEffect(getCreaturePosition(cid), effect)
doCreatureSay(cid, "Ohhhhw", TALKTYPE_ORANGE_1)
doSetCreatureOutfit(cid,{lookType = 52, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet, lookAddons = getCreatureOutfit(cid).lookAddons},timer * 60 * 1000)
setPlayerStorageValue(cid, 123123122, 1)
setCreatureMaxHealth(cid, (getCreatureHealth(cid)) + hp)
setCreatureMaxMana(cid, (getCreatureMana(cid)) + mp)
doCreatureAddMana(cid, mp)
doCreatureAddHealth(cid, hp)
doChangeSpeed(cid, (getCreatureSpeed(cid)) + 400)
addEvent(returnTransform, timer*1000*60, cid)
else
doPlayerSendCancel(cid, "Você ja ta transformado.") 
end
else
doPlayerSendCancel(cid, "Voce não tem level nessessario.")
end
return true
end
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...