hangnail34
New Member
- Joined
- Jun 2, 2014
- Messages
- 10
- Reaction score
- 1
Hello i'm trying to get a prestige system to work, the code i took was for 0.3.6 but it's not working on 1.3 if anyone can help me i would greatly appreciate it!
LUA:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if(msgcontains(msg, 'prestige')) then
selfSay('Are you ready to prestige and start a new life?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
-------CONFIGS-------
local level = 500
local cost = 10000
------/CONFIGS-------
-----LOCALS-----
local id = getPlayerGUID(cid)
local name = getCreatureName(cid)
local vocation = getPlayerVocation(cid)
local storage = getPlayerStorageValue(cid, 85987)
local Max_Rebirth = 5 --Change this for the number of rebirths
----/LOCALS-----
if(getPlayerLevel(cid) >= level) then
if getPlayerStorageValue(cid, 85987) < Max_Rebirth then
if(doPlayerRemoveMoney(cid, cost) == TRUE) then
if(isInArray({5, 6, 7, 8}, vocation)) then
doPlayerSetStorageValue(cid, 85987, storage == -1 and 1 or storage + 1)
db.executeQuery('UPDATE players SET rebirths=rebirths+'.. 1 ..' WHERE id='..getPlayerGUID(cid))
doBroadcastMessage("" .. name .. " has just prestiged!", TALKTYPE_ORANGE_1)
doRemoveCreature(cid)
db.executeQuery("UPDATE [ICODE]players[/ICODE] SET [ICODE]level[/ICODE] = 8, [ICODE]experience[/ICODE] = 4200")
db.executeQuery("UPDATE [ICODE]players[/ICODE] SET [ICODE]name[/ICODE] = '"..name.."' WHERE [ICODE]id[/ICODE] ='"..id.."';")
else
selfSay('Please talk with Forgotten King and promote first.', cid)
talkState[talkUser] = 0
end
else
selfSay('You don\'t have enough money. You need to pay 10 mil to be rebirthed.', cid)
talkState[talkUser] = 0
end
else
selfSay('You have reached the maximum rebirth.', cid)
talkState[talkUser] = 0
end
else
selfSay('Only characters of level 500 or higher can be rebirthed.', cid)
talkState[talkUser] = 0
end
elseif(msgcontains(msg, 'no') and talkState[talkUser] == 1) then
selfSay('Okey. Come back when you feel ready.', cid)
talkState[talkUser] = 0
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
LUA:
Lua Script Error: [Npc interface]
data/npc/scripts/rebirth.lua:onCreatureSay
data/npc/scripts/rebirth.lua:38: attempt to call global 'doPlayerSetStorageValue' (a nil value)
stack traceback:
[C]: in function 'doPlayerSetStorageValue'
data/npc/scripts/rebirth.lua:38: in function 'callback'
data/npc/lib/npcsystem/npchandler.lua:401: in function 'onCreatureSay'
data/npc/scripts/rebirth.lua:8: in function <data/npc/scripts/rebirth.lua:8>