So wie du es meinst, müsste ich ja vorher immer alle Spieler durchgehen bei den Abfragen.
Bisschen serverlastig oder nicht?
Hab's jetzt so..
COMMAND:call(playerid,params[])
{
new pID, number = hInfo[pID][Nummer],str[128],str2[128];
hInfo[playerid][cID] = pID;
if(sscanf(params, "d",number)) return SendClientMessage(playerid,0xC8C8C8FF,"/call [Nummer]");
if(number == hInfo[playerid][Nummer])return SendClientMessage(playerid,0xC8C8C8FF,"Du kannst dich nicht selber anrufen!");
if(hInfo[playerid][Handy] == 0)return SendClientMessage(playerid,0xC8C8C8FF,"Du besitzt kein Handy!");
if(hInfo[pID][Handy] == 0)return SendClientMessage(playerid,0xC8C8C8FF,"Dieser Spieler besitzt kein Handy!");
if(hInfo[playerid][Guthaben] == 0)return SendClientMessage(playerid,0xC8C8C8FF,"Du hast kein Guthaben!");
if(number == 0)return SendClientMessage(playerid,0xC8C8C8FF,"Diese Nummer ist nicht registriert!");
if(Anruf[pID] == 1)return SendClientMessage(playerid,0xC8C8C8FF,"Dieser Spieler wird bereits angerufen!");
for(new i=0;i<MAX_PLAYERS;i++)
{
if(hInfo[i][Nummer] != number)continue;
format(str,sizeof(str),"Eingehender Anruf %d (%s) [/pickup]",hInfo[playerid][Nummer],SpielerName[playerid]);
format(str2,sizeof(str2),"Verbindungsaufbau mit Nummer (%d)",hInfo[pID][Nummer]);
SendClientMessage(playerid,0xFFFA00FF,str2);
SendClientMessage(i,0xFFFA00FF,str);
Anruf[pID] = 1;
Anruf[playerid] = 1;
return 1;
}
return SendClientMessage(playerid,0xC8C8C8FF,"Diese Nummer ist nicht registriert!");
}
COMMAND:pickup(playerid,params[])
{
new str[128],str2[128];
new pID;
hInfo[playerid][cID] = pID;
if(Anruf[playerid] == 0)return SendClientMessage(playerid,0xC8C8C8FF,"Du wirst nicht angerufen!");
{
format(str,sizeof(str),"Du hast den Anruf von %s angenommen!",SpielerName[pID]);
format(str2,sizeof(str2),"Dein Gesprächsparnter (%s) hat den Anruf entgegen genommen!",SpielerName[playerid]);
SendClientMessage(playerid,0xC8C8C8FF,str);
SendClientMessage(hInfo[playerid][cID],0xC8C8C8FF,str2);
aktiv[playerid] = 1;
aktiv[pID] = 1;
Anruf[playerid] = 0;
Anruf[pID] = 0;
}
return 1;
}
*/Edit:
Ich glaub ich hab dich falsch verstanden Haxler, aber was du genau meinst weiß ich auch nicht.
Hab einfach n Denkfehler dadrin, find ihn aber nicht..mein Code sieht jetzt so aus:
COMMAND:call(playerid,params[])
{
new pID, number = hInfo[pID][Nummer],str[128],str2[128];
hInfo[pID][cID] = pID;
if(sscanf(params, "d",number)) return SendClientMessage(playerid,0xC8C8C8FF,"/call [Nummer]");
if(number == hInfo[playerid][Nummer])return SendClientMessage(playerid,0xC8C8C8FF,"Du kannst dich nicht selber anrufen!");
if(hInfo[playerid][Handy] == 0)return SendClientMessage(playerid,0xC8C8C8FF,"Du besitzt kein Handy!");
if(hInfo[pID][Handy] == 0)return SendClientMessage(playerid,0xC8C8C8FF,"Dieser Spieler besitzt kein Handy!");
if(hInfo[playerid][Guthaben] == 0)return SendClientMessage(playerid,0xC8C8C8FF,"Du hast kein Guthaben!");
if(number == 0)return SendClientMessage(playerid,0xC8C8C8FF,"Diese Nummer ist nicht registriert!");
if(Anruf[pID] == 1)return SendClientMessage(playerid,0xC8C8C8FF,"Dieser Spieler wird bereits angerufen!");
for(new i=0;i<MAX_PLAYERS;i++)
{
if(hInfo[i][Nummer] != number)continue;
format(str,sizeof(str),"Eingehender Anruf %d (%s) [/pickup]",hInfo[playerid][Nummer],SpielerName[playerid]);
format(str2,sizeof(str2),"Verbindungsaufbau mit Nummer (%d)",hInfo[pID][Nummer]);
SendClientMessage(playerid,0xFFFA00FF,str2);
SendClientMessage(i,0xFFFA00FF,str);
Anruf[pID] = 1;
Anruf[playerid] = 1;
return 1;
}
return SendClientMessage(playerid,0xC8C8C8FF,"Diese Nummer ist nicht registriert!");
}
COMMAND:pickup(playerid,params[])
{
new str[128],str2[128];
new pID;
hInfo[pID][cID] = pID;
if(Anruf[playerid] == 0)return SendClientMessage(playerid,0xC8C8C8FF,"Du wirst nicht angerufen!");
{
format(str,sizeof(str),"Du hast den Anruf von %s angenommen!",SpielerName[pID]);
format(str2,sizeof(str2),"Dein Gesprächsparnter (%s) hat den Anruf entgegen genommen!",SpielerName[playerid]);
SendClientMessage(playerid,0xC8C8C8FF,str);
SendClientMessage(hInfo[playerid][cID],0xC8C8C8FF,str2);
aktiv[playerid] = 1;
aktiv[pID] = 1;
Anruf[playerid] = 0;
Anruf[pID] = 0;
}
return 1;
}