|
发表于 2007-12-22 20:54:06
|
显示全部楼层
|阅读模式
来自 中国–甘肃–兰州
目前,我觉得这个插件还有两个地方需要完善:
A. 当玩家以第三人称观察时,应该去除手上的小刀模型,这样一来的话,就相当于用拳头打人了.
B. 如何改变小刀攻击时的音效,我想用别的音效去替换原来的,毕竟小刀已经变成拳头了.
对于问题A,我已经解决了,其实只要让插件再加载一个"p_hands.md"模型就行了,这个模型如果大家用HL View工具查看一下就明白了,它是无法打开的,是一个空模型,但想要屏蔽掉第三人称的小刀模型时则必须要用到.
[php]#include <amxmodx>
#include <engine>
new g_sk_enabled
public plugin_init(){
register_plugin("Special Knife","1.0","X-man")
g_sk_enabled=register_cvar("sk_enabled","1")
register_event("CurWeapon","wpnchange","be","1=1")
return PLUGIN_CONTINUE
}
public plugin_precache(){
precache_model("models/v_hands.mdl")
precache_model("models/p_hands.mdl")
return PLUGIN_CONTINUE
}
public wpnchange(id){
if(get_pcvar_num(g_sk_enabled)){
chuckyknife(id)
}
else{
chuckyknifewob(id)
}
}
public chuckyknife(id){
new clip, ammo, wpnid = get_user_weapon(id,clip,ammo)
if (wpnid == CSW_KNIFE) {
entity_set_string(id, EV_SZ_viewmodel, "models/v_hands.mdl")
entity_set_string(id,EV_SZ_weaponmodel,"models/p_hands.mdl")
}
return PLUGIN_HANDLED
}
public chuckyknifewob(id){
new clip, ammo, wpnid = get_user_weapon(id,clip,ammo)
if (wpnid == CSW_KNIFE) {
entity_set_string(id, EV_SZ_viewmodel, "models/v_knife.mdl")
}
return PLUGIN_HANDLED
}[/php]
对于问题B,我们知道,CS游戏系统里关于小刀的相关音效有9个,分别是:knife_deploy1.wav
knife_hit1.wav
knife_hit2.wav
knife_hit3.wav
knife_hit4.wav
knife_hitwall1.wav
knife_slash1.wav
knife_slash2.wav
knife_stab.wav 如何获取小刀相关事件所要调用的音频代码,我就没办法了,希望高手们能出一下点子.另外,我在网上找到了一个不但可以更换小刀模型,而且还可以更换小刀声音的插件(knife_replacer.amxx),大家看看能不能从里面提取一下关于小刀音频替换的代码.
[php]#include <amxmisc>
#include <fakemeta>
#define TOTAL_MODELS 50
#if !defined charsmax
#define charsmax(%1) sizeof %1 - 1
#endif
#define ADMIN_LEVEL ADMIN_KICK
#define MODEL_PLAYER 0
#define MODEL_ADMIN 1
#define VERSION "1.5"
enum knife_sounds
{
deploy,
hit1,
hit2,
hit3,
hit4,
hitwall,
slash1,
slash2,
stab
}
enum ( += 32 )
{
TASK_SHOWKNIFE
}......[/php] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注个册吧
×
|