dzięki
SHOP SMA
Spoiler
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <fakemeta>
#include <fakemeta_util>
#include <engine>
#include <amxmisc>
#define PLUGINNAME "Neonese's Furien Shop edited by FarGoo"
#define VERSION "1.0"
#define AUTHOR "Neones"
#define HP_ADD 2 // Ile hp ma dodawać.
#define HP_TIME 10 //Co ile sekund ma dodawać hp.
#define HP_MAX 100 //Jakie jest maksymalne hp na serwerze.
#define XTRA_OFS_PLAYER 5
#define m_Activity 73
#define m_IdealActivity 74
#define m_flNextAttack 83
#define m_afButtonPressed 246
#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 VIEW_MODELT[] = "models/v_knife_green.mdl"
new PLAYER_MODELT[] = "models/p_knife_green.mdl"
new bool:caughtJump[33]
new bool:doJump[33]
new Float:jumpVeloc[33][3]
new newButton[33]
new numJumps[33]
new wallteam
new CSW_MAXAMMO[33]= {-2, 52, 0, 90, 1, 32, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120, 30, 120, 200, 32, 90, 120, 90, 2, 35, 90, 90, 0, 100, -1, -1}
new cvar_enable
new Obchod = 1
new g_MaxClients
new g_iMsgSayText
new Defuse[33] = 0
new defusecost = 25
new SuperKnife[33] = 0
new KnifeCost = 90
new RychlyBeh[33] = 0
new speedcost = 50
new flashcost = 70
new hpmax = 150
new hpbuy = 50
new hpcost = 25
new hecost = 45
new bnoflash[33]
/*******************COSTY******************************/
new costnoflash = 70
new costwaljump = 70
new wallclimb[33]
new costunlimitedammo = 70
new nolimit[33]
new costregeneracja = 70
new regeneracja[33]
public plugin_init()
{
register_plugin(PLUGINNAME, VERSION, AUTHOR)
register_clcmd( "say /shop","itemy_menu")
register_clcmd( "say shop","itemy_menu")
register_logevent("round_end", 2, "1=Round_End")
register_event("CurWeapon", "event_curweapon", "be", "1=1")
register_cvar("walljump_str","300.0")
register_cvar("walljump_num","2")
cvar_enable= register_cvar("ne_uammo_enable", "1")
register_message(get_user_msgid("ScreenFade"), "messageScreenFade");
RegisterHam(Ham_Spawn, "player", "Fwd_PlayerSpawn_Post", 1)
RegisterHam(Ham_TakeDamage, "player", "FwdPlayerTakeDamage", false)
RegisterHam(Ham_Killed, "player", "fw_player_killed")
RegisterHam(Ham_Player_PreThink,"player","fw_prethink")
RegisterHam(Ham_Touch, "func_wall", "World_Touch")
RegisterHam(Ham_Player_Jump, "player", "Player_Jump")
RegisterHam(Ham_Touch, "func_wall", "World_Touch")
RegisterHam(Ham_Touch, "func_breakable", "World_Touch")
g_iMsgSayText = get_user_msgid("SayText")
g_MaxClients = get_maxplayers()
g_iMaxPlayers = get_maxplayers()
}
public plugin_precache()
{
precache_model("models/v_knife_green.mdl")
precache_model("models/p_knife_green.mdl")
}
public Fwd_PlayerSpawn_Post(id)
{
give_item(id, "weapon_knife")
if (is_user_alive(id))
{
Obchod = 1
set_user_armor(id, 0)
Defuse[id] = 0
RychlyBeh[id] = 0
nolimit[id] = 0
regeneracja[id]=0
wallclimb[id] = 0
bnoflash[id] = 0
itemy_menu(id)
if(cs_get_user_team(id) == CS_TEAM_T){
cs_set_user_model(id, "leet")
} else {
cs_set_user_model(id, "gign")
}
}
}
public round_end()
{
for(new i = 1; i <= g_MaxClients; i++)
{
if(is_user_connected(i))
{
show_menu(i, 0, "\n", 1)
Obchod = 0
strip_user_weapons(i)
give_item(i, "weapon_knife")
}
}
}
public itemy_menu(id)
{
if(Obchod)
{
if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT)
{
set_task(0.01,"VybavaCT",id)
}
if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_T)
{
set_task(0.01,"VybavaT",id)
}
}
}
public VybavaCT(id)
{
new menu = menu_create("\yObchod \w( \r/shop\w )", "ct_handler")
menu_additem(menu, "+50 HP", "1", 0)
menu_additem(menu, "Defuse kit", "2", 0)
menu_additem(menu, "Flash Grenade ", "3", 0)
menu_additem(menu, "No-Flash", "4", 0)
menu_additem(menu, "Rychly beh", "5", 0)
menu_additem(menu, "Nekonecko naboju", "6", 0)
menu_additem(menu, "Furien Radar [10sek.]", "7", 0)
menu_additem(menu, "Health Regen [10\rHP\w/2sek.]", "8", 0)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
public ct_handler(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[2], iName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new money = cs_get_user_money(id)
new key = str_to_num(data)
switch(key)
{
case 1:
{
if(money >= hpcost)
{
new heal = get_user_health(id)
if(heal>= hpmax){
ChatColor(id, "!team[ Furien ] !gNemuzis mit vic jak 150 HP")
set_user_health(id, 150)
} else {
VybavaCT(id)
ChatColor(id, "!team[ Furien ] !yKoupil si 50 HP zivota")
cs_set_user_money(id, money - hpcost)
set_user_health(id, get_user_health(id) + hpbuy)
}
}else{
client_print(id, print_center, "Nemas dostatek penez")
}
}
case 2:
{
if(money >= defusecost)
{
if(!Defuse[id]){
Defuse[id] = 1
cs_set_user_money(id, money - defusecost)
cs_set_user_defuse(id, 1)
ChatColor(id, "!team[ Furien ] !yKoupil si Defusni balik")
}
} else {
client_print(id, print_center, "Nemas dostatek penez")
}
}
case 3:
{
if(money >= flashcost)
{
give_item(id, "weapon_flashbang")
VybavaT(id)
ChatColor(id, "!team[ Furien ] !yKoupil si HE granat")
cs_set_user_money(id, money - flashcost)
}else{
client_print(id, print_center, "Nemas dostatek penez")
}
}
case 4:
{
if(money >= costnoflash)
{
cs_set_user_money(id, money - costnoflash)
ChatColor(id, "!team[ Furien ] !yKoupil si NOFLASH")
bnoflash[id]=1
} else {
client_print(id, print_center, "neoslepli po wyrzucony FLASH")
}
}
case 5:
{
if(money >= speedcost)
{
if(!RychlyBeh[id]){
RychlyBeh[id] = 1
set_user_maxspeed(id, 350.0)
cs_set_user_money(id, money - speedcost)
ChatColor(id, "!team[ Furien ] !yKoupil si Rychly beh")
}
} else {
client_print(id, print_center, "Nemas dostatek penez")
}
}
case 6:
{
if(money >= costunlimitedammo)
{
if (is_user_connected(id))
nolimit[id] = 1
cs_set_user_money(id, money - costunlimitedammo)
ChatColor(id, "!team[ Furien ] !yKoupil si Unlimited ammo")
} else {
client_print(id, print_center, "CT bedzie infinity municiji")
}
}
case 7:
{
if(money >= costnoflash)
{
cs_set_user_money(id, money - costnoflash)
ChatColor(id, "!team[ Furien ] !yKoupil si NOFLASH")
bnoflash[id]=1
} else {
client_print(id, print_center, "neoslepli po wyrzucony FLASH")
}
}
case 8:
{
if(money >= costregeneracja)
{
cs_set_user_money(id, money - costregeneracja)
ChatColor(id, "!team[ Furien ] !yKoupil si Rychly beh")
set_task(float(HP_TIME), "recovery", id, _, _, "b");
} else {
client_print(id, print_center, "Zdrowie bedzie ladowac 10HP co 2 sekundy ")
}
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
/*****************************************************************************************************/
public VybavaT(id)
{
new menu = menu_create("\yObchod \w( \r/shop\w )", "t_handler")
menu_additem(menu, "Super knife", "1", 0)
menu_additem(menu, "He Grenade", "2", 0)
menu_additem(menu, "Flash Grenade ", "3", 0)
menu_additem(menu, "+50 HP", "4", 0)
menu_additem(menu, "No-Flash", "5", 0)
menu_additem(menu, "Wallhang", "6", 0)
menu_additem(menu, "Health Regen [10\rHP\w/2sek.]", "7", 0)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
public t_handler(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[2], iName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new money = cs_get_user_money(id)
new key = str_to_num(data)
switch(key)
{
case 1:
{
if(money >= KnifeCost)
{
if(!SuperKnife[id])
{
ChatColor(id, "!team[ Furien ] !yKoupil si Super Knife")
cs_set_user_money(id, money - KnifeCost)
SuperKnife[id] = 1
set_pev(id, pev_viewmodel2, VIEW_MODELT)
set_pev(id, pev_weaponmodel2, PLAYER_MODELT)
}
} else {
client_print(id, print_center, "Nemas dostatek penez")
}
}
case 2:
{
if(money >= hecost)
{
give_item(id, "weapon_hegrenade")
VybavaT(id)
ChatColor(id, "!team[ Furien ] !yKoupil si HE granat")
cs_set_user_money(id, money - hpcost)
}else{
client_print(id, print_center, "Nemas dostatek penez")
}
}
case 3:
{
if(money >= flashcost)
{
give_item(id, "weapon_flashgrenade")
VybavaT(id)
ChatColor(id, "!team[ Furien ] !yKoupil si Flash granat")
cs_set_user_money(id, money - flashcost)
}else{
client_print(id, print_center, "Nemas dostatek penez")
}
}
case 4:
{
if(money >= hpcost)
{
new heal = get_user_health(id)
if(heal>= hpmax){
ChatColor(id, "!team[ Furien ] !gNemuzis mit vic jak 150 HP")
set_user_health(id, 150)
} else {
VybavaCT(id)
ChatColor(id, "!team[ Furien ] !yKoupil si 50 HP zivota")
cs_set_user_money(id, money - hpcost)
set_user_health(id, get_user_health(id) + hpbuy)
}
}else{
client_print(id, print_center, "Nemas dostatek penez")
}
}
case 5:
{
if(money >= costnoflash)
{
cs_set_user_money(id, money - costnoflash)
ChatColor(id, "!team[ Furien ] !yKoupil si NOFLASH")
bnoflash[id]=1
} else {
client_print(id, print_center, "neoslepli po wyrzucony FLASH")
}
}
case 6:
{
if(money >= costwaljump)
{
cs_set_user_money(id, money - costwaljump)
ChatColor(id, "!team[ Furien ] !yKoupil si Waljump")
wallclimb[id] = 1
} else {
client_print(id, print_center, "przyklejanie sie do sciany")
}
}
case 7:
{
if(money >= costregeneracja)
{
cs_set_user_money(id, money - costregeneracja)
ChatColor(id, "!team[ Furien ] !yKoupil si Health Regen ")
set_task(float(HP_TIME), "recovery", id, _, _, "b");
} else {
client_print(id, print_center, "Zdrowie bedzie ladowac 10HP co 2 sekundy")
}
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public fw_prethink(id)
{
if(is_user_alive(id) && is_user_connected(id) && !is_user_bot(id))
{
new health = get_user_health(id)
if(health > hpmax)
{
set_user_health(id, 150)
}
}
return HAM_IGNORED
}
public Event_Change_Weapon(id)
{
new weaponID = read_data(2)
if(RychlyBeh[id])
{
set_user_maxspeed(id, 500.0)
}
{
set_user_maxspeed(id, 250.0)
}
if(weaponID == CSW_KNIFE)
{
if(SuperKnife[id])
{
set_pev(id, pev_viewmodel2, VIEW_MODELT)
set_pev(id, pev_weaponmodel2, PLAYER_MODELT)
}
}
return PLUGIN_CONTINUE
}
public FwdPlayerTakeDamage(id, iInflictor, iAttacker, Float:flDamage, iBits)
{
if( !(iBits & DMG_FALL) )
{
if( 1 <= iAttacker <= g_MaxClients )
{
if( id != iAttacker )
{
if( get_user_weapon(iAttacker) == CSW_KNIFE && SuperKnife[iAttacker] && cs_get_user_team(iAttacker) == CS_TEAM_T)
{
SetHamParamFloat(4, (flDamage * 3));
}
}
}
}
}
public fw_player_killed(victim, attacker, shouldgib)
{
if(SuperKnife[victim] && cs_get_user_team(victim) == CS_TEAM_T)
{
SuperKnife[victim] = 0
ChatColor(victim, "!team[ Furien ] !yTvuj super knife se znicil, protoze si byl zabiti.")
}
}
/*============================================================
Public bots etc.
============================================================*/
public messageScreenFade(msgtype, msgid, id){
if(bnoflash[id]==1) return PLUGIN_HANDLED;
return PLUGIN_CONTINUE;
}
public recovery(id)
{
if ( get_user_health(id) < HP_MAX )
fm_set_user_health(id, get_user_health(id) +HP_ADD);
}
public event_curweapon(id)
{
//Check if the plugin is enabled and player is alive
if(!get_pcvar_num(cvar_enable) || !is_user_alive(id))
return PLUGIN_CONTINUE;
//Get and check weapon ID
new weaponID= read_data(2)
if(weaponID==CSW_C4 || weaponID==CSW_KNIFE || weaponID==CSW_HEGRENADE || weaponID==CSW_SMOKEGRENADE || weaponID==CSW_FLASHBANG)
return PLUGIN_CONTINUE;
if(cs_get_user_bpammo(id, weaponID)!=CSW_MAXAMMO[weaponID])
cs_set_user_bpammo(id, weaponID, CSW_MAXAMMO[weaponID])
return PLUGIN_CONTINUE;
}
public Player_Jump(id)
{
if(
|| ~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])
}
}
/*============================================================
Stocks
============================================================*/
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!team", "^3") // Team Color
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, g_iMsgSayText, _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
WALHANG CODE
Spoiler
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include "furien.inc"
#include "furien_shop.inc"
#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 g_iCost[2]
new bool:g_bRoundEnd
public plugin_init()
{
register_plugin("Furien WallHang", VERSION, "ConnorMcLeod")
new szConfigFile[128]
get_localinfo("amxx_configsdir", szConfigFile, charsmax(szConfigFile))
format(szConfigFile, charsmax(szConfigFile), "%s/furien/items/wallhang.ini", szConfigFile);
new fp = fopen(szConfigFile, "rt")
if( !fp )
{
return
}
new szFurienName[32], szAntiName[32]
new szDatas[64], szKey[16], szValue[32]
while( !feof(fp) )
{
fgets(fp, szDatas, charsmax(szDatas))
trim(szDatas)
if(!szDatas[0] || szDatas[0] == ';' || szDatas[0] == '#' || (szDatas[0] == '/' && szDatas[1] == '/'))
{
continue
}
parse(szDatas, szKey, charsmax(szKey), szValue, charsmax(szValue))
switch( szKey[0] )
{
case 'A':
{
switch( szKey[7] )
{
case 'M':
{
if( equal(szKey, "ANTI_NAME" ) )
{
copy(szAntiName, charsmax(szAntiName), szValue)
}
}
case 'S':
{
if( equal(szKey, "ANTI_COST" ) )
{
g_iCost[AntiFurien] = str_to_num(szValue)
}
}
}
}
case 'F':
{
switch( szKey[9] )
{
case 'M':
{
if( equal(szKey, "FURIEN_NAME" ) )
{
copy(szFurienName, charsmax(szAntiName), szValue)
}
}
case 'S':
{
if( equal(szKey, "FURIEN_COST" ) )
{
g_iCost[Furien] = str_to_num(szValue)
}
}
}
}
}
}
fclose( fp )
if( g_iCost[Furien] || g_iCost[AntiFurien] )
{
furien_register_item(szFurienName, g_iCost[Furien], szAntiName, g_iCost[AntiFurien], "furien_buy_wallhang")
RegisterHam(Ham_Player_Jump, "player", "Player_Jump")
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 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_team_change( /*iFurien */ )
{
if( !g_iCost[Furien] || !g_iCost[AntiFurien] )
{
g_bHasWallHang = 0
g_bHanged = 0
}
}
public furien_round_restart()
{
g_bHasWallHang = 0
g_bHanged = 0
}
public furien_buy_wallhang( id )
{
new iTeam = furien_get_user_team(id)
if( iTeam == -1 )
{
return ShopCloseMenu
}
new iItemCost = g_iCost[iTeam]
if( iItemCost <= 0 )
{
return ShopTeamNotAvail
}
if( ~HasUserWallHang(id) )
{
if( furien_try_buy(id, iItemCost) )
{
SetUserWallHang( id )
return ShopBought
}
else
{
return ShopNotEnoughMoney
}
}
return ShopAlreadyHaveOne
}
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])
}
}Użytkownik slavo edytował ten post 03.03.2013 17:10


Dodatki SourceMod












