搜索
楼主: Osker Lee

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

[复制链接]
发表于 2007-12-11 13:43:30 | 显示全部楼层 来自 中国–广东–惠州–惠城区

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

定义一个空的函数试下
[php]
register_event( "HLTV" , "EVENT_NewRound" , "a" , "1=0" , "2=0" );  
public EVENT_NewRound()
{

}

[/php]
回复

使用道具 举报

 楼主| 发表于 2007-12-11 14:55:45 | 显示全部楼层 来自 中国–甘肃–兰州

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

定义一个空的函数后就无法编译了,错误提示如下:
错误021:已经定义的变量:"EVENT_NewRound"
回复

使用道具 举报

发表于 2007-12-11 15:33:25 | 显示全部楼层 来自 中国–广东–惠州

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

不知道原版的插件在CS1.5下报错的信息是怎么样的,加debug试下,把出错信息发上来.
回复

使用道具 举报

 楼主| 发表于 2007-12-11 16:36:12 | 显示全部楼层 来自 中国–甘肃–兰州

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

原版的魔兽插件v3.0加载到CS1.5里是无法运行的,控制台会出现以下的debug信息:
L 12/11/2007 - 16:33:05: Invalid event (name "HLTV") (plugin "war3ft.amxx")
L 12/11/2007 - 16:33:05: [AMXX] Displaying debug trace (plugin "war3ft.amxx")
L 12/11/2007 - 16:33:05: [AMXX] Run time error 10: native error (native "log_amx")
L 12/11/2007 - 16:33:05: [AMXX] [0] war3ft.sma:: plugin_init (line 186)
L 12/11/2007 - 16:33:10: Invalid CVAR pointer
L 12/11/2007 - 16:33:10: [AMXX] Displaying debug trace (plugin "war3ft.amxx")
L 12/11/2007 - 16:33:10: [AMXX] Run time error 10: native error (native "log_amx")
L 12/11/2007 - 16:33:10: [AMXX] [0] war3ft.sma::client_connect (line 375)
L 12/11/2007 - 16:33:16: Invalid CVAR pointer
L 12/11/2007 - 16:33:16: [AMXX] Displaying debug trace (plugin "war3ft.amxx")
L 12/11/2007 - 16:33:16: [AMXX] Run time error 10: native error (native "log_amx")
L 12/11/2007 - 16:33:16: [AMXX] [0] db_common.inl:: DB_FetchUniqueID (line 302)
L 12/11/2007 - 16:33:16: [AMXX] [1] war3ft.sma::client_putinserver (line 321)
L 12/11/2007 - 16:33:20: Invalid CVAR pointer
L 12/11/2007 - 16:33:20: [AMXX] Displaying debug trace (plugin "war3ft.amxx")
L 12/11/2007 - 16:33:20: [AMXX] Run time error 10: native error (native "log_amx")
L 12/11/2007 - 16:33:20: [AMXX] [0] events.inl::EVENT_PlayerInitialSpawn (line 361)
L 12/11/2007 - 16:33:20: [AMXX] [1] events.inl::on_ResetHud (line 334)
L 12/11/2007 - 16:33:30: Invalid CVAR pointer
L 12/11/2007 - 16:33:30: [AMXX] Displaying debug trace (plugin "war3ft.amxx")
L 12/11/2007 - 16:33:30: [AMXX] Run time error 10: native error (native "log_amx")
L 12/11/2007 - 16:33:30: [AMXX] [0] clientCommands.inl::CMD_Handle (line 495)
L 12/11/2007 - 16:33:30: [AMXX] [1] clientCommands.inl::CMD_Handler (line 254)
L 12/11/2007 - 16:33:33: Invalid CVAR pointer
L 12/11/2007 - 16:33:33: [AMXX] Displaying debug trace (plugin "war3ft.amxx")
L 12/11/2007 - 16:33:33: [AMXX] Run time error 10: native error (native "log_amx")
L 12/11/2007 - 16:33:33: [AMXX] [0] db_common.inl:: DB_UpdateTimestamp (line 265)
L 12/11/2007 - 16:33:33: [AMXX] [1] war3ft.sma::client_disconnect (line 423)
L 12/11/2007 - 16:33:33: Invalid CVAR pointer
L 12/11/2007 - 16:33:33: [AMXX] Displaying debug trace (plugin "war3ft.amxx")
L 12/11/2007 - 16:33:33: [AMXX] Run time error 10: native error (native "log_amx")
L 12/11/2007 - 16:33:33: [AMXX] [0] war3ft.sma:: plugin_end (line 285)

就是说下面的这句代码是不支持CS1.5的:
register_event( "HLTV" , "EVENT_NewRound" , "a" , "1=0" , "2=0" );
所以我才一直在想办法修改,希望能用别的代码去替换它啊!
楼主,下载后你自己可以测试一下.

解决War3FT3.0_RC8无法在CS1.5里运行的方法:
http://www.dt-club.net/forum/thread/70/37281.htm

魔兽插件v3.0下载地址:
http://war3ft.com/downloads/amxx/war3ft_v3.0rc9.zip
回复

使用道具 举报

发表于 2007-12-11 17:42:34 | 显示全部楼层 来自 中国–广东–惠州

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

把[php]register_event( "HLTV" , "EVENT_NewRound" , "a" , "1=0" , "2=0" );  
[/php]改成
[php]register_logevent( "EVENT_NewRound",3,"1=triggered","2=Spawned_With_The_Bomb");[/php]
试下
回复

使用道具 举报

 楼主| 发表于 2007-12-11 18:04:31 | 显示全部楼层 来自 中国–甘肃–兰州

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

代码修改后确实可以在CS1.5里运行,不过有BUG:

1. 玩家用"changerace"命令更换种族了(下一局开始时才会生效),但下一局开始时却不能自动更换种族,即玩家再也无法更换种族了.

2. 偶尔还会出现当新的一局开始时,玩家的屏幕看不到手中武器的情况,即屏幕是空的,只能看见准星.

3. 一些当局购买下局才会生效的物品,如物品保留,复活卷轴,伪装服,卧底等购买后却无法在下局生效.

所以我觉得,关键还是无法解决当新的一局开始时,如何准确定义相关的"EVENT_NewRound"函数.
回复

使用道具 举报

发表于 2007-12-11 18:28:18 | 显示全部楼层 来自 中国–广东–惠州–惠城区

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

我是以玩家得到C4时触发事件来代替HLTV事件的,理论上应该是在相同的时间内触发,都是包括锁定时间在内的.这是EVENT_NewRound函数的代码.你自己看下吧
[php]
public EVENT_NewRound()
{
if ( !WC3_Check() )
{
  return;
}
// Reset the global ultimate delay
g_iUltimateDelay = get_pcvar_num( CVAR_wc3_ult_delay );
// User's have not spawned yet, so lets do some pre-spawn things
new players[32], numplayers, i;
get_players( players, numplayers );
for ( i = 0; i < numplayers; i++ )
{
  WC3_BeforeSpawn( players );
}

// Reset which spawn points are reserved....
_SHARED_SpawnReset();
// If someone restarted the game, then lets reset war3
if ( g_GameRestarting )
{
  WC3_ResetGame();
}

// Randomize Chameleon if we need to
CHAM_Randomize();
// We need to determine when the buytime is up
if ( g_MOD == GAME_CSTRIKE || g_MOD == GAME_CZERO )
{
  if ( get_pcvar_num( CVAR_wc3_buy_time ) )
  {
   // Remove our buytime task if it exists (from a previous round)
   ( task_exists( TASK_BUYTIME ) ) ? remove_task( TASK_BUYTIME ) : 0;
   g_buyTime = true;
   set_task( get_cvar_float("mp_buytime") * 60.0, "_CS_BuyTimeOver", TASK_BUYTIME );
  }
  g_freezeTime = true;
}
g_EndRound = false;
}

[/php]
回复

使用道具 举报

 楼主| 发表于 2007-12-11 19:25:48 | 显示全部楼层 来自 中国–甘肃–兰州

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

添加下面的代码:
register_logevent( "EVENT_NewRound",3,"1=triggered","2=Spawned_With_The_Bomb");
然后再添加上面的"EVENT_NewRound"事件代码后,就无法编译了.错误提示如下:
已经定义的变量:"EVENT_NewRound"

难道说这个"EVENT_NewRound"事件的函数是无须定义的吗?

如果不定义这个"EVENT_NewRound"事件的函数,而是仅仅添加下面的代码:

register_logevent( "EVENT_NewRound",3,"1=triggered","2=Spawned_With_The_Bomb");


编译后确实可以在CS1.5里运行,不过有BUG:


1. 玩家用"changerace"命令更换种族了(下一局开始时才会生效),但下一局开始时却不能自动更换种族,即玩家再也无法更换种族了.

2. 偶尔还会出现当新的一局开始时,玩家的屏幕看不到手中武器的情况,即屏幕是空的,只能看见准星.

3. 一些当局购买下局才会生效的物品,如物品保留,复活卷轴,伪装服,卧底等购买后却无法在下局生效.


哎~ 真是两头难啊~
回复

使用道具 举报

发表于 2007-12-11 19:51:35 | 显示全部楼层 来自 中国–广东–惠州–惠城区

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

把[php]register_event( "HLTV" , "EVENT_NewRound" , "a" , "1=0" , "2=0" );  
[/php]改这样试下
[php]register_event( "ResetHUD","EVENT_NewRound","a");[/php]
不要定义EVENT_NewRound函数,这个函数已经在events.inl里定义好了.
回复

使用道具 举报

 楼主| 发表于 2007-12-12 15:22:00 | 显示全部楼层 来自 中国–甘肃–兰州

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

代码改成下面的样子后:
register_event( "ResetHUD","EVENT_NewRound","a");
编译完确实可以在CS1.5里运行,不过还是存在上面的三个BUG.:burn:
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表