Beiträge von malE
-
-
-
Ja das habe ich gemeint, danke !
// Edit
Gibst auch eine Möglichkeit womit ich abfragen kann vor wie viel Minuten und / oder Sekunden jemand etwas gesendet hat.
Oder kriegt man das auch mit diesem Code hin?Cnew s = gespeicherterTimestamp - gettime(); new h = s / 3600; s -= h * 3600; new m = s / 60; s -= m * 60; printf("%dh %dm %ds übrig.", h, m, s);
z.B ich möchte gerne habe das man via Befehl sehen kann welche Spieler vor wie vielen Minuten / Sekunden ein Ticket abgeschickt hat. -
-
Wie war das nochmal um gettime() in Sekunden / Minuten / Stunden anzuzeigen.
-
-
-
-
-
@Jeffry
Taucht unknown command auf :|.
Bei den formats muss das Problem liegen.C
Alles anzeigenocmd: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[245], str1[245]; 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%s\t%s\t%s\n", str, GetName(PlayerInfo[i][p_AuftraggeberID]), GetName(i), ConvertMoney(PlayerInfo[i][p_Kopfgeld])); format(str1, sizeof(str1), "Auftraggeber\tZielperson\tKopfgeld\n%s", str); ShowPlayerDialog(playerid, DIALOG_KOPFGELDER, DIALOG_STYLE_LIST, "Kopfgelder", str1, "Annehmen", "Schließen"); } } return 1; }
Versuche es so:
C
Alles anzeigenocmd: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%s\t%s\t%s\n", str, GetName(PlayerInfo[i][p_AuftraggeberID]), GetName(i), ConvertMoney(PlayerInfo[i][p_Kopfgeld])); } } format(str, sizeof(str), "Auftraggeber\tZielperson\tKopfgeld\n%s", str); ShowPlayerDialog(playerid, DIALOG_KOPFGELDER, DIALOG_STYLE_LIST, "Kopfgelder", str, "Annehmen", "Schließen"); return 1; }
Abgesehen davon, dass du DIALO_STYLE_LIST statt DIALOG_STYLE_TABLIST_HEADERS nicht ersetzt hast.
Der Code funktioniert einwandfrei, sobald ich GetName(PlayerInfo[i][p_AuftraggeberID]) aus /kopfgelder entferne.Die Variable hab ich so gesetzt.
OnPlayerConnectbei meinem /kopfgeld Befehl
Dann wird die Variable über GetName() beim Befehl /kopfgelder ausgelesen.
---
Aber ich denke das wird so sowieso nicht funktionieren.
Weil sich die Variable PlayerInfo[pID][p_AuftraggeberID] spätestens nach dem Reconnect auf -1 setzt. Und dann ein Fehler auftritt, da die Spieler ID nicht gleich die von dem richtigen Auftraggeber ist.
Speichern kann ich die Variable nicht, weil es ja über die playerid läuft. Hast du vielleicht eine nicht all zu komplexe Variante?
Ansonsten muss ich darauf verzichten.Erstelle bitte einen neuen Thread und poste dort den Befehl und die anderen Codes die noch zu dem System gehören.
Wenn ich mich richtig erinnere, dann hatte ich daran schon mal was gemacht, das müsste man dann wahrscheinlich auch etwas ändern. -
@Jeffry das sollte alles sein was man brauch.
OnPlayerConnect - sind auch alle Variablen.
CPlayerInfo[playerid][p_Kopfgeld] = 0; PlayerInfo[playerid][p_AuftragID] = -1; PlayerInfo[playerid][p_KopfgeldID] = -1; PlayerInfo[playerid][p_AuftraggeberID] = -1;
OnDialogResponseC
Alles anzeigenif(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; }
Die Befehle
Habe bei dem Befehl /kopfgelder die Auftraggeber Variablen etc raus genommen.C
Alles anzeigenocmd: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; }
-
Abgesehen davon, dass du DIALO_STYLE_LIST statt DIALOG_STYLE_TABLIST_HEADERS nicht ersetzt hast.
Der Code funktioniert einwandfrei, sobald ich GetName(PlayerInfo[i][p_AuftraggeberID]) aus /kopfgelder entferne.Die Variable hab ich so gesetzt.
OnPlayerConnect
bei meinem /kopfgeld BefehlDann wird die Variable über GetName() beim Befehl /kopfgelder ausgelesen.
---
Aber ich denke das wird so sowieso nicht funktionieren.
Weil sich die Variable PlayerInfo[pID][p_AuftraggeberID] spätestens nach dem Reconnect auf -1 setzt. Und dann ein Fehler auftritt, da die Spieler ID nicht gleich die von dem richtigen Auftraggeber ist.
Speichern kann ich die Variable nicht, weil es ja über die playerid läuft. Hast du vielleicht eine nicht all zu komplexe Variante?
Ansonsten muss ich darauf verzichten. -
@Jeffry
Taucht unknown command auf :|.
Bei den formats muss das Problem liegen.C
Alles anzeigenocmd: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[245], str1[245]; 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%s\t%s\t%s\n", str, GetName(PlayerInfo[i][p_AuftraggeberID]), GetName(i), ConvertMoney(PlayerInfo[i][p_Kopfgeld])); format(str1, sizeof(str1), "Auftraggeber\tZielperson\tKopfgeld\n%s", str); ShowPlayerDialog(playerid, DIALOG_KOPFGELDER, DIALOG_STYLE_LIST, "Kopfgelder", str1, "Annehmen", "Schließen"); } } return 1; }
-
Jeffry du hast eine PM von mir erhalten.
-
Ich habe keinen anderen Rechner zur Verfügung.
Gibt es irgendwelche Befehle, stocks, includes, plugins etc die solch ein Fehler aufrufen? -
Jedes andere Script kann ich ohne Probleme Compilen. Es kann ja nicht sein, dass es bei einem Script nicht der Fall ist.
-
Bringt leider auch nichts.
-
Habe ich auch schon versucht. Fehlermeldung kommt immer noch.
Entweder kommt diese Fehlermeldung wie oben im Bild oder der Compiler crasht.Wie schon gesagt bei anderen Scripts z.B grandlarc kommt diese Fehlermeldung nicht.
-
Mein Compiler spinnt: Bild
Die Fehlermeldung taucht bei anderen Scripts nicht auf. -
Alles klar danke! Nachdem ich es nachher getestet habe, werde ich das Thema als erledigt markieren.