Beiträge von Goldkiller

    Den Kilometerstand muss man ja auch nicht häufig aktualisieren. Selbst alle 10 Sekunden reicht.


    { Berechnung für neuen Kilometerstand
    - Position des Fahrzeuges auslesen
    - Aktuelle Position benutzen und Distanz zur alten Positon berechnen
    - Kilometerstand um Distanz erhöhen
    - Aktuelle Position in alte Position schieben.


    Alle aber in bezug auf die vehicleid !
    }


    Kilometerstand würde ich persönlich aber nicht als Einheit ( Km ) / Variablenamen nutzen.
    Ein Meterstand ist viel einfach zu handhaben. Denn Meter legt man doch viele schneller zurück als Kilometer. Die Distanz zwischen zwei Punkten berechnest du auch viel einfacher in Metern anstatt in Kilometer. Die Umrechnung von den Meterstand in Kilometer für die Ausgabe sollte auch kein Problem sein.

    Genau das was dort steht:

    Zitat

    Failed to exeute query. You have an error in your SQL syntax;


    Dein SQL Kommando enthält Fehler.


    Je nachdem welches Plugin du suchst,die bieten alle eine debug Modus an der alles mitloggt. Somit auch die Querys die ausgeführt werden sollen. Mach das mal an und schau in die Log dazu.

    So ganz leicht ist es nicht.
    Du solltest das Geld "wechseln" von Imaginär zum richtig Geld beim betreten eines Casinos. Denn nur mit dem richtigen Geld können die Automaten und Co. benutzt werden.
    Beim Verlassen des Casinos solltest du dann das Geld wieder zurück wechseln. Allerdings funktioniert doch bei dir dann zZt uch kein Burger Shot,Ammu Nation,Pay n Spray usw , richtig ?
    Das Geld solltest du doch zumindest syncronisieren.


    Andere Möglichkeit wäre die Casinos neu zu scripten. Halte ich aber für viel zu viel Aufwand. Genau so alles Andere.


    enum renum_gerichte
    {
    GName[24],
    GPreis,
    Float:GHealth
    };


    // new usw
    Gerichte[][][renum_gerichte] =
    {
    {
    {"Kleiner Burger", 7, 13.0},
    {"Großer Burger", 16, 23.0}
    },
    {
    {"Kleines Hühnchen", 9, 16.0},
    {"Großes Hühnchen", 23, 31.0}
    }
    };
    Das geht nicht,weil du maximal 3 Dimensionen haben kannst. Bei dir wären es jetzt aber 4.
    Gerichte[][][GName][24]
    Du musst dir eine Andere Struktur überlegen.

    Ok.. danke :D jedoch brauche ich glaube ich schon die schleife + IsPlayerInRangeOfPoint oder? Weil es wird ja noch mehr "Flugrouten" geben^^
    Mfg


    Dann brauchst es trotzdem nicht. Du kannst doch einfach eine Variable benutzten für die Flugrouten,die der Spiele benutzt.
    if( Route[playerid] == 1 ) {
    }
    else if( Route[playerid] == 2 ) {
    ...
    }

    Checkpoint's kann man auch ändern bei den meisten Gamemode's ( über /navi meistens ) und daher ist es sinnvoll - denke ich - mit IsPlayerInRangeOfPoint.


    Ja klar, wie wird er dann noch gleich den Checkpoint der Flugroute betreten ?
    Wenn ein Spieler irgendwo eine Checkpoint-Route hat, sollte man alle Funktionen sperren,die einen neuen Checkpoint setzen können.

    Hä ?
    Es geht doch gar nicht um die PVar Funktionen. PVars sind doch nicht das gleiche wie richtige Variablen.
    Folgendes ist gemeint:

    new text[] = "World!";
    ScmEx(playerid,-1,"Hello $text");

    Es geht jetzt um text.


    Die Ganze Thematik hier ( PHP Like ) ist doch nichts Ganzes,wenn man nur die PVars benutzten kann und immer die PVars bei dem Spieler
    ausgelesen wird,der als 1. Parameter angegeben wird.

    Da du ja geschrieben hast,dass es sich an meinem Tutorial orientiert ( PM :(
    - Du brauchst definitiv kein Schleife unter OnPlayerEnter(Race)Checkpoint ( Du weisst doch anhand von Nebenjob[playerid][p_Checkpoint] an welchem Checkpoint man ist )
    - Du brauchst keinen IsPlayerInRangeOfPoint Abfrage ( Wieso auch ? Er hat den Checkpoint betreten , wo sonst soll er sein ? )


    Anstatt
    Nebenjob[playerid][p_Checkpoint]+1
    kannst du auch
    playercp + 1 machen.

    Man kann das hier nur schlecht mit dem SSCANF Plugin vergleichen. Bei SSCANF muss man ja selber angeben,was für einen Typ die Variable hat.
    Auch wird dort die Variablen als Referenz übergeben.
    Die Variablen als Referenz übergeben bricht den PHP Aspekt. Wir landen dann wieder bei format oder sprintf ( sprintf hat irgendwer mal iwo gepostet ).
    Wenn die Variable nicht als Referenz übergeben wird,wie kommt er dann an sie herran. Wie gesagt,der Variablenname existiert im Kompilierten-Code nicht mehr.


    Eine while Schleife macht hier viel mehr Sinn als for.Auf die Idee eine for-Schleife zu nutzen würde ich von der Logik her schon nie kommen :-O.

    Die Umsetzung ist wirklich schlecht :/ .
    "Es können nur 4 Variablen ausgelesen werden."
    Sieht man auch sofort am Code.Du hast den identischen Ablauf ineinander verschachtelt anstatt es 1x logisch aufzubauen mit einer Schleife.
    Was mach ich eigentlich,wenn ich wirklich mal ein $-Zeichen im Text haben möchte? Solltest zumindest ein Doppel-$ erlauben ( $$ ).
    "Du hast $Bank$$ auf deinem Bankkonto" -> "Du hast 1000$ auf deinem Bankkonto"


    Die Idee selber find ich gut.
    Die Umsetzung allerdings von PVars zu trennen um dann direkt mit Variablen zu arbeiten dürfte nur schwer bis gar nicht Umsetzbar sein.
    Selbst wenn du wüsstest ob die Variable ein String ist oder nicht,wie kommst du an diese Variable ran ? Nach dem Kompilieren sind die Variablen nicht mehr mit ihren Namen vorhanden.

    Du solltest dir nochmal anschauen wie Arrays funktionieren.


    HausInnenraum[ X ][ Y ]
    X = Welche Zahl du dort einsetzt,musst du wissen.

    {"Katie Zimmer",271.884979,306.631988,999.148437,0.0,1500}, X = 0
    {"Helena Zimmer",291.282989,310.031982,999.148437,0.0,2350}, X = 1
    {"CJ Haus",2496.049804,-1695.238159,1014.742187,0.0,4555} X = 2


    Y = irname,irx,iry,irz,ira,interior oder irpreis

    Du wirst doch wohl selber wissen,was eine Variable ist ;).


    Um zum Beispiel auf die 2350$ bei Helena Zimmer zu kommen würdest du folgendes machen:


    HausInnenraum[1][irpreis]
    Welchen Index du in der 1. Dimension verwendest ( 1 in diesem Beispiel ) musst du wissen. Irgendwie wirst du ja sicherlich im Script auf das Haus schließen können.

    Du hast nur eine Struktur gepostet.
    Die alleine bringt nichts.Die Struktur ( enum ) musst du irgendwo auch benutzen ( Variable ). Wenn du dann die Variable hast,kannst du zb interior als Index verwenden.

    Wird definitiv nicht bei Jedem funktionieren.


    1. Ordner müssen vorhanden sein,sonst funktioniert es nicht. ( Pkt 4 )
    2. strins(Line,"\r\n",strlen(Line),50); <- die 50 könnte zu Fehlern führen.Entweder 200 oder sizeof(Line)
    3. new File:datei2=fopen("tmp.tmp",io_append); <- Datei muss vorher existieren damit io_append funktioniert.Davon hast du nichts erwähnt. Du lässt sie aber löschen in Zeile 15
    4. fremove("/Accounts/Event/tmp.tmp"); <- Wie entsteht dieser Dateipfad ?


    Zusätzlich solltest du prüfen ob fopen überhaupt funktioniert.

    Vom Prinzip her hast du auch recht.
    Das Problem sind mMn nicht die User die C&P Lösungen fordern,sondern diejenigen, die diese Lösungen posten. Sich darüber aufzuregen bringt daher auch nichts.
    Ich poste daher einfach keine fertigen Lösungen mehr in die Threads sondern zeige nur wo die Fehler liegen und wie man sie behebt.

    Du verwechselst wohl strcat mit format.
    strcat:

    Zitat

    This function concatenates (joins together) two strings into the destination reference.
    new string[40] = "Hello";
    strcat(string, " World!");

    // The string is now 'Hello World!'


    Es fügt also "nur" einen String an einen Anderen an.


    Was du aber möchtest,ist eher format.
    Ein Tutorial gibt es dazu sogar hier im Forum.