• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

CreatureEvent Reborn System

But, it is ilogic :S
Reset high level (top on ot) for nothing? :\

You can just disable what you want the player to keep, i.e. mana.
This will result that if you reborn from i.e. lvl 400 to level 8 that you will have the mana you had at level 400, while you are level 8.
 
how can i edit so different vocations can have certain bonus
for example knight +1m lvl
paladin +2 m lvl
mages +3mlvl
 
For give change so rebornie dmg and heal has not changed it?
sry I be able slightly english; /
 
For give change so rebornie dmg and heal has not changed it?
sry I be able slightly english; /

local config =
{
levelLimit = 250, --limit of course
kickTime = 120, --(in miliseconds) time before player gets kicked
removeInventory = false, --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 = false, --reset skills?
skillLevel = 11, --new skills level after reset
resetMagic = false, --reset magic level?
newMagic = 2, --new magic level after reset
resetHealth = false, --reset health?
newHealth = 180, --new player health/healthmax after reset
resetMana = false, --reset mana?
newMana = 240, --new player mana/manamax after reset
resetVocation = false --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
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) then
print("[RESET] Unable to execute query: " .. queries)
end
end
return true
end
 
add to sql query
PHP:
ALTER TABLE `players` ADD
`reborn` int(11) NOT NULL DEFAULT 0;
then to lib/functions
PHP:
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
then to creaturescript/creaturescript.xml
PHP:
<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"/>
then in creaturescript/script lua files that you are doing two and rebornlook.lua reset.lua
add to reset.lua
PHP:
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
and to rebornlook.lua add
PHP:
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
we see who has the reborn's and how much
sorry for my english ;p
 
sql is it how (as) so in file in main folder that? p

add to sql query
[BHP]ALTER TABLE `players` ADD
`reborn` int(11) NOT NULL DEFAULT 0; [/BHP]
 
;/;/;/

PHP:
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 ;/
 
PHP:
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 ;/
Help me too
 
In function.lua

PHP:
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

This is working because select `value` from `reborn` where `player_id` is wrong, end i see this error "mysql_real_query(): SELECT `value` FROM `reborn` WHERE `player_id` = 22 LIMIT 1 - MYSQL ERROR: Table 'tibiaa.reborn' doesn't exist (1146) " . i edited and all ok ;d enjoy:D
 
It doesn't work on 9.6 tfs, it just crashes. Any idea or help how to get it working?
 
[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
 
[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
Did you modify the script? In that case post it here.
Otherwise you are either using the wrong tfs version OR did copy-paste it incorrectly.
 
Back
Top