Beim Aduty Godmode.

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
  • Ich habe schon alles versucht.


    Ich werde es jetzt be Aduty lassen, ich möchte trotzdem wissen wie es geht wenn es mit den Hex Code nicht geht, wenn es unter
    OnPlayerTake Damage nicht geht, ich lasse es, dann kann man ebend als Admin sterben.
    Das macht nun auch nichts mehr, ich werde euch nochmal Fragen wenn ihr mehr dadrüber wisst.
    Ich weiss nicht was ich mit
    new Float:hp;
    GetPlayerHealth(playerid,hp);
    SetPlayerHealth(playerid,hp+ammount);
    Soll.


    Das hätte ja keine Wirkung.
    Muss ich ne Adminduty abfrage machen ?


    Wenn ihr noch weiter Lust habt zu helfen, dann tut das bitte.


  • ja unter OnPlayerTakeDamage :


    if(aduty[playerid]==1)
    {
    new Float:hp;
    GetPlayerHealth(playerid,hp);
    SetPlayerHealth(playerid,hp+ammount);
    }


    // zusatz Erklärung: GetPlayerHealth(playerid,hp); : es liest die HP von dem getroffendem aus.
    SetPlayerHealth(playerid,hp+ammount); : er setzt die HP auf die vorher ausgelesen + ammount. Ammount ist der schaden den du erlitten hast.
    und das geht tausend Prozentig, es sei denn deine Variable aduty wird falsch oder garnicht gesetzt....

    Einmal editiert, zuletzt von PullDown ()

  • Macht es doch einfach und Simple



    //ganz oben im Script
    new ag[MAX_PLAYERS];


    ocmd:aduty(playerid,params[])
    {
    ..............//Dein Kram also wenn er /aduty geht
    ag[playerid]=SetTimerEx("adutyg",1,1,"d",playerid);
    }
    else
    {
    //Wenn er OFF Duty geht
    SetPlayerArmour(playerid,0);
    KillTimer(ag[playerid]);
    }
    //Iwo im Scirpt
    forward adutyg(playerid);
    public adutyg(playerid)
    {
    SetPlayerArmour(playerid,100);
    SetPlayerHealth(playerid,100);
    return 1;
    }

  • ag[playerid]=SetTimerEx("adutyg",1,1,"d",playerid);


    Das ist das schlimmste was geht.


    OMG mehr belasten kann man das Script auch nicht.


    Einen Timer zu starten, der jedem millisekunde wiederholt wird....
    Am einfachsten ist es so:



    public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
    {
    if(ADuty[playerid]==1)
    {
    SetPlayerHealth(playerid,100);
    }
    }

    ~~ Motorradfahrer aus Leidenschaft :love: ~~


    ~~ Supermoto ~~

  • Aber nicht gegen schüsse.


    Ich habe es so, und ich bin unkillbar!!
    if(strcmp(cmd, "/aduty", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new string[128];
    if(Spieler[playerid][Admin] < 1)return SendClientMessage(playerid, ROT, "Du besitzt nicht die benötigten Rechte.");
    if(ADuty[playerid] == 0)
    {
    ADuty[playerid] = 1;
    SetPlayerColor(playerid, COLOR_RED);
    SetPlayerMarkerForPlayer( 42, 1, BLAU );
    new atext[20];
    new admlv = Spieler[playerid][Admin];
    if(admlv == 1){ atext="Supporter";}
    else if(admlv == 2){ atext="Admin";}
    else if(admlv == 3){ atext="Admin";}
    else if(admlv == 4){ atext="Admin";}
    else if(admlv == 5){ atext="Head-Admin";}
    format(string, sizeof(string), "** %s %s hat sich als Supporter angemeldet", admlv, SpielerName(playerid));
    SendClientMessageToAll(COLOR_RED, string);
    SetPlayerHealth(playerid, 0x7F800000);
    }
    else if(ADuty[playerid] == 1)
    {
    ADuty[playerid] = 0;
    new atext[20];
    new admlv = Spieler[playerid][Admin];
    if(admlv == 1){ atext="Supporter";}
    else if(admlv == 2){ atext="Admin";}
    else if(admlv == 3){ atext="Admin";}
    else if(admlv == 4){ atext="Admin";}
    else if(admlv == 5){ atext="Head-Admin";}
    format(string, sizeof(string), "** %s %s hat sich als Supporter abgemeldet", admlv, SpielerName(playerid));
    SendClientMessageToAll(COLOR_RED, string);
    SetPlayerHealth(playerid, 80);
    }
    }
    return 1;
    }