Deagle Tazer Problem

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
  • Hallo.
    Ich habe ein Deagle Tazer gemacht. Also wenn ein Spieler mit einer Deagle von einem Admin angeschossen wird, so wird er gefreezed (Ich habe noch kein Polizei system vondaher erst Admin).


    Allerdings möchte ich nicht, das dem Spieler leben abgezogen wird.
    Ich hatte es versucht so zu lösen:



    public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid)
    {
    new Float:lebenvorschuss[MAX_PLAYERS];
    GetPlayerHealth(playerid, Float:lebenvorschuss[playerid]);

    if(GetPlayerWeapon(playerid) == 24)
    {
    if(SpielerInfo[playerid][pAdminlevel] == 5)
    {
    SetTimerEx("Tazer", 10000, false); //Zeile 339
    SCM(issuerid, "Ein Polizist hat dich mit seinem Tazer bewegungsunfähig gemacht.");
    TogglePlayerControllable(issuerid, 1);
    }
    }
    return 1;
    }


    Allerdings bekomme ich so diesen Warning:
    (339) : warning 202: number of arguments does not match definition


    Lg Sonderzeichen

  • Du verwendest SetTimerEx, damit übergibt man Variablen ;)


    Wenn in dem Callback "Tazer" der Parameter playerid steht, müsste der Timer z.B. so aussehen:


    SetTimerEx("Tazer", 10000, 0, "i", playerid);


    PS:


    TogglePlayerControllable(issuerid, 1);//1 = unfreeze, du musst da ne 0 machen für freeze


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Hier, ist einfacher.

    //OnPlayerKeyStateChange
    new targetid = GetPlayerTargetPlayer(playerid);
    if(targetid != INVALID_PLAYER_ID)
    {
    if((newkeys & KEY_CROUCH) && !(oldkeys & KEY_CROUCH))
    {
    if(!(Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 2))return 1;
    if(GetPlayerWeapon(playerid) != 24)return 1;
    if(TazerTime[playerid] == 0)return 1;
    new string[128];
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x,y,z);
    if(Tazered[targetid] == 1)return 1;
    if(IsPlayerInRangeOfPoint(targetid, 10.0, x,y,z))
    {
    FreezePlayer(targetid);
    TazerTime[playerid] = 0;
    TextDrawShowForPlayer(targetid, TazerBox);
    ClearAnimations(playerid);
    ApplyAnimation(targetid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0); // Dieing of Crack
    SetTimerEx("TazerReady", 20000, 0, "i", playerid);
    Tazered[targetid] = 1;
    unfreezewait[targetid] = SetTimerEx("UnFreeze", 15000, 0, "i", targetid);
    format(string, sizeof(string), "* %s schoss mit seinem Tazer auf %s.", GetName(playerid), GetName(targetid));
    for(new i=0;i<GetMaxPlayers();i++)
    {
    if(IsPlayerInRangeOfPoint(i, 10.0, x,y,z))
    {
    SendClientMessage(i, COLOR_WHITE, string);
    }
    }
    }
    }
    }