Beiträge von SaschaMois

    Hi.


    Ich hab da gerade ein Problem beim einzahlen von Steuern.



    Jedes mal wenn "PaySteuern" aufgerufen wird bekomme ich folgenden Fehler:


    Zitat

    System.InvalidCastException: Specified cast is not valid.
    at LRP.StaatControl.PaySteuern (System.Int32 Amount) [0x0010f] in <86ddced5389d470b80088194682fbbb6>:0


    Edit: Sorry Leute hab den Fehler gefunden. Hatte das Feld in der Datenbank auf Float gestellt und immer nur den (int) oder (double) cast probiert. Ziemlich bescheuert wenn man bedenkt das ich das Problem seit gestern irgendwann habe xD

    Ich weiß leider nicht die Lösung für dein Problem aber ich kann dir sagen das es ziemlich sicher nicht an dem "conn.Open();" liegt. Ich habe das gleiche Tutorial verwendet und bei mir funktioniert die Verbindung einwandfrei.

    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.

    Du kannst auch einen CylinderColShape erzeugen und dann bekommst du eine eigene Funktion wenn ein Spieler den Betritt.
    Siehe: https://wiki.gtanet.work/index…le=createCylinderColShape


    Oder wenn du einen Command nur in nem bestimmten umkreis verwenden möchtest kannst du das zb so machen:


    Du könntest aber auch die Distanz vom Spieler zur Position abfragen und je nachdem wie Hoch die dann ist den Befehl erlauben oder nicht:



    Also ich hab´s jetzt mit dem Dictionary gemacht.
    Hauptsächlich aus dem Grund weil ich dann folgendes machen kann:

    C
    if(Houses.ContainsKey(id)) 
    {
        // existiert
    }


    @TutNichts Wieso ich speziell ne Liste gemacht hab oder warum ich das überhaupt irgndwo speichern möchte?
    Der ursprüngliche Hauptgrund für die Liste war das ich dann die TextLabels und Marker gut löschen kann wenn das Haus aktualisiert wird. Des weiteren habe ich angenommen das es eventuell etwas schneller geht als wenn der jedes mal wenn ich irgendwas mit dem Haus mache das alles von der Datenbank abfragen muss.

    Also ca so:

    C
    Dictionary<int, House> Houses = new Dictionary<int, House>();


    Wie spreche ich dann beim hinzufügen von einem neuen Haus die Objekte in der "House" Klasse an?


    Aktuell funktionierts ja so:

    C
    House haus = new House(); 
    haus.name = "blabla"; 
    haus.preis = 5000; 
    Haeuser.Add(haus);


    // Edit: Ok habs :D
    Danke das Dictionary ist wirklich praktischer :)

    Hey


    Ich hab eine Liste gemacht in der beim Serverstart alle Häuser geladen werden.

    C
    public static List<House> Haeuser = new List<House>();



    Die Klasse "House" sieht wie folgt aus:


    Wenn ich nun das Haus update und es daher neu Laden möchte hab ich momentan folgendes gemacht um das "alte" Haus zu löschen:

    C
    foreach (var hous in Haeuser)
                {
                    if (hous.dbid == id)
                    {
                        API.shared.deleteEntity(hous.label);
                        API.shared.deleteEntity(hous.marker); 
                        Haeuser.Remove(hous); 
                    }
                }


    Gibt es nun irgend eine "einfachere" Möglichkeit das Item aus der Liste zu bekommen ohne das ich mit foreach alle Häuser durchlaufen muss? Das ich vielleicht speziell nach der "dbid" suchen kann oderso?

    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.

    Hm Okay, wenn man um diese Methode nich rum kommt habe das hier geschrieben:


    Code
    [Command("adminabfrage")]
    public void onlyadmin(Client sender)
    {
        string selectadmin = "SELECT * FROM admin WHERE name = '" + sender.name + "'";
        DataTable result = API.exported.database.executeQueryWithResult(selectadmin);
        if (result.Rows.Count != 0)
        {
            API.sendChatMessageToPlayer(sender, result.Rows[0]["admin"].ToString());
        }
    }

    Normalerweise sollte er bei dem Befehl das Admin level ausgeben kommen allerdings errors, was hab ich falsch gemacht?



    Code
    [14:28:21] Starting auslesen
    [14:28:21] Error/warning while compiling script!
    [14:28:21] Error (CS1518) at 23: Klasse, Delegat, Enumeration, Schnittstelle oder Struktur erwartet.
    [14:28:21] Error (CS1001) at 30: Bezeichner erwartet
    [14:28:21] Error (CS1001) at 30: Bezeichner erwartet
    [14:28:21] Error (CS1022) at 31: Typ- oder Namespacedefinition oder Dateiende erwartet.
    [14:28:22] Error (CS1514) at 11: { erwartet.
    [14:28:22] Error (CS1513) at 11: } erwartet.
    [14:28:22] ERROR STARTING RESOURCE auslesen

    Du musst "SELECT admin FROM spieler ...." oder heißt deine Tabelle "admin" ?