FraktionenErstellenFehlerhaft :(

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
  • Hey Community...


    ich habe wiedermal ein Problem ...


    wo ist hier der Fehler ...


    1. Wenn ich starte .. spawne Ich in LV
    2. wenn ich dann /stats mache steht Zivlist .. ist ja auch noch okay.. (als CJ)
    3. wenn ich /makeleader 0 1 (also lspd) mache .. werde ich lspd leader hab ne andere uniform an . auch noch okay
    4. wenn ich /kill mache spawne ich wie ich auch wollte am pd aber .. im CJ skin wieder
    5. wenn ich meinen script so angucke denke ich habe ich mir das leben selber schwer gemacht..
    6. wenn ich mich wieder neu einlogge sind die sachen also LSPD leader etc nicht gespeichert obwohl das vorher ging :(
    7. ich wollte eigtl fraktionen erstellen mit membern und einer rangordnung .. kann mir einer helfen??
    mega verzweifelt :((( hier ausschnitte aus dem script


    lg Kamel




    //Fraktionen
    #define Team_Zivi 0
    #define Team_LSPD 1
    #define Team_Mafia 2
    #define Team_Medic 3
    #define Team_STAAT 4


    //Fraktionsränge
    #define Praktikant 1
    #define Polizeimeisteranwärter 2
    #define Polizeikommissar 3
    #define Polizeioberkommissar 4
    #define Polizeihauptkommissar 5
    #define Polizeidirektor 6
    #define Leitender Polizeidirektor 7
    #define Mafiosi 8
    #define Berater 9
    #define Mafiaboss 10



    enum SInfo
    {
    Adminlevel,
    Fraktion,
    Fraktionsrang,
    Leader
    }
    new SpielerInfo[MAX_PLAYERS][SInfo];



    public OnPlayerRequestClass(playerid, classid)
    {
    if(IsPlayerNPC(playerid))return 1;
    SetPlayerPos(playerid,2047.4270,1336.5569,10.6719);
    SetPlayerFacingAngle(playerid,188.9284);
    SetPlayerCameraPos(playerid,2047.6205,1333.3314,10.6719);
    SetPlayerCameraLookAt(playerid,2047.4270,1336.5569,10.6719);
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    SpielerSpeichern(playerid);
    }
    }


    public OnPlayerSpawn(playerid)
    {


    if(SpielerInfo[playerid][Fraktion] == Team_LSPD)
    {
    if(SpielerInfo[playerid][Fraktionsrang] == Praktikant)
    {
    SetPlayerPos(playerid,lspdspawn);SetPlayerColor(playerid,BLAU);GivePlayerWeapon(playerid,35,5);SetPlayerSkin(playerid,28);
    }
    else if(SpielerInfo[playerid][Fraktionsrang] == Polizeimeisteranwärter)
    {
    SetPlayerPos(playerid,lspdspawn);SetPlayerColor(playerid,BLAU);GivePlayerWeapon(playerid,35,5);SetPlayerSkin(playerid,28);
    }
    else if(SpielerInfo[playerid][Fraktionsrang] == Polizeikommissar)
    {
    SetPlayerPos(playerid,lspdspawn);SetPlayerColor(playerid,BLAU);GivePlayerWeapon(playerid,35,5);SetPlayerSkin(playerid,281);
    }
    else if(SpielerInfo[playerid][Fraktionsrang] == Polizeioberkommissar )
    {
    SetPlayerPos(playerid,lspdspawn);SetPlayerColor(playerid,BLAU);GivePlayerWeapon(playerid,35,5);SetPlayerSkin(playerid,281);
    }
    SetPlayerPos(playerid,lspdspawn);SetPlayerColor(playerid,BLAU);GivePlayerWeapon(playerid,35,5);
    }
    if(SpielerInfo[playerid][Fraktion] == Team_Mafia)
    {
    SetPlayerPos(playerid,mafiaspawn);GivePlayerWeapon(playerid,24,100);SetPlayerSkin(playerid,111);
    }
    return 1;
    }


    ocmd:makeleader(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");
    new pID,fID;
    if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,BLAU,"/makeleader [playerid] [fraktionsid]");
    SetPVarInt(pID,"Fraktion",fID);
    SetPVarInt(pID,"Leader",fID);
    SendClientMessage(playerid,BLAU,"Erfolgreich.");
    if(fID == 1){SetPlayerSkin(playerid,283);SpielerInfo[playerid][Fraktion]=1;SpielerInfo[playerid][Leader]=1;}
    if(fID == 2){SetPlayerSkin(playerid,113);SpielerInfo[playerid][Fraktion]=2;}
    // und immer so weiter


    return 1;
    }


    if(strcmp(cmdtext,"/stats",true)==0)
    {
    new string[128];
    new ftext[20];
    new frakt = SpielerInfo[playerid][Fraktion];
    if(frakt == 0) { ftext= "Zivilist"; }
    else if(frakt == 1) { ftext= "LSPD"; }
    else if(frakt == 2) { ftext= "Mafia"; }



    //1 reihe
    format(string,sizeof(string),"[Name: %s] [Level: %i] [Adminlevel: %i] [Fraktion: %s] [Zeit seit Payday: %iMinuten] ",SpielerName(playerid),GetPlayerScore(playerid),GetPVarInt(playerid,"Adminlevel"),ftext,GetPVarInt(playerid,"Paytime"));
    SendClientMessage(playerid,BLAU,string);
    //2 reihe
    return 1;
    }


    stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
    SetPVarInt(playerid,"Fraktionsrang",dini_Int(Spielerdatei,"Fraktionsrang"));
    SetPVarInt(playerid,"Leader",dini_Int(Spielerdatei,"Leader"));
    SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
    SetPVarInt(playerid,"Paytime",dini_Int(Spielerdatei,"Paytime"));
    if(GetPVarInt(playerid,"Baned")==1)
    {
    SendClientMessage(playerid,ROT,"Du bist vom Server gebannt.");
    Kick(playerid);
    }
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }


    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Fraktionsrang",GetPVarInt(playerid,"Fraktionsrang"));
    dini_IntSet(Spielerdatei,"Leader",GetPVarInt(playerid,"Leader"));
    dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
    dini_IntSet(Spielerdatei,"timeban",GetPVarInt(playerid,"timeban"));
    dini_IntSet(Spielerdatei,"Paytime",GetPVarInt(playerid,"Paytime"));
    }
    return 1;


    stock ResetVariablen(playerid)
    {
    SpielerInfo[playerid][Adminlevel]=0;
    return 1;
    }


    //Fraktion
    stock IstSpielerInFraktion(playerid, fraktionsid)
    {
    if(SpielerInfo[playerid][Fraktion] == fraktionsid) return 1;
    return 0;
    }


    //Admin


    stock isPlayerAnAdmin(playerid,rang)
    {
    if(GetPVarInt(playerid,"Adminlevel")>=rang)return 1;
    return 0;
    }


  • Speicherst du den Skin überhaupt ab? wenn ja wo? bzw. du musst den Skin erst mal auslesen.

    Code
    GetPlayerSkin(playerid);

    und denn speichern und bei OnPlayerSpawn wieder auslesen und ihm den Skin geben, falls du Probleme hast, meld dich noch mal kann dir sonst mein System dafür geben auf Dini Basis, hatte das gleiche Problem.


    Speicherst du den Spieler bei OnPlayerDisconect ab?

    Code
    SpielerSpeichern(playerid);


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!