Clientside Spielerdaten Abrufen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hi


    Ich möchte eine Spielervariable in Javascript abrufen.
    Ich hab da jetzt folgendes stehen:

    JavaScript
    API.onServerEventTrigger.connect(function (name, args) {
        if(name == "show_bank") {
    		// Cef anzeigen...
    		var kto = API.getEntitySyncedData("BankMoney"); 
    		resourceCall("setKtoStand", kto); 
    	}
    });

    mir Fehlt jetzt nur bei "getEntitySyncedData" der Spieler.

  • Also bei mir sieht die JavaScript datei jetzt so aus:

    JavaScript
    var res = API.getScreenResolution();
    cefBank = API.createCefBrowser(res.Width, res.Height);
    API.waitUntilCefBrowserInit(cefBank); 
    API.setCefBrowserPosition(cefBank, 0, 0); 
    API.loadPageCefBrowser(cefBank, "Client/html/bank_main.html");
    API.showCursor(true); 
    API.setCanOpenChat(false);  
    API.sleep(600); 
    var kto = API.getEntitySyncedData(API.getLocalPlayer(), "BankMoney"); 
    cefBank.call("setKtoStand", kto);


    das "API.sleep" hab ich hinzugefügt nachdem der erste versuch nicht geklappt hat.


    Die HTML Datei beinhaltet folgendes:


    Ich bekomm leider immer noch nur "Ladefehler" angezeigt.

  • Ich hatte ähnliche Probleme.


    Bei mir war das das Login/Register System. Ich habe mir da eine <From> mit HTML anzeigen lassen und durch Button-Klicks Javascript Funktionen aufgerufen, die wiederum Client-Side Funktionen im Script ausführen.


    Bei mir ist oftmals jedoch gar nichts passiert.


    Das Problem habe ich gelöst, indem ich mich streng an die HTML vorgaben gehalten habe.


    Also meine Frage: Wie genau ist deine HTML-Datei aufgebaut?
    Sie müsste so aufgebaut sein:



    Anschließend ging es bei mir wunderbar.


    Außerdem habe ich noch Probleme mit den Parametern gehabt, die ich an das Script übergeben habe.


    So musste ich Username und Passwort an das Script übergeben, um dann eine Datenbank abfrage zu machen:


    JavaScript
    var Username = document.getElementById("username").value;
    var Password = document.getElementById("password").value;
    ressourceCall function(Username, Password);

    Damit gab es komischerweise Probleme. Habe es geändert in:



    JavaScript
    var Username = document.getElementById("username");
    var Password = document.getElementById("password");
    
    
    ressourceCall function(Username.value, Password.value);
  • @Simon: Vielen Dank ich werd´s dann mal versuchen. Hab´s zwar schon hinbekommen das mein Kontostand im Fenster richtig angezeigt wird aber beim Abheben/Einzahlen Button passiert aktuell noch gar nichts. Muss das Textfeld und der Button von dem das Javascript bei "onclick" Aufgerufen wird unbedingt in einer Form stehen? Beim Login/Register funktionierts nämlich.

  • Es ist lange her, dass ich aktiv HTML gemacht habe, aber wenn ich mich recht erinnere, braucht man eine Form, damit mein klicken auf den Button auch etwas ausgelöst wird.


    Bin mir an dieser Stelle nicht sicher und lasse mich gerne korrigieren.


    Aber aufjedenfall schadet es nicht. Ich hatte wie bereits erwähnt genau dieses Problem, wie du es jetzt hast: es ist einfach gar nichts passiert. Bis ich die erwähnten Änderungen vorgenommen habe.


    Was ich auch gemacht habe: ich habe mir an geeigneten Stellen Debug Meldungen ausgegeben und nach und nach Code auskommentiert, umzu schauen ob überhaupt die Funktion aufgerufen wird.


    In der HTML Datei habe ich in den Javascript funktionen, die durch den Button-Klick aufgerufen werden, einfach mal alerts ausgegeben und dies im Browser getestet (alert bringt den client zum crashen).


    Du solltest ähnlich vorgehen, um zu schauen ob die Funktionen im Browser aufgerufen werden und um zu schauen ob inGame deine Clientside Funktionen im Script aufgerufen werden.