RU
RU
UA
EN
PL
ГЛАВНАЯ
УСЛУГИ
ПЛАГИНЫ
КАРТЫ
REBUY
SCANMON
CASSA
SALE
ФОРУМ
МОНИТОР
HELP
КОНТАКТ
Главная
/
Plugins
/
[CSDM]Лазерный Забор
[CSDM]Лазерный Забор
Теги:
Скачать плагины cs
Серверные
Лазерный забор для CSDM.
Предназначен для закрытия проходов вражеской команде.
Компилятор: 1.8.2
+ZIP
1554
Команды:
+setfence - Установить лазерный забор
-setfence - Убрать лазерный забор
.sma / .sp
#include
#include
#include
#include < cstrike > #include
#include
#include
#include
#include
#define Mine_Model "models/NS_Laser_Grid_v2_6.mdl" #define Mine_Sprite_Laser_CT "sprites/lasermine_ct.spr" #define Mine_Sprite_Laser_T "sprites/lasermine_t.spr" #define Mine_Sprite_Explo "sprites/zerogxplode.spr" #define Mine_Sprite_Explo_Extra "sprites/nhth1.spr" #define Mine_Sound_Placed "test/mine_deploy.wav" #define Mine_Sound_Loading "test/mine_charge.wav" #define Mine_Sound_Activate "test/mine_activate.wav" #define Mine_Sound_Hit "test/beamstart9.wav" new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0 new g_iBeam_T, g_iBeam_CT new bool:g_bSettingMine[33] new g_iMine[33], g_iCountMines[33] new g_rotating[33] new g_iCvar[10] new Float:g_fTime[33], Float:g_fTime2[33] new g_iSPR_Explo, g_iSPR_Explo2, g_iSPR_Smoke new g_IDEniti[33] public plugin_precache() { precache_model(Mine_Model) g_iBeam_CT=precache_model(Mine_Sprite_Laser_CT) g_iBeam_T=precache_model(Mine_Sprite_Laser_T) g_iSPR_Explo=precache_model(Mine_Sprite_Explo) g_iSPR_Explo2=precache_model(Mine_Sprite_Explo_Extra) g_iSPR_Smoke=precache_model("sprites/black_smoke4.spr") precache_sound(Mine_Sound_Placed) precache_sound(Mine_Sound_Loading) precache_sound(Mine_Sound_Activate) precache_sound(Mine_Sound_Hit) } public plugin_init() { register_clcmd("+setfence","clcmd_setlaser_plus") register_clcmd("-setfence","clcmd_setlaser_minus") //register_dictionary("laserfence.txt") RegisterHam(Ham_TakeDamage, "func_breakable", "Laser_TakeDamage") RegisterHam(Ham_Killed, "player", "ham_killed_post", 1) register_touch("Laser_Fence", "player", "touch_player") register_menu("Menu_1", keys, "func_menu") register_forward(FM_PlayerPreThink, "fm_playerprethink") register_forward(FM_CmdStart,"fm_cmdstart") register_think("Laser_Fence", "think_laser_mine") g_iCvar[0]=register_cvar("lf_damage","100") g_iCvar[1]=register_cvar("lf_health","1000") g_iCvar[2]=register_cvar("lf_reward", "1000") g_iCvar[3]=register_cvar("lf_explo_effect","0") g_iCvar[4]=register_cvar("lf_glow","0") g_iCvar[5]=register_cvar("lf_cost", "1") g_iCvar[6]=register_cvar("lf_cost_repair", "1") g_iCvar[7]=register_cvar("lf_cost_turn", "0") g_iCvar[8]=register_cvar("lf_cost_up", "1") } public plugin_natives() register_native("delete_lf", "delete_lf", 1) public touch_player(ent, id) { g_IDEniti[id] = ent if( pev ( ent, pev_euser4 ) == 1) { Server_Menu(id) } } public Server_Menu(id) { new name[32] get_user_name(id, name, 31) //new status_obgreid[33] static menu[650], iLen iLen = 0 iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\wПрокачать забор? \y(%d$)^n^n", get_pcvar_num(g_iCvar[8])); { iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r[\y1\r] \wДа^n") keys |= MENU_KEY_1 } { iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r[\y2\r] \wНет^n") keys |= MENU_KEY_2 } iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r[\y0\r] \wВыход") keys |= MENU_KEY_0 show_menu(id, keys, menu, -1, "Menu_1"); return PLUGIN_HANDLED } public func_menu(id, key) { switch(key) { case 0: { if(cs_get_user_money( id ) >= get_pcvar_num(g_iCvar[8])) { cs_set_user_money( id, cs_get_user_money( id ) - get_pcvar_num(g_iCvar[8]) ) set_pev( g_IDEniti[id], pev_euser4, 2 ); // уровень set_anim( g_IDEniti[id], 0) engfunc(EngFunc_SetSize, g_IDEniti[id], Float:{ -8.0, -8.0, -4.0 }, Float:{ 8.0, 8.0, 84.0 }) } else { ColorChat(id,BLUE,"^4Не хватает денег!", get_pcvar_num(g_iCvar[8])) } } case 1: { } } } /*public plugin_cfg() { g_Entity_Mine = engfunc(EngFunc_AllocString, "func_breakable") new file[128]; get_localinfo("amxx_configsdir",file,63) format(file, 127, "%s/nova/laserfence.cfg", file) if(file_exists(file)) server_cmd("exec %s", file), server_exec() }*/ public clcmd_setlaser_plus(id) { if(!is_user_alive(id)) return PLUGIN_HANDLED new target, body get_user_aiming(id, target, body, 64) static ClassName[32] pev(target, pev_classname, ClassName, charsmax(ClassName)) if (equal(ClassName, "Laser_Fence")) { if(fm_cs_get_user_team(id)!=pev(target, pev_iuser1)) return PLUGIN_HANDLED g_rotating[id]=1 g_iMine[id]=target if(get_pcvar_num(g_iCvar[4])) { switch(pev(target, pev_iuser1)) { case 1: fm_set_rendering(target,kRenderFxGlowShell,200,10,10,kRenderTransAdd,150) case 2: fm_set_rendering(target,kRenderFxGlowShell,10,10,200,kRenderTransAdd,150) } } else{ fm_set_rendering(target, kRenderFxNone, 255, 255, 255, kRenderTransAdd, 200) } return PLUGIN_HANDLED } if(g_iCountMines[id]) { ColorChat(id,BLUE,"^4Установлен уже...") return PLUGIN_HANDLED } if(cs_get_user_money( id ) < get_pcvar_num(g_iCvar[5])) { ColorChat(id,BLUE,"^4Не хватает денег", get_pcvar_num(g_iCvar[5])) return PLUGIN_HANDLED } create(id) g_bSettingMine[id]=true message_begin(MSG_ONE, 108, _, id) write_byte(1) write_byte(0) message_end() set_task(1.05, "Task_Spawn_Mine", id+777) return PLUGIN_HANDLED } public Task_Spawn_Mine(taskid) { new id=taskid-777 cs_set_user_money( id, cs_get_user_money( id ) - get_pcvar_num(g_iCvar[5]) ) new i_Ent=g_iMine[id] if(get_pcvar_num(g_iCvar[4])) { switch(pev(i_Ent, pev_iuser1)) { case 1: fm_set_rendering(i_Ent,kRenderFxGlowShell,200,50,50,kRenderNormal,5) case 2: fm_set_rendering(i_Ent,kRenderFxGlowShell,50,50,200,kRenderNormal,5) } } else{ fm_set_rendering(i_Ent) } emit_sound(i_Ent, CHAN_VOICE, Mine_Sound_Placed, VOL_NORM, ATTN_NORM, 0, PITCH_NORM) emit_sound(i_Ent, CHAN_BODY , Mine_Sound_Loading, 0.2, ATTN_NORM, 0, PITCH_NORM) g_bSettingMine[id]=false g_iCountMines[id]++ set_pev(i_Ent, pev_nextthink, get_gametime()+1.0) } public clcmd_setlaser_minus(id) { if(g_rotating[id]){ g_rotating[id]=0 new i_Ent=g_iMine[id] if(get_pcvar_num(g_iCvar[4])) { switch(pev(i_Ent, pev_iuser1)) { case 1: fm_set_rendering(i_Ent,kRenderFxGlowShell,200,50,50,kRenderNormal,5) case 2: fm_set_rendering(i_Ent,kRenderFxGlowShell,50,50,200,kRenderNormal,5) } } else{ fm_set_rendering(i_Ent) } return PLUGIN_HANDLED } if(!g_bSettingMine[id]) return PLUGIN_HANDLED g_bSettingMine[id]=false remove_task(id+777) new i_Ent=g_iMine[id] engfunc(EngFunc_RemoveEntity, i_Ent) message_begin(MSG_ONE, 108, _, id) write_byte(0) write_byte(0) message_end() return PLUGIN_HANDLED } public client_putinserver(id) { set_task(1.0, "Task_Informer", id+666) } public Task_Informer(taskid) { new id=taskid-666 set_task(1.0, "Task_Informer", taskid) if(!is_user_alive(id))return new target, body get_user_aiming(id, target, body, 128) static ClassName[32] pev(target, pev_classname, ClassName, charsmax(ClassName)) if (equal(ClassName, "Laser_Fence")) { if(fm_cs_get_user_team(id)!=pev(target, pev_iuser1)) return new Float:Health pev(target, pev_health, Health) new Name[32] get_user_name(pev(target, pev_iuser2),Name,31) set_dhudmessage(200, 50, 50, -1.0, 0.60, 0, 0.0, 1.0, 0.01, 0.01) show_dhudmessage(id, "Имя: %s^n Убийств: %d^n Уровень: %d^n Здоровье: %d ", Name, pev(target, pev_iuser3),pev ( target, pev_euser4 ), floatround(Health), get_pcvar_num(g_iCvar[1])) } } public ham_killed_post(id) { if(g_iCountMines[id]>0) { Cycle_delete_mines(id) } } public client_disconnect(id) { if(g_iCountMines[id]>0) { Cycle_delete_mines(id) } } public delete_lf(id) { if(g_iCountMines[id]>0) { Cycle_delete_mines(id) } } 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, "Laser_Fence")) { if(fm_cs_get_user_team(id)!=pev(target, pev_iuser1)) return g_fTime[id]=get_gametime()+0.2 new Float:Health pev(target, pev_health, Health) new Float:Max=get_pcvar_float(g_iCvar[1]) if(Health>=Max)return //new iTime //new Float:iHpTime=Health/500.0 //iTime= 4 - floatround(iHpTime) g_fTime2[id]=get_gametime()+0.3 if(Health+25.0>Max) { Health=Max if(pev(target, pev_iuser2)==id) fChatColor(id, "!tВы полностью отремонтировали лазерный забор!") else { fChatColor(id, "!tВы полностью отремонтировали лазерный забор!") fChatColor(pev(target, pev_iuser2), "!tВаш лазерный забор был отремонтирован! ") } } else Health+=25.0 set_pev(target, pev_health, Health) } } } public fm_playerprethink(id) { if(g_rotating[id]) { new i_Ent=g_iMine[id] new Float:flOrigin[3], Float:flOrigin2[3] pev(id, pev_origin, flOrigin) pev(i_Ent, pev_origin, flOrigin2) new Float:flDistance = get_distance_f (flOrigin, flOrigin2) if(flDistance>65.0){ g_rotating[id]=0 if(get_pcvar_num(g_iCvar[4])) { switch(pev(i_Ent, pev_iuser1)) { case 1: fm_set_rendering(i_Ent,kRenderFxGlowShell,200,50,50,kRenderNormal,5) case 2: fm_set_rendering(i_Ent,kRenderFxGlowShell,50,50,200,kRenderNormal,5) } } else{ fm_set_rendering(i_Ent) } return } new Float:angles[3] pev(i_Ent,pev_angles,angles) angles[1]+=0.25 if( pev ( i_Ent, pev_euser4 ) == 1) { set_anim(i_Ent, 1) } if( pev ( i_Ent, pev_euser4 ) == 2) { set_anim(i_Ent, 6) } set_pev(i_Ent,pev_angles,angles) } if(!g_bSettingMine[id]) return new i_Ent=g_iMine[id] new Float:vOrigin[3]; new Float:vNewOrigin[3],Float:vNormal[3],Float:vTraceDirection[3], Float:vTraceEnd[3] pev(id, pev_origin, vOrigin) velocity_by_aim(id, 50, vTraceDirection) xs_vec_add(vTraceDirection, vOrigin, vTraceEnd) engfunc(EngFunc_TraceLine, vOrigin, vTraceEnd, DONT_IGNORE_MONSTERS, id, 0) get_tr2(0, TR_vecEndPos, vTraceEnd) new Float:TrAc[3] TrAc[0]=vTraceEnd[0] TrAc[1]=vTraceEnd[1] TrAc[2]=-1000.0 engfunc(EngFunc_TraceLine, vTraceEnd, TrAc, DONT_IGNORE_MONSTERS, id, 0) new Float:fFraction get_tr2(0, TR_flFraction, fFraction) if(fFraction < 1.0) { get_tr2(0, TR_vecEndPos, vTraceEnd); get_tr2(0, TR_vecPlaneNormal, vNormal); } else { clcmd_setlaser_minus(id) return } if(pev(i_Ent, pev_waterlevel)==2 || (pev(i_Ent, pev_flags)&FL_INWATER)){ clcmd_setlaser_minus(id) return } xs_vec_add(vTraceEnd, vNormal, vNewOrigin) engfunc(EngFunc_SetOrigin, i_Ent, vNewOrigin) new Float:angles[3] pev(id,pev_angles,angles) angles[0]=90.0 set_pev(i_Ent,pev_angles,angles) } public create(id) { new g_Entity_Mine g_Entity_Mine = engfunc(EngFunc_AllocString, "func_breakable") new i_Ent = engfunc(EngFunc_CreateNamedEntity,g_Entity_Mine) if(!i_Ent) return g_iMine[id]=i_Ent set_pev(i_Ent, pev_classname, "Laser_Fence") engfunc(EngFunc_SetModel, i_Ent, Mine_Model) set_pev(i_Ent, pev_solid, SOLID_NOT) set_pev(i_Ent, pev_movetype, MOVETYPE_FLY) set_pev( i_Ent, pev_euser4, 1 ); // уровень engfunc(EngFunc_SetSize, i_Ent, Float:{ -8.0, -8.0, -4.0 }, Float:{ 8.0, 8.0, 35.0 }) fm_set_rendering(i_Ent, kRenderFxNone, 255, 255, 255, kRenderTransAdd, 200) set_pev(i_Ent, pev_takedamage, DAMAGE_NO) set_pev(i_Ent, pev_iuser1, fm_cs_get_user_team(id)) set_pev(i_Ent, pev_health, get_pcvar_float(g_iCvar[1])) set_pev(i_Ent, pev_iuser2, id) set_anim(i_Ent, 1) set_pdata_int(i_Ent, 36, 6, 4) } stock fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16) { static Float:color[3] color[0] = float(r) color[1] = float(g) color[2] = float(b) set_pev(entity, pev_renderfx, fx) set_pev(entity, pev_rendercolor, color) set_pev(entity, pev_rendermode, render) set_pev(entity, pev_renderamt, float(amount)) } public think_laser_mine(i_Ent) { if(!pev_valid(i_Ent)) return static Float:vOrigin[3] pev(i_Ent, pev_origin, vOrigin) if(pev(i_Ent, pev_takedamage)== DAMAGE_NO) { new victim = -1, g_counts = 0 while ((victim = engfunc(EngFunc_FindEntityInSphere, victim, vOrigin, 12.0)) != 0) { if(!is_user_connected(victim)||!is_user_alive(victim))continue g_counts++ } if(g_counts) { set_pev(i_Ent, pev_nextthink, get_gametime()+0.3) return } emit_sound(i_Ent, CHAN_VOICE, Mine_Sound_Activate, 0.5, ATTN_NORM, 1, 75); set_pev(i_Ent, pev_solid, SOLID_BBOX) set_pev(i_Ent, pev_takedamage, DAMAGE_YES) set_pev(i_Ent, pev_nextthink, get_gametime()+0.1) return } new Float:HP pev(i_Ent, pev_health, HP) if(HP<=200.0 && pev ( i_Ent, pev_euser4 ) == 2){ message_begin(MSG_BROADCAST,SVC_TEMPENTITY) write_byte(TE_SMOKE) engfunc(EngFunc_WriteCoord, vOrigin[0]+random_float(-8.0, 8.0)) engfunc(EngFunc_WriteCoord, vOrigin[1]+random_float(-8.0, 8.0)) engfunc(EngFunc_WriteCoord, vOrigin[2]+random_float(70.0, 80.0)) write_short(g_iSPR_Smoke) write_byte(random_num(3,7)) write_byte(30) message_end() } new Float:vTracedBeamEnd[3] pev(i_Ent,pev_angles,vTracedBeamEnd) new Float:vForward[3], Float:vRight[3], Float:vUp[3] angle_vector(vTracedBeamEnd,ANGLEVECTOR_FORWARD,vForward) angle_vector(vTracedBeamEnd,ANGLEVECTOR_RIGHT,vRight) angle_vector(vTracedBeamEnd,ANGLEVECTOR_UP,vUp) vTracedBeamEnd[0]=vOrigin[0]+vForward[0]*500.0+vRight[0]+vUp[0]*(-64000.0) vTracedBeamEnd[1]=vOrigin[1]+vForward[1]*500.0+vRight[1]+vUp[1]*(-64000.0) vTracedBeamEnd[2]=vOrigin[2]+vForward[2]*500.0+vRight[2]+vUp[2]*(-64000.0) if( pev ( i_Ent, pev_euser4 ) == 2) { set_anim(i_Ent, 6) } if( pev ( i_Ent, pev_euser4 ) == 1) { set_anim(i_Ent, 1) } if( pev ( i_Ent, pev_euser4 ) == 1) { vOrigin[2]+=10.3 vTracedBeamEnd[2]-=11.0 laserFunc(i_Ent, vOrigin, vTracedBeamEnd) vOrigin[2]+=10.0 vTracedBeamEnd[2]+=10.0 laserFunc(i_Ent, vOrigin, vTracedBeamEnd) vOrigin[2]+=10.0 vTracedBeamEnd[2]+=10.0 laserFunc(i_Ent, vOrigin, vTracedBeamEnd) vOrigin[2]+=10.0 vTracedBeamEnd[2]+=10.0 laserFunc(i_Ent, vOrigin, vTracedBeamEnd) vOrigin[2]+=10.0 vTracedBeamEnd[2]+=10.0 laserFunc(i_Ent, vOrigin, vTracedBeamEnd) } if( pev ( i_Ent, pev_euser4 ) == 2) { vOrigin[2]+=14.3 vTracedBeamEnd[2]-=15.0 laserFunc(i_Ent, vOrigin, vTracedBeamEnd) vOrigin[2]+=18.0 vTracedBeamEnd[2]+=18.0 laserFunc(i_Ent, vOrigin, vTracedBeamEnd) vOrigin[2]+=18.0 vTracedBeamEnd[2]+=18.0 laserFunc(i_Ent, vOrigin, vTracedBeamEnd) vOrigin[2]+=18.0 vTracedBeamEnd[2]+=18.0 laserFunc(i_Ent, vOrigin, vTracedBeamEnd) vOrigin[2]+=18.0 vTracedBeamEnd[2]+=18.0 laserFunc(i_Ent, vOrigin, vTracedBeamEnd) } set_pev(i_Ent, pev_nextthink, get_gametime()+0.1) } public laserFunc(i_Ent, const Float:vOrigin[3], const Float:vTracedBeamEnd[3]) { new ptr = create_tr2() engfunc(EngFunc_TraceLine, vOrigin, vTracedBeamEnd, DONT_IGNORE_MONSTERS , i_Ent, ptr) static Float:vTracedBeamEnd1[3] get_tr2(ptr, TR_vecEndPos, vTracedBeamEnd1) static iHit, Float:fFraction; get_tr2(ptr, TR_flFraction, fFraction); iHit = get_tr2(ptr, TR_pHit); if(fFraction < 1.0) { if(pev_valid(iHit)&&is_user_alive(iHit)&&fm_cs_get_user_team(iHit)!=pev(i_Ent, pev_iuser1)) { emit_sound(iHit, CHAN_WEAPON, Mine_Sound_Hit, 1.0, ATTN_NORM, 0, PITCH_NORM) new Float:Health pev(iHit, pev_health, Health) if(Health>get_pcvar_float(g_iCvar[0])) { ExecuteHamB(Ham_TakeDamage, iHit, i_Ent, pev(i_Ent, pev_iuser2), get_pcvar_float(g_iCvar[0]), DMG_BLAST) }else { ExecuteHamB(Ham_TakeDamage, iHit, i_Ent, pev(i_Ent, pev_iuser2), get_pcvar_float(g_iCvar[0]), DMG_BULLET) set_pev(i_Ent, pev_iuser3, pev(i_Ent, pev_iuser3)+1) } } } DrawLaser(i_Ent, vOrigin, vTracedBeamEnd1) } DrawLaser(i_Ent, const Float:v_Origin[3], const Float:v_EndOrigin[3]) { message_begin(MSG_BROADCAST,SVC_TEMPENTITY) write_byte(TE_BEAMPOINTS) engfunc(EngFunc_WriteCoord,v_Origin[0]) engfunc(EngFunc_WriteCoord,v_Origin[1]) engfunc(EngFunc_WriteCoord,v_Origin[2]) engfunc(EngFunc_WriteCoord,v_EndOrigin[0]) engfunc(EngFunc_WriteCoord,v_EndOrigin[1]) engfunc(EngFunc_WriteCoord,v_EndOrigin[2]) switch(pev(i_Ent, pev_iuser1)) { case 1: write_short(g_iBeam_T) case 2: write_short(g_iBeam_CT) } write_byte(0); write_byte(0); write_byte(1) if( pev ( i_Ent, pev_euser4 ) == 1) { write_byte(10) } else if( pev ( i_Ent, pev_euser4 ) == 2) { write_byte(15) } write_byte(0) write_byte(255) write_byte(255) write_byte(255) write_byte(255) write_byte(255) message_end() message_begin(MSG_BROADCAST,SVC_TEMPENTITY) write_byte(TE_SPARKS) engfunc(EngFunc_WriteCoord,v_EndOrigin[0]) engfunc(EngFunc_WriteCoord,v_EndOrigin[1]) engfunc(EngFunc_WriteCoord,v_EndOrigin[2]) message_end() } stock fm_cs_get_user_team(id) { if (pev_valid(id) != 2) return 0 return get_pdata_int(id, 114, 5) } stock Cycle_delete_mines(i_Owner) { new iEnt = 33 while((iEnt = engfunc(EngFunc_FindEntityByString, iEnt, "classname", "Laser_Fence"))) { if(pev(iEnt, pev_iuser2) != i_Owner) continue engfunc(EngFunc_RemoveEntity, iEnt) } g_iCountMines[i_Owner]=0 } public Laser_TakeDamage(victim, inflictor, attacker, Float:damage, bit_Damage) { if(!pev_valid(victim)) return HAM_IGNORED static ClassName[32] pev(victim, pev_classname, ClassName, charsmax(ClassName)) if (equal(ClassName, "Laser_Fence")) { if(!is_user_connected(attacker)||(fm_cs_get_user_team(attacker)==pev(victim, pev_iuser1)&&attacker!=pev(victim, pev_iuser2))) return HAM_SUPERCEDE new Float:g_Health pev(victim, pev_health, g_Health) if (g_Health <= damage) { fChatColor(pev(victim, pev_iuser2), "!tВаша стена разрушена") g_iCountMines[pev(victim, pev_iuser2)]-- CreateExplosion(victim) engfunc(EngFunc_RemoveEntity, victim) return HAM_SUPERCEDE } } return HAM_IGNORED } CreateExplosion(iCurrent) { new Float:vOrigin[3] pev(iCurrent,pev_origin,vOrigin) message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(99) write_short(iCurrent) message_end() if(get_pcvar_num(g_iCvar[3])==2){ message_begin (MSG_BROADCAST,SVC_TEMPENTITY) write_byte(TE_SPRITETRAIL) // Throws a shower of sprites or models engfunc(EngFunc_WriteCoord, vOrigin[ 0 ]) // start pos engfunc(EngFunc_WriteCoord, vOrigin[ 1 ]) engfunc(EngFunc_WriteCoord, vOrigin[ 2 ]) engfunc(EngFunc_WriteCoord, vOrigin[ 0 ]) // velocity engfunc(EngFunc_WriteCoord, vOrigin[ 1 ]) engfunc(EngFunc_WriteCoord, vOrigin[ 2 ]+6.0) write_short(g_iSPR_Explo2) // spr write_byte(random_num(20,30)) // (count) write_byte(10) // (life in 0.1's) write_byte(1) // byte (scale in 0.1's) write_byte(30) // (velocity along vector in 10's) write_byte(20) // (randomness of velocity in 10's) message_end() engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, vOrigin, 0) write_byte(TE_EXPLOSION) engfunc(EngFunc_WriteCoord,vOrigin[0]) engfunc(EngFunc_WriteCoord,vOrigin[1]) engfunc(EngFunc_WriteCoord,vOrigin[2]) write_short(g_iSPR_Explo) write_byte(30) write_byte(15) write_byte(0) message_end() } else if(get_pcvar_num(g_iCvar[3])==1){ message_begin (MSG_BROADCAST,SVC_TEMPENTITY) write_byte(TE_SPRITETRAIL) // Throws a shower of sprites or models engfunc(EngFunc_WriteCoord, vOrigin[ 0 ]) // start pos engfunc(EngFunc_WriteCoord, vOrigin[ 1 ]) engfunc(EngFunc_WriteCoord, vOrigin[ 2 ]) engfunc(EngFunc_WriteCoord, vOrigin[ 0 ]) // velocity engfunc(EngFunc_WriteCoord, vOrigin[ 1 ]) engfunc(EngFunc_WriteCoord, vOrigin[ 2 ]+6.0) write_short(g_iSPR_Explo2) // spr write_byte(random_num(20,30)) // (count) write_byte(10) // (life in 0.1's) write_byte(1) // byte (scale in 0.1's) write_byte(30) // (velocity along vector in 10's) write_byte(20) // (randomness of velocity in 10's) message_end() } else { engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, vOrigin, 0) write_byte(TE_EXPLOSION) engfunc(EngFunc_WriteCoord,vOrigin[0]) engfunc(EngFunc_WriteCoord,vOrigin[1]) engfunc(EngFunc_WriteCoord,vOrigin[2]) write_short(g_iSPR_Explo) write_byte(30) write_byte(15) write_byte(0) message_end() } } stock fChatColor(const idUser, const input[], any:...) { new count = 1, arrPlayers[32]; new szMsgText[256]; vformat(szMsgText, charsmax(szMsgText), input, 3); replace_all(szMsgText, charsmax(szMsgText), "!g", "^4"); replace_all(szMsgText, charsmax(szMsgText), "!y", "^1"); replace_all(szMsgText, charsmax(szMsgText), "!t", "^3"); if (idUser) arrPlayers[0] = idUser; else get_players(arrPlayers, count, "ch"); { for (new i = 0; i < count; i++) { if (is_user_connected(arrPlayers[i])) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, arrPlayers[i]); write_byte(arrPlayers[i]); write_string(szMsgText); message_end(); } } } } stock set_anim(ent, sequence) { set_pev(ent, pev_sequence, sequence) set_pev(ent, pev_animtime, halflife_time()) set_pev(ent, pev_framerate, 1.0) }
Отправить
Загрузил
exec208
2019-01-04 11:14:23
0
188
Установить на сервер
Скачать
Нет оплаченых серверов
Купить сервер CS 1.6
Купить сервер CS:GO
Купить сервер CSS v34
Подключить свой VDS к панели
Данная иконка означает, что плагин был проверен администрацией хостинга на тестовом сервере, и проблем с ним не было выявлено. Рекомендуем ставить исключительно проверенные плагины.
Плагин загружен на сервер, но проверка еще не была проведена.
CSHOST.COM.UA 2012-2025 Хостинг игровых серверов