下面是引用 lichen 於 2011-03-12 15:12 發表的 幫忙看一下 感謝..,|zombie_plague40.amxx debug: L 03/12/2011 - 14:41:51: [AMXX] [0] zombie_plague_csol.sma::allowed_survivor (line 8744) L 03/12/2011 - 14:41:51: [AMXX] [1] zombie_plague_csol.sma::native_make_user_survivor (line 9271) 8744 if (g_endround || !g_isalive[id] || task_exists(TASK_WELCOMEMSG) || (!g_newround && g_zombie[id] && fnGetZombies() == 1)) 9271 if (!allowed_survivor(id)) 是索引超出所以報錯?意思就是格式不正確? 我其實不好意思再問這麽簡單的插件問題了,但是沒人教! 还是不會修改啊.. 希望大大們在幫我的情況下,在發個教學帖子.... 我有這個 scripting 用amxx_studio.exe打開插件後 怎麽修改?
下面是引用 a7811311622 於 2011-03-12 15:19 發表的 : 呃…你只有貼錯誤行數…卻沒貼錯誤內容…這要人怎麼了解錯誤何在…?
...... randoms = fnGetRandomAliveHuman(random_num(1, fnGetAliveHuman())) if (randoms <= 0) return; ......
randoms = fnGetRandomAliveHuman(random_num(1, fnGetAliveHuman())) fnGetAliveHuman() { static iHumans, id iHumans = 0 for (id = 1; id <= g_maxplayers; id++) if (is_user_alive(id) && !zp_get_user_zombie(id)) iHumans++ return iHumans } fnGetRandomAliveHuman(n) { static iAlive, id iAlive = 0 for (id = 1; id <= g_maxplayers; id++) { if (is_user_alive(id) && !zp_get_user_zombie(id)) iAlive++ if (iAlive == n) return id } return -1 }
do{ randoms = random_num(1, get_playersnum()) }while(!is_user_alive(randoms) || zp_get_user_zombie(randoms))
下面是引用 a7811311622 於 2011-03-12 16:46 發表的 : 我無言了… 無言中…ZP 4.3 主插件都不會在這種地方判斷ID值是不是僵屍…這寫的人在自作主張什麼…? 一開始的「fnGetAliveHuman」就是問題… 後面的「fnGetRandomAliveHuman」則是讓判斷出來的ID值偏差更大… .......
下面是引用 i-c0112 於 2011-03-12 16:40 發表的 : 可能要加個條件吧 複製程式 ...... randoms = fnGetRandomAliveHuman(random_num(1, fnGetAliveHuman())) if (randoms <= 0) return; ......