Beiträge von LoWtRoNiiX

    Ich habe es so:


    if (strcmp("/waffen", cmdtext, true, 10) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,10,295.6970,-34.9315,1001.5156))
    {
    ShowPlayerDialog(playerid,DIALOG_ListDialog,DIALOG_STYLE_LIST,"Ammunation Downtown","Waffen (ohne Munition)\nWaffen (mit Munition)\nSchutzwesten","Weiter","Abbrechen");
    }
    else
    {
    SendClientMessage(playerid,WEISS,"Du hast dir keine Waffen gekauft!");
    }
    return 1;
    }


    Dann:
    if(listitem == 2)//Was passiert wenn das erste listen item(Last Item) ausgewæhlt wird
    {
    ShowPlayerDialog(playerid,DIALOG_SCHUTZWESTEN,DIALOG_STYLE_LIST,"Schutzwesten","Halbe Schutzweste\nVolle Schutzweste","Kaufen","Abbrechen");
    return 1;
    }


    So hab ich das doch alles. :(

    Aber es geht nicht, guck dir den Dialog an:


    if(dialogid == DIALOG_SCHUTZWESTEN)//wenn SCHUTZWESTEN geöffnet ist
    {
    if(response == 0)//Wenn das rechte (abbruch) button angeklickt wird
    {
    return 1; // Diese Abfrage kann eigentlich weggelassen werden.
    }
    if(response == 1)//Wenn das linke (OK) button angeklickt wird
    {
    if(listitem == 0)//0 - Halbe Weste
    {
    AddArmour(playerid,50);
    }
    if(listitem == 1)//1 - Volle Weste
    {
    AddArmour(playerid,100.00);
    }
    }

    Hier der stock:
    stock AddArmour(playerid, Float:armour)
    {
    new Float:player_Armour;
    if(GetPlayerArmour(playerid, player_Armour))
    {
    SetPlayerArmour(playerid, player_Armour+armour);
    return 1;
    }
    return 0;
    }


    Hier das Waffenmenu: (Teil der Westen)

    if(response == 1)//Wenn das linke (OK) button angeklickt wird
    {
    if(listitem == 0)//0 - Halbe Weste
    {
    AddArmour(playerid,50.00);
    return 1;
    }
    if(listitem == 1)//1 - Volle Weste
    {
    AddArmour(playerid,100.00);
    return 1;
    }
    }

    Ich hatte vergessen ein "Health" in Armour umzutauschen, der stock sieht nun so aus:


    stock AddArmour(playerid, Float:armour)
    {
    new Float:player_Armour;
    if(GetPlayerArmour(playerid, player_Armour))
    {
    SetPlayerArmour(playerid, player_Armour+armour);
    return 1;
    }
    return 0;
    }

    Hallo, ich habe eine kleine Frage.


    Wie mache ich in diesem Code, dass die Spieler-Armour hochgeht, und nicht auf 10 gesetzt wird, sondern dass er +50 Armour bekommt.
    Leider geht es so nicht. :(


    if(listitem == 0)//0 - Halbe Weste
    {
    new Float:armour;
    GetPlayerArmour(playerid, armour);
    SetPlayerArmour(playerid, armour + 50);
    return 1;
    }
    if(listitem == 1)//1 - Volle Weste
    {
    new Float:armour;
    GetPlayerArmour(playerid, armour);
    SetPlayerArmour(playerid, armour + 100);
    return 1;
    }

    Hallo, ich habe eine kleine Frage.


    Wie mache ich in diesem Code, dass die Spieler-HP hochgeht, und nicht auf 10 gesetzt wird, sondern dass er +10 HP bekommt.


    if(listitem == 6)//6 - Große Pommes
    {
    SetPlayerHealth(playerid,10);
    return 1;
    }

    Hier stelle ich dir mal ein kleines von mir rein, ist leicht bearbeitbar.


    Oben trägst du ein:
    #include <dini>


    Dann definierst du die Dialoge oben:
    #define DIALOG_REGISTER 1
    #define DIALOG_LOGIN 2


    Dann machst du am Ende des Gamemode's diese stock's:
    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,WEISS,"Du hast dich erfolgreich registriert.");
    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,WEISS,"Du hast dich erfolgreich eingeloggt.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,WEISS,"Du hast ein falsches Passwort eingegeben...");
    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,"Fraktlevel",dini_Int(Spielerdatei,"Fraktlevel"));
    SetPVarInt(playerid,"Leader",dini_Int(Spielerdatei,"Leader"));
    SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
    if(GetPVarInt(playerid,"Baned")==1)
    {
    SendClientMessage(playerid,ROT,"Du wurdest 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,"Fraktlevel",GetPVarInt(playerid,"Fraktlevel"));
    dini_IntSet(Spielerdatei,"Leader",GetPVarInt(playerid,"Leader"));
    dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
    }
    return 1;
    }


    Nun bei OnPlayerConnect das einfügen:
    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 und geladen.\nBitte gib nun dein Passwort ein:","LogIn","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte dein gewünschtes Passwort ein:","Registrieren","Abbrechen");
    }
    return 1;
    }


    Bei OnPlayerDisconnect dieses einfügen:
    public OnPlayerDisconnect(playerid, reason)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    SpielerSpeichern(playerid);
    }
    return 1;
    }


    Bei OnDialogResponse dieses einfügen:
    if(dialogid==DIALOG_LOGIN)
    {
    if(response==0)
    {
    SendClientMessage(playerid,WEISS,"Du hast den LogIn-Vorgang abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,WEISS,"Das eingegebene Passwort war leider zu kurz.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"LogIn","Dein Account wurde gefunden und geladen.\nBitte gib nun dein Passwort ein:","LogIn","Abbrechen");
    return 1;
    }
    else
    {
    Login(playerid,inputtext);
    return 1;
    }
    }
    }
    if(dialogid==DIALOG_REGISTER)
    {
    if(response==0)
    {
    SendClientMessage(playerid,WEISS,"Du hast die Registration abgrebrochen..");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,WEISS,"Das gewünschte Passwort war leider kurz...");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Registrieren","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,inputtext);
    return 1;
    }
    }
    }


    Das wars, nun nur noch im Scriptfiles Ordner den Order: "Accounts" erstellen.
    Den Rest kannst du selber bearbeiten.


    Viel Spaß.