Scripting Fragen

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
  • Guten Morgen Liebe Brotfische.


    Ich habe mir gedacht ich fange mal mit Pawno an und ich habe direckt mit Tutorial angefangen.
    Meine Frage ist die. Ich habe mein Script noch nicht angefangen.


    Ich möchte das der Spieler einmal an einem Vorgegebem Punkt spawnt z.B in LV am Red Dragon Casino.
    Wen dieser Spieler nun zum BSN fährt und sich dort auslogt soll seine Position gespeichert werden und
    wen dieser Wieder Online kommt befindet er sich noch immer am BSN.


    Ich hoffe Ihr konntet mein Anliegen verstehen und könnt mir trz. dieser Uhrzeit helfen.


    Mit freundlichen Grüßen

  • Von meinem Vorgänger das dini Plugin runter laden und dann z.B diesen beispiel code (von mir verständlich) kopieren, sollte funktionieren:


    Bei den Includes bzw. Defines:
    new Float:px, Float:py, Float:pz, pdatei[50],


    Bei OnPlayerConnect:
    new psname[MAX_PLAYER_NAME], Float:x, Float:y, Float:z;
    GetPlayerName(playerid, psname, MAX_PLAYER_NAME);
    format(pdatei, sizeof pdatei, "/Spieler/%i.ini", psname);
    if(!dini_Exists(pdatei)){
    dini_Create(pdatei);
    GetPlayerPos(playerid, x, y, z);
    dini_FloatSet(pdatei, "lastx", x);
    dini_FloatSet(pdatei, "lasty", y);
    dini_FloatSet(pdatei, "lastz", z);
    }


    Bei OnPlayerSpawn:

    px = dini_Float(pdatei, "lastx");
    py= dini_Float(pdatei, "lasty");
    pz = dini_Float(pdatei, "lastz");
    SetPlayerPos(playerid, px, py, pz);


    Bei OnPlayerDisconnect:

    GetPlayerPos(playerid, px, py, pz);
    dini_FloatSet(pdatei, "lastx", px);
    dini_FloatSet(pdatei, "lasty", py);
    dini_FloatSet(pdatei, "lastz", pz);



    Ungetesten und uncompeliert, falls es errors gibt, posten !


    Damit das auch funktioniert musst du im Ordner scriptfiles den Ordnet "Spieler" erstellen.

  • Die Sache ist die, ich bin anfänger im Scripten, also habe mir gestern erst Pawno runtergeladen.


    Ich wollte als erstes einen Spieler Spawn festlegen. [erledigt]
    Login & Register System im Dialog. [nicht erledigt]


    Ich möchte ein kleines Reallife Script, es muss ja nicht Perfekt sein aber möchte
    ein Reallife Script anfangen.
    Könnte mir einer eine kleine Gliederung schreiben? Dies ist mein erstes Script. Wen ich ein richtiges Reallife Script haben will.
    Werde ich es erst dann anfangen wen ich Fortgeschritten bin.


    1.Login & Register System im Dialog.
    2.Admin System
    3.Spieler speicherung, mit Geld etc.


    vil. könnte mir jemand eine Gliederung schreiben, denn ich kriege nicht mal ein Login & Regiester System von mir alleine aus ohne hilfe hin...

  • Hey wen du möchtest Kann ich dir ein Login/Registersystem Scripten,Aber es Gibt auch Schon viel Tutorials Hier Im forum und In youtube...

    /////define
    #define DIALOG_REGISTER 1
    #define DIALOG_LOGIN 2


    Dann zu OnPlayerConnect

    public OnPlayerConnect(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
    }
    return 1;
    }

    Und das Da Einfügen


    Dann zu OnPlayerDisconnected

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


    Dann zu OnDialogResponse

    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid==DIALOG_LOGIN)
    {
    if(response==0)
    {
    SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
    return 1;
    }
    else
    {
    Login(playerid,inputtext);
    return 1;
    }
    }
    }
    if(dialogid==DIALOG_REGISTER)
    {
    if(response==0)
    {
    SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,inputtext);
    return 1;
    }
    }
    }
    return 1;
    }


    Zweiter Teil Komm Jetz bitte noch nicht Antworten

  • Jetz Kommt der Zweite Teill...


    Jetz Müssen wir Ganz Unten im Script Stocks Erstellen das geht so!

    stock SpielerName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    return name;
    }


    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);
    if(dini_Exists(Spielerdatei))
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    SendClientMessage(playerid,BLAU,"Erlogreich regestriert.");
    dini_IntSet(Spielerdatei,"Level",0);
    SetPlayerScore(playerid,0);
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }


    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(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    LoadAccount(playerid);
    SendClientMessage(playerid,BLAU,"Erfolgreich eingeloggt.");
    SendClientMessage(playerid,BLAU,"Bitte gebe Niemals Dein passwort weiter Weder ein Admin noch Ein Supporter fragt dich nach deinem passwort.");
    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 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,"Baned",dini_Int(Spielerdatei,"Baned"));
    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,"Baned",GetPVarInt(playerid,"Baned"));
    }
    return 1;
    }


    Und fertig is das Login/RegisterSystem
    wenn Es Error´s oder Probleme Geben sollte Schreib Sie mir.

  • Ja bekomme Errors da ich die Spawn speicherung auch eingebaut habe.


  • Poste Mal Bitte die Zeilen Wo die Erors Enstehen!


  • du willst ja Ein Selfmade server machen oder?
    wenn ja Dann Musste versuchen es Selber Zu schaffen

  • Ist mein erstes Script und wird auch nicht Online gestellt.
    Ich dachte in diesem Forum findet man Leute die es einem erklären.


    Bis hierhin danke, ich wollte mir das anschauen wie Ihr es macht und somit
    merke ich mir das.

  • Ich kann es Gleich Hier reinposten damit du es auch lernst...