4 Scripting Fragen(Bezüglich --> Fraktionen erstellen,FraktionsCars der Fraktion zuweisen,/makeleader Auch Abspeichern,Autohäuser) :>

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
  • So fangen wir mal ein


    Problem 1
    Eine Fraktion zu erstellen ist ja nicht sonderlich schwer ... nur ist mein Problem wenn ich jemanden Invite(Bei meinem Script /einladen) dann wird das nicht in der Account Datei von der Person gespeichert(Also muss ich es manuell eintragen, Arbeite mit Dini) auch andere Dinge z.B /makeadmin werden dort nicht Abgespeichert und ich versteh nicht ganz wo man was eintragen muss und wie man es eintragen muss (Bei denn ganzen Stocks) Damit es sich überhaupt Speichert,
    Geld wird auch nicht Abgespeichert :<.


    Hier mal mein Register,LoadAccount,Login,OnPlayerDisconnect und mein enum Player_Info:

    // Playerinfo //


    enum Player_Info
    {
    AdminLevel,
    Pass[255],
    Money,
    Kills,
    Leader,
    Fraktion,
    Member
    }
    new PlayerInfo[MAX_PLAYERS][Player_Info];


    // PlayerInfo Ende //


    stock Register(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    SendClientMessage(playerid,BLAU,"Dein Account wurde in unserer Datenbank eingetragen.");
    SendClientMessage(playerid,BLAU,"Bitte gebe dein Passwort an keinen weiter!");
    SendClientMessage(playerid,BLAU,"Für die Befehle tippst du /hilfe ein.");
    GivePlayerMoney(playerid,50000);
    SetPlayerScore(playerid,0);
    SetPVarInt(playerid,"loggedin",1);
    dini_IntSet(Spielerdatei,"Geld",50000);
    dini_IntSet(Spielerdatei,"AdminLevel",0);
    dini_IntSet(Spielerdatei,"Leader",PlayerInfo[playerid][Leader]);
    dini_IntSet(Spielerdatei,"Member",PlayerInfo[playerid][Member]);
    dini_IntSet(Spielerdatei,"Fraktion",PlayerInfo[playerid][Fraktion]);
    ShowPlayerDialog(playerid, Geburtsdatum, DIALOG_STYLE_INPUT, "Alter","Bitte gebe dein Alter an.{FF0000}\n\nBeispiel: DD.MM.YYYY.","Weiter","Disconnect");


    return 1;
    }



    // Stock Ende //


    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);


    if(gettime()<dini_Int(Spielerdatei,"timeban"))
    {
    SendClientMessage(playerid,ROT,"Du bist aus dem Spiel ausgeschlossen!");
    Kick(playerid);
    return 1;
    }


    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    LoadAccount(playerid);
    SendClientMessage(playerid,BLAU,"Du hast dich erfolgreich eingeloggt.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,BLAU,"Falsches Passwort.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
    return 1;
    }
    }


    // Stock Ende //


    stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
    PlayerInfo[playerid][AdminLevel] = dini_Int(Spielerdatei,"AdminLevel");
    PlayerInfo[playerid][Leader] = dini_Int(Spielerdatei, "Leader");
    PlayerInfo[playerid][Member] = dini_Int(Spielerdatei, "Member");
    PlayerInfo[playerid][Fraktion] = dini_Int(Spielerdatei, "Fraktion");
    if(GetPVarInt(playerid,"Baned")==1)
    {
    SendClientMessage(playerid,ROT,"Du bist aus dem Spiel ausgeschlossen!");
    SendClientMessage(playerid,ROT,"Kontaktiere den Support für weitere Hilfe!");
    Kick(playerid);
    }
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }



    // Stock Ende //


    public OnPlayerDisconnect(playerid, reason)
    {
    // Dini @Disconnect //
    if(GetPVarInt(playerid,"loggedin")==1)
    {


    SpielerSpeichern(playerid);
    }
    return 1;
    }



    // Disconnect Ende //



    Problem 2
    Ich habe immer 2 Probleme bei meinen Fraktions Cars:
    1tens:
    Entweder kann keiner damit Fahren(Egal ob die FraktionsID`s übereinstimmen also meine FraktionsID ist 2 und die des Autos auch 2 (Im Script halt))


    Oder


    Jeder kann damit Fahren


    Hier meine Cars und die Abfrage:


    // FraktionsCars //
    new GROVEcar[19];


    // PlayerInfo //


    enum Player_Info
    {
    AdminLevel,
    Pass[255],
    Money,
    Kills,
    Leader,
    Fraktion,
    Member
    }
    new PlayerInfo[MAX_PLAYERS][Player_Info];


    // Ende //


    // Autos //


    GROVEcar[1] = AddStaticVehicle(541,2441.2813,-1664.4513,13.1392,268.7804,153,153); // bullet
    GROVEcar[2] = AddStaticVehicle(411,2447.6506,-1664.4220,13.1477,269.5190,153,153); // Infernus
    GROVEcar[3] = AddStaticVehicle(541,2441.6687,-1654.0344,13.0692,269.6196,153,153); // Bullet
    GROVEcar[4] = AddStaticVehicle(411,2449.0388,-1653.7119,13.0913,270.2771,153,153); // Infernus
    GROVEcar[5] = AddStaticVehicle(400,2498.5063,-1685.4333,13.5330,89.8143,153,153); // Landstalker
    GROVEcar[6] = AddStaticVehicle(400,2491.9255,-1685.5632,13.6030,272.5652,153,153); // Landstalker
    GROVEcar[7] = AddStaticVehicle(535,2505.9004,-1693.7302,13.3205,1.0655,153,153); // Slamvan
    GROVEcar[8] = AddStaticVehicle(451,2473.0732,-1690.8744,13.1270,358.7981,153,153); // Turismo
    GROVEcar[9] = AddStaticVehicle(451,2468.4485,-1669.9634,13.0058,9.5138,153,153); // Turismo
    GROVEcar[10] = AddStaticVehicle(451,2471.3440,-1678.2826,13.0215,24.5518,153,153); // Turismo
    GROVEcar[11] = AddStaticVehicle(412,2460.7456,-1671.8430,13.3379,9.7976,153,153); // voodo
    GROVEcar[12] = AddStaticVehicle(522,2515.9045,-1664.5116,13.3413,97.9098,153,153); // NRG
    GROVEcar[13] = AddStaticVehicle(522,2516.4785,-1667.1714,13.4977,96.3789,153,153); // NRG
    GROVEcar[14] = AddStaticVehicle(487,2461.4666,-1714.0533,13.7035,91.2329,153,153); // Maverick
    GROVEcar[15] = AddStaticVehicle(536,2516.6130,-1672.5364,13.6864,58.8865,153,153); // Blade
    GROVEcar[17] = AddStaticVehicle(560,2479.5791,-1653.6495,13.0966,93.2550,153,153); // Sultan
    GROVEcar[18] = AddStaticVehicle(560,2486.7019,-1653.2056,13.1063,88.7719,153,153); // Sultan
    SetVehicleNumberPlate(GROVEcar[0],"Grove Street");
    SetVehicleNumberPlate(GROVEcar[1],"Grove Street");
    SetVehicleNumberPlate(GROVEcar[2],"Grove Street");
    SetVehicleNumberPlate(GROVEcar[3],"Grove Street");
    SetVehicleNumberPlate(GROVEcar[4],"Grove Street");
    SetVehicleNumberPlate(GROVEcar[5],"Grove Street");
    SetVehicleNumberPlate(GROVEcar[6],"Grove Street");
    SetVehicleNumberPlate(GROVEcar[7],"Grove Street");
    SetVehicleNumberPlate(GROVEcar[8],"Grove Street");
    SetVehicleNumberPlate(GROVEcar[9],"Grove Street");
    SetVehicleNumberPlate(GROVEcar[10],"Grove Street");
    SetVehicleNumberPlate(GROVEcar[11],"Grove Street");
    SetVehicleNumberPlate(GROVEcar[12],"Grove Street");
    SetVehicleNumberPlate(GROVEcar[13],"Grove Street");
    SetVehicleNumberPlate(GROVEcar[14],"Grove Street");
    SetVehicleNumberPlate(GROVEcar[15],"Grove Street");
    SetVehicleNumberPlate(GROVEcar[16],"Grove Street");
    SetVehicleNumberPlate(GROVEcar[17],"Grove Street");
    SetVehicleNumberPlate(GROVEcar[18],"Grove Street");




    // Autos Ende //


    // Hier kommt meine Abfrage //
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {


    if(newstate==PLAYER_STATE_DRIVER)
    {
    for(new i=0; i<sizeof(GROVEcar); i++)
    {
    if(GetPlayerVehicleID(playerid)==GROVEcar[i])
    {
    if(GetPVarInt(playerid,"Fraktion")!=2)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Du gehörst nicht zur Grove Street.");
    }
    }
    }
    }
    return 1;
    }


    // Abfrage Ende //



    Problem 3:
    Schon oben genannt!


    Problem 4:


    Ich habe zwar bereits die allmächtige SuFu genutzt aber ... Mehhhhh ... ich würde gerne mal wissen wie man das ganze Aufbauen muss usw. ein Anfang wäre ja mal das Luxus Autohaus aus Godfather(Will ich nicht in meinem Script sondern nur als Beispiel damit ich selber Autohäuser machen kann).


    Ich hoffe ihr könnt mir helfen :>


    MfG HellYeah :>

  • Eine Fraktion zu erstellen ist ja nicht sonderlich schwer ... nur ist mein Problem wenn ich jemanden Invite(Bei meinem Script /einladen) dann wird das nicht in der Account Datei von der Person gespeichert(Also muss ich es manuell eintragen, Arbeite mit Dini) auch andere Dinge z.B /makeadmin werden dort nicht Abgespeichert und ich versteh nicht ganz wo man was eintragen muss und wie man es eintragen muss (Bei denn ganzen Stocks) Damit es sich überhaupt Speichert,
    Geld wird auch nicht Abgespeichert :<.


    Hier mal mein Register,LoadAccount,Login,OnPlayerDisconnect und mein enum Player_Info:


    Um zu wissen, wieso es das nicht speichert, musst du uns zeigen wie du es speicherst und dazu musst du die Funktion "stock SpielerSpeichern(playerid)" mal zeigen :)



    Als erstes, solltest du mal folgendes tun:


    Anstatt:


    Schreibe einfach:
    for(new i; i<sizeof(GROVEcar); i++) SetVehicleNumberPlate(GROVEcar[i],"Grove Street");


    PS: Fang bitte bei den Cars erstellen mit einem Array von 0 an.


    Also, das Mysterium bei deinen "Autos" liegt einfach darin, dass du 2 verschiedene Varianten verwendest um eine Fraktion zu bestimmen.
    Die 1. ist diese: PlayerInfo[playerid][Fraktion] (Die verwendest du beim Speichern).
    und die 2. beim Abfragen ist diese: GetPVarInt(playerid,"Fraktion") (Bei der Abfrage).
    Nun, anstatt 2 verschiedene zuverwenden, solltest du dich auf 1ne einigen, dann wird das auch funktionieren ;)


    Die Letze Frage habe ich nicht verstanden :rolleyes:


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S


  • 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,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Geschlecht",GetPVarInt(playerid,"Geschlecht"));
    dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
    dini_IntSet(Spielerdatei,"AdminLevel",PlayerInfo[playerid][AdminLevel]);
    dini_IntSet(Spielerdatei,"Leader",PlayerInfo[playerid][Leader]);
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Member",PlayerInfo[playerid][Member]);
    dini_IntSet(Spielerdatei,"Fraktion",PlayerInfo[playerid][Fraktion]); // Epic Fail Fraktion ist zweimal Vorhanden
    }
    return 1;
    }


    Meine Letzte Frage war wie man ein Autohaus macht,
    Was da alles rein muss usw.
    und wenn jemand das nicht von Grund auf erklären möchte kann er das LuxusAutohaus aus dem Godfather script als Erklärungs Beispiel nutzen(Dann aber bitte bisschen anpassen weil mein Script ist SelfMade :>)