Mache die 50 bei "new cInfo" zu MAX_AUTOS.
Beiträge von Jeffry
-
-
Wie hast du cInfo deklariert? Hast du das mit MAX_AUTOS deklariert? Wenn nicht, mache das.
-
Dann lade dir das crashdetect Plugin herunter: http://forum.sa-mp.com/showthread.php?t=262796 Füge das Plugin in deinen Server ein, und erstelle im /pawno/ Ordner eine Datei "pawn.cfg". Dort schreibst du "-d3" rein und speicherst sie. Dann öffnest du die pawno.exe und öffnest darüber deinen Code. Kompiliere ihn und starte dann den Server mit der neuen amx Datei. Dann poste was im Server Log steht, wenn du den Befehl eingibst.
-
Hast du eine mehrzeilige Meldung mit vielen Zahlen im Compiler stehen?
-
Sowas geht nur mit dem RNPC oder dem FCNPC Plugin, wenn du die Bewegungspfade über den Code steuerst.
-
Damit die Tabs in der Liste richtig formatiert werden musst du DIALOG_STYLE_TABLIST verwenden, anstatt DIALOG_STYLE_LIST.
Um das "/" Zeichen nicht mit anzuzeigen mache:
Cformat(stra,sizeof(stra),"%s%25s%s%s\n",stra,DialogHandy[i][0],DialogHandy[i][4],DialogHandy[i][2]);zu:
Cformat(stra,sizeof(stra),"%s%25s%s%s\n",stra,DialogHandy[i][0][1],DialogHandy[i][4],DialogHandy[i][2]);
Und:Cformat(stra,sizeof(stra),"%s%25s%s%s\n",stra,DialogHandy[i][1],DialogHandy[i][5],DialogHandy[i][3]);zu:
Cformat(stra,sizeof(stra),"%s%25s%s%s\n",stra,DialogHandy[i][1][1],DialogHandy[i][5],DialogHandy[i][3]);Die Doppel-Tabs kannst du dann wahrscheinlich zu einem einzelnen Tab ändern, wenn du DIALOG_STYLE_TABLIST verwendest.
-
-
Versuche es so:
C
Alles anzeigenCMD:parken(playerid,params[]) { new query[256]; if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,RED,"Du musst im Fahrzeug sitzen!"); for(new i = 1;i<MAX_AUTOS;i++) { if(cInfo[i][id_x] != GetPlayerVehicleID(playerid))continue; if(strcmp(cInfo[i][besitzer],SpielerInfo[playerid][Name])) return SendClientMessage(playerid,RED,"Dieses Auto gehört nicht dir!"); GetVehiclePos(cInfo[i][id_x],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z]); GetVehicleZAngle(cInfo[i][id_x],cInfo[i][c_r]); SendClientMessage(playerid,GREEN,"Auto wurde nun hier geparkt !"); mysql_format(db, query,sizeof(query),"UPDATE autos SET x='%f',y='%f',z='%f',r='%f' WHERE besitzer='%e",cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],SpielerInfo[playerid][Name]); mysql_function_query(db,query,false,"",""); return 1; } return 1; } -
#define rot 0xFF0000FF
Unter den Includes einfügen. -
Du musst die Funktion überall dort hin schreiben, wo du den Server mit GMX beendest.
Wenn du den Server "hart" schließt (exit-Befehl, oder X drücken bei Windows), oder wenn der Server abstürzt, dann wird OnGameModeExit eh nicht aufgerufen.Du darfst den Server dann nur nicht mit /rcon gmx beenden, aber das machst du ja wahrscheinlich sowieso nicht, wenn du extra einen Befehl dafür gemacht hast.
-
-
Welches MySQL Plugin und welche Version nutzt du?
Es gab mal den Fehler in älteren Versionen, dass mysql_close den Server zum abstürzen gebracht hat, wenn es bei OnGameModeExit aufgerufen wird. -
Ok. Erhöhe im Enum das cFarbe auf 11, anstatt 10.
Und dann versuche es mal so:
Cprintf("cFarbe: %s", Clan[Spieler[playerid][Gang]][cFarbe]); format(str, sizeof(str),"Ausgewählter Farbcode: %s",Clan[Spieler[playerid][Gang]][cFarbe]); ShowPlayerDialog(playerid, DIALOG_CLAN_FARBE_ACCEPT, DIALOG_STYLE_MSGBOX, "Clanfarbe akzeptieren",str,"Akzeptieren","Zurück"); printf("str1: %s", str); format(str, sizeof(str),"Ausgewählter Farbcode: 0x%s",Clan[Spieler[playerid][Gang]][cFarbe]); printf("str2: %s", str); format(Clan[Spieler[playerid][Gang]][cFarbe], 11,"0x%s",Clan[Spieler[playerid][Gang]][cFarbe]); printf("str3: %s", str); SendClientMessage(playerid, COLOR_GREY, str);Was steht dann im Log?
-
Füge mal das Crashdetect Plugin in deinen Server ein und poste was das ausgibt, wenn der Server beendet wird und nicht mehr startet.
http://forum.sa-mp.com/showthread.php?t=262796 -
Spontan fallen mir da die Neon Röhren ein.

-
Zwecks dem MAX_PLAYER_NAME:
Das braucht man hier nicht zwangsläufig, da es nicht der Spieler-Name ist der ausgegeben wird, sondern der Rang-Name, und der ist ja benutzerdefiniert lang.Zwecks dem switch:
Ein switch ist bei zwei oder drei Möglichkeiten langsamer als eine if-else Verknüpfung. Ab wann genau es sich rentiert kommt immer auf die Abfrage selbst an.
Wenns dann aber mal 10 sind oder so, dann würde ich auch den switch empfehlen. -
Das ", 0" am Ende von format in dem stock kannst du weg lassen, format funktioniert auch ganz ohne die Parameter für die Platzhalter.
Allerdings brauchst du bei der Methode die du vor schlägst jedes mal eine Variable. Geschickter zum benutzen ist es so:
Cstock AdminrankName(playerid) { new name[16] = "Unbekannt"; new adminrank = PlayerInfo[playerid][pLevel]; if(adminrank == 0) name = "Spieler"; else if (adminrank == 1) name = "Supporter"; else if (adminrank== 2) name = "Administrator"; return name; }
Dann kannst du es einfach so verwenden: -
SCM Error:
Ersetze SCM mit SendClientMessage.Warnung:
Da ist die Einrückung falsch, rücke das richtig ein, wie die Zeile davor. -
Das lässt mehr Speicher zu, entfernt also die Meldung. Mir ist aber grade der Fehler aufgefallen:
SendClientMessage(i, COLOR_WHITE,"%s %d € verdient!");
Zu
SendClientMessage(i, COLOR_WHITE,string); -
Ja, du musst in der ersten Zeile die beiden Werte vertauschen, sodass der gespeicherte Wert (zur Speicherung gettime) von gettime abgezogen wird , dann weißt du wie lange das her ist.