new pid, geld;
if(sscanf(params,"ud", pid, geld)) return SendClientMessage(playerid, gelb,"Verwendung : /contract [Playerid] [Preis]");
if(sSpieler[playerid][Level] == 1) return SendClientMessage(playerid,rot,"Level 1er dürfen keine Contract abschliesen!");
if(pid == INVALID_PLAYER_ID) return SendClientMessage(playerid,rot,"Ungültiger Spieler");
GivePlayerMoney(playerid,-geld);
SendClientMessage(playerid,grün,"Dein Auftrag wurde an die Hitman geschickt");
for(new i=0; i<MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(sSpieler[i][Fraktion] != HITMAN) continue;
new string[128];
SendClientMessage(i,hellblau,"====================================");
SendClientMessage(i,hellblau,"Ihr habt einen neuen Auftrag!");
format(string,sizeof(string),"Auftraggeber: %s",spielername(playerid));
SendClientMessage(i,hellblau,string);
format(string,sizeof(string),"Zielperson: %s",spielername(pid));
SendClientMessage(i,hellblau,string);
format(string,sizeof(string),"Preis: %d",geld);
SendClientMessage(i,hellblau,string);
SendClientMessage(i,hellblau,"====================================");
}
for(new i=1; i<MAX_CONTRACTS; i++)
{
new Auftrag[56];
format(Auftrag,sizeof(Auftrag),"/MyGame/Hitman/%d.txt",i);
if(dini_Exists(Auftrag)) continue;
dini_Create(Auftrag);
dini_Set(Auftrag,"Auftraggeber",spielername(playerid));
dini_Set(Auftrag,"Zielperson",spielername(pid));
dini_IntSet(Auftrag,"Preis",geld);
break;
}
Ich hab dir das optimiert.
Im allgemein war das 'return 1;' in der MAX_PLAYERS-Schleife das Problem.
Sobald ein Hitman online ist, bekommt er eine Nachricht und da hört das ganze auf.
Nun bekommt jeder Hitman die Nachricht und die Datei wird erstellt.
//edit: Außerdem war in der MAX_PLAYERS_SCHLEIFE ein Denkfehler:
if(sSpieler[playerid][Fraktion] != HITMAN)
FALSCH!!
Richtig:
if(sSpieler[i][Fraktion] != HITMAN)