Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado

DESDE JA AGRADEÇO A TODOS QUE ENTRARAM NO TOPCO COM A INTENÇÃO DE ME AJUDAR

então gente eu gostaria de uma spells que quando usada ela verifique o atributo na pokeball localizada no slot 8 (esse slot 8 equivale a pé, feet)

 

exemplo
eu irei usar a spell
"Mega Destruction"

local pb = getPlayerSlotItem(getCreatureMaster(item2.uid), 8) ---slot 8, pé
se o item tem o atributo
doItemSetAttribute(pb.uid, "megaspell1", 1)  ira usar o spell "Leaf Storm"

 

caso tenha o atributo 
doItemSetAttribute(pb.uid, "megaspell2", 1)  ira usar o spell "Magma Storm"

 

e caso tenha o atributo 
doItemSetAttribute(pb.uid, "megaspell3", 1)  ira usar o spell "Shadow Storm"
e assim suscetivamente 

se o item não tiver nenhum dos atributos aparece uma mensagem dizendo que o pokemon não possui mega spell



eu tentei fazer por mim mesmo mas n consegui o spells ficou assim, mas não funcionou e gerou um erro

SPELL no pokemon moves.lua

Spoiler

elseif spell == "Mega Destruction" then   
local pb = getPlayerSlotItem(getCreatureMaster(cid), 8)
if (getItemAttribute(pb.uid, "megaspell1") == 1) then
        spell = "Leaf Storm"
end

 

 

ERRO

Spoiler

[15/07/2017 19:33:57] [Error - TalkAction Interface] 
[15/07/2017 19:33:57] data/talkactions/scripts/move1.lua:onSay
[15/07/2017 19:33:57] Description: 
[15/07/2017 19:33:57] (luaGetCreatureMaster) Creature not found

[15/07/2017 19:33:57] [Error - TalkAction Interface] 
[15/07/2017 19:33:57] data/talkactions/scripts/move1.lua:onSay
[15/07/2017 19:33:57] Description: 
[15/07/2017 19:33:57] (luaGetPlayerSlotItem) Player not found

[15/07/2017 19:33:57] [Error - TalkAction Interface] 
[15/07/2017 19:33:57] data/talkactions/scripts/move1.lua:onSay
[15/07/2017 19:33:57] Description: 
[15/07/2017 19:33:57] (luaGetItemAttribute) Item not found



move1.lua

Spoiler

local msgs = {"use ", ""}
function doAlertReady(cid, id, movename, n, cd)
if not isCreature(cid) then return true end
local myball = getPlayerSlotItem(cid, 8)
if myball.itemid > 0 and getItemAttribute(myball.uid, cd) == "cd:"..id.."" then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(myball.uid).." - "..movename.." (m"..n..") is ready!")
return true
end
local p = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid)
if not p or #p <= 0 then return true end
for a = 1, #p do
if getItemAttribute(p[a], cd) == "cd:"..id.."" then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(p[a]).." - "..movename.." (m"..n..") is ready!")
return true
end
end
end
function onSay(cid, words, param, channel)
if param ~= "" then return true end
if string.len(words) > 3 then return true end
if #getCreatureSummons(cid) == 0 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need a pokemon to use moves.")
return 0
end
local mypoke = getCreatureSummons(cid)[1]
if getCreatureCondition(cid, CONDITION_EXHAUST) then return true end
if getCreatureName(mypoke) == "Evolution" then return true end
if getCreatureName(mypoke) == "Ditto" or getCreatureName(mypoke) == "Shiny Ditto" then
name = getPlayerStorageValue(mypoke, 1010)   --edited
else
name = getCreatureName(mypoke)
end  
local it = string.sub(words, 2, 3)
local idd = getPlayerSlotItem(cid, 8).uid
local move = (getCreatureName(mypoke) == "Smeargle" and getItemAttribute(idd, "skt1") and movestable[getItemAttribute(idd, "skt1")].move1 or movestable[name].move1) or (getCreatureName(mypoke) == "Shiny Smeargle" and getItemAttribute(idd, "skt1") and movestable[getItemAttribute(idd, "skt1")].move1 or movestable[name].move1)
if getPlayerStorageValue(mypoke, 212123) >= 1 then
cdzin = "cm_move"..it..""
else
cdzin = "move"..it..""
end
if it == "2" then
if getItemAttribute(idd, "skt2") then  
move = movestable[getItemAttribute(idd, "skt2")].move2
else
move = movestable[name].move2
end
elseif it == "3" then
if getItemAttribute(idd, "skt3") then  
move = movestable[getItemAttribute(idd, "skt3")].move3
else
move = movestable[name].move3
end  
elseif it == "4" then
if getItemAttribute(idd, "skt4") then  
move = movestable[getItemAttribute(idd, "skt4")].move4
else
move = movestable[name].move4
end 
elseif it == "4" then
if getItemAttribute(idd, "skt4") then  
move = movestable[getItemAttribute(idd, "skt4")].move4
else
move = movestable[name].move4
end 
elseif it == "5" then
if getItemAttribute(idd, "skt5") then  
move = movestable[getItemAttribute(idd, "skt5")].move5
else
move = movestable[name].move5
end 
elseif it == "6" then
if getItemAttribute(idd, "skt6") then  
move = movestable[getItemAttribute(idd, "skt6")].move6
else
move = movestable[name].move6
end 
elseif it == "7" then
if getItemAttribute(idd, "skt7") then  
move = movestable[getItemAttribute(idd, "skt7")].move7
else
move = movestable[name].move7
end 
elseif it == "8" then
if getItemAttribute(idd, "skt8") then  
move = movestable[getItemAttribute(idd, "skt8")].move8
else
move = movestable[name].move8
end 
elseif it == "9" then
move = movestable[name].move9
elseif it == "10" then
move = movestable[name].move10
elseif it == "11" then
move = movestable[name].move11
elseif it == "12" then
move = movestable[name].move12
elseif it == "13" then
move = movestable[name].move13
end 
if not move then
local isMega = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "megaStone")
if not isMega or name:find("Mega") then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.")
return true
end
local moveTable, index = getNewMoveTable(movestable[name]), 0
for i = 1, 12 do
if not moveTable then
index = i
break
end
end
if tonumber(it) ~= index then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.")
return true
end
local needCds = false                   --Coloque false se o pokémon puder mega evoluir mesmo com spells em cooldown.
if needCds then
for i = 1, 12 do
if getCD(getPlayerSlotItem(cid, 8).uid, "move"..i) > 0 then
return doPlayerSendCancel(cid, "para mega evoluir os cds do pokemon devem estar carregados.")
end
end
end
move = {name = "Mega Evolution", level = 0, cd = 0, dist = 1, target = 0, f = 0, t = "?"}
end
if getPlayerLevel(cid) < move.level then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need be atleast level "..move.level.." to use this move.")
return true
end
if getCD(getPlayerSlotItem(cid, 8).uid, cdzin) > 0 and getCD(getPlayerSlotItem(cid, 8).uid, cdzin) < (move.cd + 2) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have to wait "..getCD(getPlayerSlotItem(cid, 8).uid, cdzin).." seconds to use "..move.name.." again.")
return true
end
if getTileInfo(getThingPos(mypoke)).protection then
doPlayerSendCancel(cid, "Your pokemon cannot use moves while in protection zone.")
return true
end
if getPlayerStorageValue(mypoke, 3894) >= 1 then
return doPlayerSendCancel(cid, "You can't attack because you is with fear") --alterado v1.3
end
if (move.name == "Team Slice" or move.name == "Team Claw") and #getCreatureSummons(cid) < 2 then       
doPlayerSendCancel(cid, "Your pokemon need be in a team for use this move!")
return true
end
if isCreature(getCreatureTarget(cid)) and isInArray(specialabilities["evasion"], getCreatureName(getCreatureTarget(cid))) then 
local target = getCreatureTarget(cid)                                                                                       
if math.random(1, 100) <= passivesChances["Evasion"][getCreatureName(target)] then 
if isCreature(getMasterTarget(target)) then   --alterado v1.6                                                                   
doSendMagicEffect(getThingPos(target), 211)
doSendAnimatedText(getThingPos(target), "TOO BAD", 215)                                
doTeleportThing(target, getClosestFreeTile(target, getThingPos(mypoke)), false)
doSendMagicEffect(getThingPos(target), 211)
doFaceCreature(target, getThingPos(mypoke))            
return true       --alterado v1.6
end
end
end
if move.target == 1 then
if not isCreature(getCreatureTarget(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don\'t have any targets.")
return 0
end
if getCreatureCondition(getCreatureTarget(cid), CONDITION_INVISIBLE) then
return 0
end
if getCreatureHealth(getCreatureTarget(cid)) <= 0 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your have already defeated your target.")
return 0
end
if not isCreature(getCreatureSummons(cid)[1]) then
return true
end
if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > move.dist then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Get closer to the target to use this move.")
return 0
end
if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then
return 0
end
end
local newid = 0
if isSleeping(mypoke) or isSilence(mypoke) then  --alterado v1.5
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry you can't do that right now.")
return 0
else
newid = setCD(getPlayerSlotItem(cid, 8).uid, cdzin, move.cd)
end
local spellMessage = msgs[math.random(#msgs)]..""..move.name.."!"
if move.name == "Mega Evolution" then
spellMessage = "Mega Evolve!"
end
doCreatureSay(cid, getPokeName(mypoke)..", "..spellMessage, TALKTYPE_SAY)
local summons = getCreatureSummons(cid) --alterado v1.6
addEvent(doAlertReady, move.cd * 1000, cid, newid, move.name, it, cdzin)
for i = 2, #summons do
if isCreature(summons) and getPlayerStorageValue(cid, 637501) >= 1 then
docastspell(summons, move.name)        --alterado v1.6
end
end 
docastspell(mypoke, move.name)
doCreatureAddCondition(cid, playerexhaust)
if useKpdoDlls then
doUpdateCooldowns(cid)
end
return 0
end

 

 


ESTA ESTA FUNCIONANDO, POREM APENAS O ADM PODE USAR, SE O PLAYER TENTAR USAR DA ERRO sem contar tambem q ela existe mapenas no spell.xml e na pasta da spell, sendo que não tem nada referente a ela no pokemo move.lua

Spoiler

function onCastSpell(cid, var)
local mypoke = getCreatureSummons(cid)[1]
local pb = getPlayerSlotItem(cid, 8)

if #getCreatureSummons(cid) == 0 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need a pokemon to use moves.")
return true
end

if getTileInfo(getThingPos(mypoke)).protection then
    doPlayerSendCancel(cid, "Your pokemon cannot use moves while in protection zone.")
return 0
end

if exhaustion.get(cid, 60029) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have to wait 47 seconds to use this move again.")
return true
end

if (getItemAttribute(pb.uid, "megaspell1") == 1) then
        doCreatureSay(mypoke, "PSYCHIC!", TALKTYPE_MONSTER)
        docastspell(mypoke, "Psychic")
        exhaustion.set(cid, 60029, 47)
        doCreatureSay(cid, ""..getPokeName(mypoke)..", use Psychic!", TALKTYPE_MONSTER)
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.")
return true
end

return true
end



@PedroSTT te marquei pq vi q tu ajudou o outro leki com a spell dele, espero q possa me ajudar tambem

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

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

Informação Importante

Confirmação de Termo