dcmd_sms(playerid,params[])
{
new number,text[50],name[MAX_PLAYER_NAME],pid,name2[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
GetPlayerName(pid,name2,sizeof(name2));
if(sscanf(params,"ds",number,text)) return SendClientMessage(playerid,COLOUR_RED,"Usage: /sms <phonenumber> <text chat>!");
if(number <= 3) return SendClientMessage(playerid,COLOUR_RED,"Usage: /sms [number] [text]!");
if(GetPlayerMoney(playerid) <= 0) return SendClientMessage(playerid,COLOUR_RED,"You need $5 to send a sms!");
if(NumberUsed(pid)) return SendClientMessage(playerid,COLOUR_RED,"[Voicemail]: Invalid Number!");
{
new str[128];
format(str,sizeof(str),"[SMS](%s): %s",name,text);
SendClientMessage(pid,COLOUR_YELLOW,str);
SendClientMessage(playerid,COLOUR_GREEN,"Text Message Delivered");
GivePlayerMoney(playerid,-5);
GameTextForPlayer(playerid,"Cost 5$",5000,1);
}
return 1;
}
stock NumberUsedT(playerid)
{
new name[MAX_PLAYER_NAME],number,pid;
for(new i = 0; i < MAX_PLAYERS; i ++)
{
number = pi[i][pNumber];
GetPlayerName(i,name,sizeof(name));
format(file,sizeof(file),"%s.ini",name);
if(number == dini_Int(file,"Number")) return 1;
}
return 0;
}

|
Originally Posted by juice.j
I don't really get the meaning of your function code wise.
You pass a playerid as a parameter which you don't use in your function at all, create a variable "pid" inside that function which you neither use. There are two ways numbers are being stored (at least I guess) -> pi[playerid][pNumber] and dini_Int(file,"Number") allthough during session you only need one of them. In your sms command, you declare in the beginning a variable called pid which is by default 0. Using GetPlayerName(pid,name2,sizeof(name2)); stores the playername of id 0 in name2. I stop here for now and simply ask, is all that on purpose? |
NumberUsedT(number)
{
for(new i = 0; i < MAX_PLAYERS; i ++)
if(number==pi[i][pNumber])
return 1;
return 0;
}
|
Originally Posted by juice.j
Well you just mixed up some things I guess.
If you store each player number in a variable pi[playerid][pNumber] just use that as reference, you don't need to compare the file data additionally (if I assume correctly and you store the number of each player file in that variable upon OnPlayerConnect). Just try something like this: Код:
NumberUsedT(number)
{
for(new i = 0; i < MAX_PLAYERS; i ++)
if(number==pi[i][pNumber])
return 1;
return 0;
}
|