@Jeffry das sollte alles sein was man brauch.
OnPlayerConnect - sind auch alle Variablen.
C
PlayerInfo[playerid][p_Kopfgeld] = 0;
PlayerInfo[playerid][p_AuftragID] = -1;
PlayerInfo[playerid][p_KopfgeldID] = -1;
PlayerInfo[playerid][p_AuftraggeberID] = -1;
OnDialogResponse
C
if(dialogid == DIALOG_KOPFGELDER)
{
new counter = -1;
if(!response) return 1;
for(new i=0; i < MAX_PLAYERS; i++)
{
if(PlayerInfo[i][p_Kopfgeld] > 0 && PlayerInfo[i][p_KopfgeldID] == -1)
{
counter++;
if(counter == listitem)
{
if(PlayerInfo[playerid][p_Admin] > 0 && PlayerInfo[playerid][p_Fraktion] != 5)return SendClientMessage(playerid, COLOR_GREY, "Du kannst keine Aufträge annehmen.");
new str[145];
format(str, sizeof(str), "** ( Hitmen %s hat %s für $%s angenommen ) **", GetName(playerid), GetName(i), ConvertMoney(PlayerInfo[i][p_Kopfgeld]));
SendFraktionsMessage(5, 0x8D2705FF, str);
PlayerInfo[i][p_KopfgeldID] = playerid;
PlayerInfo[playerid][p_AuftragID] = i;
PlayerInfo[playerid][p_AuftragTime] = gettime() +60000;
break;
}
}
}
return 1;
}
Alles anzeigen
Die Befehle
Habe bei dem Befehl /kopfgelder die Auftraggeber Variablen etc raus genommen.
C
ocmd:kopfgeld(playerid, params[])
{
new kopfgeld, pID;
if(PlayerInfo[playerid][p_Fraktion] == 5)return SendClientMessage(playerid, COLOR_GREY, " Als Mitglied dieser Fraktion hast du keine Berechtigung für diesen Befehl."); // Zum testen ausklammern
if(sscanf(params, "ud", pID, kopfgeld))return SendClientMessage(playerid, COLOR_GREY, "Benutze: /kopfgeld [Spieler-ID] [Kopfgeld]");
if(!IsPlayerConnected(pID) || PlayerInfo[pID][p_LoggedIn] == false)return SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist Offline.");
if(pID == playerid)return SendClientMessage(playerid, COLOR_GREY, "Du kannst dir selbst kein Kopfgeld geben."); // Zum testen ausklammern
if(kopfgeld < 3500)return SendClientMessage(playerid, COLOR_GREY, "Du kannst dem Spieler kein Kopfgeld unter $3.500 geben.");
if(kopfgeld > 100000)return SendClientMessage(playerid, COLOR_GREY, "Du kannst dem Spieler kein Kopfgeld über $100.000 geben.");
if(PlayerInfo[pID][p_Kopfgeld] + kopfgeld > 100000)return SendClientMessage(playerid, COLOR_GREY, "Das Kopfgeld vom Spieler darf nicht über $100.000 liegen.");
if(PlayerInfo[pID][p_KopfgeldID] != -1) return SendClientMessage(playerid, COLOR_GREY, "Auf diesen Spieler hat bereits jemand einen Auftrag angenommen.");
PlayerInfo[pID][p_Kopfgeld] = PlayerInfo[pID][p_Kopfgeld] +kopfgeld;
PlayerInfo[pID][p_AuftraggeberID] = playerid;
new str[145];
format(str, sizeof(str), "%s hat ein neuen Auftrag abgegeben.", GetName(playerid));
SendFraktionsMessage(5, COLOR_BROWN, str);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "[SERVICE] Dein Auftrag wurde an die Hitmen Agency weitergeleitet.");
return 1;
}
ocmd:kopfgelder(playerid, params[])
{
if(PlayerInfo[playerid][p_Fraktion] != 5 || PlayerInfo[playerid][p_Admin] < 5)return 1;
if(PlayerInfo[playerid][p_AuftragID] != -1) return SendClientMessage(playerid, COLOR_GREY, "Du hast bereits einen Auftrag angenommen.");
new str[1024];
for(new i=0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i) || PlayerInfo[i][p_LoggedIn] != true)continue;
if(PlayerInfo[i][p_Kopfgeld] > 0 && PlayerInfo[i][p_KopfgeldID] == -1)
{
format(str, sizeof(str), "%s\t%s\t%i\t$%s\n", str, GetName(i), i, ConvertMoney(PlayerInfo[i][p_Kopfgeld]));
}
}
format(str, sizeof(str), "Zielperson\tSpieler-ID\tKopfgeld\n%s", str);
ShowPlayerDialog(playerid, DIALOG_KOPFGELDER, DIALOG_STYLE_TABLIST_HEADERS, "Hitmen Agency: Auftragsliste", str, "Annehmen", "Schließen");
return 1;
}
Alles anzeigen