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

What tutorial would you like to see?

dominique120

Science & Reason
Senator
Premium User
Joined
Jun 16, 2013
Messages
3,881
Solutions
3
Reaction score
1,043
Location
Númenor
So what do you want to learn? What do you want to do? Or what do you want me to teach? Something on Linux or on Windows?

On my todo list I already have:
Setting up a server with IIS in Windows server 2008/2012
Setting up Gesior on some webserver(not decided yet)
 
Tutorial on how to downgrade tfs 1.0 to be compatible with 7.7~~ would be more than lovely.
 
How to really open ports on my impossible router :p Baytec RTA-04N1T1R, I've done all port forwarding steps, still closed :)

Or how to set my server to open ports automatically (UPnP) like uTorrent does (uTorrent ports are open ¬¬)
 
How to really open ports on my impossible router :p Baytec RTA-04N1T1R, I've done all port forwarding steps, still closed :)

Or how to set my server to open ports automatically (UPnP) like uTorrent does (uTorrent ports are open ¬¬)

There must be millions of routers out in the wild, there is no way I can make a generic tutorial for this topic, I can make one for mine, but its useless to everyone else here on this forum.
 
There must be millions of routers out in the wild, there is no way I can make a generic tutorial for this topic, I can make one for mine, but its useless to everyone else here on this forum.
I know =P my router is simply impossible to port forward, I have done all the steps, it is still closed, it was given to me by my ISP, I might call them to change it, because I can't even test my maps with my friends =(

but I vote +1 for UPnP inside the OT Server ;) TFS 1.0 (I've read about it, kinda hard to do...)
 
I know =P my router is simply impossible to port forward, I have done all the steps, it is still closed, it was given to me by my ISP, I might call them to change it, because I can't even test my maps with my friends =(

but I vote +1 for UPnP inside the OT Server ;) TFS 1.0 (I've read about it, kinda hard to do...)

If you did open the ports on your router, and they still aren't open.
Make sure you turn off windows firewall and disable any other antivirus/firewalls you have and see if it then works.
(There are Hardware Firewalls and Software Firewalls, the router contains a Hardware Firewall, and most computers have a Software Firewall installed on them, you must allow the ports, or program to run on both before it will work)
 
If you did open the ports on your router, and they still aren't open.
Make sure you turn off windows firewall and disable any other antivirus/firewalls you have and see if it then works.
(There are Hardware Firewalls and Software Firewalls, the router contains a Hardware Firewall, and most computers have a Software Firewall installed on them, you must allow the ports, or program to run on both before it will work)
I know how to do it, and did all that =( f...g router! :mad:
 
Something like this: http://otland.net/threads/scripting-guide.74030/
But extended, with more examples for each function.
For example:
¤how to use timers in your scripts (such as simple remove wall for 10 seconds then recreate it)
¤how to use isInArea scripts (such as in anihilator or the typical svargrond arena)
¤how to use mayNotMove/doPlayerSetNoMove <-(I don't know the difference here) like howto make a player unable to move, and how to break it
¤how to use setCombatX What are setCombat? How and why use them?
¤how to use getContainerItem (Can I use this to check what items a player have in their backpack? It would be cool to make charms like in d2)

These are just a few examples. ofcourse, it'd be time consuming to write about every function. But making a few why and how in different areas such as Actions, Talkactions, Movements, Creaturescripts, Global etc will plant the idea of howto use all of them eventually.

I myself have learned almost only through copy/paste lines from other scripts to make a new one, sometimes I have absolutely no idea if it'll work, or if I'm missing codes or brackets or dots or spaces. years back I usually failed at making new scripts, today I start to learn howto use them, but alot is still a maze for me. I think there's several noobs (Yes I mean me aswell) out there who would check such a tutorial as a reference when they get a new brilliant idea that they wanna have in their ot. Instead of creating 200 threads in request and support about help like myself, I could use a refence table. I'm currently using this:
http://otland.net/threads/lua-lua_functions.139401/#post-1342052
to see if my idea is possible or not. But alot of these functions I do not know what to put inside brackets, even if it says "exactly" what to put there, for example:
Code:
setConditionParam(condition, key, value)
1, condition.. here I can put maybe "CONDITION_PARALYZE"
2, key.. here I can put, purple key, or.. (I have no idea)
3, value.. here I think it's the value of the condition paralyze in this case, so I put "true" or I put "-1200" -1200 means -1200 speed? or maybe i put just 1200 for paralyze value = 1200 (not so much idea here either)

So yeah, I'd love a tutorial with lots of examples that OT makers can use to learn and use as a reference table when they try making new scripts themselves.
 
I want to learn about CSS how to make positions for menus and navigators bars on the ACC's and want to learn to script.

Things like that is driving me insane.

Code:
if(t[1] == "accept") then
                        local _tmp = db.storeQuery("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild)
                        local state = result.getDataInt(_tmp, "balance") < result.getDataInt(tmp, "payment")
                        result.free(_tmp)
                        if(state) then
                                player:sendChannelMessage("", "Your guild balance is too low to accept this invitation.", TALKTYPE_CHANNEL_R1, CHANNEL_GUILD)
                                return false
                        end
                        db.query("UPDATE `guilds` SET `balance` = `balance` - " .. result.getDataInt(tmp, "payment") .. " WHERE `id` = " .. guild)
                end
                query = "UPDATE `guild_wars` SET "
                local msg = "accepted " .. enemyName .. " invitation to war."
                if(t[1] == "reject") then
                        query = query .. "`ended` = " .. os.time() .. ", `status` = 2"
                        msg = "rejected " .. enemyName .. " invitation to war."
                elseif(t[1] == "cancel") then
                        query = query .. "`ended` = " .. os.time() .. ", `status` = 3"
                        msg = "canceled invitation to a war with " .. enemyName .. "."
                else
                        query = query .. "`started` = " .. os.time() .. ", `ended` = " .. (result.getDataInt(tmp, "ended") > 0 and (os.time() + ((result.getDataInt(tmp, "started") - result.getDataInt(tmp, "ended")) / 86400)) or 0) .. ", `status` = 1"
                end
                query = query .. " WHERE `id` = " .. result.getDataInt(tmp, "id")
                result.free(tmp)
                db.query(query)
                broadcastMessage(getPlayerGuildName(cid) .. " has " .. msg, MESSAGE_EVENT_ADVANCE)
                return false
        end
 
Back
Top