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

The War Server v0.9

and elf said it will be relased this weekend propably :p
so stop spaming about that and better find bugs :p

Find definition of spam. I know what lefy said, I've made it oneself understood to him.
I cannot find all bugs alone so all need to help me ;)
 
fix skills and mag lvl in lua, i take that as a bug, plz fix it to 1.0 ^^
 
Ideas:
Limit of connections per IP

PHP:
function onLogin(cid)
    local list = {}
    local ips = {}
    local text = "MULTI-CLIENTING IS BLOCKED."
    local players = getPlayersOnline()
    for i, pid in ipairs(players) do
        local ip = getPlayerIp(pid)
        local tmp = table.find(ips, ip)
        if(tmp ~= nil) then
            if(table.countElements(list, ip) == 0) then
                list[players[tmp]] = ip
            end

            list[pid] = ip
        end

        table.insert(ips, ip)
    end

    if(table.maxn(list) > 0) then
        for pid, ip in pairs(list) do
        doPlayerPopupFYI(cid, text)
        doRemoveCreature(cid)
        end
end
    return TRUE
end
Script by ravock (OTFans)

Warning Frag
PHP:
	if isPlayer(lastHitKiller) == TRUE then
		local frags = getPlayerFrags(lastHitKiller)
		if frags == 5 then
			doBroadcastMessage(getCreatureName(lastHitKiller) .. " is on killing spree! He killed 5 players!", MESSAGE_STATUS_CONSOLE_ORANGE)
		elseif frags == 10 then
			doBroadcastMessage(getCreatureName(lastHitKiller) .. " is dominating! He killed 10 players!", MESSAGE_STATUS_CONSOLE_ORANGE)
		elseif frags == 25 then
			doBroadcastMessage(getCreatureName(lastHitKiller) .. " is GODLIKE! He killed 25 players!", MESSAGE_STATUS_CONSOLE_ORANGE)
		elseif frags == 50 then
			doBroadcastMessage(getCreatureName(lastHitKiller) .. " is UNSTOPPABLE!! He killed 50 players! DO SOMETHING!", MESSAGE_STATUS_CONSOLE_ORANGE)
		end
	end
Script by Gersio

Top 10 Frag
This script must be created.

Max Level
This script must be created.
 
Last edited:
The War Server
Version: 0.9
Based on: http://otland.net/f18/forgotten-server-v0-3-1-pl2-crying-damson-22476/

Contains Data(map, scripts etc.), Sources and executable file compiled on Ubuntu Intrepid Ibex (8.10) i386.

Contain:
*No damage to the same outfits (Gelio)
*Teleport player to the temple after he will "die" (Keraxel)
* Frags as soul points - displayed on look (Keraxel)
*War Area Change - changing war area default time: 1h, configurable in data/globalevents/globalevents.xml*(Keraxel)
*2 Teams System (Keraxel)
*Configurable: team colors and many other things in data/lib/mine.lua (Keraxel)

Credits:
*The Forgotten Server Developers - distribution base* Keraxel - all war lua scipts* Gesior/Cipsoft GmBH - map
*Gelio - one piece of c++ code

TODO:
* Do all in Lua (waiting for new TFS with correctly working onAttack)
* Change database type to sqlite
* Do it cleaner :)

DLL Files:
http://otland.net/f18/opentibia-dll-files-v1-4b-1042/

Download:
war.zip

Regards,
Keraxel.

One question? Why do you copy my client version?
 
code of gesior war server :)
Code:
function show_top(show)
	local onlineList = getPlayersOnlineList()
	local place1 = "--EMPTY--"
	local place2 = "--EMPTY--"
	local place3 = "--EMPTY--"
	local place4 = "--EMPTY--"
	local place5 = "--EMPTY--"
	for i, uid in ipairs(onlineList) do
		if getPlayerFrags(uid) > tonumber(getPlayerFrags(getPlayerByName(place1))) then
			place5 = place4
			place4 = place3
			place3 = place2
			place2 = place1
			place1 = getPlayerName(uid)
		elseif getPlayerFrags(uid) > tonumber(getPlayerFrags(getPlayerByName(place2))) then
			place5 = place4
			place4 = place3
			place3 = place2
			place2 = getPlayerName(uid)
		elseif getPlayerFrags(uid) > tonumber(getPlayerFrags(getPlayerByName(place3))) then
			place5 = place4
			place4 = place3
			place3 = getPlayerName(uid)
		elseif getPlayerFrags(uid) > tonumber(getPlayerFrags(getPlayerByName(place4))) then
			place5 = place4
			place4 = getPlayerName(uid)
		elseif getPlayerFrags(uid) > tonumber(getPlayerFrags(getPlayerByName(place5))) then
			place5 = getPlayerName(uid)
		end
	end
	if show == 1 then
		broadcastMessage("Best fragers: \n 1. " .. place1 .. " - " .. tonumber(getPlayerFrags(getPlayerByName(place1))) .." frags. \n 2. " .. place2 .. " - " .. tonumber(getPlayerFrags(getPlayerByName(place2))) .." frags. \n 3. " .. place3 .. " - " .. tonumber(getPlayerFrags(getPlayerByName(place3))) .." frags. \n 4. " .. place4 .. " - " .. tonumber(getPlayerFrags(getPlayerByName(place4))) .." frags. \n 5. " .. place5 .. " - " .. tonumber(getPlayerFrags(getPlayerByName(place5))) .." frags.")
		setGlobalStorageValue(700, os.time()+topInterval)
	else
		return "Best fragers: \n 1. " .. place1 .. " - " .. tonumber(getPlayerFrags(getPlayerByName(place1))) .." frags. \n 2. " .. place2 .. " - " .. tonumber(getPlayerFrags(getPlayerByName(place2))) .." frags. \n 3. " .. place3 .. " - " .. tonumber(getPlayerFrags(getPlayerByName(place3))) .." frags. \n 4. " .. place4 .. " - " .. tonumber(getPlayerFrags(getPlayerByName(place4))) .." frags. \n 5. " .. place5 .. " - " .. tonumber(getPlayerFrags(getPlayerByName(place5))) .." frags."
	end
end

TOP FRAGGERS :) YOU CAN ADD IT INTO A GLOBALAEVENT :)
 
One question? Why do you copy my client version?

o_O I didn't copy anything. It's beta version before I do all in lua...

code of gesior war server :)
Code:
function show_top(show)
	local onlineList = getPlayersOnlineList()
	local place1 = "--EMPTY--"
	local place2 = "--EMPTY--"
	local place3 = "--EMPTY--"
	local place4 = "--EMPTY--"
	local place5 = "--EMPTY--"
	for i, uid in ipairs(onlineList) do
		if getPlayerFrags(uid) > tonumber(getPlayerFrags(getPlayerByName(place1))) then
			place5 = place4
			place4 = place3
			place3 = place2
			place2 = place1
			place1 = getPlayerName(uid)
		elseif getPlayerFrags(uid) > tonumber(getPlayerFrags(getPlayerByName(place2))) then
			place5 = place4
			place4 = place3
			place3 = place2
			place2 = getPlayerName(uid)
		elseif getPlayerFrags(uid) > tonumber(getPlayerFrags(getPlayerByName(place3))) then
			place5 = place4
			place4 = place3
			place3 = getPlayerName(uid)
		elseif getPlayerFrags(uid) > tonumber(getPlayerFrags(getPlayerByName(place4))) then
			place5 = place4
			place4 = getPlayerName(uid)
		elseif getPlayerFrags(uid) > tonumber(getPlayerFrags(getPlayerByName(place5))) then
			place5 = getPlayerName(uid)
		end
	end
	if show == 1 then
		broadcastMessage("Best fragers: \n 1. " .. place1 .. " - " .. tonumber(getPlayerFrags(getPlayerByName(place1))) .." frags. \n 2. " .. place2 .. " - " .. tonumber(getPlayerFrags(getPlayerByName(place2))) .." frags. \n 3. " .. place3 .. " - " .. tonumber(getPlayerFrags(getPlayerByName(place3))) .." frags. \n 4. " .. place4 .. " - " .. tonumber(getPlayerFrags(getPlayerByName(place4))) .." frags. \n 5. " .. place5 .. " - " .. tonumber(getPlayerFrags(getPlayerByName(place5))) .." frags.")
		setGlobalStorageValue(700, os.time()+topInterval)
	else
		return "Best fragers: \n 1. " .. place1 .. " - " .. tonumber(getPlayerFrags(getPlayerByName(place1))) .." frags. \n 2. " .. place2 .. " - " .. tonumber(getPlayerFrags(getPlayerByName(place2))) .." frags. \n 3. " .. place3 .. " - " .. tonumber(getPlayerFrags(getPlayerByName(place3))) .." frags. \n 4. " .. place4 .. " - " .. tonumber(getPlayerFrags(getPlayerByName(place4))) .." frags. \n 5. " .. place5 .. " - " .. tonumber(getPlayerFrags(getPlayerByName(place5))) .." frags."
	end
end

TOP FRAGGERS :) YOU CAN ADD IT INTO A GLOBALAEVENT :)

Server got 4 players, so it's unnessesary.

Is the auto team balance source or LUA based?

It's Lua based.
 
Well.. but by default there are 4 players so I don't add this code :p It's good idea only for servers with many characters like yours :p
 
No, as now I'm waiting for some fixes (mostly onAttack and doPlayerAddExp) to do all in Lua. I have done many fixes and some new codes for better playing.
 
Back
Top