PDA

View Full Version : Propunere atac de pe perete



Lockup
13-09-2019, 10:26 PM
Stiu ca s-ar putea sa aduca un mare beneficiu furienilor, dar am sa postez si un mare beneficiu pentru antifurieni ca sa echilibram!
Am vazut un plugin foarte frumos de atac de pe perete in timp ce esti furien, si este destul de rar dar foarte folositor
Am facut rost doar de un cod:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>



#define VERSION "0.0.2"

#define XTRA_OFS_PLAYER 5
#define m_Activity 73
#define m_IdealActivity 74
#define m_flNextAttack 83
#define m_afButtonPressed 246

#define FIRST_PLAYER_ID 1
#define MAX_PLAYERS 32

#define PLAYER_JUMP 6

#define ACT_HOP 7

//#define FBitSet(%1,%2) (%1 & %2)

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

#define IsHidden(%1) IsPlayer(%1)

#define KNIFE_DRAW 3

new g_bHasWallHang
#define SetUserWallHang(%1) g_bHasWallHang |= 1<<(%1&31)
#define RemoveUserWallHang(%1) g_bHasWallHang &= ~(1<<(%1&31))
#define HasUserWallHang(%1) g_bHasWallHang & 1<<(%1&31)

new g_bHanged
#define SetUserHanged(%1) g_bHanged |= 1<<(%1&31)
#define RemoveUserHanged(%1) g_bHanged &= ~(1<<(%1&31))
#define IsUserHanged(%1) g_bHanged & 1<<(%1&31)

new Float:g_fVecMins[MAX_PLAYERS+1][3]
new Float:g_fVecMaxs[MAX_PLAYERS+1][3]
new Float:g_fVecOrigin[MAX_PLAYERS+1][3]

new bool:g_bRoundEnd

public plugin_init()
{
register_plugin("Furien WallHang", VERSION, "ConnorMcLeod")

RegisterHam(Ham_Player_Jump, "player", "Player_Jump")

RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawnPost", true );
RegisterHam( Ham_Killed, "player", "Ham_PlayerKilledPost", true );
RegisterHam(Ham_Touch, "func_wall", "World_Touch")
RegisterHam(Ham_Touch, "func_breakable", "World_Touch")
RegisterHam(Ham_Touch, "worldspawn", "World_Touch")

g_iMaxPlayers = get_maxplayers()

register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0")
register_logevent("Logevent_Round_End", 2, "1=Round_End")
}

public Ham_PlayerSpawnPost( id )
{
if( is_user_alive( id ) )
{
if( get_user_team( id ) == 1 )
{
if( get_user_flags( id ) & ADMIN_CVAR )
{
SetUserWallHang( id );
RemoveUserHanged( id );
}
}
else
{
RemoveUserWallHang( id );
RemoveUserHanged( id );
}
}
}

public Ham_PlayerKilledPost( id )
{

RemoveUserHanged( id );
return HAM_IGNORED;

}
public Event_HLTV_New_Round()
{
g_bRoundEnd = false
}

public Logevent_Round_End()
{
g_bRoundEnd = true
g_bHanged = 0
}

public client_putinserver( id )
{
RemoveUserWallHang( id )
RemoveUserHanged( id )
}

public furien_round_restart()
{
g_bHasWallHang = 0
g_bHanged = 0
}

public Player_Jump(id)
{
if( g_bRoundEnd
|| ~HasUserWallHang(id)
|| ~IsUserHanged(id)
|| !is_user_alive(id) )
{
return HAM_IGNORED
}

if( (pev(id, pev_flags) & FL_WATERJUMP) || pev(id, pev_waterlevel) >= 2 )
{
return HAM_IGNORED
}

static afButtonPressed ; afButtonPressed = get_pdata_int(id, m_afButtonPressed)

if( ~afButtonPressed & IN_JUMP )
{
return HAM_IGNORED
}

RemoveUserHanged(id)

new Float:fVecVelocity[3]

velocity_by_aim(id, 600, fVecVelocity)
set_pev(id, pev_velocity, fVecVelocity)

set_pdata_int(id, m_Activity, ACT_HOP)
set_pdata_int(id, m_IdealActivity, ACT_HOP)
set_pev(id, pev_gaitsequence, PLAYER_JUMP)
set_pev(id, pev_frame, 0.0)
set_pdata_int(id, m_afButtonPressed, afButtonPressed & ~IN_JUMP)

return HAM_SUPERCEDE
}


public client_PostThink(id)
{
if( HasUserWallHang(id) && IsUserHanged(id) )
{
engfunc(EngFunc_SetSize, id, g_fVecMins[ id ], g_fVecMaxs[ id ])
engfunc(EngFunc_SetOrigin, id, g_fVecOrigin[ id ])
set_pev(id, pev_velocity, 0)
//set_pdata_float(id, m_flNextAttack, 1.0, XTRA_OFS_PLAYER)
}
}

public World_Touch(iEnt, id)
{
if( !g_bRoundEnd
&& IsPlayer(id)
&& HasUserWallHang(id)
&& ~IsUserHanged(id)
&& is_user_alive(id)
&& pev(id, pev_button) & IN_USE
&& ~pev(id, pev_flags) & FL_ONGROUND )
{
SetUserHanged(id)
pev(id, pev_mins, g_fVecMins[id])
pev(id, pev_maxs, g_fVecMaxs[id])
pev(id, pev_origin, g_fVecOrigin[id])
}
}

Daca il veti implementa, ar trebui sa puneti si acceptati si propunerea viitoare pentru arme CSO antifurieni :)

Tiger
14-09-2019, 12:02 PM
Pluginul exista deja pentru furieni.

Lockup
14-09-2019, 02:36 PM
Dar nu pot ataca de pe pereti.....poate ca e wallhang, dar asta nu e
Tiger

wGods N0l1m1t
14-09-2019, 03:16 PM
Lockup nu mai da reply dupa orice ca deja e topic off! De acuma fa un edit la un mesaj si mentioneaza pe cineva daca doresti sa ii zici ceva
Tutorial sa mentionezi pe cineva: scrii [ MENTION]wGod | N0l1m1t[ /MENTION] dar fara spatiile alea de la mention. Sper ca ai inteles :)

Tiger
14-09-2019, 07:56 PM
poate ca e wallhang, dar asta nu e

:cerealguy:

Si asta ce este? Nu este tot wallhang?!

Lockup
14-09-2019, 08:18 PM
:cerealguy:

Si asta ce este? Nu este tot wallhang?!

Nu, este sa te cateri pe perete cu E, si sa dai click stanga si dreapta pe mouse si sa atace playerul respectiv...
Edit: adica include wallhang

dNzfTw # BLasTeR
16-09-2019, 07:30 PM
:contra: mi se pare o mare prostie... sunt unii furieni care și așa stau pe ctrl și doar așteaptă să te omoare dar dacă s-ar mai adăuga și asta să poată ataca īn timp ce stau pe perete... S-ar face numai pāndă, fiecare ar sta prins de perete și ar aștepta anti-furienul lāngă el și gata, l-a omorat.

WarGods | aLinoX
16-09-2019, 07:45 PM
:contra: mi se pare o mare prostie... sunt unii furieni care și așa stau pe ctrl și doar așteaptă să te omoare dar dacă s-ar mai adăuga și asta să poată ataca īn timp ce stau pe perete... S-ar face numai pāndă, fiecare ar sta prins de perete și ar aștepta anti-furienul lāngă el și gata, l-a omorat.
+1 :contra:

-WickedSick-
18-09-2019, 11:24 PM
Propunere respinsă !
:locked: