Beiträge von JustMe.77

    Okay, jetzt funktioniert's. Habe eine Funktion erstellt womit der Spieler den Global Chat für sich an / ausschalten kann, nur fehlt mir folgende Funktion.


    (Das man nichts mehr schreiben kann habe ich hinbekommen)


    Wie mache ich das man keine Nachrichten von den anderen Spielern mehr sieht?


    In OnPlayerText



    if(pData[playerid][P_GlobalChat] == 1)
    {
    SendClientMessage(playerid, COLOR_RED, "Your global chat is disabled!");
    return 0;
    }

    Hi, ich habe bereits seit längerer Zeit das Problem das einige Textdraws von mir nicht problemfrei arbeiten, sie "conflicten" miteinander (schwer zu erklären), mal ist es da, mal nicht..
    Habe bereits nach dem Problem gesucht und habe etwas gefunden, nur leider klappt es nicht ganz (ich erhalte Errors bei der Problemlösung), vielleicht könnt ihr mir ja helfen.


    http://forum.sa-mp.com/showthread.php?t=314350


    Wie müsste ich z.B. folgendes umschreiben wie Gamer_Z im Thema vorgeschlagen hat?


    new PlayerText:Arrow[MAX_PLAYERS][5];

    Das Ganze ist trotzdem noch nicht 100 % durchdacht worden, so ist es in meinen Augen zumindest.
    Jeder Server bestraft Cheater komplett anders, der eine Server lässt sie gar nicht mehr drauf spielen, der andere entbannt die wieder nach x Tagen etc.
    Wird dann ein Entbann Antrag erstellt und man einigt sich drauf Spieler XY zu entbannen, muss man auf den "Plugin Betreiber" warten bis er ihn entbannt und nehmen wir mal an dein Plugin wird von mehreren großen Communitys verwendet, wie willst du das alles managen die Spieler auf Anfrage zu entbannen?

    Ich würde als Server Owner nie ein Plugin installieren wenn dadurch Spieler gesperrt werden außerhalb meines Admin Teams. Habe schon oft die Inkompetenz Admins anderer Server erleben dürfen und hätte keine Lust darauf das Spieler nicht auf mein Server connecten können weil 90% der Admins keine Ahnung von Cheats/Hacks haben.

    Jemand eine Idee warum sich mein Textdraw nicht anklicken lässt?



    SkillTD[playerid][1] = CreatePlayerTextDraw(playerid,244.000000, 100.000000, "Double - EXP");
    PlayerTextDrawBackgroundColor(playerid,SkillTD[playerid][1], 255);
    PlayerTextDrawFont(playerid,SkillTD[playerid][1], 2);
    PlayerTextDrawLetterSize(playerid,SkillTD[playerid][1], 0.280000, 1.200000);
    PlayerTextDrawTextSize(playerid, SkillTD[playerid][1], 340.0, 8.0);
    PlayerTextDrawColor(playerid,SkillTD[playerid][1], -1);
    PlayerTextDrawSetOutline(playerid,SkillTD[playerid][1], 0);
    PlayerTextDrawSetProportional(playerid,SkillTD[playerid][1], 1);
    PlayerTextDrawSetShadow(playerid,SkillTD[playerid][1], 1);
    PlayerTextDrawSetSelectable(playerid,SkillTD[playerid][1], 1);



    public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
    {



    if(playertextid == SkillTD[playerid][1])
    {

    new expstring[512];
    strcat(expstring,"{FFFFFF}Skill Name:\n{FF0000}Double EXP Chance\n");
    strcat(expstring,"{FFFFFF}Description:\n");
    strcat(expstring,"{FFFFFF}You have a {FF0000}chance{FFFFFF} to get {FF0000}double EXP {FFFFFF}if you kill someone.\n");
    strcat(expstring,"{FFFFFF}The chance depends on your {FF0000}skill level.\n\n\n");
    strcat(expstring,"{FFFFFF}Skill 1 = {FF0000}10 % Chance.\n");
    strcat(expstring,"{FFFFFF}Skill 2 = {FF0000}20 % Chance.\n");
    strcat(expstring,"{FFFFFF}Skill 3 = {FF0000}30 % Chance.\n");
    strcat(expstring,"{FFFFFF}Skill 4 = {FF0000}40 % Chance.\n");
    strcat(expstring,"{FFFFFF}Skill 5 = {FF0000}50 % Chance.\n");
    ShowPlayerDialog(playerid, D_DoubleEXP, DIALOG_STYLE_MSGBOX, "Description", expstring, "Ok", "");
    }
    }




    return 1;
    }

    Hmm als ich das nur für ein Skill hinzugefügt habe, hat es funktioniert, jetzt habe ich es für alle gemacht und es kommt überall eine andere Prozentzahl raus O.o
    Außerdem fehlt das Prozentzeichen, obwohl ich es auch dahinter eingefügt habe :S



    new string[5];
    format(string,sizeof(string),"%d",100/pData[playerid][P_DoubleEXP]);
    PlayerTextDrawSetString(playerid, EXPSkillCount[playerid][0], string);




    switch(pData[playerid][P_DoubleEXP])
    {
    case 5:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0x008000FF);
    case 4:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0x80FF00FF);
    case 3:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0xFFFF00FF);
    case 2:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0xFF8000FF);
    case 1:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0xFF0000FF);
    case 0:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0xC0C0C0FF);
    }




    SetPlayerProgressBarValue(playerid,Bar1[playerid],pData[playerid][P_DoubleWeed]*20);




    new string2[5];
    format(string2,sizeof(string2),"%d",100/pData[playerid][P_DoubleWeed]);
    PlayerTextDrawSetString(playerid, EXPSkillCount[playerid][1], string2);
    switch(pData[playerid][P_DoubleWeed])



    http://imgur.com/RGOb5s2

    Ok, ist ja in Ordnung, dachte nur man hätte das noch einfacher schreiben können. Meine letzte Frage:


    Ich habe Textdraws eingefügt die anzeigen wie viel Prozent man zurzeit hat (0, 20, 40, 60, 80 & 100)
    Wie kann ich die Zahl dem passenden Level anpassen ohne gleich den Code um die ~25 mal zu kopieren?


    Also, so setze ich den beispielsweise auf 100 %


    PlayerTextDrawSetString(playerid, EXPSkillCount[playerid][0], "100%");


    Könnte ich nicht eine ähnliche Variante wie   SetPlayerProgressBarValue(playerid,Bar0[playerid],pData[playerid][P_DoubleEXP]*20); verwenden damit ich das nicht oftmals kopieren muss?

    @AirM4X


    Danke schonmal, das ist natürlich schon um Welten besser :) !


    Nur, ich besitze ja auch 6 verschiedene Skills, müsste ich dazu für jeden Skill den ganzen Case kopieren oder könnte man da auch zaubern?
    (Die Farben bleiben ja gleich, auch wenn die Skills verschieden sind. Beispiel: DoppelGeld & Doppel EXP Skill Level 1 bleibt rot.)


    (Oben sind ja zwei verschiedene Skills aufgelistet (P_Deatghexplosion & P_Armourspawn) )


    Genauer gesagt, muss ich das so machen oder geht's nochmal besser?:



    CMD:skills2(playerid,params[])
    {
    if(SkillShowing[playerid] == 1)
    {
    SkillShowing[playerid] = 0;
    HideSkillTextDraw(playerid);
    HideSkillBar(playerid);
    return 1;
    }



    else
    {
    SkillShowing[playerid] = 1;
    ShowSkillBar(playerid);
    ShowSkillTextDraw(playerid);
    SetPlayerProgressBarValue(playerid,Bar0[playerid],pData[playerid][P_DoubleEXP]*20);
    switch(pData[playerid][P_DoubleEXP])
    {
    case 5:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0x008000FF);
    case 4:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0x80FF00FF);
    case 3:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0xFFFF00FF);
    case 2:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0xFF8000FF);
    case 1:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0xFF0000FF);
    case 0:SetPlayerProgressBarColour(playerid, Bar0[playerid], 0xC0C0C0FF);
    }



    SetPlayerProgressBarValue(playerid,Bar1[playerid],pData[playerid][P_DoubleWeed]*20);
    switch(pData[playerid][P_DoubleWeed])
    {
    case 5:SetPlayerProgressBarColour(playerid, Bar1[playerid], 0x008000FF);
    case 4:SetPlayerProgressBarColour(playerid, Bar1[playerid], 0x80FF00FF);
    case 3:SetPlayerProgressBarColour(playerid, Bar1[playerid], 0xFFFF00FF);
    case 2:SetPlayerProgressBarColour(playerid, Bar1[playerid], 0xFF8000FF);
    case 1:SetPlayerProgressBarColour(playerid, Bar1[playerid], 0xFF0000FF);
    case 0:SetPlayerProgressBarColour(playerid, Bar1[playerid], 0xC0C0C0FF);
    }
    ShowSkillBar(playerid);
    }
    return 1;
    }