Beiträge von UncleSub

    Ich bin zwar verwundert, dass ich überhaupt so weit gelesen hab, doch das hat mich dann doch echt stutzig gemacht.


    News Reporter
    Die Aufgabe der News Reporter liegt darin, den Spielern von Next eLife auf dem aktuellen Stand zu halten.


    Das Forum sieht aus, wie naja...


    Alleine wegen der geklauten Vorstellung und wegen der wirklich schlechten gesamt Vorstellung: 0/10 für die Vorstellung


    3/10 für das Forum


    Den Server werde ich nicht und kann ich nicht (Server down) testen.


    3/20 Punkte.


    Nur als Tipp:
    Einen Server kann man nicht in zwei Wochen aufbauen. Auch wenn man an jeder Ecke ein GF-Edit bekommt, was schon einigermaßen spielfähig ist, muss man nicht damit direkt einen Server eröffnen. Denn es gibt GF-Edit Server, wie Sand am Meer.
    Wenn ihr ein Selfmade aufbauen wollt, solltet ihr nicht vorher nur aus Spaß einen Server mit GF starten. Das kommt hinterher nur schlecht an und macht mehr arbeit.
    Lasst euch einfach Zeit mit dem Projekt, bis alles läuft.


    Mfg,
    UncleSub

    Ja und wenn sie nicht in einem enum sind geht das dann auch irgendwie ?

    Nein jedenfalls nicht so "elegant". Aber wenn du die Variablen bei OnPlayerConnect setzt, musst du sie nicht auch bei OnPlayerDisconnect setzten, außer evtl. Variablen, dass der Spieler eingeloggt ist.

    Wären die Variablen in einem Enum, könntest du die Variablen ganz einfach in einer Schleife auf einen beliebigen Wert setzen.
    Deine gezeigten Variablen sind aber nicht in einem Enum.


    Bsp. bei Enumerations:



    for(new i = 0; i < sizeof(enum); i++)
    {
    enum[enumname:i] = 0;
    }


    Mfg,
    UncleSub

    Ganz einfache Sache. Du benutzt die Variable "strung[0]" vom Array "strung". Anders ausgedrückt, du hast irgendwo ein Array erstellt und benutzt davon nur eine Variable, die du formatieren möchtest. Dabei ist ein string in Pawn ein Array. Du könntest in "strung[0]" nur ein Character schreiben, wie z.B. "a".


    Du musst ein ganzes Array verwenden. Bsp.:

    new strung[32];
    format(strung, sizeof(strung), "-{05FF00}SF Airport");


    Mfg,
    UncleSub

    Du machst mit der Variable


    XML:file


    nichts mehr, nachdem sie deklariert wurde. Daher kommt das Warning. Ist nicht weiter schlimm, aber um es weg zu bekommen musst du mit der Variable etwas machen, wie z.B. etwas aus der geöffneten Datei laden, dann würde das Warning weg gehen.


    Also nachdem du die Datei geöffnet hast, solltest du daraus auch etwas laden.


    (bool:xml_get_bool(XML:handle, const xpath[]), xml_get_int(XML:handle, const xpath[]), Float:xml_get_float(XML:handle, const xpath[]), xml_get_string(XML:handle, const xpath[], result[], size = sizeof result))

    Außerdem zusätzlich zu der Lösung von T4125Gamer, musst du für die Angle das genau, wie bei der Position machen.


    Sprich:

    new Float:angle;
    GetPlayerFacingAngle(playerid, angle);
    dini_FloatSet(Spielerdatei,"Angle",angle);


    dini_IntSet(Spielerdatei,"Angle",GetPlayerFacingAngle(playerid,angle));


    Geht nicht.


    PullDown:
    Warum ich das hier noch Poste? Ganz einfach. Er hat in seinem Befehl das noch stehen und es ist falsch. Bevor er jetzt noch ein Thread für "Wieso speichert er die Angle nicht" aufmacht, verbesser ich es hier. ;)

    naja,wenn ich das so mache,dann fehlt mir aber wieder die Waffe


    Speicher die Waffe in einer Variable zwischen. Anders geht es nicht!


    ShowPlayerDialog(playerid,DIALOG_WAFFENMENU2,DIALOG_STYLE_INPUT,"Munitions -Abfrage","Bitte gebe die Mution an (100-1000)","Fertig","");
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,Farbe_DRot,"Bitte gebe die Munition an !");
    return 1;
    }
    if(muni<1||muni>1000) return SendClientMessage(playerid,Farbe_DRot,"Bitte gebe die Munition von 1-1000 an !");
    GivePlayerWeapon(playerid,waffe,muni);
    return 1;
    }


    Wenn du das hier hast, hast du unten, wenn du die Munition geben sollst immer noch als inputtext das vom vorherigen Dialog!


    Du zeigst einen Dialog dort erst und fragst direkt noch darunter die Eingabe des Spielers ab, obwohl du noch im alten Dialog steckst?


    Nach

    ShowPlayerDialog(playerid,DIALOG_WAFFENMENU2,DIALOG_STYLE_INPUT,"Munitions -Abfrage","Bitte gebe die Mution an (100-1000)","Fertig","");


    kommt erstmal nichts, dann


    if(dialogid == DIALOG_WAFFENMENU2)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,Farbe_DRot,"Bitte gebe die Munition an !");
    return 1;
    }
    if(muni<1||muni>1000) return SendClientMessage(playerid,Farbe_DRot,"Bitte gebe die Munition von 1-1000 an !");
    GivePlayerWeapon(playerid,waffe,muni);
    return 1;
    }

    INSERT fügt eine neue Zeile mit bestimmten Variablen in eine Tabelle ein.
    UPDATE "updatet" eine/mehrere Zeilen in einer Tabelle.


    Mfg,
    UncleSub

    aber ich möchte noch gerne wissen, ob wirklich vor und nach dem . oder _ mindestens 4 Zeichen sind

    Ich würde das Problem so angehen. Ich würde mit strfind zuerst einmal "." oder "_" suchen. Also in einer if Abfrage abfragen, ob strfind >= 4 zurückgibt. Dadurch hättest du schon mal geklärt, ob er "." oder "_" im Namen hat und ob vor dem "." "_" mind. 4 Zeichen sind. Dann würde ich anschließend nach dem String Ende suchen (Mit Startwert von der vorherigen Suche). (EOS, oder einfach \0). Diese Abfrage muss dann auch wieder >= 4 zurückgeben. Danach kannst du mit strlen die Länge vom String abfragen. Wenn diese Länge - dem vorherigen Wert (der Stelle von "." oder "_") >= 4 ist, ist mit dem Namen alles in Ordnung.


    Zahlen und Spezialzeichen sollen auch verboten sein, also /&%$§" usw..

    Einfach mit strfind jeweils alle Spezialzeichen abfragen (z.B. if(strfind(name, "$") == -1 [Spezialzeichen existiert nicht.])


    Mfg,
    UncleSub

    Du musst eine Anfrage (Query) senden und eine beliebige Spalte aus der Datenbank versuchen auszulesen. z.B.



    new str[128];
    format(str, sizeof(str), "SELECT BeliebigeSpalteAusDerDatenbank FROM Datenbankname WHERE Nummer='%i'", nummer); //Nummer= generierte zufällige Zahl
    mysql_query(str);
    mysql_store_result();
    if(!mysql_num_rows())
    {
    //Nummer exisiert nicht
    }
    else
    {
    //Nummer existiert
    }
    mysql_free_result();


    mysql_num_rows() gibt dir also die Anzahl an Ergebnissen zurück. Wenn also die Anzahl null ist, existiert die Nummer nicht.


    Mfg,
    UncleSUb