Estou usando um script que está dando esse erro na distro
[03/08/2015 21:00:46] [Error - TalkAction Interface] [03/08/2015 21:00:46] data/talkactions/scripts/dittomemory.lua:onSay [03/08/2015 21:00:46] Description: [03/08/2015 21:00:46] data/talkactions/scripts/dittomemory.lua:118: attempt to perform arithmetic on global 'HPperVITsummon' (a nil value) [03/08/2015 21:00:46] stack traceback: [03/08/2015 21:00:46] data/talkactions/scripts/dittomemory.lua:118: in function <data/talkactions/scripts/dittomemory.lua:33>
mais mesmo com esse erro ainda funciona , e outro problema é que quando usa o /memory 1, 2 ou 3 aparece no default
não tem como colocar pra não aparece igual aos outros comandos?
o script que estou usando é esse
local maxSlots = 3 --Quantia máxima de slots. function getDittoSlots(item) if not item or item < 1 then return false elseif getItemAttribute(item, "poke") and getItemAttribute(item, "poke") ~= "Ditto" then return false end local slots = {} for i = 1, maxSlots do local attr = getItemAttribute(item, "memory"..i) if attr then slots[i] = attr end end return slots end function hasDittoSavedPokemon(item, name) if not item or item < 1 then return false elseif getItemAttribute(item, "poke") and getItemAttribute(item, "poke") ~= "Ditto" then return false end local check for i = 1, maxSlots do local attr = getItemAttribute(item, "memory"..i) if attr and attr == name then check = true break end end return check end function onSay(cid, words, param) local item = getPlayerSlotItem(cid, 8).uid if item < 1 then doPlayerSendCancel(cid, "Coloque uma pokeball no slot pokeball.") elseif getItemAttribute(item, "poke") ~= "Ditto" then doPlayerSendCancel(cid, "Coloque uma pokeball com um Ditto no slot pokeball.") elseif param == "" then doPlayerSendCancel(cid, "Especifique um param.") else param = param:lower() if param == "check" then local str = "" for i = 1, maxSlots do local attr = getItemAttribute(item, "memory"..i) or "No memory" if str == "" then str = i.." - "..attr else str = str.."\n"..i.." - "..attr end end doPlayerPopupFYI(cid, "Ditto Memory:\n"..str.."") elseif param:find("forget") then local slot = tonumber(param:match("forget (.+)")) if slot and slot <= maxSlots and slot > 0 then if getDittoSlots(item)[slot] then doItemSetAttribute(item, "memory"..slot, false) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "[Ditto Memory] Slot "..slot.." deletado.") else doPlayerSendCancel(cid, "Este slot está vazio.") end else doPlayerSendCancel(cid, "Slot inválido.") end else local summons = getCreatureSummons(cid) if #summons == 0 then doPlayerSendCancel(cid, "Você não tem nenhum pokemon fora do pokeball.") else if param:find("save") then local transformedPoke = getItemAttribute(item, "transName") if transformedPoke and type(transformedPoke) == "string" then local slot = tonumber(param:match("save (.+)")) if slot and slot <= maxSlots and slot > 0 then if not getDittoSlots(item)[slot] and not hasDittoSavedPokemon(item, transformedPoke) then doItemSetAttribute(item, "memory"..slot, transformedPoke) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "[Ditto Memory] Você salvou um "..transformedPoke.." no slot "..slot..".") else doPlayerSendCancel(cid, "Este slot não está vazio ou o seu Ditto já tem esse pokemon salvo em sua memória.") end else doPlayerSendCancel(cid, "Slot inválido.") end else doPlayerSendCancel(cid, "Seu Ditto não está transformado em outro pokemon.") end else local slot = tonumber(param) local transformPoke = getDittoSlots(item)[slot] if not slot then doPlayerSendCancel(cid, "param inválido.") elseif slot <= 0 or slot > maxSlots then doPlayerSendCancel(cid, "Use um slot válido.") elseif not transformPoke then doPlayerSendCancel(cid, "Este slot está vazio.") elseif getPlayerStorageValue(summons[1], 1010) == transformPoke then doPlayerSendCancel(cid, "Seu Ditto já está transformado neste pokemon.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "[Ditto Memory] Usando o slot "..slot..", seu Ditto é transformado em um "..transformPoke..".") setPlayerStorageValue(summons[1], 1010, transformPoke) doSetCreatureOutfit(summons[1], {lookType = getPokemonXMLOutfit(transformPoke)}, -1) doSendMagicEffect(getThingPos(summons[1]), 184) doCreatureSay(summons[1], "TRANSFORM!", TALKTYPE_MONSTER) doItemSetAttribute(item, "transName", transformPoke) doItemSetAttribute(item, "transOutfit", getPokemonXMLOutfit(transformPoke)) if useKpdoDlls then doUpdateMoves(cid) end if dittoCopiesStatusToo then setPlayerStorageValue(summons[1], 1001, dittoBonus * pokes[transformPoke].offense * getPlayerLevel(cid)) setPlayerStorageValue(summons[1], 1002, dittoBonus * pokes[transformPoke].defense) setPlayerStorageValue(summons[1], 1003, pokes[transformPoke].agility) setPlayerStorageValue(summons[1], 1004, dittoBonus * pokes[transformPoke].vitality * getPlayerLevel(cid)) setPlayerStorageValue(summons[1], 1005, dittoBonus * pokes[transformPoke].specialattack * getPlayerLevel(cid)) local pct = getCreatureHealth(summons[1]) / getCreatureMaxHealth(summons[1]) local vit = getVitality(summons[1]) * getPlayerLevel(cid) / 100 setCreatureMaxHealth(summons[1], vit * HPperVITsummon) doCreatureAddHealth(summons[1], pct * vit * HPperVITsummon) end end end end end end return true end