[Tutorial] [GODFATHER-RPG] How to let players hide their phone numbers
#1

Note: This code will only work if you have the godfather script, or a edit of it.


First of all look at your script for enum pInfo
You will see different items here, and you just have to add the following code somewhere inside the enum:

pawn Код:
pHideNumber, // This is to define the HIDE NUMBER function!
Alright, the next thing you have to do is to add the following code at OnPlayerConnect:

pawn Код:
PlayerInfo[playerid][pHideNumber] = 0; // This is to make sure, when the player joins his phone number is shown in the phonebook!
__________________________________________________ ____________

Now we are going to add the command to hide the number:

pawn Код:
if (strcmp(cmd, "/hidenumber", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(PlayerInfo[playerid][pPnumber] == 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "You don't have a cellphone !"); // If the player doesn't have a phone he will get this essage
                return 1;
            }
            if(PlayerInfo[playerid][pHideNumber] == 0)
            {
                SendClientMessage(playerid, COLOR_GREEN, "Your phone number is now hidden!"); // Hiding the number
                PlayerInfo[playerid][pHideNumber] = 1;
                return 1;
            }
            if(PlayerInfo[playerid][pHideNumber] == 1)
            {
                SendClientMessage(playerid, COLOR_RED, "Your number is now visible for all in the phone book!"); // When the player types /hidenumber again to show his number in the phonebook
                PlayerInfo[playerid][pHideNumber] = 0; // Sets HideNumber to 0, means that his number will be visible after that
                return 1;
            }
        }
        return 1;
    }
__________________________________________________ ____________

Now search for the command '/number'

Find:
pawn Код:
GetPlayerName(giveplayerid, sendername, sizeof(sendername));
                        format(string, 32, "Name: %s, Ph: %d",sendername,PlayerInfo[giveplayerid][pPnumber]);
                        SendClientMessage(playerid, COLOR_GRAD1, string);
Change ot to this:
pawn Код:
else
                        {
                            GetPlayerName(giveplayerid, sendername, sizeof(sendername));
                            format(string, 32, "Name: %s, Number: %d",sendername,PlayerInfo[giveplayerid][pPnumber]);
                            SendClientMessage(playerid, COLOR_GREEN, string);
                        }
Add above:
pawn Код:
if(PlayerInfo[giveplayerid][pHideNumber] == 1)
                        {
                            GetPlayerName(giveplayerid, sendername, sizeof(sendername));
                            format(string, 32, "Name: %s, Number: Hidden",sendername);
                            SendClientMessage(playerid, COLOR_RED, string);
                        }
This means if the player has /hidenumber on, his number won't be shown when someone types /number [players id]

Your /number command should look like this:

pawn Код:
if (strcmp(cmd, "/number", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if (PlayerInfo[playerid][pPhoneBook] == 1)
            {
                tmp = strtok(cmdtext, idx);
                if(!strlen(tmp))
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /number [id/name]");
                    return 1;
                }
                giveplayerid = ReturnUser(tmp);
                if(IsPlayerConnected(giveplayerid))
                {
                    if(giveplayerid != INVALID_PLAYER_ID)
                    {
                        if(PlayerInfo[giveplayerid][pHideNumber] == 1)
                        {
                            GetPlayerName(giveplayerid, sendername, sizeof(sendername));
                            format(string, 32, "Name: %s, Number: Hidden",sendername);
                            SendClientMessage(playerid, COLOR_GREEN, string);
                        }
                        else
                        {
                            GetPlayerName(giveplayerid, sendername, sizeof(sendername));
                            format(string, 32, "Name: %s, Number: %d",sendername,PlayerInfo[giveplayerid][pPnumber]);
                            SendClientMessage(playerid, COLOR_RED, string);
                        }
                    }
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "This player doesn't exist !");
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_RED, "You don't have a phonebook !");
            }
        }
        return 1;
    }
That's it, now go in-game and see if /hidenumber works, then type /number [your id] and see what it will say.
Reply
#2

Quote:

format(string, 256, "Name: %s, Handynummer: %d",sendername,PlayerInfo[giveplayerid][pPnumber]);


I do not want to know how you got the idea of wasting that many cells.

Unless your phone number is 232 digits long, I urge you to change those sizes!
Reply
#3

Changed
Reply
#4

As an addendum, you may want to consider adding more explanation to the topic.
It seems as if it's a "copy and paste tutorial". That's not what anyone wants to see -- well, some do, but that's just too easy. You don't learn or achieve anything from it.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)