22.12.2012, 15:52
When a player types /hangup and tries to chat, they are still talking into the cellphone. So basically the phone never hangs up. It also only set's the stats for the player who types /hangup and I believe thats the problem. How can I set the stats for players on both ends?
PHP код:
CMD:hangup(playerid, params[])
{
new string[128];
if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
if(!PlayerInfo[playerid][pHasCellphone]) return SendClientMessage(playerid, COLOR_GREY, "You don't own a cellphone.");
if(!BeingCalled[playerid] && !Calling[playerid]) return SendClientMessage(playerid, COLOR_GREY, "You are not on a call nor is anybody calling you.");
format(string, sizeof(string), "* %s puts their cellphone away.", RPN(playerid));
SendNearbyMessage(playerid, 15, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
SendClientMessage(playerid, COLOR_ORANGE, " You have hungup the line.");
if(BeingCalled[playerid]) SendClientMessage(Caller[playerid], COLOR_ORANGE, " They hungup the line.");
else if(Calling[playerid]) SendClientMessage(Called[playerid], COLOR_ORANGE, " They hungup the line.");
//
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_STOPUSECELLPHONE);
if(Calling[playerid])
{
SetPlayerSpecialAction(Called[playerid], SPECIAL_ACTION_STOPUSECELLPHONE);
format(string, sizeof(string), "[Cellphone] Phonecall lasted for %d seconds, price: $%d", CallTime[playerid], CallTime[playerid]*10/100);
SendClientMessage(playerid, COLOR_YELLOW, string);
GiveZaiatMoney(playerid, -(CallTime[playerid]*10/100));
TaxMoney += (CallTime[playerid]*10/100);
Calling[playerid] = 0;
BeingCalled[playerid] = -1;
Caller[playerid] = 0;
CallTime[playerid] = 0;
Called[playerid] = -1;
}
else if(Calling[Caller[playerid]])
{
SetPlayerSpecialAction(Called[playerid], SPECIAL_ACTION_STOPUSECELLPHONE);
format(string, sizeof(string), "[Cellphone] Phonecall lasted for %d seconds, price: $%d", CallTime[Caller[playerid]], CallTime[Caller[playerid]]*10/100);
SendClientMessage(Caller[playerid], COLOR_YELLOW, string);
GiveZaiatMoney(Caller[playerid], -(CallTime[Caller[playerid]]*10/100));
TaxMoney += (CallTime[Caller[playerid]]*10/100);
Calling[Called[playerid]] = 0;
BeingCalled[Called[playerid]] = -1;
Caller[Called[playerid]] = 0;
CallTime[Called[playerid]] = 0;
Called[Called[playerid]] = -1;
}
return 1;
}
PHP код:
if(BeingCalled[playerid] == 2 || Calling[playerid] == 2 || Call911[playerid])
{
if(strlen(PlayerInfo[playerid][pAccent])) format(string, sizeof(string), "[Cellphone] %s: [%s Accent] %s", RPN(playerid), PlayerInfo[playerid][pAccent], text);
else format(string, sizeof(string), "[Cellphone] %s: %s", RPN(playerid), text);
if(!Call911[playerid])
{
if(BeingCalled[playerid] == 2) SendClientMessage(Caller[playerid], COLOR_YELLOW, string);
else if(Calling[playerid] == 2) SendClientMessage(Called[playerid], COLOR_YELLOW, string);
}
}