yinshi2007 发表于 2007-1-12 04:49:29

关于人物发光

1.请问有没有一个函数使人物发光,在别人看起来就像开了手电筒的(即使没有用手电也发光)

2.前我用了09x版的人物发光补丁,有点不满意,人物发光后变成了半透明的壳,原来的皮肤都看不到了,怎么能保留皮肤呢.

希望知道的能给与帮助.

jim_yang 发表于 2007-1-12 16:42:35

回复: 关于人物发光

1. 用tempentity TE_DLIGHT
2. rendermode 不用kRenderTransAlpha就不会透明了,用kRenderNormal就可以了

yinshi2007 发表于 2007-1-12 19:46:38

回复: 关于人物发光

不管怎样,先谢谢了.
============================================
关于第一个tempentity怎么用阿,它既不是函数也不是命令提示符,能不能给个例子
第二个问题到解决了
============================================

281533064 发表于 2007-1-12 19:56:27

回复: 关于人物发光

怎么不说详细点呀!!!

jop 发表于 2007-1-13 18:56:50

回复: 关于人物发光

Post by yinshi2007

============================================
关于第一个tempentity怎么用阿,它既不是函数也不是命令提示符,能不能给个例子
============================================

查看 message_const.inc 里面有详细说明
或者讲究一下其他人的代码。。。

yinshi2007 发表于 2007-1-16 00:54:19

回复: 关于人物发光

再次感谢,我去研究研究

yinshi2007 发表于 2007-1-17 02:51:59

回复: 关于人物发光


public test(id, level, cid){
if (!cmd_access(id,level,cid,1))
return PLUGIN_HANDLED

new vec1
get_user_origin(id, vec1, 1) // origin; your camera point.

message_begin(MSG_ONE,SVC_TEMPENTITY,vec1,id)
write_byte(TE_DLIGHT)
write_coord(vec1)
write_coord(vec1)
write_coord(vec1)
write_byte(10)
write_byte(255)
write_byte(0)
write_byte(0)
write_byte(20)
write_byte(10)
write_byte(10)
message_end()

return PLUGIN_HANDLED
}
public plugin_init()
{
register_plugin("test","1.0","test");

register_concmd("amx_test", "test", ADMIN_LEVEL_B, "<0-1> - 0:off,1:glow")
}

这是我看inc文件后式着写的,可是每次运行的时候游戏就会跳出到有新建和搜索服务器的那个开始画面,我不知道为什么请指教。

yinshi2007 发表于 2007-1-17 03:02:22

回复: 关于人物发光


public plugin_init() {
mode = 3
register_plugin("Grentrail","1.3","AssKicR")
register_event("SendAudio","FireInTheHole","bc")
register_concmd("amx_trail", "admin_trail", ADMIN_LEVEL_B, "<0-4> - 0:off,1:all,2:random,3:team")

}
public admin_trail(id, level, cid){
if (!cmd_access(id,level,cid,1))
return PLUGIN_HANDLED
new args
read_argv(1, args, 1)

if (equal(args,"?")) {
console_print(id,"amx_trail 0 or 1 or 2 or 3")
return PLUGIN_HANDLED
}

mode = str_to_num(args)
return PLUGIN_HANDLED

}
public plugin_precache() {
m_iTrail = precache_model("sprites/smoke.spr")
}
public FireInTheHole(id) {
if(mode == 0) return PLUGIN_HANDLED
set_task(0.1, "grenid", id)
return PLUGIN_HANDLED
}
public grenid(id){
new grenadeid = get_grenade(id)

if (!grenadeid) return PLUGIN_HANDLED// no model

message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte( TE_BEAMFOLLOW )
write_short(grenadeid) // entity
write_short(m_iTrail) // model
write_byte( 20 ) // life
write_byte( 5 ) // width

switch (mode) {
case 1: {
   write_byte( 255 ) // r, g, b
   write_byte( 255 ) // r, g, b
   write_byte( 0 ) // r, g, b
}
case 2:{
   new red = random_num(0,255)
   new green = random_num(0,255)
   new blue = random_num(0,255)
   write_byte( red ) // r, g, b
   write_byte( green ) // r, g, b
   write_byte( blue ) // r, g, b
}
case 3:{
   if (get_user_team(id)==1){ // Terrorist
    write_byte( 255 ) // r, g, b
    write_byte( 0 ) // r, g, b
    write_byte( 0 ) // r, g, b
   } else { // Counter-Terrorist
    write_byte( 0 ) // r, g, b
    write_byte( 255 ) // r, g, b
    write_byte( 0 ) // r, g, b
   }
}
default:{
   write_byte( 0 ) // r, g, b
   write_byte( 0 ) // r, g, b
   write_byte( 0 ) // r, g, b
}
}

write_byte( 192 ) // brightness

message_end() // move PHS/PVS data sending into here (SEND_ALL, SEND_PVS, SEND_PHS)

return PLUGIN_HANDLED
}


这个是我改的一个手雷拖尾插件,问题是当我和bot打时只有我的手雷有尾巴,电脑的没有,我不知道怎么才能让bot的手雷也有效果,请指教。

这个get_grenade(id)函数我在论坛的amx函数查询器里找不到,但是amx认,请问他是那个inc文件的。
有没有一个函数可以查到手雷的种类闪的、炸得、烟的。

代码没有完全看到没有关系因为看不到的只是message_begin(MSG_BROADCAST,SVC_TEMPENTITY)、write_byte之类的。

jop 发表于 2007-1-17 20:14:49

回复: 关于人物发光

Post by yinshi2007

public test(id, level, cid){
if (!cmd_access(id,level,cid,1))
return PLUGIN_HANDLED

new vec1
get_user_origin(id, vec1, 1) // origin; your camera point.

message_begin(MSG_ONE,SVC_TEMPENTITY,vec1,id)
write_byte(TE_DLIGHT)
write_coord(vec1)
write_coord(vec1)
write_coord(ve...

你的代码里没有什么错误
有一点: message_begin(MSG_ONE,SVC_TEMPENTITY,origin,id)
一般 origin 不用设置,可以直接 {0,0,0}

出错的问题应该是 message_const.inc 里关于 TE_DLIGHT 的解释有误
参考了使用 TE_DLIGHT 的插件 Flashbang Dynamic Light
正确的应该是:

#define TE_DLIGHT 27 // Dynamic light, effect world, minor entity effect
write_byte(TE_DLIGHT)
write_coord(position.x)
write_coord(position.y)
write_coord(position.z)
write_byte(radius in 10's)
write_byte(red)
write_byte(green)
write_byte(blue)
write_byte(life in 10's)
write_byte(decay rate in 10's)

原有的这个不要
// write_byte(brightness)

jop 发表于 2007-1-17 20:31:09

回复: 关于人物发光

Post by yinshi2007

这个是我改的一个手雷拖尾插件,问题是当我和bot打时只有我的手雷有尾巴,电脑的没有,我不知道怎么才能让bot的手雷也有效果,请指教。

没有测试过,也不知道你用那类bot?
大概原因是,这个插件用 radio 的 "FireInTheHole"
来扑捉信息,是否有人扔雷,如果bot扔雷没有这个信息,那肯定不会有尾巴效果
如果改成 grenade_throw( index,greindex,wId );
应该可以了

Post by yinshi2007

这个get_grenade(id)函数我在论坛的amx函数查询器里找不到,但是amx认,请问他是那个inc文件的。

get_grenade(id) 在 engine_stocks.inc 里有解释

Post by yinshi2007

有没有一个函数可以查到手雷的种类闪的、炸得、烟的。

简单的话可以使用 <csx> 里的
grenade_throw( index,greindex,wId );
根据 wId判断是那类雷
页: [1] 2
查看完整版本: 关于人物发光