Erledigt Danke euch trzd
Sag doch bitte die Lösung des Problemes, damit andere die ähnliche oder den gleichen Fehler einen Lösungsansatz haben.
Erledigt Danke euch trzd
Sag doch bitte die Lösung des Problemes, damit andere die ähnliche oder den gleichen Fehler einen Lösungsansatz haben.
Ganz ehrlich. Hör(t) auf mit dem Copy & Pasten. Wie du schon gesagt hast, hast du nicht wirklich eine Ahnung von C#.
Dann ist es sicherlich nicht die beste Idee direkt von einem Script zu kopieren, welches von einem mit Erfahrung Programmiert wurde. Du hast wahrscheinlich zum teil keine Ahnung was du das kopiert hast.
Es kommt ganz darauf an wie du die Daten Speichern willst. Hierzu gibt es genügend Beispiele im GTA:N Forum:
Kannst es zb von dem her herleiten: https://forum.gtanet.work/inde…veweapons.1678/#post-9453 (ist glaub ich Lokal Gespeichert ohne Datenbank)
Wenn du mit Datenbank arbeiten willst, solltest du dich erstmal über Datenbanken und deren Verbindungsmöglichkeiten mit C# informieren.
getEntityData/setEntityData haben mal 0 mit einer Datebank zu tun.
Was musst du wohl in SAMP machen? Die Daten landen da auch nicht einfach in einer Variable.
Du musst natürlich erst das Adminlevel aus der Datenbank mittels SELECT holen und danach mittels setEntityData die Variable "auf" dem Spieler Speichern.
Genauso bei deinem 2ten Befehl. Ja du hast den Player in der Datenbank geupdated, das hat aber keinerlei Auswirkung auf Ingame.
Das sind immernoch 2 Verschiedene Sachen die in keiner Weise Automatisch Synchronisiert sind.
Nom Nom Nom
Der Pfad der Page des Browsers muss der gleiche wie der in der Meta sein. Ich weiß, es ist komisch. Aber selbst wenn die js. Datei bspw. in "clientside" liegt, muss man vom root Path der meta.xml ausgehen. CEF ist eben noch nicht perfekt
Wenn man im HTML File ein JS Lokales JS File inkludiert kann man wunderbar ./ als Pfad verwenden. Man muss dann nicht immer vom root Verzeichnis aus gehen.
@toor ich glaube es wird Zeit, du musst ein Register/Login/Account System Tutorial machen. :p
Da würden mehr Fragen aufkommen, da die meisten Nichtmal einen Plan von C# haben
Was willst du mit diesem playerid anstellen??
forward sekunde();
public sekunde()
{
new string[128];
for(new i=0; i<MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i))continue;
if(!IsPlayerInAnyVehicle(i))continue;
format(string,sizeof(string),"%ikm/h", getPlayerSpeed(i));
PlayerTextDrawSetString(i,Textdraw9[i],string);
}
return 1;
}
Alles anzeigen
Ich denke ResourceCall wird zu dem File Schicken wo der Browser erstellt wurde. Habs noch nie getestet. Kann auch sein das es an alle Files "Broadcasted" wird.
Prinzipiell muss dir als erstes mal klar werden das CEF JS != Client Side JS ist. Ich sag das jetzt einfach mal im voraus um allfällige spätere Verwirrungen vorzubeugen.
---
Nun denn. Ich nehme an du hast es bereits hingekriegt im CEF Browser dein html File anzuzeigen.
In der HTML Datei machst du nun einen Script Teil mit einer Funktion. zb Login.
Auf den Login Button machst du ein click Event. (JQuery ist nicht standardmäßig inkludiert!)
In der Login Funktion hollst du dir wie beim Normalen Browser via Val die Input Boxen Values.
Dann kannst du mittels resourceCall die Variablen an dein Client Side JS übergeben:
In deinem Client Side JS File erstellst du nun die Funktion die du beim ResourceCall angegeben hast. (In diesem Fall ServerLogin)
In diesem machst du eigentlich nichts anderes als das ganze zum Server zu schicken:
function ServerLogin(username, password) {
API.triggerServerEvent("login", username, password);
}
Bei deinem onClientEventTrigger in C# fragst du nun ab ob das Event "login" heisst.
Wenn das der fall ist kannst du nun mit dem User namen und Passwort das Login machen.
Dann kannst du mittels TriggerClientEvent wieder Daten zurück an den Client Schicken. Siehe hierzu: onServerEventTrigger (im Client Side JS!)
Du kannst nun von dort aus wieder Daten an den CEF Browser schicken.
Dies Passiert mit
Das Event(funktion) muss natürlich im CEF Browser Existieren, damit das zurückgeben Funktioniert.
Wird wohl Zeit für Tutorials hier
Bitte fängt nicht an zu versuchen Sachen aus PAWN in C# zu übernehmen.
Nicht nur das es völlig dumm ist, sondern ihr verspielt damit auch alle Vorteile die C# hat.
So habt ihr im nachhinein ein Script was lauffähig ist aber zb. Performancetechnisch fürn Arsch ist. (PAWN ist singel Thread, C# ist Multi-Threading fähig)
PAWN ist nicht C#
Stellt lieber fragen wie man das Problem in C# angehen könnte.
Mittels strmid die ersten 2 Buchstaben des Namens extrahieren und dannach eine Random Zahl mit random erstellen.
Den String Zusammenfügen und voila, ein Nummernschild.
Windows 10 Home
Windows 10 Pro
Einfach zu schreiben Windows 10 ist beste ohne irgendwelche Begründung ist ja wohl das dümmste überhaupt.
---
Zum Thema:
Es kommt ganz darauf an darauf machen willst. Wenn es nur zum zocken ist kommt es auch auf die Spieler drauf an. (Eig. nur um das Alter)
In der Regel ist die aktuellste Version zu raten.
Gerade bei älteren Spielen oder Programme die älter sind rate ich aber aus Kompatibilitätsgründen zu Windows 7. Windows 8 lass ich Persönlich ganz aus dem Schneider.
Wenn du mit aktuellen Spielen unterwegs bist, ist Windows 10 Performance technisch wohl die beste Wahl.
Weil in deinem OnPlayerKeyStateChange wahrscheinlich ein printf steht
Denke musst das TextDrawAlignment auf rechts stellen.