/hangup doesn't work on 911 calls
#1

So, I made a /call 911 system, but the /hangup isn't working.

pawn Код:
public OnPlayerText(playerid, text[])
{
    new name[24], string[128], string2[128];
    GetPlayerName(playerid, name, 24);
    if(ison911[playerid] != 1)
    {
    format(string, sizeof(string), "%s Says: %s", name, text);
    ProxDetector(10.0, playerid, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5);
    }
    if(ison911[playerid] == 1)
    {
        foreach(Player, i)
        {
            format(string2, sizeof(string2), "[911 CALL]%d: %s", PlayerInfo[playerid][PhoneNumber], text);
            if(PlayerInfo[i][Fmember] == 1 || PlayerInfo[i][Fmember] == 2 || PlayerInfo[i][Fmember] == 3 || PlayerInfo[i][Fmember] == 4) SendClientMessage(i, COLOR_PINK, string2);
            format(string, sizeof(string), "(Phone)%s Says: %s", name, text);
        }
        ProxDetector(10.0, playerid, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5);
    }
    return 0;
}
This is the /call command with all unneeded parts taken out,

pawn Код:
SendClientMessage(playerid, COLOR_GREEN, "You are now calling 911! report your emergency!");
                            ison911[playerid] = 1;
                            isoncall[playerid] = true;
                            return 1;
and this is /hangup

pawn Код:
CMD:hangup(playerid, params[])
{
    if(isoncall[playerid] == true)
    {
        foreach(Player, i)
        {
            if(callnumber[i] == PlayerInfo[playerid][PhoneNumber])
            {
                new string[265];
                new name[MAX_PLAYER_NAME];
                GetPlayerName(i, name, sizeof(name));
                format(string, sizeof(string), "%s has just hangup the phone.", name);
                SendClientMessage(i, COLOR_GREEN, string);
                SendClientMessage(playerid, COLOR_GREEN, "You hang up the phone!");
                callin[playerid] = false;
                callin[i] = false;
                isoncall[playerid] = false;
                isoncall[i] = false;
                callout[playerid] = false;
                callout[i] = false;
                ison911[playerid] = 0;
                return 1;
            }
        }
        return 1;
    }
    else return SendClientMessage(playerid, COLOR_GREY, "you are not on a call!");
}

what am I doing wrong?

NOTE: in /call 911 player "i" is not used
Reply
#2

FIXED:

pawn Код:
CMD:hangup(playerid, params[])
{
    if(isoncall[playerid] == true)
    {
        ison911[playerid] = 0;
        foreach(Player, i)
        {
            if(callnumber[i] == PlayerInfo[playerid][PhoneNumber])
            {
                new string[265];
                new name[MAX_PLAYER_NAME];
                GetPlayerName(i, name, sizeof(name));
                format(string, sizeof(string), "%s has just hangup the phone.", name);
                SendClientMessage(i, COLOR_GREEN, string);
                SendClientMessage(playerid, COLOR_GREEN, "You hang up the phone!");
                callin[playerid] = false;
                callin[i] = false;
                isoncall[playerid] = false;
                isoncall[i] = false;
                callout[playerid] = false;
                callout[i] = false;
                return 1;
            }
        }
        return 1;
    }
    else return SendClientMessage(playerid, COLOR_GREY, "you are not on a call!");
}
Reply
#3

I am pretty sure this will work better.
pawn Код:
public OnPlayerText(playerid, text[])
{
    if(ison911[playerid] == 1)
    {
        foreach(Player, i)
        {
            format(string2, sizeof(string2), "[911 CALL]%d: %s", PlayerInfo[playerid][PhoneNumber], text);
            if(PlayerInfo[i][Fmember] == 1 || PlayerInfo[i][Fmember] == 2 || PlayerInfo[i][Fmember] == 3 || PlayerInfo[i][Fmember] == 4) SendClientMessage(i, COLOR_PINK, string2);
            format(string, sizeof(string), "(Phone)%s Says: %s", name, text);
        }
        ProxDetector(10.0, playerid, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5);
    }
    new name[24], string[128], string2[128];
    GetPlayerName(playerid, name, 24);
    format(string, sizeof(string), "%s Says: %s", name, text);
    ProxDetector(10.0, playerid, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5);
}
This just make it return the notmal text if you are not in a call.
Reply
#4

Quote:
Originally Posted by ricardo178
Посмотреть сообщение
I am pretty sure this will work better.
pawn Код:
public OnPlayerText(playerid, text[])
{
    if(ison911[playerid] == 1)
    {
        foreach(Player, i)
        {
            format(string2, sizeof(string2), "[911 CALL]%d: %s", PlayerInfo[playerid][PhoneNumber], text);
            if(PlayerInfo[i][Fmember] == 1 || PlayerInfo[i][Fmember] == 2 || PlayerInfo[i][Fmember] == 3 || PlayerInfo[i][Fmember] == 4) SendClientMessage(i, COLOR_PINK, string2);
            format(string, sizeof(string), "(Phone)%s Says: %s", name, text);
        }
        ProxDetector(10.0, playerid, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5);
    }
    new name[24], string[128], string2[128];
    GetPlayerName(playerid, name, 24);
    format(string, sizeof(string), "%s Says: %s", name, text);
    ProxDetector(10.0, playerid, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5);
}
This just make it return the notmal text if you are not in a call.
This misses return 0;
Reply
#5

If you return 0 there, it will not display the text. Maybe a return 1;...
Reply
#6

no, I am using return 0;

return 1 means that it will show the ORIGINAL text
Reply
#7

If it's a roleplay script, I doubt you ever wanna return 1. That would just cause the text to be announced globally
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)