OTClient Extra exp for using this client?

mRefaat

💉 Pharmacist 💊
Premium User
Joined
Jan 18, 2014
Messages
793
Solutions
3
Reaction score
113
Location
Egypt
GitHub
MohamedRefaat
Hello

I am using Otclient and otx2 based on tfs 0.3.7
I want to make if the player using this client will get extra exp.
How can it be done?
I am using 2 otclient ( one with active bot and one for no bot )
I want to give the bonus to players who are not using bot.
Any help?
 
OP
mRefaat

mRefaat

💉 Pharmacist 💊
Premium User
Joined
Jan 18, 2014
Messages
793
Solutions
3
Reaction score
113
Location
Egypt
GitHub
MohamedRefaat
Update

I enabled
g_game.enableFeature(GameExtendedOpcode)
Also added this code into gameinterface.lua
Lua:
    local protocolGame = g_game.getProtocolGame()
    if protocolGame then
      protocolGame:sendExtendedOpcode(14, 1)
    end
inside this function
Lua:
    if g_game.isOnline() then
        show()
      end
Also added this to server side
creatures.xml
<event type="extendedopcode" name="extra_exp_client" event="script" value="custom/extra_exp_client.lua"/>
and lua
Lua:
local OPCODE_EXPBONUS = 14
local rate = 1.5
function onExtendedOpcode(cid, opcode, buffer)
    print("x")
    if (opcode  == OPCODE_EXPBONUS) then
        print("Worked")
        doPlayerSetRate(cid, SKILL__LEVEL, rate)
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your extra exp rate increase for not using bot client by 50%")
    end
end
and i resisted to login.lua
But nothing worked and no prints and nothing.

Any help?
 
Last edited:

Sarah Wesker

ค∂vαηcε รүηтαx ❤
Support Team
Joined
Mar 16, 2017
Messages
939
Solutions
91
Reaction score
919
Location
London
GitHub
MillhioreBT
And your server is sending this packet at the time of connection?

protocolgame.cpp
void ProtocolGame::onRecvFirstMessage(NetworkMessage& msg)
C++:
NetworkMessage opcodeMessage;
opcodeMessage.addByte(0x32);
opcodeMessage.addByte(0x00);
opcodeMessage.add<uint16_t>(0x00);
writeToOutputBuffer(opcodeMessage);
 
OP
mRefaat

mRefaat

💉 Pharmacist 💊
Premium User
Joined
Jan 18, 2014
Messages
793
Solutions
3
Reaction score
113
Location
Egypt
GitHub
MohamedRefaat
And your server is sending this packet at the time of connection?

protocolgame.cpp
void ProtocolGame::onRecvFirstMessage(NetworkMessage& msg)
C++:
NetworkMessage opcodeMessage;
opcodeMessage.addByte(0x32);
opcodeMessage.addByte(0x00);
opcodeMessage.add<uint16_t>(0x00);
writeToOutputBuffer(opcodeMessage);
i will check it, thanks
 

Ahilphino

Excellent OT User
Joined
Jun 5, 2013
Messages
1,559
Solutions
1
Reaction score
618
How with disabled bot and encrypted files?

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

[10:29 PM] ADM Oxygen:

@everyone Tomorrow’s server save bot free client won’t give any kind of extra experience and i removed from downloads and won’t support it with updates anymore. Also people who banned for cheating were using bot/macro on it.

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

How did it work bro ? xD
Many ots use encrypted client and it's 100% easy to add same bot to it. Players probably botted ever since u added this
 
OP
mRefaat

mRefaat

💉 Pharmacist 💊
Premium User
Joined
Jan 18, 2014
Messages
793
Solutions
3
Reaction score
113
Location
Egypt
GitHub
MohamedRefaat
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

[10:29 PM] ADM Oxygen:

@everyone Tomorrow’s server save bot free client won’t give any kind of extra experience and i removed from downloads and won’t support it with updates anymore. Also people who banned for cheating were using bot/macro on it.

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

How did it work bro ? xD
Many ots use encrypted client and it's 100% easy to add same bot to it. Players probably botted ever since u added this
Unfortunately I thought people honest. But everyone like to cheat 🤷‍♂️
 

Silba

is stephany, the josh wife
Premium User
Joined
Aug 22, 2013
Messages
300
Solutions
1
Reaction score
207
Unfortunately I thought people honest. But everyone like to cheat 🤷‍♂️
Design your game and administration better to not encourage the use of botting.

This is a long read and the discussion certainly evolves past the first page, consider giving it a read :)
 
OP
mRefaat

mRefaat

💉 Pharmacist 💊
Premium User
Joined
Jan 18, 2014
Messages
793
Solutions
3
Reaction score
113
Location
Egypt
GitHub
MohamedRefaat
Design your game and administration better to not encourage the use of botting.

This is a long read and the discussion certainly evolves past the first page, consider giving it a read :)
Yes i saw and read it before.
Great discussion really.
Of course doing better content to not encourage botting is the best way but you know players who are using bot find all ways to make scripts to do anything.
It makes you feel good when you watch players gathering to kill bosses or do quests together.
The bot free client was an option to not encourage bot.
 

Silba

is stephany, the josh wife
Premium User
Joined
Aug 22, 2013
Messages
300
Solutions
1
Reaction score
207
Yes i saw and read it before.
Great discussion really.
Of course doing better content to not encourage botting is the best way but you know players who are using bot find all ways to make scripts to do anything.
It makes you feel good when you watch players gathering to kill bosses or do quests together.
The bot free client was an option to not encourage bot.
Okay, well one comment in particular seems like it might help you if you can figure out how to do it. See below.

You can set the client and server up to send specific packets. With an auto updater on the client that is required to open the actual game you can change the values daily pretty easily. Anyone that tries to use a bot will send old packet codes and you can just insta ban them if they send that packet. That's the easiest way to do it, Runescape picked this up over the last few years.

I haven't seen anyone get around that kind of set up. Not that its not possible but someone would have to write a program that can sniff out all the packets for the bot to work again everyday. Not impossible but pretty complicated and your average player wouldn't have the ability to do it.
A comment on what he said, you can't assume everyone with the "wrong code" is botting. No system is perfect, so some manual investigation must happen imo.

Good luck ! and remember that even if some players will find a way to bot, it will still significantly reduce their numbers for every barrier you put in their place. Most botters are lazy and any additional setup is a sure way to deter them. One fatal flaw is expecting people not to bot on your "non bot" client, you just need to accept it and weigh the pros vs cons.
 

Musaab

NoxOts
Premium User
Joined
May 13, 2010
Messages
177
Reaction score
73
Location
Sweden
Why do u not want your players to bot? I suppose every server owner has some reasons but what are yours? I know mostly because 8.6 is the most botted tibia version and the game play it self depends alot on botting since no one wants to hunt hours and hours for level in an Otserv because its simply to much time consuming, specially since player are "afraid" that the server will eventually close down/reset and all the time was just a waste.

Idk if anyone agrees with me or not but a server that is much for "Community" or base players that are active/ questing together and doing shit together what else is there to do then? The alternative is to train or logout if there is no "community" or something that is happening all the time in the server ;P witch that itself is a problem.
 
OP
mRefaat

mRefaat

💉 Pharmacist 💊
Premium User
Joined
Jan 18, 2014
Messages
793
Solutions
3
Reaction score
113
Location
Egypt
GitHub
MohamedRefaat
Okay, well one comment in particular seems like it might help you if you can figure out how to do it. See below.


A comment on what he said, you can't assume everyone with the "wrong code" is botting. No system is perfect, so some manual investigation must happen imo.

Good luck ! and remember that even if some players will find a way to bot, it will still significantly reduce their numbers for every barrier you put in their place. Most botters are lazy and any additional setup is a sure way to deter them. One fatal flaw is expecting people not to bot on your "non bot" client, you just need to accept it and weigh the pros vs cons.
Thanks a lot for your comment 🙏
I started with normal client then players suggested to make a client bot free and give extra exp and already donr but they figured how to use bot on it. That’s why i will turn it off.
Focusing on better content and some good ideas are the best thing to make players active.
Post automatically merged:

Why do u not want your players to bot? I suppose every server owner has some reasons but what are yours? I know mostly because 8.6 is the most botted tibia version and the game play it self depends alot on botting since no one wants to hunt hours and hours for level in an Otserv because its simply to much time consuming, specially since player are "afraid" that the server will eventually close down/reset and all the time was just a waste.

Idk if anyone agrees with me or not but a server that is much for "Community" or base players that are active/ questing together and doing shit together what else is there to do then? The alternative is to train or logout if there is no "community" or something that is happening all the time in the server ;P witch that itself is a problem.
I would like to see players always active doing stuff.
When i play a game with friends or with people i feel it more fun.
So discouraging bot is a good thing by adding content which depend on team work.
 
Last edited:

Musaab

NoxOts
Premium User
Joined
May 13, 2010
Messages
177
Reaction score
73
Location
Sweden
Good shit, start adding lots of content that requires effort and not a 1 player with 3 mc running it alone :p or disable mcs or atleast 1 mc only or something like that so ppl will have to rely on finding others to do stuff together
 
OP
mRefaat

mRefaat

💉 Pharmacist 💊
Premium User
Joined
Jan 18, 2014
Messages
793
Solutions
3
Reaction score
113
Location
Egypt
GitHub
MohamedRefaat
Good shit, start adding lots of content that requires effort and not a 1 player with 3 mc running it alone :p or disable mcs or atleast 1 mc only or something like that so ppl will have to rely on finding others to do stuff together
That’s another problem too.
People using more than character to do their efforts.
I found some people using alot of mcs lately and i had to set max connections per ip 4 only.
It is not a good thing to have alot of players online and they are mcs or afk. (I was using the Otservlist fix to no count more than 4 but still a bad thing)
Making it 1 per ip is a good solution ofc but you will find complaints about my brother want to play or ppl on same network will face a problem.
 

ralke

(҂ ͠❛ ෴ ͡❛)ᕤ
Joined
Dec 17, 2011
Messages
798
Solutions
18
Reaction score
340
Location
Santiago - Chile
I started with normal client then players suggested to make a client bot free and give extra exp and already donr but they figured how to use bot on it. That’s why i will turn it off.

What did you do to build the bot free client? If you compile and change CMAKE
Code:
option(BOT_PROTECTION "Enable bot protection" ON)

The client will notify in terminal when a cave-bot or walk automation is running. You know how your players were able to bot anyways?. As long they compile they own version of OTC and modify it to log in to your server they should'nt be able to use bot on it. Regards!
 
OP
mRefaat

mRefaat

💉 Pharmacist 💊
Premium User
Joined
Jan 18, 2014
Messages
793
Solutions
3
Reaction score
113
Location
Egypt
GitHub
MohamedRefaat
What did you do to build the bot free client? If you compile and change CMAKE
Code:
option(BOT_PROTECTION "Enable bot protection" ON)

The client will notify in terminal when a cave-bot or walk automation is running. You know how your players were able to bot anyways?. As long they compile they own version of OTC and modify it to log in to your server they should'nt be able to use bot on it. Regards!
Unfortunately using the otcv8 and no source for it. So i have no option to compile it.
Thanks for information 🙏
 

ralke

(҂ ͠❛ ෴ ͡❛)ᕤ
Joined
Dec 17, 2011
Messages
798
Solutions
18
Reaction score
340
Location
Santiago - Chile
Unfortunately using the otcv8 and no source for it. So i have no option to compile it.
Thanks for information 🙏

Np, you're welcome. If you want to trouble it more, there's lots of modifications that you can do to prevent botting from players that knows how to compile mehah OTC. Generating custom .otb, .spr, setting a key.pem, and changing the viewport size from source and modules are some examples. This will automatically crash any other client that try to log-in your server.
 

zbizu

Legendary OT User
Joined
Nov 22, 2010
Messages
3,034
Solutions
18
Reaction score
2,167
Location
Poland
GitHub
Zbizu
You have to register the script in login.lua.

Another way to enable the extra exp is to send a different client id when logging in (doesn't really need onThink here).

Example of interaction with client id:
 
OP
mRefaat

mRefaat

💉 Pharmacist 💊
Premium User
Joined
Jan 18, 2014
Messages
793
Solutions
3
Reaction score
113
Location
Egypt
GitHub
MohamedRefaat
Np, you're welcome. If you want to trouble it more, there's lots of modifications that you can do to prevent botting from players that knows how to compile mehah OTC. Generating custom .otb, .spr, setting a key.pem, and changing the viewport size from source and modules are some examples. This will automatically crash any other client that try to log-in your server.
Thanks for ideas, it opens more ways to think. I will check that.


You have to register the script in login.lua.

Another way to enable the extra exp is to send a different client id when logging in (doesn't really need onThink here).

Example of interaction with client id:
The problem that i don't know if they are used it on the same client or used another one and sending the same packet. I still trying to find how they did it.
 
Top