Beiträge von NoxiZ

    Dort wo du den Spieler bei einer Passwort eingabe aus der DB/Datei ladest. Du fragst doch iwo ab dass, das eingegebene Passwort richtig ist , oder ?


    stock Login(playerid,key[])
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    if(!strcmp(key,dini_Get(Spieler,"Passwort"),false))
    {
    SendClientMessage(playerid,Weiß,"Du hast dich erfolgreich eingeloggt!");
    TogglePlayerSpectating(playerid,false);
    SpielerLaden(playerid);
    SpawnPlayer(playerid);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,Weiß,"Das eingebene Passwort ist inkorrekt!");
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden! Gebe nun dein Passwort ein!","Login","Abbrechen");
    return 1;
    }
    }

    das heißt ich muss die jeweiligen funktionen auch unter meinen login dialog setzen
    bzw abfragen ob er eingeloggt ist und wenn ja spectate beenden und spawn

    Genau , du lasst ihn bei OnPlayerRequestClass spectaten und bei einer erfolgreichen Passworteingabe beendest du das Spectaten und Spawnst den Spieler.


    hab jetzt bei onplayerrequestclass spec auf true und die camera posis.


    wo muss jetzt das spec false und spawn hin?


    in den stock, wo das mit dem erfolgreich eingeloogt ist oder bei onplayerspawn?


    beides ging nicht da der spieler nicht spawnt

    Nabend zusammen ich bins wieder :D


    Ich möchte gern den Spawnbutton und die 2 pfeile nach dem login entfernen, und den skin bei der registrierung auf 0 setzen lassen.
    2teres habe ich bereits hinzugefügt und er wird auch gespeichert.


    nur wie bekomme ich diesen spawnbutton vollständig weg?
    nach der eingabe des passwortes soll er die spielerdatei laden und direkt da spawn jenachdem welche fraktion er ist mit skin usw

    dcmd_amodus(playerid,params[])
    {
    #pragma unused params
    if(sSpieler[playerid][Adminlevel] < 1) return SendClientMessage(playerid,Weiß,"Du bist kein Admin!");
    if(aDuty[playerid] == 1)
    {
    aDuty[playerid] = 1;
    new str[64], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    SetPVarString(playerid, "oldName", name);
    format(str, sizeof(str), "[ADMIN]%s", name);
    SetPlayerName(playerid, str);
    SendClientMessage(playerid,Weiß,"Du hast den Adminmodus gestartet!");
    }
    else
    {
    aDuty[playerid] = 0;
    new name[MAX_PLAYER_NAME];
    GetPVarString(playerid, "oldName", name, MAX_PLAYER_NAME);
    SetPlayerName(playerid, name);
    SendClientMessage(playerid,Weiß,"Du hast den Adminmodus beendet!");
    }
    return 1;
    }


    hab ich jetzt so gemacht da crasht der server.
    auch wenn die news oben stehen (ich dachte einfach das die eh nach oben gehören) crasht es oder es gibt errors, das name schon definiert ist

    also ich muss sozusagen die funktion noch in den befehl einbauen damit im chat auch das admin vorm namen steht?


    was das mit tab angeht, ich würds nur gern wissen wies, geht damit ichs im notfall wenigstens erklärt bekommen habe ^^

    ich denke du meinst jetzt die funktion oder


    stock SetPlayerName_Ex(playerid)
    {
    new name[MAX_PLAYER_NAME + 10];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    if(aDuty[playerid] == 1) format(name, sizeof(name), "[ADMIN]%s", name);
    return name;
    }


    ich will sprich, wenn man als admin /aduty eingibt, soll der Name von NoxiZ als beispiel solange zu [ADMIN]NoxiZ in tab und im chat werden, bis wieder /aduty eingegeben wird und der amodus beendet wird

    cmd_amodus(playerid,params[])
    {
    #pragma unused params
    if(sSpieler[playerid][Adminlevel] < 1) return SendClientMessage(playerid,Weiß,"Du bist kein Admin!");
    if(aDuty[playerid] == 0)
    {
    aDuty[playerid] = 1;
    SendClientMessage(playerid,Weiß,"Du hast den Adminmodus gestartet!");
    }
    else
    {
    aDuty[playerid] = 0;
    SendClientMessage(playerid,Weiß,"Du hast den Adminmodus beendet!");
    }
    return 1;
    }


    um auf meine frage von gestern zurückzukommen , befehl ist drin funktion auch und bei onplayerdisconnect ist diese abfrage da drin.
    die sendclientmessages kommen auch aber der name wird nicht geändert
    was hab ich da vergessen?
    die meldung mit der und der hat das gemacht soll nicht kommen

    alles klar
    jetzt hab ich nur das problem, das wenn der befehl 2x mal eingegeben wird, auch 2x mal [admin] dasteht vorm namen.


    2te sache wäre jetzt wie man das wieder wegbekommt.
    also eig ein typische aduty befehl den ich hier brauche

    dcmd_invite(playerid,params[])
    {
    new pid;
    new spieler[256];
    new leader[256];
    new leadername[MAX_PLAYER_NAME];
    new spielername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,leadername, sizeof(leadername));
    GetPlayerName(playerid,spielername, sizeof(spielername));
    if(sSpieler[playerid][Leader] >= 1)
    {
    if(sscanf(params,"u",pid))
    {
    return SendClientMessage(playerid,Weiß,"/invite (playerid)");
    }
    if(pid == INVALID_PLAYER_ID)
    {
    return SendClientMessage(playerid,Weiß,"Der Spieler mit dieser ID ist nicht Online!");
    }
    if(sSpieler[playerid][Leader] == 1)
    {
    sSpieler[pid][Fraktion] = 1;
    sSpieler[pid][Rang] = 1;
    }
    format(spieler, sizeof(spieler),"Grove Leader %s hat dich in die Grove Street invitet!",leadername);
    format(leader, sizeof(leader),"Du hast %s in die Grove Street invitet!",spielername);
    SendClientMessage(pid,Weiß,spieler);
    SendClientMessage(playerid,Weiß,leader);
    }
    if(sSpieler[playerid][Leader] == 2)
    {
    sSpieler[pid][Fraktion] = 2;
    sSpieler[pid][Rang] = 1;
    }
    format(spieler, sizeof(spieler),"Ballas Leader %s hat dich in die Ballas Gang invitet!",leadername);
    format(leader, sizeof(leader),"Du hast %s in die Ballas Gang invitet!",spielername);
    SendClientMessage(pid,Weiß,spieler);
    SendClientMessage(playerid,Weiß,leader);
    }
    [color=#ff0000]else
    {
    SendClientMessage(playerid,Weiß,"Du bist kein Leader!");
    }
    return 1;
    }[/color]


    Code
    C:\Users\NoxiZ\Desktop\Server\gamemodes\selfmade.pwn(702) : warning 209: function "dcmd_invite" should return a value
    C:\Users\NoxiZ\Desktop\Server\gamemodes\selfmade.pwn(703) : error 010: invalid function or declaration
    C:\Users\NoxiZ\Desktop\Server\gamemodes\selfmade.pwn(707) : error 010: invalid function or declaration
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    2 Errors.


    der fehler ist bestimmt ganz einfach zu lösen nur ich peils grad nicht so ganz :/

    also ansich funktioniert es, nur das bei den Fraktionen nicht unterschieden wird welche frak er ist -> jeder kann den fraktionschat lesen
    außerdem buggt mein /makeleader jetzt rum und leadert nur den, der den befehl eingibt. der spieler der geleadert werden soll, bekommt nur die Messages davon.


    Da sind die errors wie gesagt von allem ein bisschen, aber nur verursacht davon:


    dcmd_a(playerid,params[])
    {
    if(sSpieler[playerid][Adminlevel] < 1) return SendClientMessage(playerid,Weiß,"Du bist kein Admin!");
    {
    new text[256];
    new spielername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,spielername,sizeof(spielername));
    if(sscanf(params,"s",text))
    return SendClientMessage(playerid,Weiß,"Info: /a (text)");
    format(text,sizeof(text),"Adminchat %s: %s",spielername,text);
    SendAdminMessage(Weiß,text);
    return 1;
    }


    adminchat
    und der stock dazu:


    //ADMINNACHRICHTEN
    stock SendAdminMessage(farbe,string[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(sSpieler[i][Adminlevel] >= 1)
    {
    SendClientMessage(i, farbe, string);
    }
    }
    }


    und das gleiche für fraktionen


    dcmd_f(playerid,params[])
    {
    if(sSpieler[playerid][Fraktion] = 1)
    {
    new text[256];
    new spielername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,spielername,sizeof(spielername));
    if(sscanf(params,"s",text))
    return SendClientMessage(playerid,Weiß,"Info: /f (text)");
    format(text,sizeof(text),"Fraktionschat %s: %s",spielername,text);
    SendAdminMessage(Weiß,text);
    return 1;
    }


    //FRAKTIONSNACHRICHTEN
    stock SendFraktionMessage(farbe,string[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(sSpieler[i][Fraktion] >= 1 || <= 2)
    {
    SendClientMessage(i,farbe,string);
    }
    }
    }


    er meckert aber auch ohne das mit der fraktion.
    wenn ich den command /a lösche gibt es keine errors, also kann meiner meinung nach nur was daran falsch sein