luo105575
|
分享:
x0
|
[CS1.6] 请人改2个插件的代码
这是可以在地图里布置1个音乐播放器的插件 这个插件有点不足的地方就是在地图里布置了播放器以后 如果刷新地图的话需要重新再设置 不能保存到游戏里面 希望改进下 就像和可以在地图里设置图片广告那个插件一样的。 #include <amxmodx> #include <amxmisc> #include <engine>
public Ass_CreateRadio(id,level,cid){ if (!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED
if(entity_get_int(id, EV_INT_deadflag) != 0) return PLUGIN_HANDLED
new Float:vOrigin[3] new Float:vAngles[3] entity_get_vector(id, EV_VEC_origin, vOrigin) entity_get_vector(id, EV_VEC_v_angle, vAngles)
new NewEnt NewEnt = create_entity("info_target")
if(NewEnt == 0) { return PLUGIN_HANDLED_MAIN }
entity_set_string(NewEnt, EV_SZ_classname, "ass_radio") entity_set_model(NewEnt, "models/w_transistor.mdl") entity_set_int(NewEnt, EV_INT_body, 1) entity_set_int(NewEnt, EV_INT_sequence, 1) entity_set_int(NewEnt, EV_INT_solid, 2)
new Float:MinBox[3] new Float:MaxBox[3]
MinBox[0] = -8.0 MinBox[1] = -8.0 MinBox[2] = -8.0 MaxBox[0] = 8.0 MaxBox[1] = 8.0 MaxBox[2] = 8.0
entity_set_vector(NewEnt, EV_VEC_mins, MinBox) entity_set_vector(NewEnt, EV_VEC_maxs, MaxBox)
new Float:vNewOrigin[3] new Float:vNormal[3] new Float:vTraceDirection[3] new Float:vTraceEnd[3] new Float:vTraceResult[3] new Float:vEntAngles[3]
VelocityByAim(id, 64, vTraceDirection) vTraceEnd[0] = vTraceDirection[0] + vOrigin[0] vTraceEnd[1] = vTraceDirection[1] + vOrigin[1] vTraceEnd[2] = vTraceDirection[2] + vOrigin[2]
trace_line(id, vOrigin, vTraceEnd, vTraceResult)
if(trace_normal(id, vOrigin, vTraceEnd, vNormal) == 0) { remove_entity(NewEnt) console_print(id, "[Radio] You must plant the radio on a wall!") return PLUGIN_HANDLED_MAIN }
vNewOrigin[0] = vTraceResult[0] + (vNormal[0] * 8.0) vNewOrigin[1] = vTraceResult[1] + (vNormal[1] * 8.0) vNewOrigin[2] = vTraceResult[2] + (vNormal[2] * 8.0)
entity_set_origin(NewEnt, vNewOrigin) vector_to_angle(vNormal, vEntAngles)
entity_set_vector(NewEnt, EV_VEC_angles, vEntAngles)
new Float:vBeamEnd[3] new Float:vTracedBeamEnd[3] vBeamEnd[0] = vNewOrigin[0] + (vNormal[0] * 8192) vBeamEnd[1] = vNewOrigin[1] + (vNormal[1] * 8192) vBeamEnd[2] = vNewOrigin[2] + (vNormal[2] * 8192) trace_line(-1, vNewOrigin, vBeamEnd, vTracedBeamEnd) entity_set_vector(NewEnt, EV_VEC_vuser1, vTracedBeamEnd)
entity_set_int(NewEnt, EV_INT_movetype, 5) //5 = movetype_fly, No grav, but collides.
emit_sound(NewEnt, CHAN_WEAPON, "weapons/mine_deploy.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
new args[4] num_to_str(NewEnt, args, 4)
set_task(3.0, "RadioActivate", 0, args, 4)
return PLUGIN_HANDLED_MAIN }
public RadioActivate(RadioID[]) { new EntID = str_to_num(RadioID) new Station = get_cvar_num("radio_station") if (Station==1) { emit_sound(EntID, CHAN_VOICE, "ambience/arabmusic.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM) set_task(107.0, "StartSoundAgain", EntID+22) } else if (Station==2) { emit_sound(EntID, CHAN_VOICE, "ambience/Opera.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM) set_task(72.0, "StartSoundAgain", EntID+22) } else { emit_sound(EntID, CHAN_VOICE, "ambience/lv_jubilee.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM) set_task(6.0, "StartSoundAgain", EntID+22) } }
public StartSoundAgain(TaskID) { new EntID = TaskID-22 new Station = get_cvar_num("radio_station") if (Station==1) { emit_sound(EntID, CHAN_VOICE, "ambience/arabmusic.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM) set_task(107.0, "StartSoundAgain", EntID+22) } else if (Station==2) { emit_sound(EntID, CHAN_VOICE, "ambience/Opera.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM) set_task(72.0, "StartSoundAgain", EntID+22) } else { emit_sound(EntID, CHAN_VOICE, "ambience/lv_jubilee.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM) set_task(6.0, "StartSoundAgain", EntID+22) } }
public Ass_DelRadios(id,level,cid){ if (!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED
new iEntity = find_ent_by_class(-1, "ass_radio") while(iEntity > 0) { emit_sound(iEntity, CHAN_VOICE, "common/null.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM) remove_task(iEntity+22) remove_entity(iEntity) iEntity = find_ent_by_class(-1, "ass_radio") }
return PLUGIN_CONTINUE }
public Ass_ResRadios(id,level,cid){ if (!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED new iEntity = find_ent_by_class(-1, "ass_radio") while(iEntity > 0) { remove_task(iEntity+22) emit_sound(iEntity, CHAN_VOICE, "common/null.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM) set_task(3.0, "StartSoundAgain", iEntity+22) iEntity = find_ent_by_class(iEntity, "ass_radio") }
return PLUGIN_CONTINUE }
public plugin_init(){ register_plugin("Trasistor Radio","1.0","AssKicR") register_clcmd("amx_setradio","Ass_CreateRadio",ADMIN_KICK) register_clcmd("amx_delradios","Ass_DelRadios",ADMIN_KICK) register_clcmd("amx_resradios","Ass_ResRadios",ADMIN_KICK) register_cvar("radio_station","1") return PLUGIN_CONTINUE }
public plugin_precache() { precache_sound("weapons/mine_deploy.wav") // Radio Place precache_sound("common/null.wav") // Radio Off precache_sound("ambience/arabmusic.wav") // Jihad Channel (1) precache_sound("ambience/Opera.wav") // Opera Channel (2) precache_sound("ambience/lv_jubilee.wav") // New Wave Channel (3) precache_model("models/w_transistor.mdl") precache_model("models/w_transistort.mdl") return PLUGIN_CONTINUE } 第2个插件 是1个死亡的声音效果 被敌人杀死的时候队友能听见你的声音 改成在你被杀的地方的人可以听到你死亡的声音包括杀你的人 如果离的太远的人是听不见的
#include <amxmod>
new PLUGIN_NAME[] = "Death Voice" new PLUGIN_AUTHOR[] = "Cheap_Suit" new PLUGIN_VERSION[] = "1.2"
public plugin_init() { register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR) register_event("DeathMsg", "Event_Death", "a") }
public plugin_precache() { precache_sound("misc/solder_deat.wav") }
public Event_Death() { new victim = read_data(2)
new victimTeam[16] get_user_team(victim, victimTeam, 15)
new players[32], playerCnt get_players(players, playerCnt, "ae", victimTeam)
for(new i = 0; i < playerCnt; i++) { client_cmd(players, "spk misc/solder_deat.wav") } }
|