• 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!

Lag in wars

MxSoft

Leave Tibia, Live Life.
Joined
Dec 22, 2009
Messages
1,804
Solutions
1
Reaction score
43
Location
Mexico
Hi i have a server but whn there is some war...when someone dies creates like a little freeze..i have a dedicated server in vpsland with the best server they have is normal to have lag??
 
jajaja sqlite suxs....not that is not the reason of the lag ,what im triying to explin is when someone dies in a war makes a little freeze when he re-logs in.
 
the console dont shows any error, but is not for guild war im shure of that.
i have 120 ppl online in a vps with 3 gigas.
 
Hi i have a server but whn there is some war...when someone dies creates like a little freeze..i have a dedicated server in vpsland with the best server they have is normal to have lag??

It will be something to do with an onDeath function in your creaturescripts, what distro are you using? 0.3.6pl1?

Show me your onDeath functions...
 
im using 0.4 but where do i check ondeath functions?
<?xml version="1.0" encoding="UTF-8"?>
<creaturescripts>
<event type="login" name="PlayerLogin" event="script" value="login.lua"/>
<event type="login" name="PlayerLogin" event="script" value="login2.lua"/>

<event type="kill" name="ArenaKill" event="script" value="arenakill.lua"/>

<event type="joinchannel" name="GuildMotd" event="script" value="guildmotd.lua"/>
<event type="receivemail" name="Mail" event="script" value="mail.lua"/>
<event type="reportbug" name="SaveReportBug" script="reportbug.lua"/>

<event type="think" name="Idle" event="script" value="idle.lua"/>
<event type="think" name="SkullCheck" event="script" value="skullcheck.lua"/>

<!--Cyber's BestRep++Sys -->
<event type="look" name="repLook" event="script" value="rep/repLook.lua"/>
<event type="kill" name="repMonster" event="script" value="rep/repMonster.lua"/>
<event type="kill" name="repKill" event="script" value="rep/repKill.lua"/>
<event type="kill" name="Frags" event="script" value="frags.lua"/>
<event type="login" name="Antimagebomb" event="script" value="Antimagebomb.lua"/>

<event type="kill" name="BountyHunter" script="kill.lua"/>
<event type="kill" name="countKill" event="script" value="count.lua"/>
<event type="logout" name="demonOakLogout" event="script" value="demonOakLogout.lua"/>
<event type="death" name="demonOakDeath" event="script" value="demonOakDeath.lua"/>




</creaturescripts>
 
im using 0.4 but where do i check ondeath functions?

show me all these files:

(Use the code tags please, you can PM me if you like)

<event type="kill" name="ArenaKill" event="script" value="arenakill.lua"/>
<event type="kill" name="repMonster" event="script" value="rep/repMonster.lua"/>
<event type="kill" name="repKill" event="script" value="rep/repKill.lua"/>
<event type="kill" name="Frags" event="script" value="frags.lua"/>
<event type="kill" name="BountyHunter" script="kill.lua"/>
<event type="kill" name="countKill" event="script" value="count.lua"/>
<event type="death" name="demonOakDeath" event="script" value="demonOakDeath.lua"/>
 
Im not using rep system and bountysystem anymore so i pos this scrips only
Code:
function onKill(cid, target)
	local room = getArenaMonsterIdByName(getCreatureName(target))
	if room > 0 then
		setPlayerStorageValue(cid, room, 1)
		doPlayerSendTextMessage(cid,MESSAGE_EVENT_DEFAULT,'You can enter next room!')
	end
	return TRUE
end
Code:
local config = {
	deathListEnabled = getBooleanFromString(getConfigInfo('deathListEnabled')),
	sqlType = getConfigInfo('sqlType'),
	maxDeathRecords = getConfigInfo('maxDeathRecords')
}

config.sqlType = config.sqlType == "sqlite" and DATABASE_ENGINE_SQLITE or DATABASE_ENGINE_MYSQL

function onDeath(cid, corpse, lastHitKiller, mostDamageKiller)
	if(config.deathListEnabled ~= TRUE) then
		return
	end

	local hitKillerName = "field item"
	local damageKillerName = ""
	if(lastHitKiller ~= FALSE) then
		if(isPlayer(lastHitKiller) == TRUE) then
			hitKillerName = getPlayerGUID(lastHitKiller)
		else
			hitKillerName = getCreatureName(lastHitKiller)
		end

		if(mostDamageKiller ~= FALSE and mostDamageKiller ~= lastHitKiller and getCreatureName(mostDamageKiller) ~= getCreatureName(lastHitKiller)) then
			if(isPlayer(mostDamageKiller) == TRUE) then
				damageKillerName = getPlayerGUID(mostDamageKiller)
			else
				damageKillerName = getCreatureName(mostDamageKiller)
			end
		end
	end

	db.executeQuery("INSERT INTO `player_deaths` (`player_id`, `time`, `level`, `killed_by`, `altkilled_by`) VALUES (" .. getPlayerGUID(cid) .. ", " .. os.time() .. ", " .. getPlayerLevel(cid) .. ", " .. db.escapeString(hitKillerName) .. ", " .. db.escapeString(damageKillerName) .. ");")
	local rows = db.getResult("SELECT `player_id` FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. ";")
	if(rows:getID() ~= -1) then
		local amount = rows:getRows(true) - config.maxDeathRecords
		if(amount > 0) then
			if(config.sqlType == DATABASE_ENGINE_SQLITE) then
				for i = 1, amount do
					db.executeQuery("DELETE FROM `player_deaths` WHERE `rowid` = (SELECT `rowid` FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT 1);")
				end
			else
				db.executeQuery("DELETE FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT " .. amount .. ";")
			end
		end
	end
end
Code:
function onKill(cid, target, lastHit) 
if(isPlayer(target) ~= true) then 
return true 
end 

if (isPlayer(cid) == true) and (isPlayer(target) == true) then 
if getPlayerSkullType(target) == SKULL_WHITE then 
addPlayerFrag(cid, 1) 
elseif getPlayerSkullType(target) == SKULL_YELLOW then 
addPlayerFrag(cid, 1) 
elseif getPlayerSkullType(target) == SKULL_RED then 
addPlayerFrag(cid, 1) 
elseif getPlayerSkullType(target) == SKULL_BLACK then 
addPlayerFrag(cid, 1) 
elseif getPlayerSkullType(target) == SKULL_NONE then 
addPlayerFrag(cid, 1) 
end 
return TRUE 
end 
end
 
Back
Top