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)
 
		 
		
		
	



