- Ошибка
-
L 05/08/2021 - 15:32:34: Invalid multi-lingual line (file "cstrike/addons/amxmodx/data/lang/deagsmapmanager.txt" key "; This file must be saved with UTF-8 (without BOM) encoding." lang "")
L 05/08/2021 - 15:32:34: Invalid multi-lingual line (file "cstrike/addons/amxmodx/data/lang/deagsmapmanager.txt" key "; DV needs to be updated for each revision." lang "")
L 05/08/2021 - 15:32:34: Invalid multi-lingual line (file "cstrike/addons/amxmodx/data/lang/deagsmapmanager.txt" key "; If new revision is compatible with current source code, increment by one. (Ex: 480->481)" lang "")
L 05/08/2021 - 15:32:34: Invalid multi-lingual line (file "cstrike/addons/amxmodx/data/lang/deagsmapmanager.txt" key "; Up to 9 compatible revisions are allowed before source code modification is required." lang "")
L 05/08/2021 - 15:32:34: Invalid multi-lingual line (file "cstrike/addons/amxmodx/data/lang/deagsmapmanager.txt" key "; If not compatible, increment to the next multiple of 10. (Ex: 480->490, 485->490)" lang "")
L 05/08/2021 - 15:32:34: Invalid multi-lingual line (file "cstrike/addons/amxmodx/data/lang/deagsmapmanager.txt" key "; This also requires source code modification of DMAP_EXPECTED_DV." lang "")
- ОС
- Linux
- Amx Mod X
-
AMX Mod X 1.9.0.5263 (http://www.amxmodx.org
- Билд
-
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.8.0.702-dev
Build date: 18:22:55 Nov 8 2020 (2402)
Build from: https://github.com/dreamstalker/rehlds/commit/543728d
- ReGamedll
-
ReGameDLL version: 5.20.0.492-dev
Build date: 15:26:35 Jan 4 2021
Build from: https://github.com/s1lentq/ReGameDLL_CS/commit/aae507c
- Версия Metamod
-
Metamod-r v1.3.0.128, API (5:13)
Metamod-r build: 17:47:54 Aug 24 2018
Metamod-r from: https://github.com/theAsmodai/metamod-r/commit/0cf2f70
- Список метамодулей
-
[ 1] AMX Mod X RUN - amxmodx_mm_i386.so v1.9.0.5263 ini Start ANY
[ 2] Reunion RUN - reunion_mm_i386.so v0.1.92d ini Start Never
[ 3] Rechecker RUN - rechecker_mm_i386.so v2.5 ini Chlvl ANY
[ 4] ReSemiclip RUN - resemiclip_mm_i386.so v2.3.9 ini Chlvl ANY
[ 5] POD-Bot mm RUN - podbot_mm_i386.so vV3B22b ini Chlvl ANY
[ 6] VoiceTranscoder RUN - VoiceTranscoder.so v2017RC5 ini ANY ANY
[ 7] WHBlocker RUN - whblocker_mm_i386.so v1.5.697 ini Chlvl ANY
[ 8] Fun RUN - fun_amxx_i386.so v1.9.0.5271 pl1 ANY ANY
[ 9] Engine RUN - engine_amxx_i386.so v1.9.0.5271 pl1 ANY ANY
[10] FakeMeta RUN - fakemeta_amxx_i386.so v1.9.0.5271 pl1 ANY ANY
[11] GeoIP RUN - geoip_amxx_i386.so v1.9.0.5271 pl1 ANY ANY
[12] CStrike RUN - cstrike_amxx_i386.so v1.9.0.5271 pl1 ANY ANY
[13] CSX RUN - csx_amxx_i386.so v1.9.0.5271 pl1 ANY ANY
[14] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.9.0.5271 pl1 ANY ANY
[15] MySQL RUN - mysql_amxx_i386.so v1.9.0.5271 pl1 ANY ANY
[16] ReAPI RUN - reapi_amxx_i386.so v5.18.0.203-dev pl1 ANY Never
[17] ReAimDetector RUN - reaimdetector_amxx_i386.so v0.2.2 pl1 ANY Never
[18] CSDM2 RUN - csdm_amxx_i386.so v2.1.3c-KWo pl1 ANY ANY
[19] AuthEmu RUN - authemu_amxx_i386.so v5.2.12.425-dev pl1 ANY Never
- Список плагинов
-
[ 1] Vip Test 1.0 daywer vip_test.amxx running
[ 2] Advanced Roll The Dice v2.5 RC 4 Striker roll_the_dice.a running
[ 3] Money Rewards 1.0.1 the_hunter money_rewards.a running
[ 4] Anti-Ad 0.1 Mati antiad.amxx running
[ 5] MapConfigX 1.1 AdaskoMX mapconfigx.amxx running
[ 6] AMXBans: Screens Gm 1.6 Larte Team amxbans_ssban.a running
[ 7] AMXBans: Main Gm 1.6 Larte Team amxbans_main.am debug
[ 8] AMXBans: Freeze Gm 1.6 Larte Team amxbans_freeze. running
[ 9] Lite VoteBan 1.4 neygomon lite_voteban.am running
[ 10] AMXBans: Core Gm 1.6 Larte Team amxbans_core.am running
[ 11] AMXBans: Flagged Gm 1.6 Larte Team amxbans_flagged running
[ 12] AES: Informer 0.5 Vega serfreeman1337 aes_informer.am running
[ 13] Stats Configuration 1.9.0.5263 AMXX Dev Team statscfg.amxx running
[ 14] AES: CStrike Addon 0.5 Vega serfreeman1337 aes_exp_cstrike running
[ 15] Advanced Experience Sy 0.5 Vega serfreeman1337 aes_main.amxx running
[ 16] AES: StatsX 0.5 Vega serfreeman1337 aes_statsx_cstr running
[ 17] Prefix Manager 0.1 serfreeman1337 prefixManager.a running
[ 18] Hide Slash Commands 1.0.0 Kreation +mod.le SymbolChat.amxx running
[ 19] Steam Models 0.1b+mod.l Freedo.m steam_models.am running
[ 20] Afk Control 0.4 Stable Freedo.m | neygo afk_control.amx running
[ 21] Admin Spectator ESP 1.3 KoST admin_spec_esp. running
[ 22] ReAimDetector API 0.2.2 ReHLDS Team reaimdetector.a running
[ 23] Admin Commands 1.9.0.5263 AMXX Dev Team admincmd.amxx running
[ 24] Admin Help 1.9.0.5263 AMXX Dev Team adminhelp.amxx running
[ 25] Slots Reservation 1.9.0.5263 AMXX Dev Team adminslots.amxx running
[ 26] Multi-Lingual System 1.9.0.5263 AMXX Dev Team multilingual.am running
[ 27] Menus Front-End 1.9.0.5263 AMXX Dev Team menufront.amxx running
[ 28] Commands Menu 1.9.0.5263 AMXX Dev Team cmdmenu.amxx running
[ 29] Players Menu 1.9.0.5271 AMXX Dev Team plmenu.amxx running
[ 30] Teleport Menu 1.9.0.5263 AMXX Dev Team telemenu.amxx running
[ 31] Plugin Menu 1.9.0.5263 AMXX Dev Team pluginmenu.amxx running
[ 32] Admin Chat 1.9.0.5263 AMXX Dev Team adminchat.amxx running
[ 33] Anti Flood 1.9.0.5263 AMXX Dev Team antiflood.amxx running
[ 34] Scrolling Message 1.9.0.5263 AMXX Dev Team scrollmsg.amxx running
[ 35] Info. Messages 1.9.0.5263 AMXX Dev Team imessage.amxx running
[ 36] Admin Votes 1.9.0.5263 AMXX Dev Team adminvote.amxx running
[ 37] TimeLeft 1.9.0.5263 AMXX Dev Team timeleft.amxx running
[ 38] CS Shop 5.0 iNeedHelp CS_Shop_n.amxx running
[ 39] MoneyTransfer 0.3 ZETA [M|E|N] money_transfer_ running
[ 40] Admin Rich 1.0 Emilioneri admin_rich_with debug
[ 41] Autoresponder/Advertis 0.5 MaximusBrood ad_manager.amxx running
[ 42] Reset Score 1.0 Silenttt resetscore.amxx running
[ 43] CSDM Auto Balance 1.0 xPaw csdm_auto_balan running
[ 44] Weapon Menu 1.0 Mattcook & xerob weaponmenu_rus. running
[ 45] GunGame AMMO 2.2 Prayer gg_ammo.amxx running
[ 46] Ultimate Gore 1.6 JTP10181 amx_gore_ultima running
[ 47] Super Bunny Hopper 1.2 Cheesy Peteza bhop.amxx running
[ 48] Bullet Damage 0.0.1 ConnorMcLeod bullet_damage.a running
[ 49] MultiJump 1.1 Solo[59rus] multijump_with_ running
[ 50] Vampire 1.0c Shalfey vampire3+vip.am running
[ 51] Grenade Trail 1.0 Jim grenade_trail.a running
[ 52] Sentry CSDM Menu 1.0 sap273 amx_sentry_menu running
[ 53] Sentry CSDM Menu 1.0 sap273 amx_sentry_menu running
[ 54] AMX Admin Model 1.1.1 whitemike amx_adminmodel. running
[ 55] Blue Fade 0.1 Stimul Blue_Fade.amxx running
[ 56] Golden Ak 47 1.0 AlejandroSk GoldenAk_ul.amx running
[ 57] Automatic Unstuck 1.5 NL)Ramon(NL stuck.amxx running
[ 58] Spec Switch 0.2.2 many dm_spec.amxx running
[ 59] SF TripMine 0.3.4 serfreeman1337 sfTripMine_FIX_ running
[ 60] DeagsMapManager 3.25Beta Deags/AMXX Commu deagsmapmanager running
[ 61] Maps Menu 1.9.0.5263 AMXX Dev Team mapsmenu.amxx running
[ 62] Golden M4A1 1.0 Alicx DarK GoldenM4a1_ul.a running
[ 63] VIP CSDM 1.0 Godzilla csdm_vipmenu_27 running
[ 64] Unlimited Clip v 1.0 Sap unlimited_clip_ running
[ 65] Kill Rewards 1.4 HoLLyWooD kill_rewards.am running
[ 66] WalkGuard 1.3.2 mogel walkguard.amxx running
[ 67] Knife Scratch 1.0 PahanCS KnifeScratch.am running
[ 68] All Chat 1.1 Ian Cammarata allchat.amxx running
[ 69] No Radio Flood 1.1 Starsailor no_radio_flood. running
[ 70] Unlimited Team Changes 1.3 HamletEagle unlimited_teamc running
[ 71] silentnades 1.0 regalis silent_nades.am running
[ 72] Test dhud_message_te running
[ 73] effect day/night 1.3 Destro day_night.amxx running
[ 74] Block name change 1.0 grankee changename.amxx running
[ 75] Unlimited Money 2.0 NL)Ramon(NL unlimited_money running
[ 76] Sentry guns 1.1 JGHG & miRror sentryguns_ul_2 running
[ 77] Connect Exec 1.0 AleX connect_exec.am running
[ 78] Knife Double Frags 0.3 Rul4 kdf_ul.amxx running
[ 79] Golden AWP 1.1 Anonymousstar goldenawp_ul.am running
[ 80] Auto recording demo 2.0 IzI | Bonaqua (R amx_autodemorec running
[ 81] plugin_trail 1.3.1 Bahrmanou plugin_trail.am running
[ 82] Change Team 1.1 neygomon & Alien changeteam.amxx running
[ 83] x x x map.amxx running
[ 84] say /motd 1.1 Pa1n say_motd.amxx running
[ 85] AntiFlash FINAL 5.0 Leo_[BH] antiflash5.amxx running
[ 86] ReChecker Logging 1.0 custom rc_logging.amxx running
[ 87] Golden Deagle 1.6 AlejandroSk deaglegold_ul.a running
[ 88] Game Namer 1.1 NeuroToxin gamenamechanger running
[ 89] Ultimate Chats Control 5.2(c) neygomon ucc.amxx running
[ 90] unknown unknown unknown ucc_api_example running
[ 91] UCC Addon: VoteGAG 1.2 neygomon ucc_votegag.amx running
[ 92] Steam_GSClient_Bonus 1.0.5 ApXuTekToR Steam_GSClient_ running
[ 93] AuthEmu API 1.0 Dev-MS Team authemu.amxx running
[ 94] GFonTime 1.3 ApXuTekToR Give_Flags_on_T running
[ 95] Build Dispenser #1.0.6.0 tuty BuildDispenser_ running
[ 96] MG Grab 1.0 Nickron mg_grab.amxx running
[ 97] Black Smoke 1.0 xPaw, Justick colored_smoke.a running
[ 98] CSDM Main 3.6 CSDM Team csdm_main.amxx running
[ 99] ReCSDM Equip 3.6 ReCSDM Team csdm_equip.amxx debug
[100] CSDM Spawns 3.6 CSDM Team csdm_spawn_pres running
[101] CSDM Misc 3.6 CSDM Team csdm_misc.amxx running
[102] CSDM Protection 3.6 BAILOPAN csdm_protection running
- Автор плагина
- PLUGIN_VERSION, "NOVA & SHIELD"
- Версия плагина
- PLUGIN_VERSION, "NOVA & SHIELD"
- Исходный код
-
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>
#include <engine>
#include <fun>
#include <xs>
#include <money_ul>
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#define print_team_default DontChange
#define print_team_grey Grey
#define print_team_red Red
#define print_team_blue Blue
#include <dhudmessage>
#endif
new g_iCvar[30]
new Float:g_fTime[33]
#define PLUGIN_NUM 343
#define PLUGIN_VERSION "#1.0.5"
#define PLUGIN_PREFIX "[Раздатчик]"
#define BREAK_COMPUTER 6
#define HUD_DELAYTIME 0.2
#define MAX_PLAYERS 32
#define TASK_PLANT 15100
native get_sentry_team(sentry)
native get_sentry_lvl(sentry)
#define is_valid_player(%1) ( 1 <= %1 <= gMaxPlayers )
enum
{
STATUS_BUILDING,
STATUS_ACTIVE
}
new const gDamageSounds[ ][ ] = {
"debris/metal1.wav",
"debris/metal2.wav",
"debris/metal3.wav"
}
#define Sound_ignor "nova/sentry/ignor.wav"
#define Sprite_Chastic "sprites/nova/spr_2.spr"
new g_Chastic
new const gDispenserClassnameHpArm[ ] = "NiceDispenser";
new const gDispenserActive[ ] = "buttons/button9.wav";
new const gDispenserDestroy[ ] = "grab_bury.wav";
new const gHealingSprite[ ] = "sprites/dispensers.spr";
new gBeamcolor[ MAX_PLAYERS ][ 3 ];
new bool:bDispenserHpArm[ MAX_PLAYERS ];
new bool:bFullHealth[ MAX_PLAYERS ];
new bool:bFullArmor[ MAX_PLAYERS ];
new bool:bFullAmoo[ MAX_PLAYERS ];
new Float:gDispenserOrigin[ MAX_PLAYERS ][ 3 ];
new gHealingBeam, gMaxPlayers ;
new iEntity;
new const SPRITELIST[][] = {
"sprites/kf/b.spr",
"sprites/kf/g.spr",
"sprites/kf/r.spr",
"sprites/kf/y.spr"
};
new g_pSprites[sizeof SPRITELIST];
new g_model_1_ct, g_model_2_ct, g_model_3_ct, g_model_1_t, g_model_2_t, g_model_3_t
new Model_disp_1_ct[90], Model_disp_2_ct[90], Model_disp_3_ct[90]
new Model_disp_1_t[90], Model_disp_2_t[90], Model_disp_3_t[90]
new g_vampir[3], g_vampir_max[3]
new Float:g_HEALTHS[4]
new g_bar_time
public plugin_init( )
{
register_plugin( "Build Dispenser", PLUGIN_VERSION, "NOVA & SHIELD" );
register_dictionary( "nv_dispenser.txt" );
register_event( "TextMsg", "EVENT_TextMsg", "a", "2&#Game_C", "2&#Game_w", "2&#Game_will_restart_in" );
register_logevent( "LOG_RoundEnd", 2, "1=Round_End" );
register_forward ( FM_TraceLine, "fw_TraceLine_Post", 1 );
register_forward(FM_CmdStart,"fm_cmdstart")
register_touch ( gDispenserClassnameHpArm, "player", "fw_DispenserTouch" )
RegisterHam( Ham_TakeDamage, "info_target", "bacon_TakeDamage", 1 );
RegisterHam( Ham_TakeDamage, "info_target", "bacon_TakeDamagePre", 0 );
RegisterHam( Ham_TraceAttack, "info_target", "bacon_TraceAttack" );
register_think( gDispenserClassnameHpArm, "DispenserHpArmThink" );
register_clcmd( "build_dispenser", "HpArmDispenserBuild" )
g_bar_time = get_user_msgid("BarTime2")
gMaxPlayers = get_maxplayers( );
g_iCvar[0]=register_cvar("disp_reward", "3000") //Награда за разрушение
g_iCvar[1]=register_cvar("disp_cost", "3000") //Цена раздатчика
g_iCvar[2]=register_cvar("disp_cost_up", "4000") //Цена Улудшения
g_iCvar[24]=register_cvar("disp_cost_up2", "4000")
g_iCvar[3]=register_cvar("disp_radius", "400") //Радиус лечения
g_iCvar[4]=register_cvar("disp_hp_1", "900.0") //Здоровие раздатчика 1 уровень
g_iCvar[5]=register_cvar("disp_hp_2", "1500.0") //Здоровие раздатчика 2 уровень
g_iCvar[6]=register_cvar("disp_hp_3", "2000.0") //Здоровие раздатчика 3 уровень
g_iCvar[7]=register_cvar("disp_hp_p_max_1", "200") //Здоровие на которое лечит раздатчик 1 уровня
g_iCvar[8]=register_cvar("disp_hp_p_max_2", "400") //Здоровие на которое лечит раздатчик 2 уровня
g_iCvar[9]=register_cvar("disp_hp_p_max_3", "600") //Здоровие на которое лечит раздатчик 3 уровня
g_iCvar[10]=register_cvar("disp_ap_p_max_1", "200") //Браня на которую лечит раздатчик 1 уровня
g_iCvar[11]=register_cvar("disp_ap_p_max_2", "400") //Браня на которую лечит раздатчик 2 уровня
g_iCvar[12]=register_cvar("disp_ap_p_max_3", "600") //Браня на которую лечит раздатчик 3 уровня
g_iCvar[13]=register_cvar("disp_ap_p_speed_1", "1")
g_iCvar[14]=register_cvar("disp_ap_p_speed_2", "1")
g_iCvar[15]=register_cvar("disp_ap_p_speed_3", "1")
g_iCvar[16]=register_cvar("disp_hp_p_speed_1", "1")
g_iCvar[17]=register_cvar("disp_hp_p_speed_2", "1")
g_iCvar[18]=register_cvar("disp_hp_p_speed_3", "1")
g_iCvar[19]=register_cvar("disp_hp_e_speed_1", "1")
g_iCvar[20]=register_cvar("disp_hp_e_speed_2", "1")
g_iCvar[21]=register_cvar("disp_hp_e_speed_3", "1")
g_iCvar[22]=register_cvar("disp_rem_cost", "1")
g_iCvar[23]=register_cvar("disp_rem_speed", "1")
g_iCvar[25]=register_cvar("disp_ugol_float", "50.0")
g_iCvar[26]=register_cvar("disp_up_time", "2.5")
g_vampir[0]=register_cvar("disp_vampir_1", "1")
g_vampir[1]=register_cvar("disp_vampir_2", "1")
g_vampir[2]=register_cvar("disp_vampir_3", "1")
g_vampir_max[0]=register_cvar("disp_vampir_max_1", "50")
g_vampir_max[1]=register_cvar("disp_vampir_max_2", "30")
g_vampir_max[2]=register_cvar("disp_vampir_max_3", "20")
g_HEALTHS[0] = get_pcvar_float(register_cvar("nv_sg_hp_1","3000.0"))
g_HEALTHS[1] = get_pcvar_float(register_cvar("nv_sg_hp_2","4000.0"))
g_HEALTHS[2] = get_pcvar_float(register_cvar("nv_sg_hp_3","6000.0"))
g_HEALTHS[3] = get_pcvar_float(register_cvar("nv_sg_hp_4","8000.0"))
}
public plugin_cfg(){
new configsdir[128]
get_localinfo("amxx_configsdir", configsdir, 127)
server_cmd("exec %s/nova/dispenser.cfg", configsdir)
server_exec()
}
public plugin_natives( ){
set_native_filter( "native_filter" );
}
public native_filter( const name[], index, trap ) {
if ( !trap )
{
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
new remont_is[33]
public fm_cmdstart(id, uc_handle, seed) {
if(!is_user_alive(id)) return
if(g_fTime[id]>get_gametime()) return
new buttons = get_uc(uc_handle,UC_Buttons)
if(buttons & IN_USE)
{
new target, body
get_user_aiming(id, target, body, 128)
static ClassName[32]
pev(target, pev_classname, ClassName, charsmax(ClassName))
if (equal(ClassName, gDispenserClassnameHpArm))
{
g_fTime[id]=get_gametime()+0.1
new iTeam = pev ( target, pev_iuser4 )
if ( _:cs_get_user_team ( id ) != iTeam )
return
new Float:Health
pev(target, pev_health, Health)
remont_is[id] = 1
if(cs_get_user_money_ul(id) < get_pcvar_num(g_iCvar[22])){
client_print_color(id, print_team_blue,"%L",id, "DISP_REM_TXT_1", get_pcvar_num(g_iCvar[22]))
return
}
new Float:Max=get_pcvar_float(g_iCvar[pev(target, pev_euser4)+3])
if(Health>=Max)return
if(Health>=Max - get_pcvar_num(g_iCvar[23])){
client_print_color(id, print_team_blue,"%L",id, "DISP_REM_TXT_2" )
Health = Max
message_begin(MSG_ONE, g_bar_time, _, id)
write_short(10000)
write_short(100)
message_end()
}else{
new Float:max_pro = Max/100
new Float:progres_bar = Health / max_pro
message_begin(MSG_ONE, g_bar_time, _, id)
write_short(10000)
write_short(floatround(progres_bar))
message_end()
Health+=get_pcvar_num(g_iCvar[23])
}
g_fTime[id]=get_gametime()+0.1
cs_set_user_money_ul( id, cs_get_user_money_ul( id ) - get_pcvar_num(g_iCvar[22]))
set_pev(target, pev_health, Health)
}
}else{
if(remont_is[id] == 1){
remont_is[id] = 0
message_begin(MSG_ONE, 108, _, id)
write_byte(0)
write_byte(0)
message_end()
}
}
}
public client_connect( id ){
bFullHealth[ id ] = false;
bFullArmor[ id ] = false;
bDispenserHpArm[ id ] = false;
bFullAmoo[ id ] = false
}
public client_disconnected( id ){
new iEnt
while( ( iEnt = find_ent_by_class( iEnt, gDispenserClassnameHpArm ) ) )
{
new iOwner = pev( iEnt, pev_iuser2 );
if(id == iOwner)
{
bDispenserHpArm[ id ] = false;
set_pev( iEnt, pev_flags, pev( iEnt, pev_flags ) | FL_KILLME );
}
}
}
public plugin_precache( )
{
g_model_1_ct = 0
g_model_2_ct = 0
g_model_3_ct = 0
g_model_1_t = 0
g_model_2_t = 0
g_model_3_t = 0
new iFile = fopen("addons/amxmodx/configs/nova/dispenser.cfg", "rt");
if(iFile){
new szLineBuffer[600]
while(!(feof(iFile))){
fgets(iFile, szLineBuffer, charsmax(szLineBuffer));
if(!(szLineBuffer[0]) || szLineBuffer[0] == ';' || szLineBuffer[0] == '#')
{
continue;
}
new Imeil[600]
new Model[600]
parse(szLineBuffer, Imeil, charsmax(Imeil),Model, charsmax(Model));
if(equal(Imeil, "mdl_disp_1_t")){
g_model_1_t = 1
formatex(Model_disp_1_t, charsmax(Model_disp_1_t), "%s", Model);
} if(equal(Imeil, "mdl_disp_2_t")){
g_model_2_t = 1
formatex(Model_disp_2_t, charsmax(Model_disp_2_t), "%s", Model);
} if(equal(Imeil, "mdl_disp_3_t")){
g_model_3_t = 1
formatex(Model_disp_3_t, charsmax(Model_disp_3_t), "%s", Model);
} if(equal(Imeil, "mdl_disp_1_ct")){
g_model_1_ct = 1
formatex(Model_disp_1_ct, charsmax(Model_disp_1_ct), "%s", Model);
} if(equal(Imeil, "mdl_disp_2_ct")){
g_model_2_ct = 2
formatex(Model_disp_2_ct, charsmax(Model_disp_2_ct), "%s", Model);
} if(equal(Imeil, "mdl_disp_3_ct")){
g_model_3_ct = 3
formatex(Model_disp_3_ct, charsmax(Model_disp_3_ct), "%s", Model);
}
}
}
if(g_model_1_t == 0){
formatex(Model_disp_1_t, charsmax(Model_disp_1_t), "models/nova/dispenser/dispenser_1_lvl_te.mdl");
} if(g_model_2_t == 0){
formatex(Model_disp_2_t, charsmax(Model_disp_2_t), "models/nova/dispenser/dispenser_2_lvl_te.mdl");
} if(g_model_3_t == 0){
formatex(Model_disp_3_t, charsmax(Model_disp_3_t), "models/nova/dispenser/dispenser_3_lvl_te.mdl");
} if(g_model_1_ct == 0){
formatex(Model_disp_1_ct, charsmax(Model_disp_1_ct), "models/nova/dispenser/dispenser_1_lvl_ct.mdl");
} if(g_model_2_ct == 0){
formatex(Model_disp_2_ct, charsmax(Model_disp_2_ct), "models/nova/dispenser/dispenser_2_lvl_ct.mdl");
} if(g_model_3_ct == 0){
formatex(Model_disp_3_ct, charsmax(Model_disp_3_ct), "models/nova/dispenser/dispenser_3_lvl_ct.mdl");
}
precache_model(Model_disp_1_ct)
precache_model(Model_disp_2_ct)
precache_model(Model_disp_3_ct)
precache_model(Model_disp_1_t)
precache_model(Model_disp_2_t)
precache_model(Model_disp_3_t)
precache_sound( Sound_ignor )
precache_sound( gDispenserActive )
precache_sound( gDispenserDestroy )
g_Chastic = precache_model(Sprite_Chastic)
new i
for( i = 0; i < sizeof gDamageSounds; i++ )
{
precache_sound( gDamageSounds[ i ] )
}
for(new i; i < sizeof SPRITELIST; i++) {
g_pSprites[i] = precache_model(SPRITELIST[i]);
}
gHealingBeam = precache_model( gHealingSprite )
}
new Float: Trace_lini[999]
public fw_TraceLine_Post ( Float:v1[3], Float:v2[3], noMonsters, id )
{
if( !is_valid_player(id) || is_user_bot(id) || !is_user_alive(id)) return FMRES_IGNORED
if(Trace_lini[id] > get_gametime()) return FMRES_IGNORED
Trace_lini[id] = get_gametime() + 0.5
new iHitEnt = get_tr(TR_pHit)
if( iHitEnt <= gMaxPlayers || !pev_valid(iHitEnt)) return FMRES_IGNORED
new sClassname[32]
pev(iHitEnt, pev_classname, sClassname, charsmax(sClassname))
if(!equal(sClassname, gDispenserClassnameHpArm)) return FMRES_IGNORED
new iTeam = pev ( iHitEnt, pev_iuser4 )
if ( _:cs_get_user_team ( id ) != iTeam ) return FMRES_IGNORED
new iHealth = pev ( iHitEnt, pev_health )
if (iHealth <= 0) return FMRES_IGNORED
new iOwner = pev ( iHitEnt, pev_iuser2 )
if ( !is_user_connected(iOwner)) return FMRES_IGNORED
new sName[33]
get_user_name ( iOwner, sName, charsmax ( sName ) )
new iLevel = pev ( iHitEnt, pev_euser4 )
set_dhudmessage ( iTeam == 1 ? 150 : 0, 50, iTeam == 2 ? 200 : 0, -1.0, 0.35, 0, 0.0, 0.55, 0.0, 0.0 )
show_dhudmessage ( id, "%L", id, "DISP_INFO", sName, iHealth, iLevel )
return FMRES_IGNORED
}
new Float: Disp_toush_up[33]
public fw_DispenserTouch ( ent, id )
{
if( !is_valid_player(id) || is_user_bot(id) || !is_user_alive(id)) return
if(Disp_toush_up[id] > get_gametime()) return
Disp_toush_up[id] = get_gametime() + get_pcvar_float(g_iCvar[26])
if ( pev ( ent, pev_iuser4 ) != _:cs_get_user_team ( id ) )
return
new iOwner = pev ( ent, pev_iuser2 )
if(get_user_flags(id) & ADMIN_LEVEL_D)
{
}
else
{
if ( iOwner == id ){
emit_sound(id,0,Sound_ignor,1.0, ATTN_NORM, 0, PITCH_NORM )
client_print_color(id, print_team_blue,"%L", id, "DISP_INFORM_1" )
return
}
}
if ( pev ( ent, pev_euser4 ) >= 3) return
new money = cs_get_user_money_ul ( id )
if (pev (ent, pev_euser4 ) == 1){
if ( money < get_pcvar_num(g_iCvar[2])){
emit_sound(id,0,Sound_ignor,1.0, ATTN_NORM, 0, PITCH_NORM )
client_print_color(id, print_team_blue,"%L", id, "DISP_ZAPRET_2" )
return
}
set_pev ( ent, pev_euser4, 2 )
set_pev ( ent, pev_health, get_pcvar_float(g_iCvar[5]))
switch ( _:cs_get_user_team ( id ) ){
case 1:entity_set_model ( ent, Model_disp_2_t )
case 2:entity_set_model ( ent, Model_disp_2_ct )
}
engfunc( EngFunc_SetSize, ent, Float:{ -12.0, -10.0, -1.0 }, Float:{ 5.0, 5.0, 50.0 } )
emit_sound( ent, CHAN_STATIC, gDispenserActive, VOL_NORM, ATTN_NORM, 0, PITCH_NORM )
new Float:flAngles[ 3 ];
pev( ent, pev_angles, flAngles );
flAngles[ 1 ] += get_pcvar_float(g_iCvar[25])
set_pev( ent, pev_angles, flAngles );
if ( !is_user_connected(iOwner)) return
cs_set_user_money_ul(id, money - get_pcvar_num(g_iCvar[2]))
set_pev( ent, pev_iuser1, id );
Disp_toush_up[id] = get_gametime() + get_pcvar_float(g_iCvar[26])
new sUpgraderName[32]
get_user_name ( id, sUpgraderName, charsmax ( sUpgraderName ) )
UTIL_ChatColor ( iOwner, "%L",iOwner , "DISP_OBNOWA_1", sUpgraderName )
return
}
if ( pev ( ent, pev_euser4 ) == 2){
set_pev( ent, pev_iuser1, id );
if(id == pev( ent, pev_iuser1)){
if(get_user_flags(id) & ADMIN_LEVEL_D)
{
}
else
{
emit_sound(id,0,Sound_ignor,1.0, ATTN_NORM, 0, PITCH_NORM )
client_print_color(id, print_team_blue,"%L", id, "DISP_INFORM_3" )
}
}
if ( money < get_pcvar_num(g_iCvar[24])){
emit_sound(id,0,Sound_ignor,1.0, ATTN_NORM, 0, PITCH_NORM )
client_print_color(id, print_team_blue,"%L", id, "DISP_ZAPRET_2")
return
}
set_pev ( ent, pev_euser4, 3 )
set_pev ( ent, pev_health, get_pcvar_float(g_iCvar[6]) )
switch ( _:cs_get_user_team ( id ) ){
case 1:entity_set_model ( ent, Model_disp_3_t )
case 2:entity_set_model ( ent, Model_disp_3_ct )
}
engfunc( EngFunc_SetSize, ent, Float:{ -12.0, -10.0, -1.0 }, Float:{ 5.0, 5.0, 50.0 } )
emit_sound( ent, CHAN_STATIC, gDispenserActive, VOL_NORM, ATTN_NORM, 0, PITCH_NORM )
new Float:flAngles[ 3 ];
pev( ent, pev_angles, flAngles );
flAngles[ 1 ] += get_pcvar_float(g_iCvar[25])
set_pev( ent, pev_angles, flAngles );
if ( !is_user_connected(iOwner)) return
cs_set_user_money_ul(id, money - get_pcvar_num(g_iCvar[2]))
new sUpgraderName[32]
get_user_name ( id, sUpgraderName, charsmax ( sUpgraderName ) )
UTIL_ChatColor ( iOwner, "%L",iOwner , "DISP_OBNOWA_2", sUpgraderName )
}
}
public HpArmDispenserBuild( id )
{
if( !is_user_alive( id )){
client_print_color(id, print_team_blue,"%L",id, "DISP_ZAPRET_1")
return PLUGIN_CONTINUE
}
if(!(pev(id, pev_flags) & FL_ONGROUND)) return PLUGIN_HANDLED
if(pev(id, pev_flags ) & FL_DUCKING || pev(id, pev_oldbuttons) & IN_DUCK) return PLUGIN_HANDLED;
if( bDispenserHpArm[ id ] == true){
client_print_color(id, print_team_blue,"%L",id, "DISP_ZAPRET_3")
return PLUGIN_HANDLED;
}
new iMoney = cs_get_user_money_ul( id )
new iCost = get_pcvar_num(g_iCvar[1])
if(iMoney < iCost){
client_print_color(id, print_team_blue,"%L",id, "DISP_ZAPRET_2", iCost)
return PLUGIN_HANDLED
}
new Float:flPlayerOrigin[ 3 ]
pev( id, pev_origin, flPlayerOrigin )
new Float:flHealth = get_pcvar_float(g_iCvar[4])
iEntity = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "info_target" ) )
if( !pev_valid( iEntity ) )
return PLUGIN_HANDLED
gDispenserOrigin[ id ][ 0 ] = flPlayerOrigin[ 0 ]
gDispenserOrigin[ id ][ 1 ] = flPlayerOrigin[ 1 ]
gDispenserOrigin[ id ][ 2 ] = flPlayerOrigin[ 2 ] - 35.0
switch ( _:cs_get_user_team ( id ) ){
case 1:entity_set_model ( iEntity, Model_disp_1_t )
case 2:entity_set_model ( iEntity, Model_disp_1_ct )
}
new szName[ 32 ]
set_pev( iEntity, pev_classname, gDispenserClassnameHpArm )
engfunc( EngFunc_SetSize, iEntity, Float:{ -12.0, -10.0, -1.0 }, Float:{ 5.0, 5.0, 50.0 } )
set_pev( iEntity, pev_origin, flPlayerOrigin )
set_pev( iEntity, pev_solid, SOLID_NOT )
set_pev( iEntity, pev_movetype, MOVETYPE_TOSS )
set_pev( iEntity, pev_health, flHealth )
set_pev( iEntity, pev_takedamage, DAMAGE_YES )
set_pev( iEntity, pev_iuser2, id )
set_pev( iEntity, pev_iuser4, _:cs_get_user_team ( id ) )
set_pev( iEntity, pev_euser4, 1 ); // уровень
set_pev( iEntity, pev_nextthink, get_gametime( ) + 0.1 )
bDispenserHpArm[ id ] = true
set_task(2.0, "BuildDispenserSolid", iEntity )
cs_set_user_money_ul( id, iMoney - iCost, 1 )
get_user_name( id, szName, charsmax( szName ) )
return PLUGIN_HANDLED
}
public bacon_TakeDamagePre( ent, idinflictor, idattacker, Float:damage, damagebits )
{
new szClassname[ 32 ];
pev( ent, pev_classname, szClassname, charsmax( szClassname ) );
if( equal( szClassname, gDispenserClassnameHpArm ) ){
new iOwner = pev( ent, pev_iuser2 );
if(!is_user_connected(iOwner) || 1 > iOwner > 32 || !is_user_connected(idattacker) || 1 > idattacker > 32) return HAM_SUPERCEDE
if(cs_get_user_team(iOwner)==cs_get_user_team(idattacker) && idattacker != iOwner) return HAM_SUPERCEDE
}
return HAM_IGNORED
}
public bacon_TakeDamage( ent, idinflictor, idattacker, Float:damage, damagebits )
{
if( !pev_valid( ent ) )
return HAM_IGNORED
new szClassname[ 32 ];
pev( ent, pev_classname, szClassname, charsmax( szClassname ) );
if( equal( szClassname, gDispenserClassnameHpArm ) )
{
new iOwner = pev( ent, pev_iuser2 );
if( !is_user_connected( iOwner ) || 1 > iOwner > 32 || !is_user_connected( idattacker ) || 1 > idattacker > 32 ) return HAM_SUPERCEDE
if( cs_get_user_team( iOwner ) == cs_get_user_team( idattacker ) && idattacker != iOwner ) return HAM_SUPERCEDE
new Float:entorigin[3]
pev( ent, pev_origin, entorigin )
message_begin(MSG_ALL, SVC_TEMPENTITY);
write_byte(TE_SPRITETRAIL);
engfunc(EngFunc_WriteCoord, entorigin[0] + random_num(- 10, 10));
engfunc(EngFunc_WriteCoord, entorigin[1] + random_num(- 10, 10));
engfunc(EngFunc_WriteCoord, entorigin[2] + random_num(10, 30));
engfunc(EngFunc_WriteCoord, entorigin[0] - random_num(- 100, 100));
engfunc(EngFunc_WriteCoord, entorigin[1] - random_num(- 100, 100));
engfunc(EngFunc_WriteCoord, entorigin[2] + random_num(- 100, 100));
write_short(g_Chastic); // Индекс спрайта из прекеша (index of precached sprite)
write_byte(3); //колличество спрайтов
write_byte(1); //вроде время сущиствования
write_byte(1); //размер
write_byte(1); // 10's
write_byte(5); // 10's
message_end();
if( pev( ent, pev_health ) <= 0.0 ){
new szName[ 32 ];
get_user_name( idattacker, szName, charsmax( szName ) );
new Float:flOrigin[ 3 ];
pev( ent, pev_origin, flOrigin );
set_pev( ent, pev_flags, pev( ent, pev_flags ) | FL_KILLME );
if( idattacker == iOwner ){
UTIL_ChatColor( iOwner,"%L", iOwner, "DISP_DESTONE" );
}else{
UTIL_ChatColor( iOwner,"%L", iOwner, "DISP_DESTONE2", szName);
}
UTIL_ChatColor( idattacker, "%L", idattacker, "DISP_DESTONE3" )
cs_set_user_money_ul( idattacker, min ( cs_get_user_money_ul ( idattacker ) + get_pcvar_num(g_iCvar[0]), 999999 ) )
for(new i; i < sizeof g_pSprites; i++) {
CREATE_SPRITETRAIL(flOrigin, g_pSprites[i]);
}
emit_sound( ent, CHAN_STATIC, gDispenserDestroy, VOL_NORM, ATTN_NORM, 0, PITCH_NORM )
bDispenserHpArm[ iOwner ] = false
}
emit_sound( ent, CHAN_STATIC, gDamageSounds[ random_num( 0, charsmax( gDamageSounds ) ) ], VOL_NORM, ATTN_NORM, 0, PITCH_NORM ) ;
}
return HAM_IGNORED
}
stock CREATE_SPRITETRAIL(Float:fOrigin[3], pSprite, iReliable = 0){
message_begin(iReliable ? MSG_ALL : MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_SPRITETRAIL);
engfunc(EngFunc_WriteCoord, fOrigin[0]);
engfunc(EngFunc_WriteCoord, fOrigin[1]);
engfunc(EngFunc_WriteCoord, fOrigin[2]);
engfunc(EngFunc_WriteCoord, fOrigin[0]);
engfunc(EngFunc_WriteCoord, fOrigin[1]);
engfunc(EngFunc_WriteCoord, fOrigin[2] + 5.0);
write_short(pSprite); // Индекс спрайта из прекеша (index of precached sprite)
write_byte(12);
write_byte(20); // 0.1's
write_byte(4);
write_byte(25); // 10's
write_byte(20); // 10's
message_end();
}
public bacon_TraceAttack( iVictim, iAttacker, Float:flDamage, Float:flDirection[ 3 ], iTr, iDamageBits ){
new szClassname[ 32 ]
pev( iVictim, pev_classname, szClassname, charsmax( szClassname ) )
if( equal( szClassname, gDispenserClassnameHpArm ) ){
new Float:flEndOrigin[ 3 ]
get_tr2( iTr, TR_vecEndPos, flEndOrigin )
UTIL_Sparks( flEndOrigin )
}
return HAM_IGNORED
}
public DispenserHpArmThink( iEnt ){
if(pev_valid(iEnt)){
new iOwner = pev( iEnt, pev_iuser2 );
if(_:cs_get_user_team ( iOwner ) != pev(iEnt, pev_iuser4 )){
bDispenserHpArm[ iOwner ] = false;
set_pev( iEnt, pev_flags, pev( iEnt, pev_flags ) | FL_KILLME );
return
}
new iStatus = pev( iEnt, pev_iuser3 );
switch( iStatus ){
case STATUS_BUILDING:
{
switch( cs_get_user_team( iOwner ) ){
case CS_TEAM_T: set_rendering( iEnt, kRenderFxDistort, 255, 0, 0, kRenderTransAdd, 70 );
case CS_TEAM_CT: set_rendering( iEnt, kRenderFxDistort, 0, 0, 255, kRenderTransAdd, 70 );
}
}
case STATUS_ACTIVE:{
set_pev(iEnt, pev_origin, gDispenserOrigin[iOwner])
new iLevel = pev ( iEnt, pev_euser4 );
new iHealth
new iArmor
new Speed_HP, Speed_AP, Float:Speed_ent
new vampire_num, vampire_max
if(iLevel == 1){
iHealth = get_pcvar_num(g_iCvar[7])
iArmor = get_pcvar_num(g_iCvar[10])
Speed_HP = get_pcvar_num(g_iCvar[16])
Speed_AP = get_pcvar_num(g_iCvar[13])
Speed_ent = float(get_pcvar_num(g_iCvar[19]))
vampire_num = get_pcvar_num(g_vampir[0])
vampire_max = get_pcvar_num(g_vampir_max[0])
} else if(iLevel == 2){
iHealth = get_pcvar_num(g_iCvar[8])
iArmor = get_pcvar_num(g_iCvar[11])
Speed_HP = get_pcvar_num(g_iCvar[17])
Speed_AP = get_pcvar_num(g_iCvar[14])
Speed_ent = float(get_pcvar_num(g_iCvar[20]))
vampire_num = get_pcvar_num(g_vampir[1])
vampire_max = get_pcvar_num(g_vampir_max[1])
} else if(iLevel == 3){
iHealth = get_pcvar_num(g_iCvar[9])
iArmor = get_pcvar_num(g_iCvar[12])
Speed_HP = get_pcvar_num(g_iCvar[18])
Speed_AP = get_pcvar_num(g_iCvar[15])
Speed_ent = float(get_pcvar_num(g_iCvar[21]))
vampire_num = get_pcvar_num(g_vampir[2])
vampire_max = get_pcvar_num(g_vampir_max[2])
}
new ent
while((ent = find_ent_by_class(ent,"sentry")) != 0){
if(get_sentry_team(ent) == fm_cs_get_user_team( iOwner )){
new Float:entorigin[3]
pev( ent, pev_origin, entorigin )
if(UTIL_IsVisible( ent, iEnt ) && get_distance_f( gDispenserOrigin[ iOwner ], entorigin ) <= get_pcvar_num(g_iCvar[3]) ){
new iLevel = get_sentry_lvl(ent)
if(pev(ent, pev_health) < g_HEALTHS[iLevel]){
set_pev(ent, pev_health, pev(ent, pev_health) + Speed_ent)
UTIL_BeamEnts( gDispenserOrigin[ iOwner ], entorigin, gBeamcolor[ iOwner ][ 0 ], gBeamcolor[ iOwner ][ 1 ], gBeamcolor[ iOwner ][ 2 ] );
}
}
}
}
while((ent = find_ent_by_class(ent,"NiceDispenser")) != 0){
if(ent == iEnt) continue
new owner_disp = pev( ent, pev_iuser2 )
if(fm_cs_get_user_team( iOwner ) == fm_cs_get_user_team(owner_disp)){
new iLevel = pev ( ent, pev_euser4 );
new Float:entorigin[3]
pev( ent, pev_origin, entorigin )
if(UTIL_IsVisible( ent, iEnt ) && get_distance_f( gDispenserOrigin[ iOwner ], entorigin ) <= get_pcvar_num(g_iCvar[3]) ){
if(pev(ent, pev_health) < get_pcvar_float(g_iCvar[iLevel + 3])){
set_pev(ent, pev_health, pev(ent, pev_health) + Speed_ent)
UTIL_BeamEnts( gDispenserOrigin[ iOwner ], entorigin, gBeamcolor[ iOwner ][ 0 ], gBeamcolor[ iOwner ][ 1 ], gBeamcolor[ iOwner ][ 2 ] );
}
}
}
}
new id;
for( id = 1; id <= gMaxPlayers; id++ ){
if( is_user_alive( id )){
new Float:flOrigin[ 3 ], iOrigin1[ 3 ], iOrigin2[ 3 ]
pev( id, pev_origin, flOrigin )
FVecIVec( gDispenserOrigin[ iOwner ], iOrigin1 )
FVecIVec( flOrigin, iOrigin2 )
if( get_distance_f( gDispenserOrigin[ iOwner ], flOrigin ) <= get_pcvar_num(g_iCvar[3]) && UTIL_IsVisible( id, iEnt )){
if(cs_get_user_team( id ) == cs_get_user_team( iOwner )){
if( get_user_health( id ) < iHealth ){
set_user_health( id, get_user_health( id ) + Speed_HP );
bFullHealth[ id ] = true;
}else{
bFullHealth[ id ] = false;
}
if( get_user_armor( id ) < iArmor ){
set_user_armor( id, get_user_armor( id ) + Speed_AP );
bFullArmor[ id ] = true;
}else{
bFullArmor[ id ] = false;
}
if(get_user_health( id ) < iHealth || get_user_armor( id ) < iArmor){
UTIL_BeamEnts( gDispenserOrigin[ iOwner ], flOrigin, gBeamcolor[ iOwner ][ 0 ], gBeamcolor[ iOwner ][ 1 ], gBeamcolor[ iOwner ][ 2 ] );
}
}
if(cs_get_user_team( id ) != cs_get_user_team( iOwner ))
{
if( get_user_health( id ) > vampire_max ){
set_user_health( id, get_user_health( id ) - vampire_num );
if(pev(iEnt, pev_health) < get_pcvar_float(g_iCvar[pev(iEnt,pev_euser4)+3])) set_pev(iEnt, pev_health, pev(iEnt, pev_health) + float(vampire_num))
new Float:StartOrigin[3]
StartOrigin[0] = flOrigin[0]
StartOrigin[1] = flOrigin[1]
StartOrigin[2] = flOrigin[2] - 35.0
switch( cs_get_user_team( iOwner )){
case CS_TEAM_T: UTIL_BeamEnts( StartOrigin, gDispenserOrigin[ iOwner ], 80, 50, 255 );
case CS_TEAM_CT: UTIL_BeamEnts(StartOrigin, gDispenserOrigin[ iOwner ], 255, 50, 80 );
}
}
}
}
}
}
}
}
set_pev( iEnt, pev_nextthink, get_gametime( ) + 0.1 );
}
}
public BuildDispenserSolid( iEntity )
{
if( pev_valid( iEntity ) ){
new iOwner = pev( iEntity, pev_iuser2 );
switch( cs_get_user_team( iOwner ) ){
case CS_TEAM_T:{
gBeamcolor[ iOwner ][ 0 ] = 255, gBeamcolor[ iOwner ][ 1 ] = 50, gBeamcolor[ iOwner ][ 2 ] = 80;
set_rendering( iEntity, kRenderFxGlowShell, gBeamcolor[ iOwner ][ 0 ], gBeamcolor[ iOwner ][ 1 ], gBeamcolor[ iOwner ][ 2 ], kRenderNormal, 3 );
} case CS_TEAM_CT:{
gBeamcolor[ iOwner ][ 0 ] = 80, gBeamcolor[ iOwner ][ 1 ] = 50, gBeamcolor[ iOwner ][ 2 ] = 255;
set_rendering( iEntity, kRenderFxGlowShell, gBeamcolor[ iOwner ][ 0 ], gBeamcolor[ iOwner ][ 1 ], gBeamcolor[ iOwner ][ 2 ], kRenderNormal, 3 );
}
}
set_pev( iEntity, pev_solid, SOLID_SLIDEBOX );
set_pev( iEntity, pev_iuser3, STATUS_ACTIVE );
engfunc( EngFunc_DropToFloor, iEntity );
emit_sound( iEntity, CHAN_STATIC, gDispenserActive, VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
}
}
public EVENT_TextMsg( ){
UTIL_DestroyDispensers( );
}
public LOG_RoundEnd( ){
UTIL_DestroyDispensers( );
}
stock UTIL_DestroyDispensers( ){
new iEnt = FM_NULLENT;
while((iEnt = find_ent_by_class( iEnt, gDispenserClassnameHpArm))){
new iOwner = pev( iEnt, pev_iuser2 );
bDispenserHpArm[ iOwner ] = false;
set_pev(iEnt, pev_flags, pev( iEnt, pev_flags ) | FL_KILLME);
}
}
stock UTIL_BuildBar( index, timer ){
message_begin(MSG_ONE, 108, _, index)
write_short(timer)
message_end()
}
stock UTIL_BreakModel( Float:flOrigin[ 3 ], model, flags ){
engfunc( EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, flOrigin, 0 );
write_byte( TE_BREAKMODEL );
engfunc( EngFunc_WriteCoord, flOrigin[ 0 ] );
engfunc( EngFunc_WriteCoord, flOrigin[ 1 ] );
engfunc( EngFunc_WriteCoord, flOrigin[ 2 ] );
write_coord( 16 );
write_coord( 16 );
write_coord( 16 );
write_coord( random_num( -20, 20 ) );
write_coord( random_num( -20, 20 ) );
write_coord( 10 );
write_byte( 10 );
write_short( model );
write_byte( 10 );
write_byte( 9 );
write_byte( flags );
message_end( );
}
stock UTIL_BeamEnts( Float:flStart[ 3 ], Float:flEnd[ 3 ], r, g, b ){
engfunc( EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, flStart );
write_byte( TE_BEAMPOINTS );
engfunc( EngFunc_WriteCoord, flEnd[ 0 ] );
engfunc( EngFunc_WriteCoord, flEnd[ 1 ] );
engfunc( EngFunc_WriteCoord, flEnd[ 2 ] );
engfunc( EngFunc_WriteCoord, flStart[ 0 ] );
engfunc( EngFunc_WriteCoord, flStart[ 1 ] );
engfunc( EngFunc_WriteCoord, flStart[ 2 ] + 35.0);
write_short( gHealingBeam );
write_byte( 5 );
write_byte( 2 );
write_byte( 1 );
write_byte( 60 );
write_byte( 0 );
write_byte( r );
write_byte( g );
write_byte( b );
write_byte( 999 );
write_byte( 30 );
message_end( );
}
stock UTIL_Sparks( Float:flOrigin[ 3 ] ){
engfunc( EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, flOrigin, 0 );
write_byte( TE_SPARKS );
engfunc( EngFunc_WriteCoord, flOrigin[ 0 ] );
engfunc( EngFunc_WriteCoord, flOrigin[ 1 ] );
engfunc( EngFunc_WriteCoord, flOrigin[ 2 ] );
message_end( );
}
stock bool:UTIL_IsVisible( index, entity, ignoremonsters = 0 ){
new Float:flStart[ 3 ], Float:flDest[ 3 ];
pev( index, pev_origin, flStart );
pev( index, pev_view_ofs, flDest );
xs_vec_add( flStart, flDest, flStart );
pev( entity, pev_origin, flDest );
engfunc( EngFunc_TraceLine, flStart, flDest, ignoremonsters, index, 0 );
new Float:flFraction;
get_tr2( 0, TR_flFraction, flFraction );
if( flFraction == 1.0 || get_tr2( 0, TR_pHit) == entity )
{
return true;
}
return false;
}
stock UTIL_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")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!t", "^3")
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, get_user_msgid("SayText"), _, players[i])
write_byte(players[i])
write_string(msg)
message_end()
}
}
}
stock fm_cs_get_user_team(id){
if (pev_valid(id) != 2) return 0
return get_pdata_int(id, 114, 5)
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
здравствуйте плагин работает но из него падает причину не знаю,при пустом серваке проверил работает даже с ботами а если будет игроки играть сразу сервак падает если ставит раздатчик, сверху скинул ошибку лог не знаю связаны ли они но именно при падение эти ошибки пишут
Download all Attachments
-
114 KB Просмотры: 144
-
114.9 KB Просмотры: 133