Headshot kill

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
  • Guten Abend liebe Community,


    ich krieg es einfach nicht hin das mein Headshot als Hitman kill gezählt wird.
    Könnte mir da jemand kurz helfen ?


    stock Headshot_ErmittleZielperson(playerid)
    {
    if(PlayerInfo[playerid][pMember] == 10 || PlayerInfo[playerid][pLeader] == 10)
    {
    new Float:x,Float:y,Float:z,Float:FrontX,Float:FrontY,Float:FrontZ,Float:CamX,Float:CamY,Float:CamZ;
    GetPlayerCameraFrontVector(playerid, FrontX, FrontY, FrontZ);
    GetPlayerCameraPos(playerid, CamX, CamY, CamZ);
    for(new Float:i = 0.0; i < 100; i = i + 0.5)
    {
    x = FrontX * i + CamX; y = FrontY * i + CamY; z = FrontZ * i + CamZ;
    for(new zielperson = 0; zielperson < MAX_PLAYERS; zielperson ++)
    {
    if(!IsPlayerNPC(zielperson) && !IsPlayerInAnyVehicle(playerid))
    if(IsPlayerConnected(zielperson))
    {
    if(zielperson != playerid)
    {
    if(SPIELER_GEDUCKT(zielperson))
    {
    if(IsPlayerInRangeOfPoint(zielperson, 0.4, x, y, z))
    {
    GameTextForPlayer(playerid, "~r~HEADSHOT", 2000, 6);
    TOETESPIELER(zielperson);
    else
    {
    if(IsPlayerInRangeOfPoint(zielperson, 0.4, x, y, z - 0.7))
    {
    GameTextForPlayer(playerid, "~r~HEADSHOT", 2000, 6);
    TOETESPIELER(zielperson);
    }
    }
    }
    }
    }
    }
    }
    return 1;
    }




    Unter OnPlayerDeath hab ich nichts drin. Wüsste auch nicht was ich dort genau rein machen müsste damit der kill gezählt wird :wacko: ?(


    edit: richtig hin gerückt

    2 Mal editiert, zuletzt von dave1091 ()

  • Du benötigst eine Variable (Integer) den du einfach bei jedem Tod mitzählen lässt sowie eine Variable die du auf setzt sobald es ein Headshot ist, diese solltest du beim Spawnen wieder auf '0' oder negativ setzen.
    Den Rest solltest du alleine hinbekommen.

  • Hatte nun in dem "stock Headshot_ErmittleZielperson(playerid)" bei "TOETESPIELER(zielperson)" folgendes eingefügt
    "PlayerInfo[zielperson][pHeadshotkill] = 1;" anschließend hatte ich bei OnPlayerDeath rein geschrieben wenn "PlayerInfo[zielperson][pHeadshotkill] = 1;" ist kommt der getötete ins jail, danach wird dann "
    PlayerInfo[zielperson][pHeadshotkill]" auf "0" gesetzt . Aber leider passiert da nichts, könnte mir da nochmal einer auf die sprünge helfen ?(

  • stock Headshot_ErmittleZielperson(playerid)
    {
    if(PlayerInfo[playerid][pMember] == 10 || PlayerInfo[playerid][pLeader] == 10)
    {
    new Float:x,Float:y,Float:z,Float:FrontX,Float:FrontY,Float:FrontZ,Float:CamX,Float:CamY,Float:CamZ;
    GetPlayerCameraFrontVector(playerid, FrontX, FrontY, FrontZ);
    GetPlayerCameraPos(playerid, CamX, CamY, CamZ);
    for(new Float:i = 0.0; i < 100; i = i + 0.5) {
    x = FrontX * i + CamX; y = FrontY * i + CamY; z = FrontZ * i + CamZ;
    for(new zielperson = 0; zielperson < MAX_PLAYERS; zielperson ++) {
    if(!IsPlayerNPC(zielperson) && !IsPlayerInAnyVehicle(playerid))
    if(IsPlayerConnected(zielperson)) {
    if(zielperson != playerid) {
    if(SPIELER_GEDUCKT(zielperson)) {
    if(IsPlayerInRangeOfPoint(zielperson, 0.4, x, y, z)) {
    GameTextForPlayer(playerid, "~r~HEADSHOT", 2000, 6);
    PlayerInfo[zielperson][pHeadshotkill] = 1;
    TOETESPIELER(zielperson);
    }
    }
    else {
    if(IsPlayerInRangeOfPoint(zielperson, 0.4, x, y, z - 0.7))
    {
    GameTextForPlayer(playerid, "~r~HEADSHOT", 2000, 6);
    PlayerInfo[zielperson][pHeadshotkill] = 1;
    TOETESPIELER(zielperson);
    }
    }
    }
    }
    }
    }
    }
    return 1;
    }


    OnPlayerDeath:


    if(PlayerInfo[playerid][pHeadValue] > 0 || PlayerInfo[playerid][pHeadValue] > 0 && PlayerInfo[playerid][pHeadshotkill] > 0)
    {
    if(IsPlayerConnected(killerid))
    {
    if(PlayerInfo[killerid][pMember] == 10 || PlayerInfo[killerid][pLeader] == 10)
    {
    if(GoChase[killerid] == playerid )
    {
    ConsumingMoney[killerid] = 1;
    new killer[MAX_PLAYER_NAME];
    GetPlayerName(killerid, killer, sizeof(killer));
    GivePlayerMoney(killerid, PlayerInfo[playerid][pHeadValue]);
    format(string,128,"<< Hitman %s hat den Auftrag an %s erfüllt und bekommt: $%d >>",killer,name,PlayerInfo[playerid][pHeadValue]);
    SendFamilyMessage(10, COLOR_YELLOW, string);
    PlayerInfo[playerid][pTot] = 0;
    pIstTot[playerid] = 0;
    DestroyPickup(TotenKopf[playerid][0]);
    PlayerInfo[playerid][pHeadshotkill] = 0;
    PlayerInfo[playerid][pHeadValue] = 0;
    PlayerInfo[playerid][pJailed] = 2;
    PlayerInfo[playerid][pJailTime] = 1800;
    SetPlayerInterior(playerid, 3);
    SetPlayerPos(playerid, 197.6924,174.9631,1003.0234);
    GotHit[playerid] = 0;
    GetChased[playerid] = 999;
    GoChase[killerid] = 999;
    }
    }
    }
    }