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

GMClients

DarkstaR

Banned User
Joined
Feb 18, 2009
Messages
363
Reaction score
1
Well, as we know from the "Rule Violations" panel, real Tibian GM's have a very nice luxury system which maximizes their control over their powers. Now, we can also use it on OT's, but we also have stuff that differs a lot, and we have a lot of custom commands. It gets tiring always typing out commands, trying to remember the syntax, remembering locations, etc! That's why I have done the honors of implementing a system into the client which will give any GM the same luxury feeling the Rule Violations panel gives them - but for their other powers as well!

What exactly do I mean? I mean I have implemented custom context menus (with the ideas of my good pal Syntax) which will allow you to interact your powers with yourself and other players quite well, without having to type out tiring commands.

To start, we have the menu that will be displayed on all players, excluding yourself. This menu will give you the following powers:
  • View Notations - uses the command /notations on the player, so you can see their notations quickly and easily!
  • Kick - uses the command /kick to boot the player from the game.
  • Info - uses the command /info to get information on the player.
  • Temple - Sends the player to the temple

Following these items, you have a list of customizable items which can be edited via a .txt file. Basically, you save names and locations to a certain text file in the following format and it uses /Send to send the player to the clicked location.
Code:
Hell
1000, 150, 7
Drags
500, 100, 7
Frosts
800, 200, 7
Depot
108, 200, 7
Rune Shop
110, 200, 7
And then they will appear on the menus. You can add as many as you desire, just keep in mind you don't want a really long list. If your having trouble picturing what this may look like, worry no more! I have a screenshot below.

gmclientothers.png



And now we have the simpler menu which only appears on yourself. This menu only gives you a few small helpers, but will definitely be expanded on once I get more ideas! The two features it has are
  • Toggle ghost - uses the command /ghost to toggle the GM style invisible
  • Temple - Sends you to the temple

In addition, the custom locations from the .txt file will show on yourself as well.

gmclientself.png



So, if you like what you see and would like to get your hands on one of these GMClients, drop me a PM or post here and we can talk ;)
 
awesome, should release it ;)

I will be trading more advanced versions for collateral. However, I think I'll make a mini-version for free release :)

Not tonight though. While I already knew how to make the DLL, I had to find a way to make Tibia load it without having to inject it after Tibia is started. Took me 5 hours to write a codecave, patch it into Tibia.exe, and then find a JMP thats only hit once on startup, use that to JMP to my codecave, then JMP back to the right address afterwards. was a bitch.
 
This is good, and looks easy in a way. Well, if you see it on the way of Injecting menu on the TibiaClient, and getting the character ID from were the menu was created, it can perform custom commands, like "/kick #s" so this will type in the format the player name.

Really good work DarkstaR!.
 
Awesome idea, and great execution. Instead of showing GMClient on the right side, why don't you just put the command that it executes? (e.g. /kick)

Where in the code did you find that one time jump (what I mean is, what is the client doing)?
 
Awesome idea, and great execution. Instead of showing GMClient on the right side, why don't you just put the command that it executes? (e.g. /kick)

Where in the code did you find that one time jump (what I mean is, what is the client doing)?

Well, since it only loads DLL's once, I simply went to all the LoadLibraryA function calls (5 I think) and scoped out those areas.

I had no clue it would actually work I just took a change and got it right. Anyways, the asm I used is similar to

pushad
pushfd
push 0x000000 //location of our dll name
mov eax, 0x05b2224 //address of loadlibrary a
call eax
popad
popfd

Thats from my memory :p
 
Very nice idea but what happens if your on a normal player with this client?
Does it say that you can't do it because your not gm or does it remove the options?

I'm pretty curious about that.
 
Back
Top