Beiträge von LoWtRoNiiX

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums

    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ß.