Hallo ,
Ich habe ein RL Script das über MYSQL läuft, nun kommen wir zum Punkt.
Wenn ein User /support macht und ihn abschickt & ich ihn annehme Stürtz der Ganze Server ab er geht dann einfach aus in den Logs steht nichts.
Muss mann da eine Datenbank anlegen? wenn ja wie?
Hilfe -->> Support
- Dubst3p.[44]
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Wie ist denn der Befehl samt Funktionen aufgebaut? Dann sieht's man ja ob er die tables automatisch erstellt, ob welche von Nötigen sind etc.
-
Code
Alles anzeigenif(strcmp(cmd,"/asagt",true)==0){ if(PlayerInfo[playerid][ALevel] == 1){ SendClientMessage(playerid, COLOR_GREEN, "Supporter sind nur zum supporten da"); return 1; } if(PlayerInfo[playerid][ALevel] >= 2){ if(strlen(cmdtext) < 5){ MeldungText(playerid, "Benutze: /asagt [Text]", 5); return 1; } new bug[128]; new name[30]; GetPlayerName(playerid,name,30); strmid(bug,cmdtext,7,strlen(cmdtext)); format(string, 256,"Admin [%s]: %s",name,bug); SendClientMessageToAll(COLOR_RED,string); } return 1; } if(strcmp(cmd, "/att", true) == 0){ if(PlayerInfo[playerid][Team] == 21){ return 1; } if(PlayerInfo[playerid][ALevel] == 0) { MeldungText(playerid, "Du bist kein Admin!", 5); return 1; } if(ticketanwser[playerid] != -1){ MeldungText(playerid, "Du bearbeitest schon ein anderes Ticket!", 5); return 1; } tmp = strtok(cmdtext, idx); if(!strlen(tmp)){ MeldungText(playerid, "Benutze: /att [Spieler-ID]", 6); return 1; } new player1; player1 = strval(tmp); if(ticket[player1] == 0){ format(string,256,"%s (ID: %d) hat kein Ticket erstellt gehabt!", PlayerName(player1), player1); SendClientMessage(playerid, COLOR_RED, string); return 1; } if(ticket[player1] == 1 && tickerid[player1] !=-1){ format(string,256,"%s (ID: %d) Ticket wird schon bearbeitet", PlayerName(player1), player1); SendClientMessage(playerid, COLOR_RED, string); return 1; } tickerid[player1] = playerid; ticketanwser[playerid] = player1; ticketzeit[player1] = 0; ShowTicketSystem(); PlayerInfo[playerid][tickets]++; format(string,256,"Admin %s (ID: %d) hat dein Ticket angenommen.", PlayerName(playerid), playerid); SendClientMessage(player1, COLOR_ORANGE, string); SendClientMessage(player1, COLOR_ORANGE, "Du kannst nun ganz normal im Chat mit dem Admin schreiben ..."); return 1; } if(strcmp(cmd, "/cancelticket", true) == 0 || strcmp(cmd, "/cct", true) == 0){ if(PlayerInfo[playerid][Team] == 21){ return 1; } if(PlayerInfo[playerid][ALevel] == 0) { MeldungText(playerid, "Du bist kein Admin!", 5); return 1; } tmp = strtok(cmdtext, idx); if(!strlen(tmp)){ MeldungText(playerid, "Benutze: /cancelticket [Spieler-ID]", 6); return 1; } new player1; player1 = strval(tmp); if(ticket[player1] == 0){ format(string,256,"%s (ID: %d) hat kein Ticket erstellt gehabt!", PlayerName(player1), player1); SendClientMessage(playerid, COLOR_RED, string); return 1; } ticket[player1] = 0; tickerid[player1] = -1; ticketanwser[playerid] = -1; ShowTicketSystem(); format(string,256,"Admin %s (ID: %d) hat dein Ticket abgelehnt.", PlayerName(playerid), playerid); SendClientMessage(player1, COLOR_ORANGE, string); format(string,256,"Du lehnst das Ticket von %s (ID: %d) ab.", PlayerName(player1), player1); SendClientMessage(playerid,COLOR_ORANGE, string); return 1; } if(strcmp(cmd, "/ct", true) == 0) { new stringjjk[128]; if(PlayerInfo[playerid][Team] == 21){ return 1; } if(PlayerInfo[playerid][ALevel] == 0){ if(ticket[playerid] == 0){ SendClientMessage(playerid, COLOR_RED, "Du hast kein Ticket erstellt!"); return 1; } if(tickerid[playerid] == -1 && ticket[playerid] != 0){ ticketanwser[playerid] = -1; tickerid[playerid] = -1; ticket[playerid] = 0; ticketzeit[playerid] = 0; ShowTicketSystem(); SendClientMessage(playerid, COLOR_GREEN, "Du hast dein Ticket zurückgezogen."); return 1; } if(tickerid[playerid] != -1 && ticket[playerid] != 0){ SendClientMessage(tickerid[playerid], COLOR_ORANGE, "Der User hat das Ticket geschlossen."); SendClientMessage(playerid, COLOR_GREEN, "Du hast dein Ticket zurückgezogen."); AdminTicketLog(PlayerName(tickerid[playerid]),"Der User hat das Ticket geschlossen!\r\n\r\n\r\n"); ticketanwser[tickerid[playerid]] = -1; tickerid[playerid] = -1; ticketanwser[playerid] = -1; ticket[playerid] = 0; ticketzeit[playerid] = 0; ShowTicketSystem(); return 1; } return 1; } if(ticketanwser[playerid] != -1){ for(new i;i<MAX_PLAYERS;i++){ if(IsPlayerConnected(i)){ if(ticketanwser[playerid] == i){ format(stringjjk,sizeof(stringjjk),"Das Ticket von %s (ID: %d) wurde geschlossen", PlayerName(i), i); SendClientMessage(playerid, COLOR_ORANGE, stringjjk); format(stringjjk,sizeof(stringjjk),"Admin %s (ID: %d) schließt das Ticket!", PlayerName(playerid), playerid); SendClientMessage(ticketanwser[playerid], COLOR_ORANGE, stringjjk); AdminTicketLog(PlayerName(playerid),"Der Admin hat das Ticket geschlossen!\r\n\r\n\r\n"); ticketanwser[playerid] = -1; tickerid[i] = -1; ticketanwser[i] = -1; ticket[i] = 0; ShowTicketSystem(); } } } } else{ SendClientMessage(playerid, COLOR_RED, "Du bearbeitest kein Ticket!"); } return 1; } if(strcmp(cmd, "/ctt", true) == 0){ if(PlayerInfo[playerid][Team] == 21){ return 1; } if(PlayerInfo[playerid][ALevel] == 0) { MeldungText(playerid, "Du bist kein Admin!", 5); return 1; } tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { MeldungText(playerid, "Benutze: /closeticket [Spieler-ID]", 6); return 1; } new player1; player1 = strval(tmp); if(ticket[player1] == 0){ format(string,256,"%s (ID: %d) hat kein Ticket erstellt gehabt!", PlayerName(player1), player1); SendClientMessage(playerid, COLOR_RED, string); return 1; } ticket[player1] = 0; tickerid[player1] = -1; ticketanwser[playerid] = -1; ShowTicketSystem(); format(string,256,"Admin %s (ID: %d) hat das Ticket abgeschlossen.", PlayerName(playerid), playerid); SendClientMessage(player1, COLOR_ORANGE, string); format(string,256,"Du hast das Ticket von %s (ID: %d) erfolgreich abgeschlossen",PlayerName(player1), player1); SendClientMessage(playerid, COLOR_ORANGE, string); return 1; } if(strcmp(cmd,"/tickets",true)==0){ if(PlayerInfo[playerid][ALevel] == 0){ SendClientMessage(playerid, COLOR_RED, "Nicht für dich"); return 1; } new stringkakala[128]; if(PlayerInfo[playerid][ALevel] != 0){ SendClientMessage(playerid, COLOR_ORANGE, "====================== TICKETS ======================"); for(new i;i<MAX_PLAYERS;i++){ if(IsPlayerConnected(i)){ if(ticket[i] == 1 && tickerid[i] == -1){ format(stringkakala,256,"Ticket von: %s(ID: %d) (''%s'')", PlayerName(i), i, PlayerInfo[i][ticketgrund]); SendClientMessage(playerid, COLOR_ORANGE, stringkakala); } } } SendClientMessage(playerid, COLOR_ORANGE, "===================================================="); } return 1; } if(strcmp(cmd,"/support",true)==0 || strcmp(cmd,"/report",true)==0){ if(PlayerInfo[playerid][ALevel] != 0 && PlayerInfo[playerid][ALevel] != 500){ SendClientMessage(playerid, COLOR_RED, "Als Admin kannst du keine Tickets erstellen!"); return 1; } if(ticket[playerid] != 0){ SendClientMessage(playerid, COLOR_RED,"Du hast schon ein Ticket erstellt!"); return 1; } GetPlayerName(playerid, sendername, sizeof(sendername)); new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')){ idx++; } new offset = idx; new result[128]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))){ result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)){ MeldungText(playerid, "Benutze: /support [Text]", 5); return 1; } if(strlen(result) > 80) { SendClientMessage(playerid, COLOR_RED, "Nutze nicht mehr als 80 Zeichen!"); return 1;
-
Es könnte daran liegen das er die ID nicht richtig umwandelt von dem Spieler, von dem du das Ticket annimmst und du dadurch auf einen negativen Index zugreifst oder der Fehler liegt in dieser Funktion ShowTicketSystem();
Du kannst du das crashdetect plugin mal downloaden https://github.com/Zeex/samp-plugin-crashdetect/release
danach erstellst du in dem pawno ordner eine datei mit dem namen pawn.cfg und dort schreibst du -d3 rein dann sollte dir die entsprechende Zeile angezeigt werden, wo dein Skript genau crasht.
-
Wenn die seite funkzunieren würde & wenn ich es richtig vertanden habe die Datei öffnen & dann -d3 das rein schreiben & speichern ?
-
-
breadfish.de
Hat das Thema geschlossen.