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
Pergunta
Neymar Jr 3
Estou usando um script que está dando esse erro na distro
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
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados