But, it is ilogic :S
Reset high level (top on ot) for nothing? :\
ALTER TABLE `players` ADD
`reborn` int(11) NOT NULL DEFAULT 0;
function getPlayerReborn(cid)
local Info = db.getResult("SELECT `value` FROM `reborn` WHERE `player_id` = " .. getPlayerGUID(cid) .. " LIMIT 1")
if Info:getID() ~= LUA_ERROR then
local amount= Info:getDataInt("reborn")
Info:free()
return amount
end
return LUA_ERROR
end
function setPlayerReborn(cid, value)
db.executeQuery("UPDATE `players` SET `reborn` = " .. value .. " WHERE `id` = " .. getPlayerGUID(cid) .. ";")
end
<event type="login" name="reborn_register" event="script" value="rebornlook.lua"/>
<event type="look" name="rebornlook" event="script" value="rebornlook.lua"/>
<event type="advance" name="reset" event="script" value="reset.lua"/>
local config =
{
levelLimit = 400, --limit of course
kickTime = 60000, --(in miliseconds) time before player gets kicked
removeInventory = true, --remove items from inventory after reset? (to prevent players using items with level required after reset)
newLevel = 20, --new level after reset
newExp = 4500, --new exp after reset
resetSkills = true, --reset skills?
skillLevel = 11, --new skills level after reset
resetMagic = true, --reset magic level?
newMagic = 2, --new magic level after reset
resetHealth = true, --reset health?
newHealth = 180, --new player health/healthmax after reset
resetMana = true, --reset mana?
newMana = 240, --new player mana/manamax after reset
resetVocation = true --delete promotion?
}
local displayMessage, message = true, "You have reached the level limit, you will be kicked in " .. config.kickTime / 1000 .. " seconds."
function onAdvance(cid, skill, oldlevel, newLevel)
if(skill == SKILL__LEVEL and isPlayer(cid)) then
if newLevel >= config.levelLimit then
local queries = {}
local id = getPlayerGUID(cid)
if displayMessage then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, message)
end
if config.removeInventory then
table.insert(queries, "delete from player_items where player_id = " .. id .. ";")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Save your items on the depot or will be deleted after the reset.")
end
if config.resetSkills then
for i = 1, 6 do
table.insert(queries, "update player_skills set value = " .. config.skillLevel .. ", count = 0 where skillid = " .. i - 1 .. " and player_id = " .. id .. ";")
end
end
setPlayerReborn(cid,getPlayerReborn(cid)+1)
table.insert(queries, "update players set level = " .. config.newLevel .. ", experience = " .. config.newExp .. "" .. (config.resetMagic and ", maglevel = " .. config.newMagic .. "" or "") .. (config.resetHealth and ", health = " .. config.newHealth .. ", healthmax = " .. config.newHealth .. "" or "") .. (config.resetMana and ", mana = " .. config.newMana .. ", manamax = " .. config.newMana .. "" or "") .. (config.resetVocation and ", promotion = 0" or "") .. ";")
addEvent(reset, config.kickTime, getCreatureName(cid), queries)
else
if config.levelLimit - newLevel <= 10 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You need " .. config.levelLimit - newLevel .. " levels more to reach the limit".. (config.removeInventory and ", remember to save your items at the depot" or "") .. ".")
end
end
end
return true
end
function reset(p, queries)
if getPlayerByName(p) ~= nil then
doRemoveCreature(getCreatureByName(p))
db.executeQuery("update players set online = 0 where id = " .. getPlayerGUIDByName(p) .. ";")
end
for i = 1, table.maxn(queries) do
if not db.executeQuery(queries[i]) then
print("[RESET] Unable to execute query: " .. queries[i])
end
end
return true
end
function onLogin(cid)
registerCreatureEvent(cid, "rebornlook")
doPlayerSendTextMessage(cid, 19, "You have ".. getPlayerReborn(cid) .." reborn's.")
return true
end
function onLook(cid, thing, position, lookDistance)
if isPlayer(thing.uid) and thing.uid ~= cid then
doPlayerSetSpecialDescription(cid,'[Reborny: '..getPlayerReborn(cid)..']')
return true
elseif thing.uid == cid then
doPlayerSetSpecialDescription(cid,'[Reborny: '..getPlayerReborn(cid)..']')
local string = 'You see yourself.'
if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then
string = string..' You are '.. getPlayerGroupName(cid) ..'.'
elseif getPlayerVocation(cid) ~= 0 then
string = string..' You are '.. getPlayerVocationName(cid) ..'.'
else
string = string..' You have no vocation.'
end
string = string..getPlayerSpecialDescription(cid)..''
if getPlayerNameByGUID(getPlayerPartner(cid), false, false) ~= nil then
string = string..' You are '.. (getPlayerSex(cid) == 0 and 'wife' or 'husband') ..' of '.. getPlayerNameByGUID(getPlayerPartner(cid)) ..'.'
end
if getPlayerGuildId(cid) > 0 then
string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid)
string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.'
end
if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then
string = string..'nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].'
string = string..'nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.'
end
if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then
string = string..'nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].'
end
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)
return false
end
return true
end
mysql_real_query(): SELECT `value` FROM `reborn` WHERE `player_id` = 22 LIMIT 1 - MYSQL ERROR: Table 'visumgold.reborn' doesn't exist (1146)
[Error - CreatureScript Interface]
data/creaturescripts/scripts/rebornlook.lua:onLogin
Description:
data/lib/004-database.lua:60: [Result:getDataInt] Result not set!
stack traceback:
[C]: in function 'error'
data/lib/004-database.lua:60: in function 'getDataInt'
data/lib/050-function.lua:667: in function 'getPlayerReborn'
data/creaturescripts/scripts/rebornlook.lua:3: in function <data/creaturescripts/scripts/rebornlook.lua:1>
Help me tooPHP:mysql_real_query(): SELECT `value` FROM `reborn` WHERE `player_id` = 22 LIMIT 1 - MYSQL ERROR: Table 'visumgold.reborn' doesn't exist (1146) [Error - CreatureScript Interface] data/creaturescripts/scripts/rebornlook.lua:onLogin Description: data/lib/004-database.lua:60: [Result:getDataInt] Result not set! stack traceback: [C]: in function 'error' data/lib/004-database.lua:60: in function 'getDataInt' data/lib/050-function.lua:667: in function 'getPlayerReborn' data/creaturescripts/scripts/rebornlook.lua:3: in function <data/creaturescripts/scripts/rebornlook.lua:1>
help ;/
function getPlayerReborn(cid)
local Info = db.getResult("SELECT * FROM `players` WHERE `id` = " .. getPlayerGUID(cid) .. " LIMIT 1")
if Info:getID() ~= LUA_ERROR then
local amount= Info:getDataInt("reborn")
Info:free()
return amount
end
return LUA_ERROR
end
function setPlayerReborn(cid, value)
db.executeQuery("UPDATE `players` SET `reborn` = " .. value .. " WHERE `id` = " .. getPlayerGUID(cid) .. ";")
end
Did you modify the script? In that case post it here.[24/7/2013 21:19:43] [Error - CreatureScript Interface]
[24/7/2013 21:19:43] data/creaturescripts/scripts/rebirthdescription.lua
[24/7/2013 21:19:43] Description:
[24/7/2013 21:19:43] data/creaturescripts/scripts/rebirthdescription.lua:1: attempt to index global 'KeywordHandler' (a nil value)
[24/7/2013 21:19:43] [Warning - Event::loadScript] Cannot load script (data/creaturescripts/scripts/rebirthdescription.lua)
HELP