Ir para conteúdo
  • 0

attempt to index local 'moveTable' (a boolean value)


leofox97

Pergunta

galera tem como da uma ajuda?

 

[28/12/2015 21:59:12] [Error - TalkAction Interface]
[28/12/2015 21:59:12] data/talkactions/scripts/move1.lua:onSay
[28/12/2015 21:59:12] Description:
[28/12/2015 21:59:12] data/talkactions/scripts/move1.lua:87: attempt to index local 'moveTable' (a boolean value)
[28/12/2015 21:59:12] stack traceback:
[28/12/2015 21:59:12] data/talkactions/scripts/move1.lua:87: in function <data/talkactions/scripts/move1.lua:21>
move1.lua
local msgs = {"use ", ""}
function doAlertReady(cid, id, movename, n, cd)
if movename == "Mega Evolution" then return true end
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
--alterado v1.5
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 name = getCreatureName(mypoke) == "Ditto" and getPlayerStorageValue(mypoke, 1010) or getCreatureName(mypoke)
local it = string.sub(words, 2, 3)
local move = movestable[name].move1
if getPlayerStorageValue(mypoke, 212123) >= 1 then
cdzin = "cm_move"..it..""
else
cdzin = "move"..it.."" --alterado v1.5
end
if it == "2" then
move = movestable[name].move2
elseif it == "3" then
move = movestable[name].move3
elseif it == "4" then
move = movestable[name].move4
elseif it == "5" then
move = movestable[name].move5
elseif it == "6" then
move = movestable[name].move6
elseif it == "7" then
move = movestable[name].move7
elseif it == "8" then
move = movestable[name].move8
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 = true --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, "To mega evolve, all the spells of your pokemon need to be ready.")
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
--alterado v1.6
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
--alterado v1.7 \/\/\/
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
doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..move.name.."!", 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)
Editado por leozinho16565
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
function getNewMoveTable(table, n)

if table == nil then

return false

end

local moves = {table.move1, table.move2, table.move3, table.move4, table.move5, table.move6, table.move7, table.move8, table.move9, table.move10, table.move11, table.move12}

local returnValue = moves

if n then

returnValue = moves[n]

end

return returnValue

end



function doUpdateMoves(cid)

if not isCreature(cid) then return true end

local summon = getCreatureSummons(cid)[1]

local ret = {}

table.insert(ret, "12&,")

if not summon then

for a = 1, 12 do

table.insert(ret, "n/n,")

end

doPlayerSendCancel(cid, table.concat(ret))

addEvent(doUpdateCooldowns, 100, cid)

return true

end

if isTransformed(summon) then --alterado v1.9

moves = movestable[getPlayerStorageValue(summon, 1010)]

else

moves = movestable[getCreatureName(summon)]

end

for a = 1, 12 do

local b = getNewMoveTable(moves, a)

if b then

table.insert(ret, b.name..",")

else

local mEvolve

if not getCreatureName(summon):find("Mega") and getItemAttribute(getPlayerSlotItem(cid, 8).uid, "megaStone") then

if not isInArray(ret, "Mega Evolution,") then

table.insert(ret, "Mega Evolution,")

mEvolve = true

end

end

if not mEvolve then

table.insert(ret, "n/n,")

end

end

end

doPlayerSendCancel(cid, table.concat(ret))

addEvent(doUpdateCooldowns, 100, cid)

end

Link para o comentário
Compartilhar em outros sites

  • 0
[29/12/2015 18:00:47] true


[29/12/2015 18:00:47] [Error - TalkAction Interface]

[29/12/2015 18:00:47] data/talkactions/scripts/move1.lua:onSay

[29/12/2015 18:00:47] Description:

[29/12/2015 18:00:47] data/talkactions/scripts/move1.lua:88: attempt to index local 'moveTable' (a boolean value)

[29/12/2015 18:00:47] stack traceback:

[29/12/2015 18:00:47] data/talkactions/scripts/move1.lua:88: in function <data/talkactions/scripts/move1.lua:21>


Link para o comentário
Compartilhar em outros sites

  • 0
[29/12/2015 21:43:12] true

[29/12/2015 21:43:12] boolean


[29/12/2015 21:43:12] [Error - TalkAction Interface]

[29/12/2015 21:43:12] data/talkactions/scripts/move1.lua:onSay

[29/12/2015 21:43:12] Description:

[29/12/2015 21:43:12] data/talkactions/scripts/move1.lua:89: attempt to index local 'moveTable' (a boolean value)

[29/12/2015 21:43:12] stack traceback:

[29/12/2015 21:43:12] data/talkactions/scripts/move1.lua:89: in function <data/talkactions/scripts/move1.lua:21>


Link para o comentário
Compartilhar em outros sites

  • 0

OK, últimas confirmações, suponho.

Abaixo do último print que postei, coloque:

print(moveTable and "moveTable true" or "moveTable false/nil")

Remova:

print(movestable[name] and "true" or "false")

Troque o código da função:

function getNewMoveTable(table, n)

Pelo seguinte:

function getNewMoveTable(table, n)
    if table == nil then
        print(0)
        return false
    end
    print(1)
    local moves = {table.move1, table.move2, table.move3, table.move4, table.move5, table.move6, table.move7, table.move8, table.move9, table.move10, table.move11, table.move12}
    print(2)
    print("moves type: "..type(moves))
    local returnValue = moves
    if n then
        print(3)
        returnValue = moves[n]
    end
    print(4)
    print("returnValue type: "..type(returnValue))
    return returnValue
end

Novamente, informe o que for imprimido no console.

PS: Esse erro acontece com todos os pokémons que você tenta mega-evoluir, ou só com algum específico?

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...