下面是引用 kevin961104 於 2010-01-07 22:53 發表的 :
就是這樣
:
很明顯的錯誤是...
很多語法沒有被定義,或是重複定義
所以想當然會被判定是
無效的指令
你對sma的概念可能不夠深
沒關係,多接觸就會瞭解了
首先
指令沒道理無中生有
要一步一步來
還有教你抓錯誤
compiler顯示出來的錯誤行數通常不會是那個位置出錯
除非該語法非常單純,或是早在include已經定義好了
否則它只會告訴你哪個指令無效
而真正的原因你要一步一步往下找
我用條列式的說明給你聽...
假設→指令→附加→啟動→定義被啟動者→達到效果
理論以下簡稱『
論』
1. 假設就是CVAR 等號後方的字完 (
論1)
2. cvar_XXX 就是指令化,讓你可以很方便的變動數值
3. 要讓指令產生作用,要在主要被啟動的功能上附加說明
例如
論2括弧內的
TASK_MAKENEMESIS →主要啟動的對象
cvar_warmup2 → 附加條件 4. 要怎麼啟動
? 依據前一步驟論2的內容 進一步定義它 →
論3 (TASK_MAKENEMESIS) 論4 (make_nemesis_task) 5. 啟動的目的是甚麼?
看你原先希望他呈現的效果是甚麼
在最後總要下個結論
那就是
論5點點點在做的事
到目前為止只算是『一個工作程序』,只為了完成一件事,就是讓nemesis在60秒後出現。
這個急不得的,一步步慢慢來
其中一個地方是這樣的
你把不該改的也改到了→這裡就是重複定義
從4562行的public make_zombie_task()開始到4593行這段
只有這樣而已,以下...
// Make Zombie Task
public make_zombie_task()
{
// Call make a zombie with no specific mode
make_a_zombie(MODE_NONE, 0)
}
還有make_a_nemesis(mode, id)裡面的東西
你整堆複製貼上的結果只會有兩種可能
1. 新的取代舊的,禁止雙重評價的道理
2. 招惹到更多需要被定義的名詞
所以你的錯誤才會一大排
擷取你需要用到的就好
也就是為什麼我會希望這邊讓你動動腦
看你想要甚麼引發的效果自己決定
大致上看完,錯誤在
make_a_nemesis(mode, id) 除非你還有動到什麼其他地方
跟你分享一些心得
像我在做理論分析研究的時候
我的習慣是只要到一個階段就存檔
在這邊的話就好比完成nemesis的條件後存檔
因為那跟背景音效是分別作業的
全部混在一起的話你難免會很亂
而且有新進展也不要刪掉舊的
這樣可以隨時還原到上一個階段
所以我的ZP主插件有23種版本
殭屍3的『人類士氣攻擊力+10%(包含音效、顯示)』也成功在主插件改出來
根本不需要什麼3rd-party plugin,何況還是簡體字(鬼字) 版的死檔案amxx。
會發現自己研究出來的東西既是原創、又是源碼sma、更可以做得比那些理直氣壯的商人還好。
講到這題外話了,還是不由得納悶,拜託那些人你拿雅幣去外面買排骨飯給我看..
言歸正傳...
你說不定慢慢研究後,想出的東西還會比我多
搞不好以後換你發教學文,我來當學生。
我呢?不想再發文了。
建議你一步步慢慢來會比較得心應手
否則你忙了老半天卻是錯誤的結果
那不是白搭了嗎?