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

"real tibia svargrond arena" by Gesior

Solved

I solved this arena for TFS 0.3.3 (Crying Damson) (aka 0.3.x)

This is source files: download. copy this files into selected folders


and

1. add to movevents.xml in data/movements
Code:
<movevent type="StepIn" actionid="42360" event="script" value="arenagoblet.lua"/>
    <movevent type="StepIn" actionid="42370" event="script" value="arenagoblet.lua"/>
    <movevent type="StepIn" actionid="42380" event="script" value="arenagoblet.lua"/>
    <movevent type="StepOut" actionid="42360" event="script" value="arenagoblet.lua"/>
    <movevent type="StepOut" actionid="42370" event="script" value="arenagoblet.lua"/>
    <movevent type="StepOut" actionid="42380" event="script" value="arenagoblet.lua"/>
    <movevent type="StepIn" actionid="42300" event="script" value="arenaroom.lua"/>
    <movevent type="StepIn" actionid="42301" event="script" value="arenaroom.lua"/>
    <movevent type="StepIn" actionid="42302" event="script" value="arenaroom.lua"/>
    <movevent type="StepIn" actionid="42303" event="script" value="arenaroom.lua"/>
    <movevent type="StepIn" actionid="42304" event="script" value="arenaroom.lua"/>
    <movevent type="StepIn" actionid="42305" event="script" value="arenaroom.lua"/>
    <movevent type="StepIn" actionid="42306" event="script" value="arenaroom.lua"/>
    <movevent type="StepIn" actionid="42307" event="script" value="arenaroom.lua"/>
    <movevent type="StepIn" actionid="42308" event="script" value="arenaroom.lua"/>
    <movevent type="StepIn" actionid="42309" event="script" value="arenaroom.lua"/>
    <movevent type="StepIn" actionid="42310" event="script" value="didarenalevel.lua"/>
    <movevent type="StepIn" actionid="42321" event="script" value="leavearena.lua"/>
    <movevent type="StepIn" actionid="42322" event="script" value="leavearena.lua"/>
    <movevent type="StepIn" actionid="42323" event="script" value="leavearena.lua"/>
    <movevent type="StepIn" actionid="42324" event="script" value="leavearena.lua"/>
    <movevent type="StepIn" actionid="42325" event="script" value="leavearena.lua"/>
    <movevent type="StepIn" actionid="42326" event="script" value="leavearena.lua"/>
    <movevent type="StepIn" actionid="42327" event="script" value="leavearena.lua"/>
    <movevent type="StepIn" actionid="42328" event="script" value="leavearena.lua"/>
    <movevent type="StepIn" actionid="42329" event="script" value="leavearena.lua"/>
    <movevent type="StepIn" actionid="42330" event="script" value="leavearena.lua"/>

2. add to actions.xml in data/actions
Code:
<action actionid="42366" event="script" value="quests/arenadoors.lua"/>
    <action actionid="42376" event="script" value="quests/arenadoors.lua"/>
    <action actionid="42386" event="script" value="quests/arenadoors.lua"/>
    <action actionid="42357" event="script" value="quests/arenadoors.lua"/>
    <action actionid="42361" event="script" value="quests/arenareward.lua"/>
    <action actionid="42362" event="script" value="quests/arenareward.lua"/>
    <action actionid="42363" event="script" value="quests/arenareward.lua"/>
    <action actionid="42364" event="script" value="quests/arenareward.lua"/>
    <action actionid="42365" event="script" value="quests/arenareward.lua"/>
    <action actionid="42371" event="script" value="quests/arenareward.lua"/>
    <action actionid="42372" event="script" value="quests/arenareward.lua"/>
    <action actionid="42373" event="script" value="quests/arenareward.lua"/>
    <action actionid="42374" event="script" value="quests/arenareward.lua"/>
    <action actionid="42375" event="script" value="quests/arenareward.lua"/>
    <action actionid="42381" event="script" value="quests/arenareward.lua"/>
    <action actionid="42382" event="script" value="quests/arenareward.lua"/>
    <action actionid="42383" event="script" value="quests/arenareward.lua"/>
    <action actionid="42384" event="script" value="quests/arenareward.lua"/>
    <action actionid="42385" event="script" value="quests/arenareward.lua"/>

3. add to creaturescripts.xml in data/creaturescripts
Code:
<event type="kill" name="PlayerKill" event="script" value="kill.lua"/>

4. to login.lua in data/creaturescripts/scripts
under
Code:
function onLogin(cid)
put
Code:
registerCreatureEvent(cid, "PlayerKill")
	
    if (InitArenaScript ~= 0) then
    InitArenaScript = 1
    -- make arena rooms free
        for i = 42300, 42309 do
            setGlobalStorageValue(i, 0)
            setGlobalStorageValue(i+100, 0)
        end
    end
    -- if he did not make full arena 1 he must start from zero
    if getPlayerStorageValue(cid, 42309) < 1 then
        for i = 42300, 42309 do
            setPlayerStorageValue(cid, i, 0)
        end
    end
    -- if he did not make full arena 2 he must start from zero
    if getPlayerStorageValue(cid, 42319) < 1 then
        for i = 42310, 42319 do
            setPlayerStorageValue(cid, i, 0)
        end
    end
    -- if he did not make full arena 3 he must start from zero
    if getPlayerStorageValue(cid, 42329) < 1 then
        for i = 42320, 42329 do
            setPlayerStorageValue(cid, i, 0)
        end
    end
    if getPlayerStorageValue(cid, 42355) == -1 then
        setPlayerStorageValue(cid, 42355, 0) -- did not arena level
    end
    setPlayerStorageValue(cid, 42350, 0) -- time to kick 0
    setPlayerStorageValue(cid, 42352, 0) -- is not in arena

remember: put
Code:
return TRUE
before last "end" in login.lua if you don't see this line in your code

5. to data.lua in data/lib
under
Code:
dofile(getDataDir() .. "lib/constant.lua")
dofile(getDataDir() .. "lib/function.lua")
dofile(getDataDir() .. "lib/compat.lua")
dofile(getDataDir() .. "lib/database.lua")

put
Code:
InitArenaScript = 0
arena_room_max_time = 240
arenaKickPosition = {x=117, y=100, z=7} -- position where kick from arena when you leave/you did arena level
arena_monsters = {}
arena_monsters[42300] = 'frostfur' -- first monster from 1 arena
arena_monsters[42301] = 'bloodpaw'
arena_monsters[42302] = 'bovinus'
arena_monsters[42303] = 'achad'
arena_monsters[42304] = 'colerian the barbarian'
arena_monsters[42305] = 'the hairy one'
arena_monsters[42306] = 'axeitus headbanger'
arena_monsters[42307] = 'rocky'
arena_monsters[42308] = 'cursed gladiator'
arena_monsters[42309] = 'orcus the cruel'
arena_monsters[42310] = 'avalanche' -- first monster from 2 arena
arena_monsters[42311] = 'kreebosh the exile'
arena_monsters[42312] = 'the dark dancer'
arena_monsters[42313] = 'the hag'
arena_monsters[42314] = 'slim'
arena_monsters[42315] = 'grimgor guteater'
arena_monsters[42316] = 'drasilla'
arena_monsters[42317] = 'spirit of earth'
arena_monsters[42318] = 'spirit of water'
arena_monsters[42319] = 'spirit of fire'
arena_monsters[42320] = 'webster' -- first monster from 3 arena
arena_monsters[42321] = 'darakan the executioner'
arena_monsters[42322] = 'norgle glacierbeard'
arena_monsters[42323] = 'the pit lord'
arena_monsters[42324] = 'svoren the mad'
arena_monsters[42325] = 'the masked marauder'
arena_monsters[42326] = 'gnorre chyllson'
arena_monsters[42327] = "fallen mooh'tah master ghar"
arena_monsters[42328] = 'deathbringer'
arena_monsters[42329] = 'the obliverator'

function getArenaMonsterIdByName(name)
debugPrint(name)
	name = string.lower(tostring(name))
	for i = 42300, 42329 do
		if tostring(arena_monsters[i]) == name then
		return i
		end
		debugPrint(i)
	end
	return 0
end

This work perfect. I spend many hours and now it work for tfs 0.3.x

If you don't change arena position on your map you can't change this:
Code:
arenaKickPosition = {x=117, y=100, z=7}
You must set position of tp on 6 lvl near stairs. This tp teleport character to your city.

PLEASE give me REPUTATION if i help you :D
 
I have a question. When I talk with NPC Arener, pass the doors, and when I try to cross some of three portals, I recive this msg "First kill monster!"

Something Solution? I have seen that problem before, but without solution.
 
I have a question. When I talk with NPC Arener, pass the doors, and when I try to cross some of three portals, I recive this msg "First kill monster!"

Something Solution? I have seen that problem before, but without solution.

x2 D:
 
I have a question. When I talk with NPC Arener, pass the doors, and when I try to cross some of three portals, I recive this msg "First kill monster!"

Something Solution? I have seen that problem before, but without solution.

You must put the uid of the floor where player will be teleported when pass for this tp (you must put the correct uid in all rooms)

REMEMBER! check this uid in the file .otbm that you downloaded from this topic.
 
For example: if first magic forcefield has like action id=42300, the ground action id will be = 42300 too?:confused:
 
data/creaturescripts/scripts/kill.lua:4: attempt to compare number with boolean
stack traceback:
data/creaturescripts/scripts/kill.lua:4: in function <data/creaturescripts/scripts/kill.lua:1>


How to solve it? 0.4 dev

all working fine.. but if i kill any monster.. it appears on console...

I use return True in login.lua
Reupload please too
 
Last edited:
I have the same problem of cykor119, but what appears in the console is

[Error - CreatureScript Interface]
data/creaturescripts/scripts/kill.lua:eek:nKill
Description:
data/creaturescripts/scripts/kill.lua:3 attempt to call global 'getArenaMonsteridByName' <a nil value>
stack traceback:
data/creaturescritps/scripts/kill.lua:3: in function <data/creaturescripts/scripts/kill.lua:1>

I think the problem is the script of data.lua, My otserver doesn't have anymore this file. I dont know where to put the monsters scripts.

This script:


InitArenaScript = 0
arena_room_max_time = 240
arenaKickPosition = {x=1027, y=431, z=6} -- position where kick from arena when you leave/you did arena level
arena_monsters = {}
arena_monsters[42300] = 'frostfur' -- first monster from 1 arena
arena_monsters[42301] = 'bloodpaw'
arena_monsters[42302] = 'bovinus'
arena_monsters[42303] = 'achad'
arena_monsters[42304] = 'colerian the barbarian'
arena_monsters[42305] = 'the hairy one'
arena_monsters[42306] = 'axeitus headbanger'
arena_monsters[42307] = 'rocky'
arena_monsters[42308] = 'cursed gladiator'
arena_monsters[42309] = 'orcus the cruel'
arena_monsters[42310] = 'avalanche' -- first monster from 2 arena
arena_monsters[42311] = 'kreebosh the exile'
arena_monsters[42312] = 'the dark dancer'
arena_monsters[42313] = 'the hag'
arena_monsters[42314] = 'slim'
arena_monsters[42315] = 'grimgor guteater'
arena_monsters[42316] = 'drasilla'
arena_monsters[42317] = 'spirit of earth'
arena_monsters[42318] = 'spirit of water'
arena_monsters[42319] = 'spirit of fire'
arena_monsters[42320] = 'webster' -- first monster from 3 arena
arena_monsters[42321] = 'darakan the executioner'
arena_monsters[42322] = 'norgle glacierbeard'
arena_monsters[42323] = 'the pit lord'
arena_monsters[42324] = 'svoren the mad'
arena_monsters[42325] = 'the masked marauder'
arena_monsters[42326] = 'gnorre chyllson'
arena_monsters[42327] = "fallen mooh'tah master ghar"
arena_monsters[42328] = 'deathbringer'
arena_monsters[42329] = 'the obliverator'

function getArenaMonsterIdByName(name)
name = string.lower(tostring(name))
for i = 42300, 42329 do
if tostring(arena_monsters) == name then
return i
end
end
return 0
end


thanks for the help :)
 
Last edited:
Back
Top