广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 2579 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
luo105575
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x3
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 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")
        }
}



献花 x0 回到顶端 [楼 主] From:欧洲 | Posted:2011-05-08 19:26 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.034516 second(s),query:15 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言