Cheat engine & Dialogs
#1

Hello guys, I am facing a serious problem, which is people uses cheat engine to modify dialog items names, it affects my server because my server uses an inventory system, it wasnt made by me, and I dont want to remove it, I dont have time for it, if theres any fix for this, or anything that I can block people from using cheat engine i'll be gladful
Reply
#2

Don't have time to solve problems? Don't open a server.

-> I remind you that this board isn't for requests.
Reply
#3

Quote:
Originally Posted by SickAttack
View Post
Don't have time to solve problems? Don't open a server.

-> I remind you that this board isn't for requests.
The board is for scripting help, I am requesting help from people, if you cant help, then you shouldnt post here, go somewhere else to show off..
Reply
#4

Quote:
Originally Posted by Naruto_Emilio
View Post
The board is for scripting help, I am requesting help from people, if you cant help, then you shouldnt post here, go somewhere else to show off..
This board is for requesting help on code you have written... Go read the forum specific rules.
Reply
#5

bump
Reply
#6

You have 351 reputation and 1882 posts and still don't know for rules..
Reply
#7

Quote:
Originally Posted by Micko123
View Post
You have 351 reputation and 1882 posts and still don't know for rules..
Post count/reputation doesn't define knowledge.
Reply
#8

Instead of relying on the client's response, you should try and keep everything server-sided if possible.

For example:
PHP Code:
#define DIALOG_TEST 1

#define MAX_LIST_ITEMS 25        // The maximum amount of list items
#define MAX_LIST_ITEM_TEXT 60    // The maximum length a list item text can be

new
    
ListItem[MAX_PLAYERS][MAX_LIST_ITEMS][MAX_LIST_ITEM_TEXT],
    
Player_ListItem[MAX_PLAYERS] = {0, ...}
;

#define AddListItem(%0,%1) format(ListItem[(%0)][Player_ListItem[(%0)]++], sizeof(ListItem[][]), (%1))
#define ClearListItems(%0); for(new litem = 0; litem != sizeof(ListItem[]); litem++) ListItem[(%0)][litem][0] = EOS; Player_ListItem[(%0)] = 0;

public OnPlayerSpawn(playerid)
{
    
AddListItem(playerid"1. Briefcase");
    
AddListItem(playerid"2. Torn Letter");
    
AddListItem(playerid"3. Cyanide Pills");
    
AddListItem(playerid"4. Toolbox");
    
ShowListDialog(playeridDIALOG_TEST, .caption "Items List");
    return 
1;
}

ShowListDialog(playeriddialogidcaption[] = "Dialog")
{
    new 
dialog_str[MAX_LIST_ITEMS MAX_LIST_ITEM_TEXT];
    for(new 
0sizeof(ListItem[]); i++)
    {
        if(
ListItem[playerid][i][0] == EOS) break;
        
format(dialog_strsizeof(dialog_str), "%s\n%s"dialog_strListItem[playerid][i]);
    }
    return 
ShowPlayerDialog(playeriddialogidDIALOG_STYLE_LISTcaptiondialog_str"Select""Exit");
}

public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
response)
    {
        switch(
dialogid)
        {
            case 
DIALOG_TEST:
            {
                
printf("%s | %s"inputtextListItem[playerid][listitem]);
                if(
strcmp(inputtextListItem[playerid][listitem], true) != 0)
                {
                    
// inputtext does not match the list item text they selected
                    //Kick(playerid);
                    
return 0;
                }
                
ClearListItems(playerid); // Reset the player's list items text
                
return 1;
            }
        }
    }
    return 
0;

And I repeat, that is purely an example. You should make something that fits your own needs.
Reply
#9

I would like to understand, how they are able to do it?
Reply
#10

You can simply validate the inputtext before using it, I assume you use something like PlayerInv[playerid][0]="Water" or maybe inv item indexes, simply validate it like !strcmp(PlayerInv[playerid][listitem],inputtext)
or something similar, I have no idea how your inv is coded.

They simply change inputtext, they have no access to anything else.
Reply
#11

It's actually very easy. You can even change a players name, client messages and everything. Of course only you will see the changes, but when such information is sent back to the server, that's when you need protection from it.
Reply
#12

Quote:
Originally Posted by MikeB
Посмотреть сообщение
Post count/reputation doesn't define knowledge.
Noone said it does. What am I saying is that those much posts and reps took time to get.. And with that time some rules should be learned..
Reply
#13

So lets say someone changes dialog name and list items name, how does it even affect you? You are using dialog ids to retrieve data arent you? Also show us some code if you want help.
Reply
#14

When using dialog type DIALOG_STYLE_LIST, the selection you choose also sends the list item text in the form of 'inputtext' in OnDialogResponse.

While using inputtext as a method of selecting an item is not the safest, it's probably one of the easiest once you have protection against players that can change this text.
Reply
#15

The script shouldn't be using the text of the selected item in the first place, rather an array with an index (listitem).
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)