Beiträge von root

    Ich denke vorallem jetzt im Entwicklungsbereich von SAMP/GTA:N wird viel Performance einfach vom Programmierer/Scripter zunichte gemacht.
    An sich kann man auch mit einem File-System ne angemessene Geschwindigkeit erreichen, wenn man weiss wie.

    Aufjedenfall ein NoSQL System oder MySQL.
    Dateibasierte sind naja, für kleine Sachen reichts. Gerade wenn man aber noch ein UCP hat etc. wird es einfach Unbrauchbar.
    Zudem nix ist schneller als ne Memory Table :D:thumbup:

    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.

    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 :whistling:

    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.

    Was willst du mit diesem playerid anstellen?? :D


    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.


    • Ich sehe bei deinem HTML kein JQuery includiert. Trotzdem benutzt du dieses.
    • Was genau geht denn nicht? (Login wird nicht angezeigt / Button geht nicht etc...)

    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:

    JavaScript
    resourceCall("ServerLogin", username+"", password+"");


    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:

    JavaScript
    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


    JavaScript
    (deine Browser Variable).call("FUNKTIONNAME", paramter1, paramter2, parameterN);

    Das Event(funktion) muss natürlich im CEF Browser Existieren, damit das zurückgeben Funktioniert.


    Wird wohl Zeit für Tutorials hier :D

    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.

    Da haben wir wieder ein so-called Dynamic System :D


    ---


    Kannst es so machen:

    Code
    if(PlayerInfo[playerid][pPhousekey] != -1 && strcmp(playername, HouseInfo[PlayerInfo[playerid][pPhousekey]][hOwner], true) == 0 && PlayerInfo[playerid][pPhousekey2] != -1)

    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.