Re: [討論] tmi2_v3_改

作者: laechan (揮淚斬馬雲)   2014-06-08 14:07:35
原先 n 個屬性,要改成 n-m 或是 n+m,事實上都是辦得到的,
我的原意是不希望拿到 tmi2_v3_改 的人,還需要做複雜的修改
才能達到他想要的結果。
但是因為屬性關係到很多「釋出前就得寫好」的部份,例如戰鬥
就是一種,將來釋出的版本一定會包含最基本可 work 的戰鬥相
關函數(例如閃格擋函數),而這些函數也必然地一定會讀取一些
屬性數值來做計算,所以這些也需在一開始就先有基本的模型資
料。例如我一定會讀取到的資料:
str 方面: 要計算攻擊力
agi 方面: 要計算迴避力
con 方面: 要計算基礎抵傷
.
.
所以不需要擔心後續要增加或是減少屬性,就如同 tmi_v3 一開
始是四個屬性:
> score 它們分別對映
[ Laechan ] "stat" : ([
Dexterity : 17 "dexterity" : 17,
Constitution : 10 "constitution" : 10,
Intelligence : 15 "intelligence" : 15,
Strength : 18 "strength" : 18, ])
而我要把 agi 及 int 加進去,就是一種增加屬性的動作,如果
我能成功辦到,就代表將來所有 tmi2_v3_改 的使用者也能辦到
,而且會比我現階段要做的修改還要簡單。
(像我還要先把上面那些字串換成簡單的 dex con int str...)
而且讀取數值的部份,大都會透過函數的方式,它們會有共通的
源頭,將來就只需動源頭即可,則此時玩家資料欄位的增減,就
無需對系統做大幅度的修改,像 sanc 就是存在的時間太久、大
家以前又都習慣直接讀數值的方式,印象中 sanc 光是做底下的
兩項修改就耗費極大心力與極多時間:
把 ppl->add("exp",n) 改成 ppl->add_exp(n)
把 ppl->add("warexp",n) 改成 ppl->add_warexp(n)
總之,很多欄位的數值讀取與增減,會盡量函數化,目的就是減
少拿到 tmi2_v3_改 的使用者在修改上的困擾,所以你不必太過
擔心,唯一需擔心的只有一點:修改的複雜度。
我舉例:
從 es2 mudlib 要改成看 level 的西式 mud 困難!
從 tmi2 mudlib 要改成看 level 的西式 mud 相對簡單!
所以一開始就要「慎選」 mudlib,比方如果你想架 mud,但你
發現 tmi2_v3_改 並不適合架你想架的 mud 時就千萬別選,不
然後續的修改既複雜又麻煩,還不一定能改完。
(經驗談了,想當初我也拿過 es2 mudlib 認真改了半個月..)

Links booklink

Contact Us: admin [ a t ] ucptt.com