Beiträge von Firerfan

    Jetzt sag mir nicht der Clan heist "Exxis Dawn" -.-'
    Wenn ja kenn ich die :D


    Naja, das Design ist ganz ordentlich:
    8/10 - der BG passt nicht so.


    MfG Firer

    Im Grunde habe ich keine Ahnung, aber Poste uns doch mal den Code wo der Player spawnt und btw hatte der Spieler davor eine Bierflasche o.ä in der Hand oder einfahch nach dem spawnen, ohne davor eine gehabt zu haben?

    Einfach ohne davor eine gehabt zu haben.
    Dürfte ausserdem garnicht gehen, da ich die Special-Actions (Bierflaschen und Zigaretten sind solche Actions) beim Spawnen ja resette.


    Hier mal der Code:
    public OnPlayerSpawn(playerid)
    {
    TextDrawShowForPlayer(playerid,home);
    SetPlayerSkin(playerid,GetPVarInt(playerid,"skin"));
    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_NONE);
    ClearAnimations(playerid);
    //.......
    return 1;
    }

    Hallo leute,
    seid 0.3b habe ich das Problem, dass wen man nach dem Tod respawnt man IMMER eine Zigarette oder eine Bierflasche in der Hand hält.
    In meinem Script wird das nirgendwo gesetzt und beim Spawnen die Special-Actions resettet.


    Hat jemand ne Ahnung woran es liegen könnte?



    MfG Firer

    Sehr wenig erklärt.
    Kommt ein neuer im pawn und fragt warum 2 mal XYZ?({i_x, i_y, i_z ,a_x ,a_y, a_z, interior, virtualworld},
    )
    Naya 8/10

    Okay, werde mal einige dinge ergänzen und erklären.
    Wie berreits gesagt: Wer ein bisschen nachdenkt versteht das schon ;)



    MfG Firer

    Hallo liebe Brotfische!
    Hier präsentiere ich euch ein kleines Tutorial, mit dem ihr auf euren Server eigene Ein und Ausgänge "Installieren" könnt.
    Das ist im prinzip die "Profi-Fassung" die vorallem bei vielen Ein/Ausgängen einiges an Zeilen spart!


    Vorraussetzungen
    Ihr benötigt die Grundkentnisse im SA-MP Scripten.
    Und natürlich benötigen wir PAWO ;)


    ---------------------------------------------------
    1. Wir erstellen ein Enum, um nachher alles schön übersichtlich zu haben.
    Da wir Positionen Abfragen wollen, brauchen wir Floats.
    Hier ein Beispiel:
    enum e_eingange {
    Float:i_x,
    Float:i_y,
    Float:i_z,
    Float:a_x,
    Float:a_y,
    Float:a_z,
    interior,
    world
    }

    Ich habe hier Präfix verwendet um es zu verdeutlichen. Alle "i_" Floats sind innen, alle "a_" Floats aussen.


    2. Wir erstellen ein "new" in form einer Auflistung, um unsere Daten zu speichern.
    Dabei gehen wir nach dem oben erstellten Profil vor.
    Wir verbinden das "new" einfach mit unserem Enum:
    new eingange[][e_eingange] = {
    {i_x, i_y, i_z ,a_x ,a_y, a_z, interior, virtualworld},
    {i_x, i_y, i_z ,a_x ,a_y, a_z, interior, virtualworld}
    };
    Bei mehreren Auflistungen müssen alle, bis auf die letzte hinter der geschwungenden Klammer mit einem Kommar versehen sein!
    Erklärungen:
    i_x, i_y, i_z stehen für die Koordinaten des Innenraumes.
    a_x,a_y,a_z stehen für die Koordiaten des Einganges.
    interior und virtualworld erklären sich glaube ich von alleine ;)


    3. Wir erstellen und Laden die Pickups durch eine "for-schleife" in unseren GameMode.
    Die Schleife geht alle, von uns erstellten Ein/Ausgänge durch und erstellt diese beim starten des Gamemodes!
    Ein Beispiel hier für:

    public OnGameModeInit()
    {
    for(new i = 0; i < sizeof(eingange); i++)
    {
    CreatePickup(1239,1,eingange[i][a_x],eingange[i][a_y],eingange[i][a_z],-1); // Wir erstellen ein Pickup an den oben eingetragenen Koordinaten
    CreatePickup(1239,1,eingange[i][i_x],eingange[i][i_y],eingange[i][i_z],-1); // Wir erstellen ein Pickup an den oben eingetragenen Koordinaten
    }
    }


    4. Wir Fragen wieder via einer "for-schleife" ab, ob der Spieler sich beim Drücken einer Taste in Reichweite einer dieser Punkte befindet, die wir oben aufgelistet haben. Hier müssen wir allerdings deutlich zwischen Ein- und Ausgang unterscheiden, da wir beim betreten ja das Interior und ggf. die Virtuelle Welt setzen, und diese beim Verlassen einfach wieder resetten wollen.
    Ein weitere Beispielcode:
    public OnPlayerKeyStateChange(playerid,newkeys,oldkeys)
    {
    if(newkeys == KEY_SECONDARY_ATTACK)
    {
    for(new i = 0;i<sizeof(eingange);i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,2.0,eingange[i][a_x],eingange[i][a_y],eingange[i][a_z]))
    {
    SetPlayerInterior(playerid,eingange[i][interior]); // Interior setzen
    SetPlayerVirtualWorld(playerid,eingange[i][world]); // Virtualworld Setzen
    SetPlayerPos(playerid,eingange[i][i_x],eingange[i][i_y],eingange[i][i_z]); // Position zu eingetragenen [i]nnenkoordinaten setzen
    }
    else if(IsPlayerInRangeOfPoint(playerid,2.0,eingange[i][i_x],eingange[i][i_y],eingange[i][i_z]) && GetPlayerVirtualWorld(playerid) == eingange[i][world])// Wir Fragen ab, ob die Position und die Virtual-World stimmt
    {
    SetPlayerInterior(playerid,0); // Interior resettem
    SetPlayerVirtualWorld(playerid,0); // Virtualworld resetten
    SetPlayerPos(playerid,eingange[i][a_x],eingange[i][a_y],eingange[i][a_z]); // Position zu eingetragenen [a]ussenkoordinaten setzen
    }
    }
    }
    }
    Sollten weitere Fragen zu funktionen sein, werde ich es etwas genauer beschreiben.
    Da dies hier allerdings im prinzip ganz Simpel ist, denke ich das es nicht viel zu erklären gibt.


    Man kann unsere Auflistungen oben sogar noch mit z.B. 3D-Texten erweitern, um das ganze noch etwas abzurunden.



    Mit Freundlichen Grüßen,
    Firerfan

    //EDIT: Kleinen Fehler verbessert
    //EDIT2:
    Bis jetzt wurde die Virtual-World beim verlassen nicht verglichen.
    Sprich man kam immer am letzten eingetragenen Ort raus.
    Habe das ganze mal fixxed.
    //EDIT3: Die vorherigen "ä"'s geändert. Sollte so nun funktionieren
    //EDIT4: Noch ein parr "ä"'s rausgefischt
    //EDIT5: Fehler bei Schritt 4 berichtigt. Virtualworld wurde falsch verglichen

    public GetPlayerRank(playerid)
    {
    new frak = GetPVarInt(playerid,"team");
    new rank = GetPVarInt(playerid,"rank");
    if(frak == 0){ return "-"; }
    if(frak == 1)
    {
    if(rank == 1){ return "Auszubildener"; }
    }
    return 1;
    }

    Ist halt erstmal um zu schauen, ob ich es irgendwie hinkriege^^


    //EDIT:
    Durch Maddins hilfe hab ichs mal mit nem String versucht:
    public GetPlayerRank(playerid)
    {
    new frak = GetPVarInt(playerid,"team");
    new rank = GetPVarInt(playerid,"rank");
    new string[50];
    if(frak == 0){ format(string,sizeof(string),"-"); return string; }
    if(frak == 1)
    {
    if(rank == 1){format(string,sizeof(string),"Auszubildener"); return string; }
    }
    return 1;
    }

    Allerdings bekomme ich Errors:
    C:\Dokumente und Einstellungen\Alex\Desktop\SOUL-GTA\gamemodes\sf.pwn(1612) : error 090: public functions may not return arrays (symbol "GetPlayerRank")
    C:\Dokumente und Einstellungen\Alex\Desktop\SOUL-GTA\gamemodes\sf.pwn(1615) : error 090: public functions may not return arrays (symbol "GetPlayerRank")
    C:\Dokumente und Einstellungen\Alex\Desktop\SOUL-GTA\gamemodes\sf.pwn(1617) : error 079: inconsistent return types (array & non-array)


    //EDIT2: Hahahahaha - Ich brauch nen Stock und kein Public - Das ist zu Failed^^
    /CLOSE/

    Nein, es ist ein public um die Fraktion des Spielers rauszufinden.
    Sprich um es z.B. in einem String zu verwenden.


    //EDIT: Zu deinem Edit Ink:
    Nee, das benutze ich so ja berreits in meinen DCMD-Commands ;)

    Hallo leute,
    Ich habe mal ne Frage:


    Wenn ich ne "if" Abfrage in nem Public starte, will ich einen Text "RETURNEN".
    Mein Code sieht so aus:
    if(frak == 0){ return "-"; }
    Allerdings will mein Compiler dann nicht so ganz... Jemand ne lösung?




    MfG Firer

    Ein Tüv-System erstellen - Falscher berreich, kommt eindeutig zu den "Scriptwünschen".
    Allerdings mal einige anregungen:


    • 3D-Texte
    • Abspeichern in der Datei
    • Laden aus der Datei
    • Setzen beim Kauf

    Fertig...
    Denk ein bisschen Nach und du schaffst das sicherlich auch alleine. Wenn nicht, solltest du besser die Finger davon lassen...




    MfG Firer

    Kristallkugeln sind gerade zu teuer und meine ist kaputt.
    Ohne Code geht nichts ;)


    Ausserdem mit ein bisschen Englisch (oder Google Translator) kannst du es dir fast denken:
    "possibly unintended assignment"
    ============================
    "möglicherweise unbeabsichtigte Zuordnung"

    Ist Umständlich und seeeeeehr viel Code wenn man viele Eingänge hat ;)
    Ausserdem hat nicht jeder "PlayerToPoint" in seinem GameMode.


    Zum erweitern:
    SetPlayerPos(playerid,Float:x,Float:y,Float:z);//Position
    SetPlayerFacingAngle(playerid,Float:angle);//Blickrichtung
    SetPlayerInterior(playerid,interior);//Interior
    SetPlayerVirtualWorld(playerid,virtualworld);//Virtualworld
    MfG Firer

    Ich versteh den Code nicht.


    fhaus ist ein String der i als Zahl beinhält? Wozu? Und warum versucht du dann mysql_setint mit einem String als Wert zu verwenden?

    Weil mein stock nur mit nem String-Wert funktioniert.
    Keine lusst das umzuschreiben.


    Hatte das ausserdem schonmal mit nem int wert gemacht, hat allerdings auch nicht funktioniert



    //EDIT: Hat echt NIEMAND ne lösung?