Fraktionsrang zuweisen ?

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Einen schönen 4. Advent Community,


    ich bin gerade ein bisschen neben der Spur, ich habe jetzt ein Dynamisches Rangsystem geschrieben, dies funktioniert auch alles..
    jetzt bin ich aber dabei das ganze auch im Fraktionschat einzubauen. Da fängt es an zu Harpern. Ich weiß nicht wie ich den Spieler
    Rang dem Fraktionsrang zuweisen soll...


    Code sollte erklärend sein..


    enum fraks
    {
    Fraktion,
    Rang1[32],
    Rang2[32],
    Rang3[32],
    Rang4[32],
    Rang5[32],
    Rang6[32],
    Rang7[32],
    Rang8[32],
    Rang9[32],
    Rang10[32]
    }



    COMMAND:f(playerid,params[])
    {
    if(SpielerInfo[playerid][Eingeloggt] == 0)return SendClientMessage(playerid,Grau,"Du bist nicht eingloggt!");
    if(SpielerInfo[playerid][Fraktion] == 0)return SendClientMessage(playerid,Orange,"Du bist kein Mitglied einer Fraktion!");
    new msg[128],string[128],strpos = strfind(msg,"www",true);
    if(sscanf(params,"s[128]",msg))return SendClientMessage(playerid,Gelb,"Fraktionschat: [Message]");
    if(strfind(msg,".",true) != -1 && strfind(msg,":",true) != -1 && strlen(msg) > 8 && strfind(msg,TSIP,false) == -1)
    {
    strdel(msg,strpos,strfind(msg,".",true) && strfind(msg,":",true));
    return 1;
    }
    switch(SpielerInfo[playerid][Rang])
    {
    case 10:
    {
    printf("%s",Fraktionen[SpielerInfo[playerid][Fraktion]][Rang10]); // wird nicht geprintet.. Mein Rang ist 10..
    format(string,sizeof(string),"**(( %s %s: %s ))**",Fraktionen[SpielerInfo[playerid][Fraktion]][Rang10],SpielerName(playerid),msg);
    }
    }
    SendFraktionsMessage(SpielerInfo[playerid][Fraktion],Hellblau,string);
    return 1;
    }


    Am besten wäre es das ganze irgendwie in einen stock zu packen aber ich bräuchte einen kleinen Denkanstoß..

  • Warum so umständlich? So wäre dein befehl iwann seehr lang, Probiers doch mal so.

    COMMAND:f(playerid,params[])
    {
    if(SpielerInfo[playerid][Eingeloggt] == 0)return SendClientMessage(playerid,Grau,"Du bist nicht eingloggt!");
    if(SpielerInfo[playerid][Fraktion] == 0)return SendClientMessage(playerid,Orange,"Du bist kein Mitglied einer Fraktion!");
    new msg[128],string[128],Rank[10],strpos = strfind(msg,"www",true);
    if(sscanf(params,"s[128]",msg))return SendClientMessage(playerid,Gelb,"Fraktionschat: [Message]");
    if(strfind(msg,".",true) != -1 && strfind(msg,":",true) != -1 && strlen(msg) > 8 && strfind(msg,TSIP,false) == -1)return strdel(msg,strpos,strfind(msg,".",true) && strfind(msg,":",true));
    format(rank,10,"Rang%d",SpielerInfo[playerid][Rang]);
    format(string,sizeof(string),"**(( %s %s: %s ))**",Fraktionen[SpielerInfo[playerid][Fraktion]][rank],SpielerName(playerid),msg);
    SendFraktionsMessage(SpielerInfo[playerid][Fraktion],Hellblau,string);
    return 1;
    }

    Söllte selbsterklärend sein ;)


    Aber formatierst du die ränge beim laden/ändern auch?