Beiträge von Allrounder18

    Hallo!


    Da es im Sammethread schon zu übersichtlich wird, versuche ich es hier nochmal.


    Ich möchte einen /makehelfer Befehl erstellen, jedoch klappt er irgendie net ganz.



    ocmd:makehelfer(playerid, params[])
    {
    #pragma unused params
    if(Eingeloggt[playerid] == 0)return SendClientMessage(playerid, GRAU, "Du bist nicht eingeloggt!");
    new pID, adminid, string[128];
    if(IsPlayerAdmin(playerid) || SpielerDaten[playerid][pAdmin] < 5)
    {
    if(SpielerDaten[playerid][pAdmin] < 7 && adminid > 1)return SendClientMessage(playerid, GRAU, "Du kannst nur den Rang Helfer vergeben.");
    if(IsPlayerNPC(pID))return 1;
    if(sscanf(params, "ui", pID, adminid))return SendClientMessage(playerid, GRAU, "Benutze /makehelfer [SpielerID/Name] [Teamrang]");
    if(!Eingeloggt[pID])return SendClientMessage(playerid, GRAU, "Dieser Spieler ist nicht eingeloggt!");
    if(SpielerDaten[pID][pIntro] < 1)return SendClientMessage(playerid, GRAU, "Der Spieler ist noch im Tutorial.");
    if(adminid == 0){
    format(string, sizeof(string), "Du hast %s aus dem Teamposten %s entlassen", SpielerDaten[pID][pName], GetAdminRangName(pID));
    SendClientMessage(playerid, BLAU, string);
    format(string, sizeof(string), "%s hat dich aus dem Team entlassen!", SpielerDaten[playerid][pName]);
    SendClientMessage(pID, BLAU, string);
    format(string, sizeof(string), "AdmCMD: %s hat %s aus dem Team entlassen!", SpielerDaten[playerid][pName], SpielerDaten[pID][pName]);
    SendAdminMessage(ADMCMD, string);
    SpielerDaten[pID][pAdmin] = 0;
    SpielerSpeichern(pID);
    return 1;
    }
    if(adminid < 1 || adminid > MAX_ADMIN)return SendClientMessage(playerid, GRAU, "Dieser Adminrang existriert nicht!");
    SpielerDaten[pID][pAdmin] = adminid;
    format(string, sizeof(string), "Du hast %s den Teamrang %s gegeben", SpielerDaten[pID][pName], GetAdminRangName(pID));
    SendClientMessage(playerid, BLAU, string);
    format(string, sizeof(string), "* %s hat dir den Teamrang %s gegeben", SpielerDaten[playerid][pName], GetAdminRangName(pID));
    SendClientMessage(pID, BLAU, string);
    format(string, sizeof(string), "AdmCMD: %s hat %s zum %s ernannt.", SpielerDaten[playerid][pName], SpielerDaten[pID][pName], GetAdminRangName(pID));
    SendAdminMessage(ADMCMD, string);
    //SpawnPlayerEx(pID);
    SpielerSpeichern(pID);
    return 1;
    }
    else {SendClientMessage(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl.");}
    return 1;
    }

    So habe ich es versucht.


    Der Helferverwalter bzw. alle über Rang 4 sollen Helfer einstellen können, jedoch dann auch nur die Gruppe 1 vergeben können und nicht mehr.
    Helferverwalter ist ein Extra Teamrang, die Funktion müsste ich nch erstellen.


    MfG

    Einmal Dr Frauenarzt wgen dem Motor mit Taste wo wir net witerkamen und mein makehelfer Befehl bitte.


    ocmd:makehelfer(playerid, params[]){ #pragma unused params if(Eingeloggt[playerid] == 0)return SendClientMessage(playerid, GRAU, "Du bist nicht eingeloggt!"); new pID, adminid, string[128]; if(IsPlayerAdmin(playerid) || SpielerDaten[playerid][pAdmin] < 5) { if(SpielerDaten[playerid][pAdmin] < 7 && adminid > 1)return SendClientMessage(playerid, GRAU, "Du kannst nur den Rang Helfer vergeben."); if(IsPlayerNPC(pID))return 1; if(sscanf(params, "ui", pID, adminid))return SendClientMessage(playerid, GRAU, "Benutze /makehelfer [SpielerID/Name] [Teamrang]"); if(!Eingeloggt[pID])return SendClientMessage(playerid, GRAU, "Dieser Spieler ist nicht eingeloggt!"); if(SpielerDaten[pID][pIntro] < 1)return SendClientMessage(playerid, GRAU, "Der Spieler ist noch im Tutorial."); if(adminid == 0){ format(string, sizeof(string), "Du hast %s aus dem Teamposten %s entlassen", SpielerDaten[pID][pName], GetAdminRangName(pID)); SendClientMessage(playerid, BLAU, string); format(string, sizeof(string), "%s hat dich aus dem Team entlassen!", SpielerDaten[playerid][pName]); SendClientMessage(pID, BLAU, string); format(string, sizeof(string), "AdmCMD: %s hat %s aus dem Team entlassen!", SpielerDaten[playerid][pName], SpielerDaten[pID][pName]); SendAdminMessage(ADMCMD, string); SpielerDaten[pID][pAdmin] = 0; SpielerSpeichern(pID); return 1; } if(adminid < 1 || adminid > MAX_ADMIN)return SendClientMessage(playerid, GRAU, "Dieser Adminrang existriert nicht!"); SpielerDaten[pID][pAdmin] = adminid; format(string, sizeof(string), "Du hast %s den Teamrang %s gegeben", SpielerDaten[pID][pName], GetAdminRangName(pID)); SendClientMessage(playerid, BLAU, string); format(string, sizeof(string), "* %s hat dir den Teamrang %s gegeben", SpielerDaten[playerid][pName], GetAdminRangName(pID)); SendClientMessage(pID, BLAU, string); format(string, sizeof(string), "AdmCMD: %s hat %s zum %s ernannt.", SpielerDaten[playerid][pName], SpielerDaten[pID][pName], GetAdminRangName(pID)); SendAdminMessage(ADMCMD, string); //SpawnPlayerEx(pID); SpielerSpeichern(pID); return 1; } else {SendClientMessage(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl.");} return 1;}
    So hab ichs versucht.


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys & KEY_ANALOG_UP)
    {
    //Motor
    ocmd_motor(playerid,"");
    return 1;


    Versuchs mal damit
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) ist bereits im Script vorhanden, einfach den Rest dazus chreiben.


    MfG

    IsPlayerAdmin(playerid) || isPlayerAnAdmin(playerid,5))
    Hier wird abgefragt, ob der Admin den Rang 5 hat, wenn nicht dann geht der g esamte Befehl nicht oder irre ich?


    if(SpielerDaten[playerid][pAdmin] < 7 && adminid > 1) return SendClientMessage(playerid, GRAU, "Du kannst nur den Rang Helfer vergeben.");
    Hier wird abgefragt ob der Admin einen kleineren Rang als 7 hat, wenn nicht, kann er auch andere Ränge als Rang 1 vergeben oder irre ich?


    MfG


    //Edit: Irgendwie klappt das ganze bei mir nicht.

    Jetzt habe ich es so geändert wie du meintest, jedoch kann ich nun alle Ränge vergeben und nicht nur 1.


    @Jeffry



    ocmd:makehelfer(playerid, params[])
    {
    #pragma unused params
    if(Eingeloggt[playerid] == 0)return SendClientMessage(playerid, GRAU, "Du bist nicht eingeloggt!");
    new pID, adminid, string[128];
    if(IsPlayerAdmin(playerid) || isPlayerAnAdmin(playerid,7))
    {
    if(SpielerDaten[playerid][pAdmin] == 7 && adminid > 1)return SendClientMessage(playerid, GRAU, "Du kannst nur den Rang Helfer vergeben.");
    if(IsPlayerNPC(pID))return 1;
    if(sscanf(params, "ui", pID, adminid))return SendClientMessage(playerid, GRAU, "Benutze /makehelfr [SpielerID/Name] [Teamrang]");
    if(!Eingeloggt[pID])return SendClientMessage(playerid, GRAU, "Dieser Spieler ist nicht eingeloggt!");
    if(SpielerDaten[pID][pIntro] < 1)return SendClientMessage(playerid, GRAU, "Der Spieler ist noch im Tutorial.");
    if(adminid == 0){
    format(string, sizeof(string), "Du hast %s aus dem Teamposten %s entlassen", SpielerDaten[pID][pName], GetAdminRangName(pID));
    SendClientMessage(playerid, BLAU, string);
    format(string, sizeof(string), "%s hat dich aus dem Team entlassen!", SpielerDaten[playerid][pName]);
    SendClientMessage(pID, BLAU, string);
    format(string, sizeof(string), "AdmCMD: %s hat %s aus dem Team entlassen!", SpielerDaten[playerid][pName], SpielerDaten[pID][pName]);
    SendAdminMessage(ADMCMD, string);
    SpielerDaten[pID][pAdmin] = 0;
    SpielerSpeichern(pID);
    return 1;
    }
    if(adminid < 1 || adminid > MAX_ADMIN)return SendClientMessage(playerid, GRAU, "Dieser Adminrang existriert nicht!");
    SpielerDaten[pID][pAdmin] = adminid;
    format(string, sizeof(string), "Du hast %s den Teamrang %s gegeben", SpielerDaten[pID][pName], GetAdminRangName(pID));
    SendClientMessage(playerid, BLAU, string);
    format(string, sizeof(string), "* %s hat dir den Teamrang %s gegeben", SpielerDaten[playerid][pName], GetAdminRangName(pID));
    SendClientMessage(pID, BLAU, string);
    format(string, sizeof(string), "AdmCMD: %s hat %s zum %s ernannt.", SpielerDaten[playerid][pName], SpielerDaten[pID][pName], GetAdminRangName(pID));
    SendAdminMessage(ADMCMD, string);
    //SpawnPlayerEx(pID);
    SpielerSpeichern(pID);
    return 1;
    }
    else {SendClientMessage(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl.");}
    return 1;
    }

    So siehts aktuell aus.

    Klappt leider auch nicht.
    Beim Verscuh den Befehl auszuführen kommt immer Du hast nicht genügend Rechte für diesen Befehl.



    else {SendClientMessage(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl.");}
    return 1;

    Liegts vlt daran? Wen ich es entferne geschieht garnichts.


    @Jeffry

    Hallo!


    Ich möchte folgenden Befehl erstellen, damit nur ein bestimmter Rang die User nur zum Helfer machen kann.
    Wie kan ich das lösen?



    ocmd:makehelfer(playerid, params[])
    {
    #pragma unused params
    if(Eingeloggt[playerid] == 0)return SendClientMessage(playerid, GRAU, "Du bist nicht eingeloggt!");
    new pID, adminid, string[128];
    if(IsPlayerAdmin(playerid) || isPlayerAnAdmin(playerid,6))
    {
    if(sscanf(params, "ui", pID, adminid))return SendClientMessage(playerid, GRAU, "Benutze /makeadmin [SpielerID/Name] [Teamrang]");
    if(IsPlayerNPC(pID))return 1;
    if(!Eingeloggt[pID])return SendClientMessage(playerid, GRAU, "Dieser Spieler ist nicht eingeloggt!");
    if(SpielerDaten[pID][pIntro] < 1)return SendClientMessage(playerid, GRAU, "Der Spieler ist noch im Tutorial.");
    if(adminid == 0){
    format(string, sizeof(string), "Du hast %s aus dem Teamposten %s entlassen", SpielerDaten[pID][pName], GetAdminRangName(pID));
    SendClientMessage(playerid, BLAU, string);
    format(string, sizeof(string), "%s hat dich aus dem Team entlassen!", SpielerDaten[playerid][pName]);
    SendClientMessage(pID, BLAU, string);
    format(string, sizeof(string), "AdmCMD: %s hat %s aus dem Team entlassen!", SpielerDaten[playerid][pName], SpielerDaten[pID][pName]);
    SendAdminMessage(ADMCMD, string);
    SpielerDaten[pID][pAdmin] = 0;
    SpielerSpeichern(pID);
    return 1;
    }
    if(adminid < 1 || adminid > MAX_ADMIN)return SendClientMessage(playerid, GRAU, "Dieser Adminrang existriert nicht!");
    SpielerDaten[pID][pAdmin] = adminid;
    format(string, sizeof(string), "Du hast %s den Teamrang %s gegeben", SpielerDaten[pID][pName], GetAdminRangName(pID));
    SendClientMessage(playerid, BLAU, string);
    format(string, sizeof(string), "* %s hat dir den Teamrang %s gegeben", SpielerDaten[playerid][pName], GetAdminRangName(pID));
    SendClientMessage(pID, BLAU, string);
    format(string, sizeof(string), "AdmCMD: %s hat %s zum %s ernannt.", SpielerDaten[playerid][pName], SpielerDaten[pID][pName], GetAdminRangName(pID));
    SendAdminMessage(ADMCMD, string);
    //SpawnPlayerEx(pID);
    SpielerSpeichern(pID);
    return 1;
    }
    else {SendClientMessage(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl.");}
    return 1;
    }


    for(new i=0;i<sizeof(REPORTSYS);i++){ TextDrawHideForPlayer(playerid,REPORTSYS[i]); }
    PlayerTextDrawHide(playerid, SUPPORT[playerid]);
    PlayerTextDrawHide(playerid, BUGMELDUNG[playerid]);
    PlayerTextDrawHide(playerid, EINWEISUNG[playerid]);
    PlayerTextDrawHide(playerid, SCHLIESSEN[playerid]);
    TextDrawShowForPlayer(playerid,Reportdraw[0]);


    Das ist der ganze Absatz


    ocmd@2:neuling,n(playerid, params[])
    {
    #pragma unused params
    if(Eingeloggt[playerid] == 0)return SendClientMessage(playerid, GRAU, "Du bist nicht eingeloggt!");
    new string[128];
    printf("pLevel: %d / pAdmin: %d", SpielerDaten[playerid][pLevel], SpielerDaten[playerid][pAdmin]);
    if(SpielerDaten[playerid][pLevel] > 3 && SpielerDaten[playerid][pAdmin] == 0 /*&& SpielerInfo[playerid][pEinweiser] == 0*/)
    return SendClientMessage(playerid,ROT,"Du bist kein Neuling mehr!");
    printf("Meldung nicht ausgegeben");
    if(sscanf(params,"s[128]",string))return SendClientMessage(playerid, WEISS,"Befehl: /n [Nachricht]");
    if(SpielerDaten[playerid][pAdmin] == 7)
    {
    format(string, sizeof(string), "[Helfer] %s: %s",SpielerDaten[playerid][pName],string);
    }
    else if(SpielerDaten[playerid][pAdmin] > 1)
    {
    format(string, sizeof(string), "[%s] %s: %s",GetAdminRangName(playerid),SpielerDaten[playerid][pName],string);
    }
    else
    {
    format(string, sizeof(string), "[Neuling] %s: %s",SpielerDaten[playerid][pName],string);
    }
    SendLevelMessage(0x00F5FFFF, string);
    return 1;
    }


    [19:01:17] pLevel: 10 / pAdmin: 7
    [19:01:17] Meldung nicht ausgegeben