Okay aber die Frage wäre dann immer noch, wie schaffe ich es, das der User mit h wieder ins Fahrzeug kommt?
Ich wüsste nicht, dass das geht.
Okay aber die Frage wäre dann immer noch, wie schaffe ich es, das der User mit h wieder ins Fahrzeug kommt?
Ich wüsste nicht, dass das geht.
Nutze für dieses Thema bitte den separaten Thread, da es sich bei dem System um keine kleine Frage handelt:
Tankvolumen und Treibstoff an Fahrzeugen zuordnen
Poste den Code dort bitte erneut.
Mein kleines Problem besteht noch
Bereits versucht, allerdings gibt es erst gar keine Codierung namens ANSI.
Dann habe ich keine Idee mehr, sorry, sondern nur die Vermutung, dass es mit VSC in diesem Fall nicht geht.
VSC übernimmt anscheinend die Codierung gar nicht, trotz Umstellung aller Dateien in Notepad++. Schade...
Du könntest mal noch das hier (bei File Encoding) versuchen:
https://code.visualstudio.com/…cs#_file-encoding-support
Leider nicht, war auch schon bereits auf diversen Seiten, unter anderem dieser.
Wäre es eine Option, die Datei in korrekter Codierung mit Notepad++ zu speichern und dann mit VSC zu kompilieren?
Oder eine neue Datei mit der pawno.exe anzulegen, und diese dann mit VSC zu bearbeiten?
Bei OnPlayerCommandText ganz unten, anstelle dem dortigen return 0; das return SendClientMessage(...);
Das reicht doch nicht oder?
Nein, das reicht nicht.
Ich würde prinzipiell so vorgehen, dass du zuerst eine Schleife durch alle Fahrzeuge machst, dann darin den Tank jeweils anpasst, und danach dann die Schleife machst, die durch alle Spieler geht, um die Textdraws pro Spieler entsprechend des Fahrzeugs, in dem der Spieler ist, anzupassen.
Danke. Du weißt nicht zufällig, wie ich ANSI VSC hinzufüge?
Ich nutze VSC nicht, aber vielleicht hilft das? https://stackoverflow.com/ques…m_campaign=google_rich_qa
UTF-8, aber die Umlaute im Spiel werden als komische Zeichen dargestellt.
Laut diesem Thread, müsste es ANSI sein: http://forum.sa-mp.com/showthread.php?t=600766
serverseitigen TextDraws dort hin verschieben kann, wo er will.
Nutze PlayerTextDraws.
Um die Position zu ändern, lösche das Textdraw, und erstelle es wieder an der neuen Position.
Probleme wird das nicht geben, sofern du nicht massenweise serverseitige Textdraws hast.
Die Positionsdaten kannst du dann auch in den Spielerstatistiken speichern und nach dem Login laden, damit das Textdraw entsprechend wieder an der richtigen Position erstellt wird.
Der Tank geht noch im negativen Bereich,
if-Abfrage ist hier das Stichwort.
wie funktioniert das jetzt das ich ab checke ob der Motor an ist
http://wiki.sa-mp.com/wiki/GetVehicleParamsEx
und wenn auch keiner im Fahrzeug ist dann soll ja der Tank auch leer gehen wenn der Motor an ist
Dann muss deine Schleife über alle Fahrzeuge gehen, anstatt über alle Spieler.
Kann ich auch abfragen wenn es bei 0 Angelangt ist Motor aus
Natürlich.
Und wie teile ich jetzt z.b diesem Auto Autohausauto1[ 1 ] Beispiel 10 Liter zu am Anfang.
Der obige Code, den ich dir für OnPlayerStateChange gegeben habe, nimmt den Default-Wert aus vehDefaultData.
Wenn du diesen für das Autohausauto nicht nutzen willst, dann direkt nach der Erstellung:
vehData[Autohausauto[1]][e_fuel] = 10;
Und wie speichere ich das ganze ab damit wenn ein Server Neustart kommt die alten Literzahlen geladen werden
Dazu benötigst du eine Tabelle in deiner Datenbank, die alle Fahrzeuge beinhaltet. Außerdem müssen die Fahrzeuge dann auch wieder aus dieser Tabelle geladen werden, und nicht direkt mit CreateVehicle erstellt werden, sonst passt die Position ja auch nicht mehr.
Nutze diese Funktion, diese ist fast gleich wie die fdeleteline, nur angepasst.
stock fremoveline(filename[], line[]) //Original from Jefff, edited by Jeffry.
{
new string[256], str[256], File:handle, File:ftmp;
handle = fopen(filename,io_read);
format(str,sizeof(str),"%s.part",filename);
ftmp = fopen(str,io_write);
while(fread(handle,string))
{
new txt[256];
txt = string;
for(new i = 0, j = strlen(txt); i < j; i++) if(txt[i] == '\n' || txt[i] == '\r') txt[i] = '\0';
if(strcmp(line, txt))
{
fwrite(ftmp,string);
}
}
fclose(handle);
fclose(ftmp);
handle = fopen(filename,io_write);
ftmp = fopen(str,io_read);
while(fread(ftmp,string))
fwrite(handle,string);
fclose(handle);
fclose(ftmp);
return fremove(str);
}
Diese Funktion funktioniert, ich habe diese aus meinem alten Gamemode genommen.
Sollte diese bei dir nur die Datei löschen, dann fehlt dir eventuell die Berechtigung, eine .part Datei zu schreiben (benenne das gegebenenfalls mal um, oder prüfe die Berechtigungen des Users, der den Server ausführt).
Aber leider gibt er es nicht richtig aus nur die 5 und das andere bleibt 0..
Nutze beim zweiten p ein großes "P" und füge den zweiten Delimiter " ein (mit \"):
if(!sscanf(loadstr, "p<\">'#time''value='P<:\">ii", mapstunde, mapminute))
Habe das jetzt nicht so ganz verstanden mit dem Tank zuordnen woher weißt ich das genau das Auto gemeint ist
Folgendes bei OnPlayerStateChange einfügen:
if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(vehData[vid][e_fuel] == -1)
{
new idx = GetVehicleModel(vehicleid) - 400;
vehData[vehicleid][e_fuel] = vehDefaultData[idx][e_maxFuel];
}
}
Und bei OnGameModeInit:
for(new i = 0; i < sizeof(vehData); i++) vehData[i][e_fuel] = -1;
In deinem Timer dann:
vehData[vehicleid][e_fuel]--;
Und das Textdraw aktualisieren.
Er gibt mir alle Befehle bis /explode aus:
Das Problem ist diese Zeile:
format(string, sizeof(string), "AdmCMD: %s wurde gesprengt von %s",giveplayer, sendername);
Hier erkennt das Tool "CMD:" als Befehl.
Ich müsste da noch die eine oder andere Plausi-Prüfung mit aufnehmen, das werde ich mir bei Gelegenheit anschauen.
Für eine schnelle Lösung in deinem Fall:
Ersetze mit "STRG+H" alle "AdmCMD:" mit "AdmCxD:", und lasse dann das Tool drüber laufen. Dann klappt die Ausgabe.
Nein, dieses Callback gibt es bei ocmd nicht, du musst das entfernen, ebenso muss die include für ZCMD und das Plugin dazu entfernt werden, sonst klappt es weiterhin nicht.
Das Tool hat anscheinend Probleme Befehle mit mehreren "Sschreibformen" auszulesen
Wenn ich nur diesen Code, den du geschickt hast, in eine .pwn Datei packe und das Tool ausführe, funktioniert alles.
Sicher, dass es an der Stelle liegt?
Moin, habe nach wie vor Probleme damit... ich hab immernoch sehr viele ganz normale if(strcmp Befehle, muss ich die wirklich alle umschreiben?
Meine Abfrage sieht momentan so aus:
Wenn du zcmd unbedingt nutzen willst, dann ja.
Andernfalls empfehle ich dir, ocmd zu nutzen, damit solltest du das Problem nicht haben.
Sorry für die späte Antwort, ich war die ganze Woche geschäftlich auf Reise.
Besteht das Problem noch, oder konntest du inzwischen am System weiterarbeiten?