Ir para conteúdo

Featured Replies

Postado

Boa tarde pessoal, peguei um server no meio do caminho e agora estou tendo dificuldade para finalizar alguns sistemas, entre eles um onde o player troca items em um npc para aumentar progressivamente o dano da sua wand em 50%, o npc está funcionando corretamente e consegue fazer essa troca do item para setar um storage novo. Segue parte do script do NPC com a wand que estou tentando arrumar:

  Citar

function creatureSayCallback(cid, type, msg)
          if(not npcHandler:isFocused(cid)) then
                    return false
          end
          local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
          if msgcontains(msg, 'comuns') then 
                     npcHandler:say("Voce deseja evoluir a {jester staff} ou {crystal staff}?", cid)
                              elseif msgcontains(msg, {"jester staff"}) then 
                              local a1 = 5 * getPlayerStorageValue(cid, 81)    
                              local level1 = 50 * getPlayerStorageValue(cid, 81)
                              if getPlayerStorageValue(cid, 80) < 7500 then                              
                              if getPlayerItemCount(cid, 5944) >= a1 then
                              doPlayerRemoveItem(cid, 5944, a1)
                              setPlayerStorageValue(cid, 80, getPlayerStorageValue(cid, 80)+500)
                              setPlayerStorageValue(cid, 81, getPlayerStorageValue(cid, 81)+1)
                              doSendAnimatedText(getPlayerPosition(cid), "Upgrade!", TEXTCOLOR_YELLOW)
                              doSendMagicEffect(getCreaturePosition(cid), math.random(28,28))
                              doBroadcastMessage("[WANDS/RODS SYSTEM]: O jogador (" .. getCreatureName(cid) .. ") aumentou em ".. level1 .."% o ataque com a Jester Staff.", 19)
                              selfSay('Parabéns voce recebeu seu upgrade.', cid)
                              else
                              selfSay('Desculpe voce não tem '.. a1 ..' upgrade sphere.', cid)
                              end
                              else
                              selfSay('Desculpe voce atingiu o limite de upgrade da jester staff.', cid)
                              end

 

A parte que não estou conseguindo resolver é sobre onde utilizar esse storage setado... nesse server as wands são editadas com paralyze critical etc a partir do seguinte script:

  Citar

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -5.10, -60, -5.10, -60, 5, 5, 4, 7)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_SMALLCLOUDS)


local condition = createConditionObject(CONDITION_CURSED)
setConditionParam(condition, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition, 9, 600, -2200)
addDamageCondition(condition, 9, 600, -2200)
setCombatCondition(combat2, condition)

local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)

setCombatParam(combat3, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -7.20, -60, -7.20, -60, 5, 5, 4, 7)


local function onUseWeapon1(parameters)
doCombat(parameters.cid, combat, parameters.var)
end

local function onUseWeapon2(parameters)
doCombat(parameters.cid, combat2, parameters.var)
end

local function onUseWeapon3(parameters)
doCombat(parameters.cid, combat3, parameters.var)
end


function onUseWeapon(cid, var)
local parameters = {cid = cid, var = var, combat = combat, combat2 = combat2, combat3 = combat3}
local chance = math.random(1, 100)

if chance > 20 then
doCombat(cid, combat, var)
elseif chance > 1 and chance <= 5 then
doCombat(cid, combat2, var)
doSendAnimatedText(getPlayerPosition(cid),"CURSED!", TEXTCOLOR_GREY)
doCombat(cid, combat, var)
elseif chance <= 10 then
doCombat(cid, combat3, var)
doSendAnimatedText(getPlayerPosition(cid),"CRITICAL!", TEXTCOLOR_GREY)
elseif chance <= 8 then
doPlayerAddMana(cid, 15000)
doSendMagicEffect(getPlayerPosition(cid), COST_ME_MAGIC_BLUE)
addEvent(onUseWeapon1, 1, parameters)
end
return true
end

 

 

Minha idéia foi utilizar essa fórmula de dano para aumentar conforme a storage, porém sou muito iniciante na escrita .lua e acho que estou errando algo, segue o que tentei fazer:

  Citar

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)

if getPlayerStorageValue(cid, 80) then
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -5.10, -60, -5.10, -60, 5, 5, 4, 7)
elseif (getPlayerStorageValue(cid, 81) == 1) then
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -15.10, -60, -15.10, -60, 5, 5, 4, 7)
end
 

Obtive os seguintes erros no registro e a wand sequer ataca agora

  Citar

[Error - Test Interface] data/weapons/scripts/anihi/jester.lua Description: (luaGetCreatureStorage) Creature not found [Error - Test Interface] data/weapons/scripts/anihi/jester.lua Description: (luaGetCreatureStorage) Creature not found [Error - Weapon Interface] data/weapons/scripts/anihi/jester.lua Description: (luaGetCreatureStorage) Creature not found [Error - Weapon Interface] data/weapons/scripts/anihi/jester.lua Description: (luaGetCreatureStorage) Creature not found (done).

Agradeceria muito qualquer ajuda! Desde já obrigado

Postado

Coloquei alguns comentários pra vc entender passo a passo.

 

Mostrar conteúdo oculto

 

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