Erstellen von /Stats im Dialog Menü
Leider ist es wegen dem noch fehlenden PWN Tag schlecht zu lesen.
Erstellen von /Stats im Dialog Menü
Leider ist es wegen dem noch fehlenden PWN Tag schlecht zu lesen.
Nutzt du dort PlayerTextDrawShow? Wenn nicht, dann füge das noch hinzu.
https://wiki.sa-mp.com/wiki/PlayerTextDrawShow
Das liegt nicht an den Klammern, sondern daran, dass du für zwei Spieler nur ein Textdraw erstellt hast.
Nutze anstatt dem einen Textdraw ein PlayerTextDraw für jede playerid.
Nutze dafür CreatePlayerTextDraw.
https://wiki.sa-mp.com/wiki/CreatePlayerTextDraw
Wenn du es irgendwann vielleicht mal mit einer Webseite zum Beispiel verbinden willst, dann bietet sich MySQL an.
Wenn es nur wenige lokale Daten sind, die auch lokal bleiben, dann reicht dini.
Die kannst du nicht "verbieten". Du kannst zwar die playerid 0 immer kicken, aber dann kommt keiner mehr auf den Server.
Das einzige was du machen kannst ist einen NPC zu erstellen, der vor allen Spielern sich verbindet.
Warum willst du die ID 0 blockieren?
Ja, solange der Debug Modus (-d3) an ist, gibt crashdetect die Zeile mit aus.
Allerdings ist es zu empfehlen, den Debug Modus wieder auszuschalten, wenn man ihn nicht mehr braucht.
Ja, das passt.
Jetzt starte den Server mit der neuen amx Datei von deinem Code und mache nochmal das, was den Fehler von crashdetect im Server Log erzeugt hat. Dann steht im Server Log bei der Fehlermeldung die Fehlerzeile dabei.
Die 1 nach 233,233, zum Beispiel (letzter Parameter von CreateVehicle) ist die Respawn-Zeit. Die ist bei dir auf 1 Sekunde gestellt.
Erhöhe das, oder setze es zu -1 (nie).
Wenn das das einzige Vorkommen von SetVehicleToRespawn ist, dann zeig mal wie du so ein Fahrzeug erstellst, welches respawnt wird, nachdem man es verlässt.
Den Befehl hast du da ja nicht eingegeben, oder?
Du greifst auf ein Array mit -1 zu als Index, das geht nicht.
Erstelle im pawno Order mal eine Datei pawn.cfg und schreibe dort "-d3" rein, dann kompiliere deinen Code mit der pawno.exe geöffnet neu und lass dir den Fehler nochmal ausgeben, dann steht die Zeile im Code dabei, die das verursacht.
Dann schau mal ob du was bei OnPlayerExitVehicle bzw. OnPlayerStateChange dazu findest.
Mit dem Aussteigen aus dem Fahrzeug hat der Befehl nichts zu tun.
Respawnen die Fahrzeuge direkt nach dem Aussteigen, oder etwas zeitverzögert?
zu:
Und dann das OnFilterScriptInit und OnFilterScriptExit löschen, und das hier bei OnGameModeInit einfügen:
//------------------------------Tachozubehör------------------------------------------------
for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
{
Autozustand[playerid] = TextDrawCreate(500.000000,402.000000,"Autohp:");
TextDrawLetterSize(Autozustand[playerid],0.500000,1.200000);
TextDrawColor(Autozustand[playerid], -1);
TextDrawSetOutline(Autozustand[playerid], 1);
TextDrawUseBox(Autozustand[playerid],1);
Tachoautomarke[playerid] = TextDrawCreate(500.000000,417.000000,"Marke:");
TextDrawLetterSize(Tachoautomarke[playerid], 0.500000, 1.200000);
TextDrawColor(Tachoautomarke[playerid], -1);
TextDrawSetOutline(Tachoautomarke[playerid], 1);
TextDrawUseBox(Tachoautomarke[playerid],1);
}
//-------------------------------------Tacho------------------------------------------------
Tachospeedanzeige[Tachoanzeige][0] = TextDrawCreate(440.000000,400.000000,"~b~10");
Tachospeedanzeige[Tachoanzeige][1] = TextDrawCreate(430.000000,380.000000,"~b~20");
Tachospeedanzeige[Tachoanzeige][2] = TextDrawCreate(430.000000,360.000000,"~b~30");
Tachospeedanzeige[Tachoanzeige][3] = TextDrawCreate(432.000000,340.000000,"~b~40");
Tachospeedanzeige[Tachoanzeige][4] = TextDrawCreate(440.000000,320.000000,"~b~50");
Tachospeedanzeige[Tachoanzeige][5] = TextDrawCreate(460.000000,300.000000,"~b~60");
Tachospeedanzeige[Tachoanzeige][6] = TextDrawCreate(489.000000,290.000000,"~b~70");
Tachospeedanzeige[Tachoanzeige][7] = TextDrawCreate(530.000000,291.000000,"~b~80");
Tachospeedanzeige[Tachoanzeige][8] = TextDrawCreate(562.000000,304.000000,"~b~90");
Tachospeedanzeige[Tachoanzeige][9] = TextDrawCreate(580.000000,320.000000,"~b~100");
Tachospeedanzeige[Tachoanzeige][10] = TextDrawCreate(593.000000,340.000000,"~b~110");
Tachospeedanzeige[Tachoanzeige][11] = TextDrawCreate(600.000000,360.000000,"~b~120");
Tachospeedanzeige[Tachoanzeige][12] = TextDrawCreate(602.000000,379.000000,"~b~130");
for(new i; i < 13; i++)
{
TextDrawSetShadow(Tachospeedanzeige[Tachoanzeige][i], 1);
TextDrawSetOutline(Tachospeedanzeige[Tachoanzeige][i], 0);
}
//------------------------------Tank und Motorsystem-------------------------------------------------
ManualVehicleEngineAndLights();
for (new i=0; i< MAX_VEHICLES; i++)
{
GetVehicleParamsEx(i,motor,lichter,objektiv,boot,bonnet,doors,alarm);
SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lichter,objektiv,boot,bonnet,doors,alarm);
Motor[i] = false;
}
Alles anzeigen
Hast du Filterscripts geladen? Wenn ja, prüfe diese alle, ob dort ganz unten in OnPlayerCommandText ein return 0 oder 1 steht. Falls dort eines mit return 1 als letztes ganz unten ist, ändere das zu 0.
Falls du keine Filterscripts am laufen hast, dann poste bitte mal den ganzen Gamemode hier.
Das kannst du dann mit TextDrawShowForPlayer regeln. Aber da der Text des Textdraws sowie das Design für alle Spieler die es sehen (=Admins) gleich ist, reicht ein globales Textdraw.
Du kannst es natürlich auch mit den PlayerTextDraws machen, aber da hast du eben immer diese Schleifen, damit es für alle gleich ist. Außer du willst irgendwann den Text vielleicht für einen Admin alleine ändern, dann musst du die PlayerTextDraws nutzen. Vom Prinzip her ist es egal, das kannst du machen wie du willst.
Steht es in einem Filterscript oder im Gamemode?