[AMXX] No Teamflash

Vaata eelmist teemat Vaata järgmist teemat Go down

avatar
Tonight


Postitusi : 14447
Maine : 2592
Liitus : 19/02/2012
Staatus : @Faval
Vaata kasutaja profiili

PostitamineTonight on 02.11.12 16:45


Kirjeldus: See plugin eemaldab teamflashimise võimaluse. Küll aga, saad sa ise ikkagi ennast kogemata flashida.

DOWNLOAD:

Attachments
simple_no_team_flash.zip You don't have permission to download attachments.(4 Kb) Downloaded 185 times
avatar
NSA
Juunior
Postitusi : 32
Maine : 10
Liitus : 22/01/2013
Vaata kasutaja profiili

PostitamineNSA on 12.04.13 20:54

Kuhu see installida tuleb.. :D
avatar
visahing1
Juunior
Postitusi : 15
Maine : 8
Liitus : 29/04/2013
Vaata kasutaja profiili

Postitaminevisahing1 on 10.06.13 12:40

simple_no_team_flash.amxx läheb plugins kausta (kirjuta plugins.ini uus rida ka)
simple_no_team_flash.sma läheb Scripting kausta

Tänud, töötab :D !


avatar
Tonight


Postitusi : 14447
Maine : 2592
Liitus : 19/02/2012
Staatus : @Faval
Vaata kasutaja profiili

PostitamineTonight on 01.04.15 20:23

Kui kellelgi esineb selle pluginaga probleeme, siis soovitan kasutada:
Kood:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

new const VERSION[] = "1.1.1"

const MAX_ENTSARRAYS_SIZE = 64

new g_bitGonnaExplode[MAX_ENTSARRAYS_SIZE]
#define SetGrenadeExplode(%1)        g_bitGonnaExplode[%1>>5] |=  1<<(%1 & 31)
#define ClearGrenadeExplode(%1)    g_bitGonnaExplode[%1>>5] &= ~( 1 << (%1 & 31) )
#define WillGrenadeExplode(%1)    g_bitGonnaExplode[%1>>5] &  1<<(%1 & 31)

const XTRA_OFS_PLAYER = 5
const m_iTeam = 114
#define cs_get_user_team_index(%1)    get_pdata_int(%1, m_iTeam, XTRA_OFS_PLAYER)

new Float:g_flCurrentGameTime, g_iCurrentFlasher, g_iCurrentFlashBang

new mp_friendlyfire

new g_iMaxPlayers
#define IsPlayer(%1)    ( 1 <= %1 <= g_iMaxPlayers )

public plugin_init()
{
    register_plugin("Anti Flashbang Bug", VERSION, "Numb / ConnorMcLeod")
   
    RegisterHam(Ham_Think, "grenade", "Ham__CGrenade_Think__Pre")
   
    register_forward(FM_FindEntityInSphere, "Fm__FindEntityInSphere__Pre")

    mp_friendlyfire = get_cvar_pointer("mp_friendlyfire")

    g_iMaxPlayers = get_maxplayers()
}

public Ham__CGrenade_Think__Pre( iEnt )
{
    static Float:flGameTime, Float:flDmgTime, iOwner
    flGameTime = get_gametime()
    pev(iEnt, pev_dmgtime, flDmgTime)
    if(    flDmgTime <= flGameTime
    &&    get_pdata_int(iEnt, 114) == 0 // has a bit when is HE or SMOKE
    &&    !(get_pdata_int(iEnt, 96) & (1<<8)) // has this bit when is c4
    &&    IsPlayer( (iOwner = pev(iEnt, pev_owner)) )    ) // if no owner grenade gonna be removed from world
    {
        if( ~WillGrenadeExplode(iEnt) ) // grenade gonna explode on next think
        {
            SetGrenadeExplode( iEnt )
        }
        else
        {
            ClearGrenadeExplode( iEnt )
            g_flCurrentGameTime = flGameTime
            g_iCurrentFlasher = iOwner
            g_iCurrentFlashBang = iEnt
        }
    }
}

public Fm__FindEntityInSphere__Pre(iStartEnt, Float:fVecOrigin[3], Float:flRadius)
{
    const Float:FLASHBANG_SEARCH_RADIUS = 1500.0
    if(    flRadius == FLASHBANG_SEARCH_RADIUS
    &&    get_gametime() == g_flCurrentGameTime    )
    {
        new id = iStartEnt, Float:fVecPlayerEyeOrigin[3], Float:flFraction, friendlyfire = get_pcvar_num(mp_friendlyfire)

        while( IsPlayer( (id=engfunc(EngFunc_FindEntityInSphere, id, fVecOrigin, flRadius)) ) )
        {
            if( is_user_alive(id) )
            {
                pev(id, pev_origin, fVecPlayerEyeOrigin)
                fVecPlayerEyeOrigin[2] += ((pev(id, pev_flags) & FL_DUCKING) ? 12.0 : 18.0)

                engfunc(EngFunc_TraceLine, fVecOrigin, fVecPlayerEyeOrigin, DONT_IGNORE_MONSTERS, g_iCurrentFlashBang, 0)

                get_tr2(0, TR_flFraction, flFraction)

                if( flFraction < 1.0 && get_tr2(0, TR_pHit) == id )
                {
                    engfunc(EngFunc_TraceLine, fVecPlayerEyeOrigin, fVecOrigin, DONT_IGNORE_MONSTERS, id, 0)
                    get_tr2(0, TR_flFraction, flFraction)
                    if(    flFraction == 1.0
                    &&    (    friendlyfire
                        ||    id == g_iCurrentFlasher
                        ||    cs_get_user_team_index(id) != cs_get_user_team_index(g_iCurrentFlasher)    ) )
                    {
                        forward_return(FMV_CELL, id)
                        return FMRES_SUPERCEDE
                    }
                }
            }
        }
        forward_return(FMV_CELL, 0)
        return FMRES_SUPERCEDE
    }
    return FMRES_IGNORED
}
Teamflashi ei ole juhul, kui mp_friendlyfire väärtus on 0
Sponsored content

PostitamineSponsored content

Vaata eelmist teemat Vaata järgmist teemat Tagasi üles

Soovid reklaamidest vabaneda?

Selleks logi sisse või tee endale kasutaja.

Liitu foorumiga

Tee endale kasutaja ning osale aruteludes.


Tee uus kasutaja

Logi sisse

Omad foorumis juba kasutajat? Logi sisse.


Logi sisse

 
Permissions in this forum:
Sa ei saa vastata siinsetele teemadele