引用 | 编辑
lichen
2011-03-12 15:12 |
楼主
▼ |
||
x0
L 03/12/2011 - 15:28:15: [AMXX] Displaying debug trace (plugin "zombie_plague40.amxx") L 03/12/2011 - 15:28:15: [AMXX] Run time error 4: index out of bounds L 03/12/2011 - 15:28:15: [AMXX] [0] zombie_plague40.sma::allowed_survivor (line 8730) L 03/12/2011 - 15:28:15: [AMXX] [1] zombie_plague40.sma::native_make_user_survivor (line 9252) L 03/12/2011 - 15:28:15: Unhandled dynamic native error L 03/12/2011 - 15:28:15: [AMXX] Displaying debug trace (plugin "zp_AppearHero.amxx") L 03/12/2011 - 15:28:15: [AMXX] Run time error 10: native error (native "zp_make_user_survivor") L 03/12/2011 - 15:28:15: [AMXX] [0] zp_AppearHero.sma::task_make_vip (line 33) x0
|
引用 | 编辑
a7811311622
2011-03-12 15:19 |
1楼
▲ ▼ |
下面是引用 lichen 于 2011-03-12 15:12 发表的 帮忙看一下 感谢..,|zombie_plague40.amxx debug: 呃…你只有贴错误行数…却没贴错误内容…这要人怎么了解错误何在…? x0 |
引用 | 编辑
lichen
2011-03-12 15:34 |
3楼
▲ ▼ |
zp_AppearHero.amxx错误就是
强制感染模式每局出幸存者 如果 只有一位玩家 则玩家变为僵尸 服务器名称会被选定为英雄... x0 |
引用 | 编辑
i-c0112
2011-03-12 16:40 |
4楼
▲ ▼ |
可能要加个条件吧
复制程式 ...... randoms = fnGetRandomAliveHuman(random_num(1, fnGetAliveHuman())) if (randoms <= 0) return; ...... x0 |
引用 | 编辑
a7811311622
2011-03-12 16:46 |
5楼
▲ ▼ |
我无言了…
无言中…ZP 4.3 主插件都不会在这种地方判断ID值是不是僵尸…这写的人在自作主张什么…? 一开始的「fnGetAliveHuman」就是问题… 后面的「fnGetRandomAliveHuman」则是让判断出来的ID值偏差更大… 估计ZP主插件会错误的原因就是「fnGetRandomAliveHuman」回传了ID值「-1」… 偏激的举例: 刚好只剩下ID值=31和32的是人类…而「random_num(1, fnGetAliveHuman())」跑出来的是32… 然后「fnGetRandomAliveHuman」在ID值=31之前「iAlive」一直是0…而 ID值=31→iAlive = 1 ID值=32→iAlive = 2 两个结果没一个满足「if (iAlive == n)」…既然没法「return id」…当然只能回传「return -1」了… 我的写法: 复制程式 do{ randoms = random_num(1, get_playersnum()) }while(!is_user_alive(randoms) || zp_get_user_zombie(randoms)) x0 |
引用 | 编辑
lichen
2011-03-12 19:57 |
6楼
▲ ▼ |
下面是引用 a7811311622 于 2011-03-12 16:46 发表的 : so zp_make_user_survivor(randoms) 改为 do{ randoms = random_num(1, get_playersnum()) }while(!is_user_alive(randoms) || zp_get_user_zombie(randoms)) [/pre][/pre]即可?[/pre] x0 |
引用 | 编辑
lichen
2011-03-12 20:01 |
7楼
▲ ▼ |
randoms = fnGetRandomAliveHuman(random_num(1, fnGetAliveHuman()))
get_user_name(randoms, temp, 64) 改为 do{ randoms = random_num(1, get_playersnum()) }while(!is_user_alive(randoms) || zp_get_user_zombie(randoms)) ??是吗? x0 |
引用 | 编辑
lichen
2011-03-12 20:03 |
8楼
▲ ▼ |
下面是引用 i-c0112 于 2011-03-12 16:40 发表的 : randoms = fnGetRandomAliveHuman(random_num(1, fnGetAliveHuman())) get_user_name(randoms, temp, 64) client_print(0 , print_center, "[%s] 已被选定为【救世主】", temp); 改为 randoms = fnGetRandomAliveHuman(random_num(1, fnGetAliveHuman())) if (randoms <= 0) return; client_print(0 , print_center, "[%s] 已被选定为【救世主】", temp); ???? x0 |
引用 | 编辑
a7811311622
2011-03-12 22:03 |
9楼
▲ ▼ |
是将5F原码中的第一行换成我给的原码…
x0 |