| edon1337 |
02-02-2017 08:42 |
Damage, Weapon Pickup not working | Impulse | SQL
1. In my code, everything was working just fine until yesterday (I think) and by then it started making players not take damage and not be able to pickup weapons from ground, I can only make damage to enemy by using HE grenades, I don't understand what's doing this.
PHP Code:
//////////////////////////////////////////////////////////////////////////////////////////
/* INCLUDES & DEFINES */
//////////////////////////////////////////////////////////////////////////////////////////
#include <amxmodx>
#include <fun>
#include <stripweapons>
#include <fakemeta>
#include <engine>
#include <dhudmessage>
#include <cstrike>
#include <hamsandwich>
#include <xs>
#define PLUGIN "Elite Surf Mod [ESM]"
#define VERSION "1.0"
#define AUTHOR "DoNii"
#define IsValidPlayer(%1) (1<=%1<=g_maxplayers)
#define DMG_GRENADE ( 1 << 24 ) // grenade bits
#define RefreshPlayersList() get_players(g_iPlayers, g_iNum, g_szAliveFlags)
#define MAXPLAYERS 32
//////////////////////////////////////////////////////////////////////////////////////////
/* VARIABLES */
//////////////////////////////////////////////////////////////////////////////////////////
new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame
/* ..... Rewards ..... */
/////////////////////////
new speed_used[33];
new gravity_used[33];
new godmode_used[33];
new invisibility_used[33];
new deagle_used[33];
new ak47_used[33];
new armor_used[33];
new hp_used[33];
new norecoil_used[33];
new sniper_used[33];
new ak47_zoom[33];
new deagle_zoom[33];
/////////////////////////
// Classes
new g_player_class_soldier[33];
new g_player_class_bomber[33];
new g_player_class_knifer[33];
new g_player_class_sniper[33];
// CVARS
////////////////////
new esm_airaccelerate
new esm_airmove
new esm_shoot_buttons
// shop
new esm_shop_use
new esm_shop_gravity_price
new esm_shop_speed_price
new esm_shop_godmode_price
new esm_shop_godmode_duration
new esm_shop_invisibility_price
new esm_shop_invisibility_duration
new esm_shop_goldendeagle_price
new esm_shop_goldendeagle_damage
new esm_shop_goldenak47_price
new esm_shop_goldenak47_damage
new esm_shop_goldendeagle_zoom
new esm_shop_goldenak47_zoom
// vshop
new esm_vshop_sniper_damage
new esm_vshop_sniper_price
// gameplay
new esm_parachute
new esm_semiclip
new esm_ignore_falldamage
new esm_no_owner_damage
new esm_damage_print
new esm_knife_custom
////////////////////
new g_iPlayers[MAXPLAYERS];
new g_iNum;
new g_iPlayer;
new i;
new g_player_has_vip[33];
new g_maxplayers
new const g_szAliveFlags[] = "a"
static TASK_GODMODE = 222
static TASK_INVISIBILITY = 333
/* Special Weapon Models */
new const GOLDEN_DEAGLE_V[64] = "models/esm/v_golden_deagle.mdl"
new const GOLDEN_DEAGLE_P[64] = "models/esm/p_golden_deagle.mdl"
new const GOLDEN_AK47_V[64] = "models/esm/v_golden_ak47.mdl"
new const GOLDEN_AK47_P[64] = "models/esm/p_golden_ak47.mdl"
new const SNIPER_V[64] = "models/esm/sniper_v.mdl"
new const SNIPER_P[64] = "models/esm/sniper_p.mdl"
new const KNIFE_V[64] = "models/esm/knife_new_v.mdl"
new const KNIFE_P[64] = "models/esm/knife_new_p.mdl"
new Float: cl_pushangle[33][3]
const WEAPONS_BITSUM = (1<<CSW_KNIFE|1<<CSW_HEGRENADE|1<<CSW_FLASHBANG|1<<CSW_SMOKEGRENADE|1<<CSW_C4)
new const surf_shop_cmds[][] = {
"say shop",
"say /shop",
"say_team shop",
"say_team /shop"
}
new const vip_shop_cmds[][] = {
"say vshop",
"say /vshop",
"say_team vshop",
"say_team /vshop"
}
new const func_list[][] = {
"func_button",
"func_door_rotating",
"func_door"
}
//////////////////////////////////////////////////////////////////////////////////////////
/* Main */
//////////////////////////////////////////////////////////////////////////////////////////
public plugin_init() {
// Plugin register
register_plugin(PLUGIN, VERSION, AUTHOR)
g_maxplayers = get_maxplayers()
// Ham Hooks
for ( new i; i < sizeof func_list; i++ )
RegisterHam(Ham_TraceAttack, func_list[i], "fw_ButtonFunc")
new weapon_name[24]
for (new i = 1; i <= 30; i++)
{
if (!(WEAPONS_BITSUM & 1 << i) && get_weaponname(i, weapon_name, 23))
{
RegisterHam(Ham_Weapon_PrimaryAttack, weapon_name, "fw_Weapon_PrimaryAttack_Pre")
RegisterHam(Ham_Weapon_PrimaryAttack, weapon_name, "fw_Weapon_PrimaryAttack_Post", 1)
}
}
RegisterHam(Ham_Item_Deploy, "weapon_deagle", "fw_HamDeployDeagle", 1)
RegisterHam(Ham_Item_Deploy, "weapon_ak47", "fw_HamDeployAk47", 1)
RegisterHam(Ham_Item_Deploy, "weapon_awp", "fw_HamDeploySniper", 1)
RegisterHam(Ham_Item_Deploy, "weapon_knife", "fw_HamDeployKnife", 1)
RegisterHam(Ham_Spawn, "player", "fw_HamSpawnPost", 1)
RegisterHam(Ham_TakeDamage, "player", "fw_HamTakeDamagePre")
RegisterHam(Ham_Player_ResetMaxSpeed, "player", "playerResetMaxSpeed", 1)
RegisterHam(Ham_Killed, "player", "fw_HamKilled", 1)
RegisterHam(Ham_Player_PreThink, "player", "Ham_CBasePlayer_PreThink_Post", 1)
// Client cmds
for ( new i; i < sizeof surf_shop_cmds; i++ )
register_clcmd(surf_shop_cmds[i], "esm_shop_open")
for ( new i; i < sizeof vip_shop_cmds; i++ )
register_clcmd(vip_shop_cmds[i], "vip_shop_open")
register_clcmd("chooseteam", "main_menu")
// Fakemeta forwards
register_forward(FM_CmdStart, "fw_CmdStart")
register_forward(FM_AddToFullPack, "FM_client_AddToFullPack_Post", 1)
/* Cvar List */
// server
esm_airaccelerate = register_cvar("esm_airaccelerate", "100") // air accelerate cvar
esm_airmove = register_cvar("esm_airmove", "100") // air move cvar
// shop
esm_shop_use = register_cvar("esm_shop_use", "2") // who can use shop, 0 - CT only | 1 - T only | 2 - Both (CT, T)
esm_shop_gravity_price = register_cvar("esm_shop_gravity_price", "2000") // gravity price
esm_shop_speed_price = register_cvar("esm_shop_speed_price", "4000") // speed price
esm_shop_godmode_price = register_cvar("esm_shop_godmode_price", "6000") // godmode price
esm_shop_godmode_duration = register_cvar("esm_shop_godmode_duration", "10.0") // godmode duration
esm_shop_invisibility_price = register_cvar("esm_shop_invisibility_price", "8000") // invisibility price
esm_shop_invisibility_duration = register_cvar("esm_shop_invisibility_duration", "5.0") // invisibility duration
esm_shop_goldendeagle_price = register_cvar("esm_shop_goldendeagle_price", "10000") // golden deagle price
esm_shop_goldendeagle_damage = register_cvar("esm_shop_goldendeagle_damage", "2") // golden deagle damage
esm_shop_goldendeagle_zoom = register_cvar("esm_goldendeagle_zoom", "1") // zoom for golden deagle, 0 - off | 1 - on
esm_shop_goldenak47_price = register_cvar("esm_shop_goldenak47_price", "12000") // golden ak47 price
esm_shop_goldenak47_damage = register_cvar("esm_shop_goldenak47_damage", "3") // golden ak47 damage
esm_shop_goldenak47_zoom = register_cvar("esm_shop_goldenak47_zoom ", "1") // zoom for golden ak47, 0 - off | 1 - on
// vshop
esm_vshop_sniper_damage = register_cvar("esm_vshop_sniper_damage", "4") // VIP Shop sniper damage multiplier
esm_vshop_sniper_price = register_cvar("esm_vshop_sniper_price", "10000") // sniper price
// gameplay
esm_shoot_buttons = register_cvar("esm_shoot_buttons", "1") // open jail by shooting button, 0 - off | 1 - on
esm_parachute = register_cvar("esm_parachute", "1") // parachute , 0 - off | 1 - on
esm_semiclip = register_cvar("esm_semiclip", "1") // semiclip, 0 - off | 1 - on
esm_ignore_falldamage = register_cvar("esm_ignore_falldamage", "1") // 0 - allow fall damage | 1 - no fall damage
esm_no_owner_damage = register_cvar("esm_no_owner_damage", "1") // no damage to HE grenade owner, 0 - off | 1 - on
esm_damage_print = register_cvar("esm_damage_print", "1") // print damage, 0 - off | 1 - chat | 2 - HUD | 3 - DHUD
esm_knife_custom = register_cvar("esm_knife_custom", "1") // enable custom knife models, 0 - off | 1 - on
// Set Cvars
set_cvar_num("sv_airaccelerate", get_pcvar_num(esm_airaccelerate))
set_cvar_num("sv_airmove", get_pcvar_num(esm_airmove))
}
//////////////////////////////////////////////////////////////////////////////////////////
/* PRECACHING */
//////////////////////////////////////////////////////////////////////////////////////////
public plugin_precache() {
precache_model(GOLDEN_DEAGLE_V)
precache_model(GOLDEN_DEAGLE_P)
precache_model(GOLDEN_AK47_V)
precache_model(GOLDEN_AK47_P)
precache_model(SNIPER_V)
precache_model(SNIPER_P)
precache_model(KNIFE_V)
precache_model(KNIFE_P)
}
//////////////////////////////////////////////////////////////////////////////////////////
/* STOCKS */
//////////////////////////////////////////////////////////////////////////////////////////
SetDeagleModel(id) {
set_pev(id, pev_viewmodel2, GOLDEN_DEAGLE_V)
set_pev(id, pev_weaponmodel2, GOLDEN_DEAGLE_P)
}
SetAk47Model(id) {
set_pev(id, pev_viewmodel2, GOLDEN_AK47_V)
set_pev(id, pev_weaponmodel2, GOLDEN_AK47_P)
}
SetSniperModel(id) {
set_pev(id, pev_viewmodel2, SNIPER_V)
set_pev(id, pev_weaponmodel2, SNIPER_P)
}
SetKnifeModel(id) {
set_pev(id, pev_viewmodel2, KNIFE_V)
set_pev(id, pev_weaponmodel2, KNIFE_P)
}
SetSoldierClass(id) {
g_player_class_soldier[id] = true
g_player_class_bomber[id] = false
g_player_class_knifer[id] = false
g_player_class_sniper[id] = false
}
SetBomberClass(id) {
g_player_class_soldier[id] = false
g_player_class_bomber[id] = true
g_player_class_knifer[id] = false
g_player_class_sniper[id] = false
}
SetKniferClass(id) {
g_player_class_soldier[id] = false
g_player_class_bomber[id] = false
g_player_class_knifer[id] = true
g_player_class_sniper[id] = false
}
SetSniperClass(id) {
g_player_class_soldier[id] = false
g_player_class_bomber[id] = false
g_player_class_knifer[id] = false
g_player_class_sniper[id] = true
}
SetClassAbilities(id) {
if(g_player_class_soldier[id]) {
set_user_health(id, 150)
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
if(get_user_team(id) == 1) {
give_item(id, "weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 90)
}
else if(get_user_team(id) == 2) {
give_item(id, "weapon_m4a1");
cs_set_user_bpammo(id, CSW_M4A1, 90)
}
set_user_rendering(id, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 60);
}
if(g_player_class_bomber[id]) {
set_user_health(id, 200)
give_item(id, "weapon_hegrenade")
cs_set_user_bpammo(id, CSW_HEGRENADE, 50)
set_user_rendering(id, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 60);
}
if(g_player_class_knifer[id]) {
set_user_health(id, 250)
give_item(id, "weapon_knife")
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha,40)
}
if(g_player_class_sniper[id]) {
set_user_health(id, 300)
give_item(id, "weapon_awp")
cs_set_user_bpammo(id, CSW_AWP, 30)
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 60);
}
}
ResetVariables(id) {
speed_used[id] = false
gravity_used[id] = false
godmode_used[id] = false
invisibility_used[id] = false
deagle_used[id] = false
ak47_used[id] = false
armor_used[id] = false
hp_used[id] = false
norecoil_used[id] = false
sniper_used[id] = false
}
stock ham_strip_weapon(id,weapon[])
{
if(!equal(weapon,"weapon_",7)) return 0;
new wId = get_weaponid(weapon);
if(!wId) return 0;
new wEnt;
while((wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname",weapon)) && pev(wEnt,pev_owner) != id) {}
if(!wEnt) return 0;
if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon,wEnt);
if(!ExecuteHamB(Ham_RemovePlayerItem,id,wEnt)) return 0;
ExecuteHamB(Ham_Item_Kill,wEnt);
set_pev(id,pev_weapons,pev(id,pev_weapons) & ~(1<<wId));
return 1;
}
//////////////////////////////////////////////////////////////////////////////////////////
/* FUNCTIONS */
//////////////////////////////////////////////////////////////////////////////////////////
public esm_shop_open(id) {
new menu = menu_create( "\r[ESM] \wSurf Shop :", "surf_shop" );
menu_additem( menu, "\w[\r1 \wRound] \wLess Gravity \y[\r$\w2000\y]", "", 0 );
menu_additem( menu, "\w[\r1 \wRound] \wMore Speed \y[\r$\w4000\y]", "", 0 );
menu_additem( menu, "\w[\r5 \wSec] \wGodmode \y[\r$\w6000\y]", "", 0 );
menu_additem( menu, "\w[\r10 \wSec] \wInvisibility \y[\r$\w8000\y]", "", 0 );
menu_additem( menu, "\w[\r1 \wRound] \wGolden Deagle \y[\r$\w10000\y]", "", 0 );
menu_additem( menu, "\w[\r1 \wRound] \wGolden AK47 \y[\r$\w12000\y]", "", 0 );
menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
if(is_user_alive(id)) {
new CsTeams:team = cs_get_user_team(id)
if(get_pcvar_num(esm_shop_use) == 0) {
if(team != CS_TEAM_CT) {
client_print(id, print_chat, "[ESM] Only CT Players Can Use")
return PLUGIN_HANDLED;
}
else if(team == CS_TEAM_CT) {
menu_display( id, menu, 0 );
}
}
else if(get_pcvar_num(esm_shop_use) == 1) {
if(team != CS_TEAM_T) {
client_print(id, print_chat, "[ESM] Only T Players Can Use")
return PLUGIN_HANDLED;
}
else if(team == CS_TEAM_T) {
menu_display( id, menu, 0 );
}
}
else if(get_pcvar_num(esm_shop_use) == 2) {
if(team != CS_TEAM_SPECTATOR) {
menu_display( id, menu, 0 );
}
}
}
else {
client_print(id, print_chat, "[ESM] Dead Players Can't Use")
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public surf_shop( id, menu, item )
{
if(!is_user_alive(id)) {
client_print(id, print_chat, "[ESM] You Can't Buy While Dead")
menu_destroy(menu)
return PLUGIN_HANDLED;
}
switch( item )
{
case 0:
{
if(cs_get_user_money(id) >= get_pcvar_num(esm_shop_gravity_price) && !gravity_used[id]) {
set_user_gravity(id, 0.7)
client_print( id, print_chat, "[ESM] You Just Bought ^"Less Gravity^"" );
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(esm_shop_gravity_price))
gravity_used[id] = true
}
else if(gravity_used[id]) {
client_print(id, print_chat, "[ESM] You Can Only Buy Once Per Round")
return PLUGIN_HANDLED;
}
else if(cs_get_user_money(id) < get_pcvar_num(esm_shop_gravity_price)) {
client_print(id, print_chat, "[ESM] Insufficient Funds")
return PLUGIN_HANDLED;
}
}
case 1:
{
if(cs_get_user_money(id) >= get_pcvar_num(esm_shop_speed_price) && !speed_used[id]) {
set_user_maxspeed(id, 350.0)
client_print( id, print_chat, "[ESM] You Just Bought ^"More Speed^"" );
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(esm_shop_speed_price))
speed_used[id] = true
}
else if(speed_used[id]) {
client_print(id, print_chat, "[ESM] You Can Only Buy Once Per Round")
menu_destroy(menu)
return PLUGIN_HANDLED;
}
else if(cs_get_user_money(id) < get_pcvar_num(esm_shop_speed_price)) {
client_print(id, print_chat, "[ESM] Insufficient Funds")
menu_destroy(menu)
return PLUGIN_HANDLED;
}
}
case 2:
{
if(cs_get_user_money(id) >= get_pcvar_num(esm_shop_godmode_price) && !godmode_used[id]) {
set_user_godmode(id, 1)
client_print( id, print_chat, "[ESM] You Just Bought ^"Godmode^"" );
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(esm_shop_godmode_price))
godmode_used[id] = true
set_task(get_pcvar_float(esm_shop_godmode_duration), "remove_godmode", id+TASK_GODMODE)
}
else if(godmode_used[id]) {
client_print(id, print_chat, "[ESM] You Can Only Buy Once Per Round")
menu_destroy(menu)
return PLUGIN_HANDLED;
}
else if(cs_get_user_money(id) < get_pcvar_num(esm_shop_godmode_price)) {
client_print(id, print_chat, "[ESM] Insufficient Funds")
return PLUGIN_HANDLED;
}
}
case 3:
{
if(cs_get_user_money(id) >= get_pcvar_num(esm_shop_invisibility_price) && !invisibility_used[id]) {
set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderTransAlpha,40)
client_print( id, print_chat, "[ESM] You Just Bought ^"Invisibility^"" );
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(esm_shop_invisibility_price))
invisibility_used[id] = true
set_task(get_pcvar_float(esm_shop_invisibility_duration), "remove_invisibility", id+TASK_INVISIBILITY)
}
else if(invisibility_used[id]) {
client_print(id, print_chat, "[ESM] You Can Only Buy Once Per Round")
return PLUGIN_HANDLED;
}
else if(cs_get_user_money(id) < get_pcvar_num(esm_shop_invisibility_price)) {
client_print(id, print_chat, "[ESM] Insufficient Funds")
return PLUGIN_HANDLED;
}
}
case 4:
{
if(cs_get_user_money(id) >= get_pcvar_num(esm_shop_goldendeagle_price) && !deagle_used[id]) {
client_print( id, print_chat, "[ESM] You Just Bought ^"Golden Deagle^"" );
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(esm_shop_goldendeagle_price))
deagle_used[id] = true
StripWeapons(id, Primary);
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
SetDeagleModel(id)
}
else if(deagle_used[id]) {
client_print(id, print_chat, "[ESM] You Can Only Buy Once Per Round")
return PLUGIN_HANDLED;
}
else if(cs_get_user_money(id) < get_pcvar_num(esm_shop_goldendeagle_price)) {
client_print(id, print_chat, "[ESM] Insufficient Funds")
return PLUGIN_HANDLED;
}
}
case 5:
{
if(cs_get_user_money(id) >= get_pcvar_num(esm_shop_goldenak47_price) && !ak47_used[id]) {
client_print( id, print_chat, "[ESM] You Just Bought ^"Golden AK47^"" );
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(esm_shop_goldenak47_price))
ak47_used[id] = true
StripWeapons(id, Primary)
give_item(id, "weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 90)
SetAk47Model(id)
}
else if(ak47_used[id]) {
client_print(id, print_chat, "[ESM] You Can Only Buy Once Per Round")
return PLUGIN_HANDLED;
}
else if(cs_get_user_money(id) < get_pcvar_num(esm_shop_goldenak47_price)) {
client_print(id, print_chat, "[ESM] Insufficient Funds")
return PLUGIN_HANDLED;
}
}
}
return PLUGIN_HANDLED;
}
public OpenClassMenu(id) {
new menu = menu_create( "\r[ESM] \wClass Menu:", "menu_handler_class" );
menu_additem( menu, "\wSoldier \r[M4A1|AK47 + Deagle]", "", 0 );
menu_additem( menu, "\wBomber \r[HE Grenades]", "", 0 );
menu_additem( menu, "\wKnifer \r[Ultra Knife]", "", 0 );
menu_additem( menu, "\wSniper \r[AWP + Glock|USP]", "", 0 );
menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
menu_display( id, menu, 0 );
}
public menu_handler_class(id, menu, item) {
if(is_user_alive(id)) {
switch( item )
{
case 0:
{
SetSoldierClass(id)
SetClassAbilities(id)
client_print(id, print_chat, "You Selected Soldier Class")
}
case 1:
{
SetBomberClass(id)
SetClassAbilities(id)
client_print(id, print_chat, "You Selected Bomber Class")
}
case 2:
{
SetKniferClass(id)
SetClassAbilities(id)
client_print(id, print_chat, "You Selected Knifer Class")
}
case 3:
{
SetSniperClass(id)
SetClassAbilities(id)
client_print(id, print_chat, "You Selected Sniper Class")
}
default:
{
SetSoldierClass(id)
SetClassAbilities(id)
client_print(id, print_chat, "You Didn't Select Any Class, Default Class Is Soldier Class")
}
}
}
menu_destroy( menu );
return PLUGIN_HANDLED;
}
public main_menu(id) {
new menu = menu_create( "\r[ESM] \wMain Menu:", "menu_handler_main" );
menu_additem( menu, "\wSurf Shop", "", 0 );
menu_additem( menu, "\rVIP \wMenu", "", 0 );
menu_additem( menu, "\rADMIN \wMenu^n^n", "", 0 );
menu_additem( menu, "\wHelp MOTD", "", 0 );
menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
menu_display( id, menu, 0 );
}
public menu_handler_main( id, menu, item )
{
switch( item ) {
case 0:
{
if(is_user_alive(id)) {
client_cmd(id, "say /shop")
}
}
case 1:
{
if(is_user_alive(id) && get_user_flags(id) & ADMIN_LEVEL_H) {
client_cmd(id, "say /vshop")
}
}
case 2:
{
if(is_user_alive(id) && get_user_flags(id) & ADMIN_KICK) {
client_cmd(id, "say /ashop")
}
}
case 3:
{
show_motd(id, "esm_motd.txt")
}
}
menu_destroy( menu );
return PLUGIN_HANDLED;
}
public FM_client_AddToFullPack_Post(es, e, iEnt, id, hostflags, player, pSet) {
if( player && id != iEnt && get_orig_retval() && is_user_alive(id) && get_pcvar_num(esm_semiclip) == 1 )
{
set_es(es, ES_Solid, SOLID_NOT)
}
}
public Ham_CBasePlayer_PreThink_Post(id) {
if( !is_user_alive(id) )
{
return;
}
if(get_pcvar_num(esm_semiclip) == 1) {
RefreshPlayersList()
for(i = 0; i<g_iNum; i++)
{
g_iPlayer = g_iPlayers[i]
if( id != g_iPlayer && get_user_team(id) == get_user_team(g_iPlayer))
{
set_pev(g_iPlayer, pev_solid, SOLID_NOT)
}
}
}
}
public client_PostThink(id) {
if( !is_user_alive(id) )
{
return;
}
if(esm_semiclip == 1) {
RefreshPlayersList()
for(i = 0; i<g_iNum; i++)
{
g_iPlayer = g_iPlayers[i]
if( g_iPlayer != id && get_user_team(id) == get_user_team(g_iPlayer))
{
set_pev(g_iPlayer, pev_solid, SOLID_SLIDEBOX)
}
}
}
}
public playerResetMaxSpeed(id) {
if(speed_used[id])
{
set_user_maxspeed(id, 350.0)
}
}
public fw_HamDeployDeagle(ent) {
new id = get_pdata_cbase(ent, 41, 4);
if(deagle_used[id]) {
SetDeagleModel(id)
}
}
public fw_HamDeployAk47(ent) {
new id = get_pdata_cbase(ent, 41, 4);
if(ak47_used[id]) {
SetAk47Model(id)
}
}
public fw_HamDeploySniper(ent) {
new id = get_pdata_cbase(ent, 41, 4);
if(sniper_used[id]) {
SetSniperModel(id)
}
}
public fw_HamDeployKnife(ent) {
new id = get_pdata_cbase(ent, 41, 4);
if(get_pcvar_num(esm_knife_custom) == 1) {
SetKnifeModel(id)
}
}
public fw_HamSpawnPost(id) {
ResetVariables(id)
OpenClassMenu(id)
}
public fw_HamTakeDamagePre(victim, inflictor, attacker, Float:damage, damagebit) {
new Float:dmg = damage // thanks Jimmy !
if(IsValidPlayer(victim) && damagebit & DMG_FALL && get_pcvar_num(esm_ignore_falldamage) == 1) {
return HAM_SUPERCEDE // don't take damage
}
if(IsValidPlayer(attacker)) {
if(get_user_weapon(attacker) == CSW_DEAGLE && deagle_used[attacker]) {
dmg *= get_pcvar_num(esm_shop_goldendeagle_damage)
SetHamParamFloat(4, dmg)
}
if(IsValidPlayer(attacker) && get_user_weapon(attacker) == CSW_AK47 && ak47_used[attacker]) {
dmg *= get_pcvar_num(esm_shop_goldenak47_damage)
SetHamParamFloat(4, dmg)
}
if(IsValidPlayer(attacker) && get_user_weapon(attacker) == CSW_AWP && sniper_used[attacker]) {
dmg *= get_pcvar_num(esm_vshop_sniper_damage)
SetHamParamFloat(4, dmg)
}
if(attacker == victim && damagebit & DMG_GRENADE && get_pcvar_num(esm_no_owner_damage) == 1) {
return HAM_SUPERCEDE // no damage to owner of HE
}
if(attacker != victim && cs_get_user_team(attacker) != cs_get_user_team(victim)) {
if(get_pcvar_num(esm_damage_print) == 1) {
set_hudmessage(random_num(50,255), random_num(50,255), random_num(50,255), 0.50, random_float(0.30, 0.70), 0, 6.0, 0.5)
show_hudmessage(attacker, "%d", floatround(dmg))
}
else if(get_pcvar_num(esm_damage_print) == 2) {
set_dhudmessage(random_num(50,255), random_num(50,255), random_num(50,255), 0.50, random_float(0.30, 0.70), 0, 6.0, 0.5)
show_dhudmessage(attacker, "%d", floatround(dmg))
}
}
}
return HAM_IGNORED;
}
public fw_HamKilled(victim, attacker, shouldgib) {
static Float:origin[3]
pev(victim, pev_origin, origin)
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin, 0)
write_byte(TE_LAVASPLASH)
engfunc(EngFunc_WriteCoord, origin[0])
engfunc(EngFunc_WriteCoord, origin[1])
engfunc(EngFunc_WriteCoord, origin[2] + 12.0)
message_end()
new iOrigin[3]
get_user_origin(victim, iOrigin, 3)
message_begin(MSG_ALL, SVC_TEMPENTITY, iOrigin)
write_byte(TE_SPARKS)
write_coord(iOrigin[0])
write_coord(iOrigin[1])
write_coord(iOrigin[2])
message_end()
}
public fw_CmdStart(id, uc_handle)
{
if( !is_user_alive( id ) )
return PLUGIN_CONTINUE
static Button, OldButtons;
Button = get_uc(uc_handle, UC_Buttons);
OldButtons = pev(id, pev_oldbuttons);
if( ( Button & IN_ATTACK2 ) && !(OldButtons & IN_ATTACK2 ) ) {
new szWeapID = get_user_weapon( id )
if( szWeapID == CSW_DEAGLE && get_pcvar_num(esm_shop_goldendeagle_zoom) == 1) {
if(deagle_used[id]) {
if(!deagle_zoom[id]) {
deagle_zoom[id] = true
cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
}
else {
deagle_zoom[id] = false
cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
}
}
}
else if( szWeapID == CSW_AK47 && get_pcvar_num(esm_shop_goldenak47_zoom) == 1) {
if(ak47_used[id]) {
if(!ak47_zoom[id]) {
ak47_zoom[id] = true
cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
}
else {
ak47_zoom[id] = false
cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
}
}
}
}
if((Button & IN_USE) && (OldButtons & IN_USE) && get_pcvar_num(esm_parachute) == 1)
{
static Float:fVelocity[3]; pev(id, pev_velocity, fVelocity);
if(fVelocity[2] < 0.0)
{
fVelocity[2] = -60.0
set_pev(id, pev_velocity, fVelocity)
}
}
return PLUGIN_CONTINUE;
}
public vip_shop_open(id) {
if(!g_player_has_vip[id]) {
client_print(id, print_chat, "[ESM] No Access To This Shop")
return PLUGIN_HANDLED;
}
new menu = menu_create( "\r[ESM] \wVIP Shop", "vip_shop_handler" );
menu_additem( menu, "\r+\w50 Armor \r[\w$\r1500\r]", "", 0 );
menu_additem( menu, "\r+\w50 HP \r[\w$\r3500\r]", "", 0 );
menu_additem( menu, "\r[\w1 Round\r] \wNo-Recoil \r[\w$\r6000\r] ", "", 0 );
menu_additem( menu, "\rHigh-Damage \wSniper \r[\w$\r10000\r]", "", 0 );
menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
if(is_user_alive(id)) {
menu_display( id, menu, 0 );
}
return PLUGIN_HANDLED;
}
public vip_shop_handler( id, menu, item )
{
if(!is_user_alive(id)) {
client_print(id, print_chat, "[VSHOP] Only Alive [VIP] Players Can Use")
menu_destroy( menu );
return PLUGIN_HANDLED;
}
new money = cs_get_user_money(id)
switch( item )
{
case 0:
{
if(money >= 1500 && !armor_used[id]) {
set_user_armor(id, get_user_armor(id) + 50)
client_print(id, print_chat, "You Just Bought +50 Armor")
}
else if(money < 1500) {
client_print(id, print_chat, "[VSHOP] Insufficient Funds")
return PLUGIN_HANDLED
}
else if(armor_used[id]) {
client_print(id, print_chat, "[VSHOP] You Can Only Buy Once A Round")
return PLUGIN_HANDLED
}
}
case 1:
{
if(money >= 3500 && !hp_used[id]) {
set_user_health(id, get_user_health(id) + 50)
client_print(id, print_chat, "You Just Bought +50 HP")
}
else if(money < 3500) {
client_print(id, print_chat, "[VSHOP] Insufficient Funds")
return PLUGIN_HANDLED
}
else if(hp_used[id]) {
client_print(id, print_chat, "[VSHOP] You Can Only Buy Once A Round")
return PLUGIN_HANDLED
}
}
case 2:
{
if(money >= 6000 && !norecoil_used[id]) {
norecoil_used[id] = true
client_print(id, print_chat, "You Just Bought No Recoil")
}
else if(money < 6000) {
client_print(id, print_chat, "[VSHOP] Insufficient Funds")
return PLUGIN_HANDLED
}
else if(norecoil_used[id]) {
client_print(id, print_chat, "[VSHOP] You Can Only Buy Once A Round")
return PLUGIN_HANDLED
}
}
case 3:
{
if(cs_get_user_money(id) >= get_pcvar_num(esm_vshop_sniper_price) && !sniper_used[id]) {
sniper_used[id] = true
client_print(id, print_chat, "You Just Bought High-Damage Sniper")
StripWeapons(id, Primary);
give_item(id, "weapon_awp")
cs_set_user_bpammo(id, CSW_AWP, 30)
SetSniperModel(id)
}
else if(money < get_pcvar_num(esm_vshop_sniper_price)) {
client_print(id, print_chat, "[VSHOP] Insufficient Funds")
return PLUGIN_HANDLED
}
else if(sniper_used[id]) {
client_print(id, print_chat, "[VSHOP] You Can Only Buy Once A Round")
return PLUGIN_HANDLED
}
}
}
menu_destroy( menu );
return PLUGIN_HANDLED;
}
public fw_ButtonFunc(iEnt, iAttacker, Float:fDamage, Float:vDirection[3], TraceHandle, iDamageBits ) {
if(get_pcvar_num(esm_shoot_buttons) == 1)
dllfunc(DLLFunc_Use, iEnt, iAttacker)
}
public client_putinserver(id) {
if(is_user_connected(id) && get_user_flags(id) & ADMIN_LEVEL_H) {
g_player_has_vip[id] = true
}
}
public client_disconnect(id) {
ResetVariables(id)
}
public fw_Weapon_PrimaryAttack_Pre(ent) {
new id = pev(ent, pev_owner)
if (IsValidPlayer(id) && is_user_alive(id) && norecoil_used[id])
{
pev(id, pev_punchangle, cl_pushangle[id])
}
return HAM_IGNORED;
}
public fw_Weapon_PrimaryAttack_Post(ent)
{
new id = pev(ent, pev_owner)
if (IsValidPlayer(id) && is_user_alive(id) && norecoil_used[id])
{
new Float: push[3]
pev(id, pev_punchangle, push)
xs_vec_sub(push, cl_pushangle[id], push)
xs_vec_mul_scalar(push, 0.0, push)
xs_vec_add(push, cl_pushangle[id], push)
set_pev(id, pev_punchangle, push)
}
return HAM_IGNORED;
}
public remove_godmode(id) {
id -= TASK_GODMODE
set_user_godmode(id, 0)
}
public remove_invisibility(id) {
id -= TASK_INVISIBILITY
set_user_rendering(id)
}
2. Where can I find a list of functions for register_impulse ?
3. Any example for saving Level/XP with SQL ?
Thanks.
|