Beiträge von NoxiZ

    Moin, wie ich gemerkt habe, muss man um in einer SendClientMessage mehrere farben verwenden zu können, den HTML Farbcode vor den zu färbenden text setzen.
    Haben die Codes eine bestimmte struktur mit der sich der HTML Code ermitteln lässt oder geht das nur mit der funktion im colorpicker?


    habe es mit dem color pciker versucht, aber die farbe war heller als sie sein sollte

    Ich teste grad alle meine Befehle und Optimiere sie ein wenig.
    Dabei ist mir aufgefallen, das mein /ban Command nicht korrekt funktioniert bzw. die abfrage ob ein Spieler gebannt ist garnicht funktioniert.


    Wenn bei OnPlayerConnect


    Meine abfrage if (sSpieler [playerid][gebannt] = 1 abgefragt wird soll eine nachricht kommen und ein timer starten dsmit der spieler gekickt wird.
    Leider passiert dies nicht


    public OnPlayerConnect (playerid)
    {
    if (sSpieler[playerid][Gebannt] = 1)
    {
    SendclientMessage ...
    SetTimer("KickTimer",300,0);
    return 1;
    }

    hat gefunkt
    die letzte sache die nicht funktioniert wäre dies hier.
    mein /leader ist exakt genauso aufgebaut und funktioniert tadelos



    dcmd_admins(playerid,params[])
    {
    #pragma unused params
    new admin[MAX_PLAYER_NAME];
    new string[256];
    SendClientMessage(playerid,Weiß, "Anwesende Admins:");
    //for(new i; i < MAX_PLAYERS; i++)
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(sSpieler[i][Adminlevel] == 1)
    {
    GetPlayerName(i,admin,sizeof(admin));
    format(string,sizeof(string),"Supporter: %s",admin);
    SendClientMessage(playerid,Weiß,string);
    }
    if(sSpieler[i][Adminlevel] == 2)
    {
    GetPlayerName(i,admin,sizeof(admin));
    format(string,sizeof(string),"Moderator: %s",admin);
    SendClientMessage(playerid,Weiß,string);
    }
    if(sSpieler[i][Adminlevel] == 3)
    {
    GetPlayerName(i,admin,sizeof(admin));
    format(string,sizeof(string),"Super Moderator: %s",admin);
    SendClientMessage(playerid,Weiß,string);
    }
    if(sSpieler[i][Adminlevel] == 4)
    {
    GetPlayerName(i,admin,sizeof(admin));
    format(string,sizeof(string),"Vorstand: %s",admin);
    SendClientMessage(playerid,Weiß,string);
    return 1;
    }
    }
    }
    return 1;
    }

    ok werde das mal testen.
    Wie müsste es aussehen wenn noch die farbe geändert werden soll? Oder 3d übern admin?


    dcmd_amodus(playerid,params[])
    {
    #pragma unused params
    if(sSpieler[playerid][Adminlevel] < 1) return SendClientMessage(playerid,Weiß,"Du hast nicht die benötigten Rechte, um diesen Befehl auszuführen!");
    if(aDuty[playerid] == 0)
    {
    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);
    SetPlayerHealth(playerid,60000);
    SetPlayerArmour(playerid,60000);
    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);
    SetPlayerHealth(playerid,100);
    SetPlayerArmour(playerid,100);
    SendClientMessage(playerid,Weiß,"Du hast den Adminmodus beendet!");
    }
    return 1;
    }


    Habe es momentan so aber leider ändert sich der spielername nichtmehr zurück.


    Meine frage wäre jetzt wie man einen spieler ein 3d textlabel ransetzt und die farbe ändert und bein ausschalten des modus auf die ursprungsfarbe setzz

    Habe diesen Giverank befehl



    dcmd_giverank(playerid,params[])
    {
    new pid;
    new rang = sSpieler[playerid][Rang];
    new spieler[256];
    new leader[256];
    new spielername[MAX_PLAYER_NAME];
    new leadername[MAX_PLAYER_NAME];
    if(sscanf(params,"ud",pid,rang)) return SendClientMessage(playerid,Weiß,"Info: /giverank (playerid)(rang)");
    if(pid == INVALID_PLAYER_ID) return SendClientMessage(playerid,Weiß,"Der Spieler mit dieser ID ist nicht Online!");
    if(sSpieler[playerid][Leader] < 1) return SendClientMessage(playerid,Weiß,"Du bist kein Leader!");
    if(pid == playerid) return SendClientMessage(playerid,Weiß,"Du kannst dir nicht selbst einen Rang geben!");
    if(rang < 1 || rang > 6) return SendClientMessage(playerid,Weiß,"Der Rang muss zwischen 1 und 6 liegen!");
    GetPlayerName(playerid,leadername,sizeof(leadername));
    GetPlayerName(pid,spielername,sizeof(spielername));
    if(sSpieler[playerid][Leader] > 0)
    {
    format(spieler,sizeof(spieler),"Du wurdest von %s zum Rang %d befördert",leadername,rang);
    format(leader,sizeof(leader),"Du hast %s zum Rang %d befördert",spielername,rang);
    SendClientMessage(pid,Weiß,spieler);
    SendClientMessage(playerid,Weiß,leader);
    }
    return 1;
    }


    und folgenden stock der die rangnamen definieren soll



    //FRAKTIONSRÄNGE
    stock GetRangName(playerid)
    {
    new name[32];
    name = "Rangname";
    switch(sSpieler[playerid][Fraktion])
    {
    case 1:
    {
    switch(sSpieler[playerid][Rang])
    {
    case 1: name = "Laufbursche";
    case 2: name = "Fahrer";
    case 3: name = "Bodyguard";
    case 4: name = "Homie";
    case 5: name = "Rechte Hand";
    case 6: name = "Anführer";
    case 7: name = "Leader";
    }
    }
    case 2:
    {
    switch(sSpieler[playerid][Rang])
    {
    case 1: name = "Laufbursche";
    case 2: name = "Fahrer";
    case 3: name = "Bodyguard";
    case 4: name = "Homie";
    case 5: name = "Rechte Hand";
    case 6: name = "Anführer";
    case 7: name = "Leader";
    }
    }
    case 3:
    {
    switch(sSpieler[playerid][Rang])
    {
    case 1: name = "Officer";
    case 2: name = "Sergeant";
    case 3: name = "Leutenant";
    case 4: name = "Captain";
    case 5: name = "Inspector";
    case 6: name = "Chief";
    case 7: name = "Stuff Chief";
    }
    }
    case 4:
    {
    switch(sSpieler[playerid][Rang])
    {
    case 1: name = "Rettungshelfer";
    case 2: name = "Rettungsassistent";
    case 3: name = "Rettungssanitäter";
    case 4: name = "Notarzt";
    case 5: name = "Notärztin";
    case 6: name = "Oberarzt";
    case 7: name = "Chefarzt";
    }
    }
    case 5:
    {
    switch(sSpieler[playerid][Rang])
    {
    case 1: name = "Fahrlehrer";
    case 2: name = "Fahrlehrer";
    case 3: name = "Fahrlehrer";
    case 4: name = "Fahrlehrer";
    case 5: name = "Fahrlehrer";
    case 6: name = "Stv. Chef";
    case 7: name = "Chef";
    }
    }
    case 6:
    {
    switch(sSpieler[playerid][Rang])
    {
    case 1: name = "Fahrer";
    case 2: name = "Logistiker";
    case 3: name = "Fachlogistiker";
    case 4: name = "Lagerleiter";
    case 5: name = "Lagermeister";
    case 6: name = "Stv. Geschäftsleitung";
    case 7: name = "Geschäftsleitung";
    }
    }
    }
    return name;
    }


    leider ändert sich nur der rang aber nicht der rangname.
    habe schon ein paar sachen versucht ohne erfolg

    Keine Bange der ist nicht kopiert höchstens von mir selber.


    habe diesen Befehl:



    dcmd_gc(playerid,params[])
    {
    new text[256];
    new spielername[MAX_PLAYER_NAME];
    if(sscanf(params,"s",text)) return SendClientMessage(playerid,Weiß,"Info: /gc (text)");
    if(sSpieler[playerid][Fraktion] < 1 || sSpieler[playerid][Fraktion] > 2) return SendClientMessage(playerid,Weiß,"Du bist in keiner Gang!");
    {
    GetPlayerName(playerid,spielername,sizeof(spielername));
    format(text,sizeof(text),"%s %s %s: %s",GetFraktionName(playerid),GetRangName(playerid),spielername,text);
    SendGangMessage(1&&2,Weiß,text);
    }
    return 1;
    }


    Wie man sehen kann soll der geschriebene Text an Fraktion 1 und 2 gesendet werden.
    Bei Frak. 1 klappt das auch, ob dabei die Nachricht an 2 gesendet wird, weiß ich momentan nicht.
    Bei Frak. 2 passiert wiederum nichts. Wie ich schon öfter bemerkt habe, kommt der nicht dastehende Text bei Fraktion 1 an.


    Mein stock sieht so aus:



    //GANGNACHRICHTEN
    stock SendGangMessage(frakid,farbe,string[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(sSpieler[i][Fraktion] == frakid)SendClientMessage(i,farbe,string);
    }
    }


    meine komplette bugliste besteht momentan aus diesem problem