Fraktionssystem

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
  • Hallo


    ich bin nicht faul aber da ich es noch nie gemacht habe lasse ich es mir gerne erklären


    ich möchte per enum den spieler an x y z koordinaten spawnen lassen


    das enum sieht so aus


    new frakspawn[][fspawn] = {
    {0.0,0.0,0.0,0},
    {}


    };


    dazu


    enum fspawn
    {
    Float:f_x,
    Float:f_y,
    Float:f_z,
    Float:f_rota,
    f_interior
    }


    nun die frage in dem stock der von OnPlayerSpawn aufgerufen wird
    stock spawnfrak(playerid)
    {




    SetPlayerColor(playerid,CL_WHITE);
    SetPlayerHealth(playerid,100);
    clock();
    static states;
    introstop(playerid);
    SetPlayerSkin(playerid,sInfo[playerid][skin]);
    if(sInfo[playerid][alevel]>=2)
    {
    if(sInfo[playerid][aduty]==1)return SetPlayerPos(playerid,1022.8530,-3960.8057,2.7001),SetPlayerColor(playerid,CL_KNALLROT);
    if(states==0)
    {
    states = 1;
    StopAudioStreamForPlayer(playerid);
    SendClientMessage(playerid,CL_WHITE,"INFO: Du Spawnst an der Adminbase. Gehe Admin-On-Duty mit /aduty.");
    SetPlayerPos(playerid,1022.8530,-3960.8057,2.7001);

    return 1;
    }
    return 1;
    }
    return 1;
    }



    wie baue ich da die abfrage ein in welcher frak er ist?

  • enum sInfoenum playerInfo{
    eingeloggt,
    db_id,
    level,
    geld,
    skin,
    bankgeld,
    kredit,
    kzins,
    //adminstrativ
    baned,
    alevel,
    aduty
    //Fraktionen
    //XYZ
    }


    dazu new sInfo[MAX_PLAYERS][playerInfo];


    danke für deine mühe

  • Dann mach es mal so:
    enum playerInfo{
    eingeloggt,
    db_id,
    level,
    geld,
    skin,
    bankgeld,
    kredit,
    kzins,
    baned,
    alevel,
    aduty,
    fraktion
    }


    So kannst du dann die Fraktion setzen:
    sInfo[playerid][fraktion] = FRAKTIONS_ID;


    Und so abfragen: ( z.B. )
    new fraktion = sInfo[playerid][fraktion];

  • wie spawne ich den spieler dann wenn er z.B. lspd ist an x y z?


    new fraktion = sInfo[playerid][fraktion]; // Fraktion auslesen
    SetPlayerPos(playerid,fspawn[fraktion][f_x],fspawn[fraktion][f_y],fspawn[fraktion][f_z]); //Position setzen
    SetPlayerFacingAngle(playerid,fspawn[fraktion][f_rota]); // Rotation setzen
    SetPlayerInterior(playerid,fspawn[fraktion][f_interior]);//Interior setzen

  • melde mich per edit


    ich werds ausprobieren danke dir




    habe folgende errors
    Zeile (220) : Variable wurde falsch definiert (Float,Integer[...])
    Zeile (221) : Ungültiges Array (kein Array?): "fspawn"
    Zeile (221) : Befehl hat keinen Sinn
    Zeile (221) : Erwartete Zeichen ";", aber gefunden "]"
    Zeile (221) : Ungültiger Befehl
    Zeile (221) : Zuviele Fehler in einer Zeile



    dazu der code

    Spoiler anzeigen
    new fraktions = sInfo[playerid][fraktion]; // Fraktion auslesen
    SetPlayerPos(playerid,fspawn[fraktions][f_x],fspawn[fraktions][f_y],fspawn[fraktions][f_z]); //Position setzen

    irgentwas ist falsch aber ich weiss nicht was oder wieso
    Spoiler anzeigen

    new fraktions = sInfo[playerid][fraktion]; // Fraktion auslesen
    SetPlayerPos(playerid,fspawn[fraktions][f_x],fspawn[fraktions][f_y],fspawn[fraktions][f_z]); //Position setzen
    SetPlayerFacingAngle(playerid,fspawn[fraktions][f_rota]); // Rotation setzen
    SetPlayerInterior(playerid,fspawn[fraktions][f_interior]);//Interior setzen
    SetPlayerVirtualWorld(playerid,fspawn[fraktions][f_vworld]);

    Spoiler anzeigen
    new frakspawn[][fspawn] = {
    {1022.8530,-3960.8057,2.7001,0,0},
    {}


    };

    Spoiler anzeigen
    enum fspawn
    {
    frak_name[128],
    Float:f_x,
    Float:f_y,
    Float:f_z,
    Float:f_rota,
    f_interior,
    f_vworld
    }

    Einmal editiert, zuletzt von Jane () aus folgendem Grund: edit fehler

  • Sorry, mein Fehler..
    new fraktions = sInfo[playerid][fraktion]; // Fraktion auslesen
    SetPlayerPos(playerid,frakspawn[fraktions][f_x],frakspawn[fraktions][f_y],frakspawn[fraktions][f_z]); //Position setzen
    SetPlayerFacingAngle(playerid,frakspawn[fraktions][f_rota]); // Rotation setzen
    SetPlayerInterior(playerid,frakspawn[fraktions][f_interior]);//Interior setzen
    SetPlayerVirtualWorld(playerid,frakspawn[fraktions][f_vworld]);


    new frakspawn[][fspawn] = {
    //Frakname , x , y , z , rota , interior , vworld ->> So musst du es eintragen!
    {"Fraktionsname eintragen",1022.8530,-3960.8057,2.7001,ROTATION EINTRAGEN!,0,VIRTUALE WELT EINTRAGEN},
    {}
    };


    enum fspawn{
    frak_name[128],
    Float:f_x,
    Float:f_y,
    Float:f_z,
    Float:f_rota,
    f_interior,
    f_vworld
    }


    Man muss "frakspawn" benutzen, nicht fspawn, da fspawn nur das Enum ist..


    Außerdem musst du die Spawnliste nochmal bearbeiten! >> Habe dir da mal ein Beispiel oben gemacht