[Problem/Help] gTeam und Autokaufen

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
  • Ich habe mit gTeam Fraktionen gemacht. Es ist so, ich habe das problem, dass man zwischen den Fraktionen Switchen kann. gTeam und Skin werden bei mir Abgespeichert. Es ladet auch alles, doch wenn ich F4 Tippe und dann sterbe komm ich zum Request Class und kann mir einen anderen Skin aussuchen und bin dann bei dieser Fraktion. Kann ich i-wie machen, dass dann da steht z. B. "Du bist nicht bei dieser Fraktion". Und das nur Admins dich in eine Fraktion switchen können.


    gTeam wird bei mir so definiert:
    gClass[playerid] = classid;


    if(classid == 0) //wenn der Spieler den ersten Skin auswählt
    {
    gTeam[playerid] = TEAM_COPS;
    GameTextForPlayer(playerid,"~b~Cop",3000,6);
    }
    if(classid == 1) //wenn der Spieler den zweiten Skin auswählt
    {
    gTeam[playerid] = TEAM_COPS;
    GameTextForPlayer(playerid,"~b~Cop",3000,6);
    }
    if(classid == 2) //wenn der Spieler den dritten Skin auswählt
    {
    gTeam[playerid] = TEAM_COPS;
    GameTextForPlayer(playerid,"~b~Cop",3000,6);
    }
    if(classid == 3) //wenn der Spieler den dritten Skin auswählt
    {
    gTeam[playerid] = TEAM_COPS;
    GameTextForPlayer(playerid,"~b~Cop",3000,6);
    }
    //..... und so weiter


    Und das Adminsystem sieht etwa so aus:
    // z. B. der Befehl /tv bei mir mit dcmd unter onplayercommandtext


    dcmd(tv,2,cmdtext);


    dcmd_tv(playerid,params[])
    {
    new pID;
    if(sscanf(params,"u",pID))
    {
    return SendClientMessage(playerid,GREY,"Benutzung: /tv [ID]");
    }
    if(SpielerInfo[playerid][alvl]<1)
    {
    return SendClientMessage(playerid,GREY,"Du bist nicht Admin!");
    }
    else
    {
    if(SpielerInfo[playerid][alvl]
    {
    return SendClientMessage(playerid,GREY,"Du kannst diesen Befehl, nicht an einem höherrangiertem Admin ausführen!");
    }
    else
    {
    //----------Admin Nachricht----------//
    new name[MAX_PLAYER_NAME], string[256];
    GetPlayerName(pID, name, sizeof(name));
    format(string, sizeof(string), "Du beobachtest gerade %s", name );
    SendClientMessage(playerid, Orange, string);
    //das soll passieren
    TogglePlayerSpectating(playerid, 1);
    PlayerSpectatePlayer(playerid, pID);
    SetPlayerInterior(playerid,GetPlayerInterior(pID));
    TogglePlayerControllable(playerid, 0);
    }
    }
    return 1;
    }


    Nun zum 2. ten Problem


    Ich habe eine Art Autohaus (Script folgt unten), und man kann sich die Autos kaufen, doch das Problem ist nur, ich kann die Autos kaufen, jedoch weiss ich nicht, wie man das abspeichern soll.


    Hier mein "Autokaufsys":

    // Ein GUI zum kaufen
    if (strcmp("/autokaufen", cmdtext, true) == 0)
    {
    if(PlayerToPoint(2, playerid, -1655.1520,1209.3284,7.2500))
    {
    new listitems[] = "Bullet\t\t1'000'000$\nAlpha\t\t500'000$\nBuffalo\t\t450'000$\nCheetah\t600'000$\nClub\t\t100'000$\nEuros\t\t350'000$\nInfernus\t650'000$\nJester\t\t200'000$\nPhoenix\t400'000$\nSuper GT\t450'000$\nTurismo\t750'000$";
    ShowPlayerDialog(playerid,21,DIALOG_STYLE_LIST,"Sportwagen:",listitems,"Kaufen","Verlassen");
    }
    else if(PlayerToPoint(2, playerid, -1660.5886,1209.2505,7.2500))
    {
    new listitems[] = "Bullet\t\t1'000'000$\nAlpha\t\t500'000$\nBuffalo\t\t450'000$\nCheetah\t600'000$\nClub\t\t100'000$\nEuros\t\t350'000$\nInfernus\t650'000$\nJester\t\t200'000$\nPhoenix\t400'000$\nSuper GT\t450'000$\nTurismo\t750'000$";
    ShowPlayerDialog(playerid,21,DIALOG_STYLE_LIST,"Sportwagen:",listitems,"Kaufen","Verlassen");
    }
    else
    {
    SendClientMessage(playerid, GREY,"Du bist nicht beim Sportwagen Autohaus!");
    SendClientMessage(playerid, GREY,"Soll ein Checkpoint gesetzt werden?");
    new listitems[] = "Ja\nNein";
    ShowPlayerDialog(playerid,22,DIALOG_STYLE_LIST,"Soll ein Checkpoint gesetzt werden?",listitems,"Auswählen","Abbrechen");
    }
    }


    //Wenn man das GUI wählt:


    if(dialogid == sportwagen)
    {
    if(listitem == 0)
    {
    if(GetPlayerMoney(playerid)<1000000)
    {
    SCM(playerid,GREY,"Du hast nicht genügend Geld!");
    }
    else
    {
    SCM(playerid,GREEN,"Du hast einen Bullet gekauft!");
    CreateVehicle(541,-1641.5223,1198.1002,6.8125,268.7027,60,1,0);
    GivePlayerMoney(playerid,-1000000);
    }
    }
    if(listitem == 1)
    {
    if(GetPlayerMoney(playerid)<500000)
    {
    SCM(playerid,GREY,"Du hast nicht genügend Geld!");
    }
    else
    {
    SCM(playerid,GREEN,"Du hast einen Alpha gekauft!");
    CreateVehicle(602,-1640.9813,1197.9481,6.9930,269.2044,75,77,0);
    GivePlayerMoney(playerid,-500000);
    }
    }
    if(listitem == 2)
    {
    if(GetPlayerMoney(playerid)<450000)
    {
    SCM(playerid,GREY,"Du hast nicht genügend Geld!");
    }
    else
    {
    SCM(playerid,GREEN,"Du hast einen Buffalo gekauft!");
    CreateVehicle(402,-1640.6342,1198.0740,7.0206,270.7130,30,30,0);
    GivePlayerMoney(playerid,-450000);
    }
    }
    if(listitem == 3)
    {
    if(GetPlayerMoney(playerid)<600000)
    {
    SCM(playerid,GREY,"Du hast nicht genügend Geld!");
    }
    else
    {
    SCM(playerid,GREEN,"Du hast einen Cheetah gekauft!");
    CreateVehicle(415,-1640.8995,1197.9735,6.9588,270.1981,36,1,0);
    GivePlayerMoney(playerid,-600000);
    }
    }
    //und so weiter.


    Jetzt noch wie mein Anmeldungsys funktioniert:
    enum SInfo
    {
    Passwort[256],
    Wanteds,
    Geld,
    alvl,
    Tode,
    Kills,
    Spawn,
    Jailtime,
    Banned,
    Skin,
    Car,
    gTeam,
    Reason[256],
    }


    if(dini_Exists(Spielerdatei))
    {
    new aname[MAX_PLAYER_NAME], string[256];
    GetPlayerName(playerid, aname, sizeof(aname));
    format(string, sizeof(string), "Test Server by luckyguy\nName: %s\nPasswort:", aname);
    ShowPlayerDialog(playerid, login, DIALOG_STYLE_INPUT, "LoggIn",string, "Login", "Kickme");
    }
    else if(!dini_Exists(Spielerdatei))
    {
    new aname[MAX_PLAYER_NAME], string2[256];
    GetPlayerName(playerid, aname, sizeof(aname));
    format(string2, sizeof(string2), "Test Server by luckyguy\nDein Name ist %s\nGib ein Passwort ein:", aname);
    ShowPlayerDialog(playerid, regis, DIALOG_STYLE_INPUT, "Registrierformular",string2, "Registrieren", "Kickme");
    }


    //Das zum registrieren und login GUI


    if(dialogid == login)
    {
    if(response == 1)
    {
    new Spielerdatei[256];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/madAd/Users/%s.ini",SpielerName);
    passwort = dini_Get(Spielerdatei,"Passwort");
    if(strcmp(inputtext,passwort,false) == 0)
    {
    Anmelden(playerid);
    }
    else
    {
    FalschesPasswort[playerid] += 1;
    PasswortFalsch(playerid);
    }
    }
    }


    if(dialogid == regis)
    {
    if(response == 1)
    {
    new Spielerdatei[256];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/madAd/Users/%s.ini",SpielerName);
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",inputtext);
    dini_IntSet(Spielerdatei,"Wanteds",SpielerInfo[playerid][Wanteds]);
    dini_IntSet(Spielerdatei,"Geld",SpielerInfo[playerid][Geld]);
    dini_IntSet(Spielerdatei,"AdminLevel",SpielerInfo[playerid][alvl]);
    dini_IntSet(Spielerdatei,"gTeam",SpielerInfo[playerid][gTeam]);
    new GlueckWunschText[256];
    format(GlueckWunschText,sizeof(GlueckWunschText),"Du hast dich erfolgreich mit den Name : %s und dem Passwort : %s registriert",SpielerName,inputtext);
    SendClientMessage(playerid,Rot,GlueckWunschText);
    Anmelden(playerid);
    SendClientMessage(playerid,Rot,"Du wurdest automatisch eingloggt!");
    }
    }


    //und das Anmelden bei login ist ein public


    public Anmelden(playerid)
    {
    new Spielerdatei[256];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/madAd/Users/%s.ini",SpielerName);
    SpielerInfo[playerid][Geld] = dini_Int(Spielerdatei,"Geld");
    SpielerInfo[playerid][Wanteds] = dini_Int(Spielerdatei,"Wanteds");
    SpielerInfo[playerid][alvl] = dini_Int(Spielerdatei,"AdminLevel");
    SpielerInfo[playerid][gTeam] = dini_Int(Spielerdatei,"gTeam");
    new plw = SpielerInfo[playerid][Wanteds];
    new plg = SpielerInfo[playerid][Geld];
    SetPlayerMoney(playerid,plg);
    SetPlayerWantedLevel(playerid,plw);
    SendClientMessage(playerid,Rot,"Willkommen!");
    Eingeloggt[playerid] = 1;
    new skin = dini_Int(Spielerdatei,"Skin");
    SetPlayerSkin(playerid,skin);
    SpawnPlayer(playerid);

    if(SpielerInfo[playerid][alvl] > 0)
    {
    new lgnshwscr = SpielerInfo[playerid][alvl];
    new AdminLevelShow[256];
    format(AdminLevelShow,sizeof(AdminLevelShow),"Dein Account besitzt Admin-Rechte Level %d!",lgnshwscr);
    SendClientMessage(playerid, Rot, AdminLevelShow);
    }

    return 1;
    }


    Bitte hilft mir