Bom vim pedir a ajuda de vocês, com meu move1.lua
Quando eu ataco ou uso muito o m1, m2, m3... da um erro na distro que eu não sei como resolver.. Então quem souber ajuda ae !
Erro na Distro
[18/04/2014 22:35:33] [Error - TalkAction Interface]
[18/04/2014 22:35:33] data/talkactions/scripts/move1.lua:onSay
[18/04/2014 22:35:33] Description:
[18/04/2014 22:35:33] (luaGetThingFromPos) Tile not found
Meu Move1.lua
local msgs = {"use ", ""}
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]
local pokeName = getPokemonName(mypoke)
if getCreatureCondition(cid, CONDITION_EXHAUST) then return true end
if pokeName == "Evolution" then return true end
name = pokeName
--local name = getCreatureName(mypoke) == "Ditto" and getPlayerStorageValue(mypoke, 1010) or getCreatureName(mypoke)
local it = string.sub(words, 2, 3)
local move = movestable[name].move1
local item = getPlayerSlotItem(cid, 8)
if it == "1" then
move = move
elseif 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 getItemAttribute(item.uid, "tm"..it.."Name") then
move.name = getItemAttribute(item.uid, "tm"..it.."Name")
move.level = getItemAttribute(item.uid, "tm"..it.."Level")
move.cd = getItemAttribute(item.uid, "tm"..it.."CD")
move.target = getItemAttribute(item.uid, "tm"..it.."Target")
end
if not move then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.")
return true
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 getPlayerAccess(cid) <= 3 then
if type(getPokemonCooldown(cid, it)) ~= "number" then return true end
if getPokemonCooldown(cid, it) > 0 and getPokemonCooldown(cid, it) < (move.cd + 2) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have to wait "..getPokemonCooldown(cid, it).." seconds to use "..move.name.." again.")
return true
end
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 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
local item = getPlayerSlotItem(cid, 8)
local blockMoves = {"Ancient Fury", "Rollout", "Power Wave", "Shredder Team"}
if getItemAttribute(item.uid, "nome") == "Smeargle" or getItemAttribute(item.uid, "nome") == "Ditto" or getItemAttribute(item.uid, "nome") == "Shiny Ditto" then
if isInArray(blockMoves, move.name) then
return doPlayerSendCancel(cid, "Sorry, this move is block for your pokemon.")
end
end
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 = setPokemonCooldown(cid, it, move.cd)
end
doCreatureSay(cid, ""..getCreatureName(mypoke)..", "..msgs[math.random(#msgs)]..""..move.name.."!", TALKTYPE_SAY)
local summons = getCreatureSummons(cid) --alterado v1.6
if #summons >= 2 then
for i = 1, #summons do
if isCreature(summons) then
if getPlayerStorageValue(cid, 637501) >= 1 then
docastspell(summons, move.name)
end
end
end
else
docastspell(mypoke, move.name)
end
doPokemonDropCooldown(cid, it)
getMoveLevel(cid, it, move.level)
getMoveName(cid, it, move.name)
doUpdateCooldowns(cid)
return 0
end
Bom é isso espero que alguem me ajude ! ^^