Osker Lee 发表于 2007-11-28 13:02:36

含有"HLTV"的这句代码是表示什么意思啊?

我发现了一个问题,就是无论哪个插件,如果源代码里有下面这句代码的话,都只能在CS1.6里运行,对CS1.5根本就没有任何作用,一旦使用在CS1.5里,控制台就会报错:
register_event( "HLTV" , "EVENT_NewRound" , "a" , "1=0" , "2=0" );
Inavailable event name "HLTV" (即无效的HLTV事件)
究竟含有HLTV的这句代码是什么意思啊?是表示开局时的事件吗?为什么这句代码不支持CS1.5呢?
register_event( "DeathMsg" , "on_DeathMsg" , "a" );
register_event( "CurWeapon" , "on_CurWeapon" , "be" , "1=1" );
register_event( "HideWeapon" , "on_CurWeapon" , "b" );
register_event( "ResetHUD" , "on_ResetHud" , "b" );
register_event( "TextMsg" , "on_GameRestart" , "a" , 2&#Game_will_restart_in" );
register_event( "HLTV" , "EVENT_NewRound" , "a" , "1=0" , "2=0" );

apocalyptic 发表于 2007-11-30 22:38:13

回复: 含有"HLTV"的这句代码是表示什么意思啊?

AMXX维基百科上面关于HLTV的条目:

HLTV
Note: No Information available for this message.

Note: On new round is fired with both arguments equal to 0.

Name: HLTV
Structure:
byte ClientID
byte Unknown

Is this helpful?
:D

Osker Lee 发表于 2007-12-1 16:12:59

回复: 含有"HLTV"的这句代码是表示什么意思啊?

Hmmm... What does it mean? 哈,"apocalyptic"是"世界末日"的意思吧?

好了,言归正传,apocalyptic楼主,你说能不能用其它代码来替换它呢?主要是要确保能在CS1.5里运行.就因为这一句代码没有解决,却导致了整个War3FT3.0_RC8插件无法完美支持CS1.5......:sweat:

我试过把那句代码改成以下的三种形式(去掉了"HLTV"),但都失败了~~~
1.register_logevent( "EVENT_NewRound" ,2 , "0=World triggered" , "1=Round_Start" );
2.register_event( "RoundState" , "EVENT_EndRound" , "a" , "1=3" , "1=4");
3.register_event( "TextMsg" , "EVENT_NewRound" , "a" , "1=0" , "2=0" );
解决War3FT3.0_RC8无法在CS1.5里运行的方法:
http://www.dt-club.net/forum/thread/70/37281.htm

zwfgdlc 发表于 2007-12-6 12:23:44

回复: 含有"HLTV"的这句代码是表示什么意思啊?

试下
register_event("ResetHUD", "eventResetHud", "be")
register_event("RoundTime", "eventStartRound", "bc")

Osker Lee 发表于 2007-12-6 20:02:14

回复: 含有"HLTV"的这句代码是表示什么意思啊?

zwfgdlc楼主,我按照你的代码修改了,但没能测试成功,不过还是要谢谢你的热心帮忙.

控制台出现了以下错误信息:
L 12/06/2007 - 19:50:28: Function "eventStartRound" was not found
L 12/06/2007 - 19:50:28: Displaying debug trace (plugin "war3ft.amxx")
L 12/06/2007 - 19:50:28: Run time error 19: function not found
L 12/06/2007 - 19:50:28: war3ft.sma:: plugin_init (line 170)
L 12/06/2007 - 19:50:30: Invalid CVAR pointer
L 12/06/2007 - 19:50:30: Displaying debug trace (plugin "war3ft.amxx")
L 12/06/2007 - 19:50:30: Run time error 10: native error (native "log_amx")
L 12/06/2007 - 19:50:30: war3ft.sma::client_connect (line 358)
L 12/06/2007 - 19:50:34: Invalid CVAR pointer
L 12/06/2007 - 19:50:34: Displaying debug trace (plugin "war3ft.amxx")
L 12/06/2007 - 19:50:34: Run time error 10: native error (native "log_amx")
L 12/06/2007 - 19:50:34: db_common.inl:: DB_FetchUniqueID (line 302)
L 12/06/2007 - 19:50:34: war3ft.sma::client_putinserver (line 304)
L 12/06/2007 - 19:50:38: Invalid CVAR pointer
L 12/06/2007 - 19:50:38: Displaying debug trace (plugin "war3ft.amxx")
L 12/06/2007 - 19:50:38: Run time error 10: native error (native "log_amx")
L 12/06/2007 - 19:50:38: events.inl::EVENT_PlayerInitialSpawn (line 361)
L 12/06/2007 - 19:50:38: events.inl::on_ResetHud (line 334)
L 12/06/2007 - 19:51:13: Invalid CVAR pointer
L 12/06/2007 - 19:51:13: Displaying debug trace (plugin "war3ft.amxx")
L 12/06/2007 - 19:51:13: Run time error 10: native error (native "log_amx")
L 12/06/2007 - 19:51:13: clientCommands.inl::CMD_Handle (line 420)
L 12/06/2007 - 19:51:13: clientCommands.inl::cmd_Say (line 267)
L 12/06/2007 - 19:51:21: Invalid CVAR pointer

我把war3ft.sma源代码上传一下,麻烦zwfgdlc楼主再看看是什么原因.

zwfgdlc 发表于 2007-12-6 20:51:03

回复: 含有"HLTV"的这句代码是表示什么意思啊?

你注册了HLTV事件,但却没有事件触发的函数.Function "eventStartRound" was not found

应该这样

register_event( "HLTV" , "EVENT_NewRound" , "a" , "1=0" , "2=0" );
//加上下面这几行
public EVENT_NewRound()
{
...............
}


你发的源码,跟你发的出错日志对不上

apocalyptic 发表于 2007-12-7 10:28:09

回复: 含有"HLTV"的这句代码是表示什么意思啊?

我只是觉得有点不太对劲。HLTV是一个HL游戏事件,理论上说所有的HL系列游戏都有这个事件,怎么CS1.5就没有呢?
我没有编写过1.5的插件,这方面不太清楚。在1.6里面,HLTV事件代表回合开始(不是玩家出生),即使服务器里面没有玩家,每个回合开始的时候都有一个HLTV事件。
我前面提到的“On new round is fired with both arguments equal to 0.”意思是“开局的时候两个参数等于0”或者“两个参数为0的时候,这个事件发生在开局时”(我虽然能读懂英文的意思,但是还不能准确地用中文翻译出来,sorry!)
至于另一位朋友提及的ResetHUD事件(重设HUD信息),我通常用于判断玩家切换武器。而RoundTime则表示游戏界面上的回合时间被重设。

更详细的信息,请参阅:
http://wiki.amxmodx.org/index.php/Half-Life_1_Game_Events

Osker Lee 发表于 2007-12-7 14:42:51

回复: 含有"HLTV"的这句代码是表示什么意思啊?

你注册了HLTV事件,但却没有事件触发的函数.

register_event( "HLTV" , "EVENT_NewRound" , "a" , "1=0" , "2=0" );
//加上下面这几行
public EVENT_NewRound()
{
...............
}
魔兽插件v3.0的源代码里其实也只有一句含有"HLTV"的代码,同时里面也并没有关于EVENT_NewRound事件的触发函数,却在CS1.6里运行良好.但为何一用到CS1.5里就出问题了呢?着实让人费解啊......

landyhsu 发表于 2007-12-7 22:14:37

回复: 含有"HLTV"的这句代码是表示什么意思啊?

帮忙顶,如果HLTV不解决,有许多类似插件不能用于CS1.5。

Rulzy 发表于 2007-12-8 07:50:17

回复: 含有"HLTV"的这句代码是表示什么意思啊?

HLTV这个事件,参数1和2都为0,一般用于判断“新的一局”,即冻结时间算在内,但CS1.5确实没有这个事件,所以,如果不是特别需要把冻结时间也算在内的话,可以使用Round_Start(一局开始,指冻结时间结束后开始)。
页: [1] 2 3 4
查看完整版本: 含有"HLTV"的这句代码是表示什么意思啊?