<|< Ich möchte ein enum erstellen >|>

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
  • EINLEITUNG
    1.1 Meine Frage
    1.2 Was ich meiner meinung dafür brauch.
    1.3 Worauf ich achten muss.
    1.4 Ein Code.
    1.5 Alter Enum.
    1.6 Dankeschön


    MEINE FRAGE
    Hallo, ich würde gerne einen Enum erstellen,
    habe aber keine Ahnung wie, da mein alter Enum keine Wirkung hat
    und alles mit DINI gescriptet habe, es ist sehr wichtig für mich,
    ich bin auf eure hilfe angewiesen. Deswegen werde ich so viel tuhen wie ich kann
    um euch zu helfen.
    Um es euch nicht als zu schwer zu machen.
    Ich würde mich Freuen ihr schickt Codes, wenn ihr euch nicht sicher Seid, dann bitte nicht Antworten.
    Ich halt euch auf den Laufenden und sage alles was ich bereits gemacht habe, genauso wie ich hoffe, dass ihr
    nicht nur die Überschrift liest.


    WAS ICH MEINER MEINUNG DAFÜR BRAUCHE
    Erstmal brauche ich den Enum.
    enum eSpielerDaten
    {
    pName,
    pPasswort,
    pFraktion,
    pRang
    };
    Ich weiss nicht Ob ich ein p davor machen soll oder nicht.
    Oder muss ich das dann auch noch im Account system ändern.
    Mein letztes System Buggt so, das der Enum keine wirkung hatte.
    So weiter im Text.
    new SpielerInfo[MAX_PLAYERS][eSpielerDaten];
    Jetzt brauch ich nur noch eine Sache. Compilen.
    Oder nicht, aber es hat keine Wirkung.
    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"eingeloggt") == 1)
    {
    new SpielerDatei[64];
    format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.ini",SpielerName(playerid));
    dini_IntSet(SpielerDatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(SpielerDatei, "AdminLevel",GetPVarInt(playerid,"AdminLevel"));
    dini_IntSet(SpielerDatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(SpielerDatei,"Banned",GetPVarInt(playerid,"Banned"));
    dini_IntSet(SpielerDatei, "Fraktion",GetPVarInt(playerid,"Fraktion"));
    }
    return 1;
    }
    Ok mehr weiss ich nicht.


    WORAUF ICH ACHTEN MUSS
    Ja ich glaube bin mir aber nicht sicher das ich beim Stock noch was ändern muss ich glaube
    ich muss es umbenennen.

    dini_IntSet(SpielerDatei, "pFraktion",GetPVarInt(playerid,"pFraktion"));Oder wie soll ich das machen ?
    Ich brauche hilfe unbedingt. Ich weiss, das da was geändert werden muss.Da es ja als DINI ist.
    Oder Irre ich mich da ?


    EIN CODE NÜTZLICH ODER NICHTstock SpielerLaden(playerid)
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
    SetPVarInt(playerid,"eingeloggt",1);
    SetPVarInt(playerid,"Banned",dini_Int(Spielerdatei,"Banned"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
    SpawnPlayer(playerid);
    if(GetPVarInt(playerid,"Banned") == 1)
    {
    SendClientMessage(playerid,rot,"Du kannst mit diesem Account nicht spielen, da er gebannt ist!\nBei Fragen oder Einwänden kontaktiere einen Admin!");
    Kick(playerid);
    }
    }
    //SpielerSpeichern-stock
    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"eingeloggt") == 1)
    {
    new SpielerDatei[64];
    format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.ini",SpielerName(playerid));
    dini_IntSet(SpielerDatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(SpielerDatei, "AdminLevel",GetPVarInt(playerid,"AdminLevel"));
    dini_IntSet(SpielerDatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(SpielerDatei,"Banned",GetPVarInt(playerid,"Banned"));
    dini_IntSet(SpielerDatei, "Fraktion",GetPVarInt(playerid,"Fraktion"));
    }
    return 1;
    }


    ALTER ENUM
    Mein Alter Enum ging nicht, hatte keine Wirkung.
    enum eSpielerDaten
    {
    pName,
    pPasswort,
    pFraktion,
    pRang
    };
    new SpielerInfo[MAX_PLAYERS][eSpielerDaten];


    DANKESCHÖN
    Ich hoffe ihr habt nicht nur die Überschrift gelesen und Schickt mir paar Codes.
    Usw.
    Es muss einfach gehen.


    SPEC BEFEHL
    LInk =

  • Von
    dini_IntSet(SpielerDatei,"Level",GetPlayerScore(playerid));


    Zu
    dini_IntSet(SpielerDatei,"Level",SpielerInfo[playerid][Variable]);


    Und von
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));


    zu


    SpielerInfo[playerid][variable] = dini_Int(Spielerdatei,"Adminlevel");

    Besuche uns!

  • Was willst du jetzt Wissen?


    Wie ich das anstellen kann, das es nicht Bugt und wie ich noch mehr erstellen kann.
    ::::::::::::::::::::::::::::::::::::
    ES GEHT WIEDER NICHT
    if(SpielerInfo[playerid][pFraktion] == 1)
    {
    SetPlayerPos(playerid,218.1525,78.8351,1005.0391);
    SetPlayerInterior(playerid,6);
    SetPlayerSkin(playerid,291);
    GivePlayerWeapon(playerid,3,1);
    GivePlayerWeapon(playerid,24,360);
    GivePlayerWeapon(playerid,31,250);
    GivePlayerWeapon(playerid,29,320);
    SendClientMessage(playerid,0x00FFD2FF,"Fraktion: Der neue Leader ist ...");
    SendClientMessage(playerid,0x00FFD2FF,"Fraktion: Fangt die Wps'ler und sorgt für Ordung,");
    SendClientMessage(playerid,0x00FFD2FF,"Fraktion: Damit die Stadt schön sauber bleibt, von euch hängt viel ab");
    Dienst = 0;
    LadeWaffen(playerid);
    return 1;
    }
    Ich werde da nicht gesapwnt.
    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"eingeloggt") == 1)
    {
    new SpielerDatei[64];
    format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.ini",SpielerName(playerid));
    dini_IntSet(SpielerDatei,"Level",SpielerInfo[playerid][pLevel]);
    SpielerInfo[playerid][pAdmin] = dini_Int(SpielerDatei,"Adminlevel");
    //dini_IntSet(SpielerDatei, "AdminLevel",GetPVarInt(playerid,"AdminLevel"));
    dini_IntSet(SpielerDatei,"Geld",SpielerInfo[playerid][pGeld]);
    dini_IntSet(SpielerDatei,"Banned",GetPVarInt(playerid,"Banned"));
    SpielerInfo[playerid][pFraktion] = dini_Int(SpielerDatei,"Fraktion");
    }
    return 1;
    }


    stock SpielerLaden(playerid)
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
    SetPVarInt(playerid,"eingeloggt",1);
    SetPVarInt(playerid,"Banned",dini_Int(Spielerdatei,"Banned"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
    SpawnPlayer(playerid);
    if(GetPVarInt(playerid,"Banned") == 1)
    {
    SendClientMessage(playerid,rot,"Du kannst mit diesem Account nicht spielen, da er gebannt ist!\nBei Fragen oder Einwänden kontaktiere einen Admin!");
    Kick(playerid);
    }
    }

  • Also als grundtipp ist es gut wenn du alles werte in deinem array für einen spieler wenn diese connected auf 0 setzt
    dazu gibts zwei möglichkeiten per for-schleife


    for(new i; eSpielerDaten:i < eSpielerDaten; ++i)SpielerInfo[playerid][eSpielerDaten:i] = 0;


    for(new i; i != _:eSpielerDaten; ++i)SpielerInfo[playerid][eSpielerDaten:i] = 0;


    oder auf das zeichen ende setzten für string '\0' wie du willst.


    Also beispiel für das umschreiben
    laden
    SpielerInfo[playerid][pFraktion] = dini_Int(Spielerdatei,"Fraktion"));
    speichern was du falsch machst bei dir du lässt den wert aus
    dini_IntSet(SpielerDatei, "Fraktion",SpielerInfo[playerid][pFraktion]);


    //edit


    wenn du strings nutzen willst also oben dann musst das array auch jeweilig deklarieren im enum


    enum eSpielerDaten
    {
    pName[MAX_PLAYER_NAME],
    pPasswort[128],
    Float:PosX,
    // etc nur ein beispiel
    };