1 hora atrás, Poccnn disse:move1. encontrei o erro nele.
esse erro que está dando no console é devido a falta da tabela cp que provavelmente não tenha no seu servidor.
Verifiquei nos arquivos e existe diversas chamadas a ela; procure em seu servidor se ela existe.
no move1 agora deu esse erro
[20/06/2017 19:18:51] [Error - TalkAction Interface]
[20/06/2017 19:18:51] data/talkactions/scripts/move1.lua:onSay
[20/06/2017 19:18:51] Description:
[20/06/2017 19:18:51] data/talkactions/scripts/move1.lua:37: attempt to index field '?' (a nil value)
[20/06/2017 19:18:51] stack traceback:
[20/06/2017 19:18:51] data/talkactions/scripts/move1.lua:37: in function <data/talkactions/scripts/move1.lua:20>
encontrei a tabela cp e em meu serve ela tem outro nome vou postar as duas
CP do TM --obs vou postar apenas a primeira
cp = {
["Bulbasaur"] = {
["m1"] = {spell = "Headbutt", minLv = 20,ex = 1810001, base1 = 200, base2 = 201, dista = 1, bonus = 6,type = "normal",cd = 9},
["m2"] = {spell = "Razor Leaf",minLv = 20, ex = 400002, base1 = 230, base2 = 245, dista = 8, bonus = 2.5, type = "grass", cd = 10},
["m3"] = {spell = "Vine Whip", minLv = 20, ex = 7000004, base1 = 230, base2 = 280, dista = 2, target = "no", bonus = 4.5, type = "grass",cd = 20},
["m4"] = {spell = "Quick Attack", minLv = 20, ex = 1811001, base1 = 200, base2 = 201, dista = 1,bonus = 7, type = "normal",cd = 10},
["m5"] = {spell = "Leech Seed", minLv = 35, ex = 4308903, base1 = 18, base2 = 18, dista = 5, bonus = 1.5,type = "grass", cd = 35},
["m6"] = {spell = "Solar Beam", minLv = 40, ex = 6209804, base1 = 750, base2 = 650, dista = 100, bonus = 12, target = "no", type = "grass",cd = 60},
["m7"] = {spell = "Sleep Powder", minLv = 20, ex = 616808, base1 = 425, target = "no", base2 = 575, dista = 100, bonus = 0, type = "grass",cd = 30},
["m8"] = {spell = "Stun Spore", minLv = 25, ex = 610468, base1 = 425, target = "no", base2 = 575, dista = 100, bonus = 0, type = "grass",cd = 50},
["!cd"] = { pokenome= "Bulbasaur" , nmoves= 8 , spellm1 = "Headbutt" ,exm1=1810001,spellm2="Razor Leaf",exm2 = 400002,spellm3= "Vine Whip",exm3=7000004,spellm4 = "Quick Attack",exm4=1811001,spellm5 ="Leech Seed",exm5=4308903,spellm6="Solar Beam",exm6=6209804,spellm7= "Sleep Powder",exm7=616808,spellm8="Stun Spore",exm8=610468},
["XD"] = { descricao = "For some time after its birth, it grows by gaining nourishment from the seed on its back.",desvantagem = "Weaknesses: \n Fire/Ice/Flying/Psychic",habilidade = "Habilites:Cut\nHeadbutt",evoluction = "Bulbasaur: Level 20 \nIvysaur: Level 45\nVenusaur: Level 85",type = "is a dual-type Grass/Poison"},
},
do meu server
movestable = {
["Bulbasaur"] = {move1 = {name = "Tackle", level = 1, cd = 10, dist = 1, target = 1, f = 50, t = "normal"},
move2 = {name = "Razor Leaf", level = 1, cd = 10, dist = 10, target = 1, f = 33, t = "grass"},
move3 = {name = "Vine Whip", level = 1, cd = 20, dist = 1, target = 0, f = 65, t = "grass"},
move4 = {name = "Headbutt", level = 1, cd = 15, dist = 1, target = 1, f = 70, t = "normal"},
move5 = {name = "Leech Seed", level = 22, cd = 60, dist = 10, target = 1, f = 1, t = "grass"},
move6 = {name = "Solar Beam", level = 30, cd = 60, dist = 1, target = 0, f = 190, t = "grass"},
move7 = {name = "Sleep Powder", level = 28, cd = 80, dist = 1, target = 0, f = 0, t = "normal"},
move8 = {name = "Stun Spore", level = 26, cd = 45, dist = 1, target = 0, f = 0, t = "normal"},
move9 = {name = "Poison Powder", level = 24, cd = 45, dist = 1, target = 0, f = 0, t = "normal"},
},
ou seja esse Cp tera que se transformar em movestable o move1.lua tera q ser modificado junto com a função (eu acho)
o unico move1.lua que funciona no meu servidor é este
e a parte do TM existente no outro move1.lua tera que ser adaptada a ele
local msgs = {"use ", ""}
function doAlertReady(cid, id, movename, n, cd)
if not isCreature(cid) then return true end
local myball = getPlayerSlotItem(cid, ![]()
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





info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino
move1. encontrei o erro nele.
esse erro que está dando no console é devido a falta da tabela cp que provavelmente não tenha no seu servidor.
Verifiquei nos arquivos e existe diversas chamadas a ela; procure em seu servidor se ela existe.