Hier einmal der Befehl
dcmd_ad(playerid,params[]) //Fraktions Befehl
{
new string[128], i = 0, ADtext[65], name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name));
if(SpielerInfo[playerid][pPerso] != 1) return 1;
if(sscanf(params,"s[65]",ADtext)) return SendClientMessage(playerid,GRAU,"Verwendung: /AD [Text]");
adtextsize[playerid] = strlen(ADtext);
adkosten[playerid] = adtextsize[playerid]*2;
if(Now()<ADCheck) { format(string, sizeof(string), "Du kannst erst in %d Sekunden wieder eine AD schalten lassen!", ADCheck-Now()); SendClientMessage(playerid,ROT,string); }
else if(GetPlayerMoney(playerid) < adkosten[playerid]) { format(string, sizeof(string), "Du hast %d Zeichen benutzt, die AD würde %d€ kosten, so viel Geld hast Du nicht!", adtextsize[playerid], adkosten[playerid]); SendClientMessage(playerid,ROT,string); }
else if(GetPlayerMoney(playerid) >= adkosten[playerid])
{
for(;i < GetMaxPlayers(); i++)
{
format(string,sizeof(string),"AD:"); TextDrawSetString(ADTEST1,string); TextDrawShowForPlayer(i,ADTEST1);
format(string,sizeof(string),"%s",ADtext); convert_encoding(string); TextDrawSetString(ADTEST2,string); TextDrawShowForPlayer(i,ADTEST2);
format(string,sizeof(string),"Name: %s I ID: %d I Handynummer: %d",name,playerid,SpielerInfo[playerid][pHandyNummer]); TextDrawSetString(ADTEST3,string); TextDrawShowForPlayer(i,ADTEST3);
format(string,sizeof(string),"Du hast %d Zeichen benutzt, die Werbung kostet %d€!", adtextsize[playerid], adkosten[playerid]); SendClientMessage(i,GRUEN,string);
GivePlayerMoney(playerid,-adkosten[playerid]); FrakInfo[5][fGeld] += adkosten[playerid]; SaveEineFrak(5); ADCheck = Now()+60;
}
}
return 1;
}
// EDIT:
Mensch bin ich ein Depp, ich habe den Fehler nun selbst bemerkt.
Ich habe die Zeile bezüglich des Abziehen und Gutschreibens des Geldes mit in die Schleife gepackt.
Was dadurch passiert ist, kann sich ja wohl jeder selbst denken..
Trotzdem vielen, vielen Dank für die Hilfe!