Beiträge von Cane4545

    Habe mir das Login/Register System von MrMonat basiert auf Dini geholt. Alles funktioniert super nur die Adminbefehle
    beziehungsweise alle Befehle zeigen an SERVER : UNKNOWN COMMAND an. Hier alles benötigte. Im Serverlog kommt kein Fehler sowie das Script ohne Warnings/Errors compiled


    public OnPlayerConnect(playerid)
    {
    if(IsPlayerNPC(playerid))return 1;
    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_PASSWORD,"Login","Dein Account wurde in der Datenbank gefunden somit kannst du nun dein Passwort eingeben","Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib nun dein gewünschtes Passwort ein!","Register","Abbrechen");
    }
    return 1;
    }


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


    //STOCKS LOGIN


    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,GELB,"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,GELB,"Erfolgreich eingeloggt.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,GELB,"Fehlerhaftes Passwort bitte neu eingeben");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde in der Datenbank gefunden somit kannst du dich nun mit deinem Passwort einloggen","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 wurdest von unserem Server ausgeschlossen melde dich doch per Teamspeak bei einem Administrator");
    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;
    }


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


    //STOCK ADMIN


    stock IsPlayerAnAdmin(playerid,level)
    {
    if(GetPVarInt(playerid,"Adminlevel")>=level) return 1;
    return 0;
    }



    //OCMDBEFEHLE ADMIn


    ocmd:kick(playerid,params[])
    {
    if(!IsPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,GELB,"Du hast keine Rechte um diesen Befehl auszuführen");
    new pID, reason[128],string[128];
    if(IsPlayerAnAdmin(pID,1)) return SendClientMessage(playerid,GELB,"Du kannst keinen Administrator kicken");
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,GELB,"/kick [Spieler] [Grund]");
    format(string,sizeof(string),"CaneBot: %s wurde von %s gekickt. Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
    SendClientMessageToAll(GELB,string);
    Kick(pID);
    return 1;
    }


    ocmd:ban(playerid,params[])
    {
    if(!IsPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,GELB,"Du hast keine Rechte um diesen Befehl auszuführen");
    new pID, reason[128],string[128];
    if(IsPlayerAnAdmin(pID,1)) return SendClientMessage(playerid,GELB,"Du kannst keinen Administrator bannen");
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,GELB,"/ban [Spieler] [Grund]");
    format(string,sizeof(string),"CaneBot: %s wurde von %s gebannt. Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
    SendClientMessageToAll(GELB,string);
    SetPVarInt(pID,"Baned",1);
    Kick(pID);
    return 1;
    }


    ocmd:setadmin(playerid,params[])
    {
    if(!IsPlayerAnAdmin(playerid,0))return SendClientMessage(playerid,ROT,"Du hast keine Rechte um diesen Befehl auszuführen");
    new pID, rank;
    if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,BLAU,"/setadmin [Spieler] [Level] | Um Level einzusehen /level");
    if(rank<0||rank>5)return SendClientMessage(playerid,ROT,"Maximaler Rank liegt bei 5");
    SetPVarInt(pID,"Adminlevel",rank);
    SendClientMessage(playerid,GELB,"Ausgewählter Spieler wurde zum Admin befördert");
    SpielerSpeichern(pID);
    return 1;
    }


    ocmd:gethere(playerid,params[])
    {
    new string[128],player;
    if(sscanf(params,"u",player))return SendClientMessage(playerid,GELB,"/gethere [Spieler]");
    if(IsPlayerAnAdmin(playerid,1))
    {
    new sendername[MAX_PLAYER_NAME],playername[MAX_PLAYER_NAME];
    GetPlayerName(player,sendername,sizeof sendername);
    GetPlayerName(playerid,playername,sizeof playername);
    format(string,sizeof string,"Teammitglied %s hat dich zu sich geportet.",playername);
    SendClientMessage(player,GELB,string);
    format(string,sizeof string,"Du hast %s zu dir geportet.",sendername);
    SendClientMessage(playerid,GELB,string);
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    if(IsPlayerInAnyVehicle(player))
    {
    new autoid = GetPlayerVehicleID(player);
    SetVehiclePos(autoid, X, Y+4, Z);
    }
    else
    {
    SetPlayerPos(player,X,Y+2,Z);
    }
    }
    else
    {
    SendClientMessage(playerid, GELB,"Du hast keine Rechte um diesen Befehl auszuführen");
    }
    return 1;
    }


    ocmd:goto(playerid,params[])
    {
    new string[128],player;
    if(sscanf(params,"u",player))return SendClientMessage(playerid,GELB,"/goto [Spieler]");
    if(IsPlayerAnAdmin(playerid,1))
    {
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(player,sendername,sizeof sendername);
    format(string,sizeof string,"Du hast dich zu %s geportet.",sendername);
    SendClientMessage(playerid,BLAU,string);
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(player,X,Y,Z);
    if(IsPlayerInAnyVehicle(playerid))
    {
    new autoid = GetPlayerVehicleID(playerid);
    SetVehiclePos(autoid, X, Y+4, Z);
    }
    else
    {
    SetPlayerPos(playerid,X,Y+2,Z);
    }
    }
    else
    {
    SendClientMessage(playerid,GELB,"Du hast keine Rechte um diesen Befehl auszuführen");
    }
    return 1;
    }


    ocmd:setskin(playerid,params[])
    {
    new skinid1,pID,string[128];
    if(sscanf(params,"ud",pID,skinid1))return SendClientMessage(playerid, GELB,"/setskin [Spieler] [Skinnummer]");
    if(IsPlayerAnAdmin(playerid,1))
    {
    SetPlayerSkin(pID,skinid1);
    format(string,sizeof(string),"Ein Teammitglied hat dir den Skin %d zugewiesen!",skinid1);
    SendClientMessage(pID,GELB,string);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du hast keine Rechte um diesen Befehl auszuführen");
    }
    return 1;
    }


    ocmd:newcar(playerid,params[])
    {
    new Float:vehx,Float:vehy,Float:vehz;
    new vehid,cc1,cc2,string[128];
    if(sscanf(params,"iii",vehid,cc1,cc2))return SendClientMessage(playerid, GELB,"/newcar [Autonummer] [Farbe 1] [Farbe 2]");
    if(IsPlayerAnAdmin(playerid,1))
    {
    GetPlayerPos(playerid,vehx,vehy,vehz);
    new carid = CreateVehicle(vehid,vehx,vehy,vehz,3,cc1,cc2,-1);
    SetVehicleNumberPlate(carid,"Adminauto");
    PutPlayerInVehicle(playerid, carid, 0);
    format(string,sizeof(string),"Du hast dir ein Auto gespawnt! (FahrzeugID :%d)",GetVehicleModel(GetPlayerVehicleID(playerid)));
    SendClientMessage(playerid,GELB,string);
    }
    else
    {
    SendClientMessage(playerid,GELB,"Du hast keine Rechte um diesen Befehl auszuführen");
    }
    return 1;
    }


    ocmd:wetter(playerid,params[])
    {
    new weatherid1,string[80];
    if(sscanf(params,"i",weatherid1))return SendClientMessage(playerid,GELB,"/wetter [Wetternummer]");
    if(IsPlayerAnAdmin(playerid,1))
    {
    SetWeather(weatherid1);
    format(string,sizeof(string),"Du hast das Wetter in die Nummer %d geändert!",weatherid1);
    SendClientMessage(playerid,GELB,string);
    }
    else
    {
    SendClientMessage(playerid, GELB,"Du hast keine Rechte um diesen Befehl auszuführen");
    }
    return 1;
    }


    ocmd:aduty(playerid,params[])
    {
    if(!IsPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,GELB,"Du hast keine Rechte um diesen Befehl auszuführen");
    {
    new string[128],string2[128];
    new adminname[30];
    switch(GetPVarInt(playerid,"Adminlevel"))
    {
    case 0:{adminname="Nein";}
    case 1:{adminname="{00FF5A}Supporter";}
    case 2:{adminname="{572B54}Moderator";}
    case 3:{adminname="{858BBB}Super Moderator";}
    case 4:{adminname="{0000FF}Administrator";}
    case 5:{adminname="{FF0000}System-Administrator";}
    }
    #pragma unused params
    if(GetPVarInt(playerid,"AdminDuty"))
    {
    SetPlayerColor(playerid,WEISS);
    ResetPlayerWeapons(playerid);
    SetPlayerHealth(playerid,100);
    SetPlayerArmour(playerid,100);
    format(string,sizeof(string),"Teammitglied %s hat den Admindienst als %s beendet ",SpielerName(playerid),adminname);
    SendClientMessageToAll(BLAU,string);
    DeletePVar(playerid,"AdminDuty");
    return 1;
    }
    else
    {
    SetPlayerColor(playerid,GELB);
    SetPlayerHealth(playerid,100);
    SetPlayerArmour(playerid,15000);
    format(string2,sizeof(string2),"Teammitglied %s hat den Admindiest als %s begonnen",SpielerName(playerid),adminname);
    SendClientMessageToAll(GELB,string2);
    SendClientMessage(playerid,ROT,"[LOGGED] Das im negativen Sinne Benutzen des Admindienstes kann Folgen haben [LOGGED]");
    SetPVarInt(playerid,"AdminDuty",1);
    }
    return 1;
    }
    }


    ocmd:gmx(playerid,params[])
    {
    if(!IsPlayerAnAdmin(playerid,5))return SendClientMessage(playerid,GELB,"Du hast keine Rechte um diesen Befehl auszuführen");
    SendRconCommand("gmx");
    GameTextForAll("| Server Restart |",5000,6);


    return 1;
    }