[wizs] 抗性的判斷方式
我想試看看以我現在的功力,能不能寫出較簡略的判斷版本。
首先假設某怪抗火 30%、抗冰 20%。設定上通常是降子..
set("xxx/fire",30);
set("xxx/ice",20);
shut_d.c 則設定了 ({"physics","fire",lv}) 這樣的格式,
假設也不變動,那麼怪物需再設定的部份就包括..
set("lv",??);
set("xxx/physics",50); // 比方抗物理
set("xxx/magics",50); // 比方這叫抗魔法
lv 的部份就可以搭配之前說的怪物分群方案,Lv1 的攻擊打
到 Lv2 的怪傷害就降低之類的,弄個對映表。
假設怪物設 physics 抗 50、抗火 30,那用 furiousaxe 打
這隻怪,傷害就先減半,再減 30%..
kinds=shut_kinds; // 讀取 ({"physics","fire",1});
dam=dam*(100-(int)mob->query("xxx/"+shut_kinds[0])/100;
if(dam>0)
dam=dam*(100-(int)mob->query("xxx/"+shut_kinds[1]))/100;
if(dam>0)
dam=dam*(Lv影響公式);
然後在這邊得到最終 dam。在判斷過程中假設遇到抗物理100
的那第一行的 dam = 0,這時底下的就不需要再判斷。
而怪物使用 shut 的部份「就依該怪物的 lv 多少,shut 的
lv 就帶多少」,而沒有給 magics 的攻擊就視為物理攻擊,
在這情況下 shut( "fire" ) 就等於 shut( ({"physics","fire",怪物lv}) )
結論...
一、先做怪物分群
二、然後對所有特攻技能檔設定 physics/magics、攻擊屬性
以及 lv 值。
(這是最大的工程)
三、在 mob_d.c 的 Create 函數內先內建抗性。
四、然後才是實裝抗性系統,使該系統的計算式能得到最簡化
五、最後才是逐一修改所有怪物,使其具有抗性設定。
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 編輯: laechan 來自: 61.225.162.40 (05/24 15:25)
→
05/24 16:26, , 1F
05/24 16:26, 1F
→
05/24 16:27, , 2F
05/24 16:27, 2F
→
05/24 16:28, , 3F
05/24 16:28, 3F
→
05/24 16:28, , 4F
05/24 16:28, 4F
→
05/24 16:28, , 5F
05/24 16:28, 5F
→
05/24 16:28, , 6F
05/24 16:28, 6F
→
05/24 16:29, , 7F
05/24 16:29, 7F
→
05/24 16:32, , 8F
05/24 16:32, 8F
→
05/24 16:33, , 9F
05/24 16:33, 9F
→
05/24 17:11, , 10F
05/24 17:11, 10F
→
05/24 17:13, , 11F
05/24 17:13, 11F
→
05/24 17:17, , 12F
05/24 17:17, 12F
→
05/24 17:17, , 13F
05/24 17:17, 13F
→
05/24 18:03, , 14F
05/24 18:03, 14F
→
05/25 08:16, , 15F
05/25 08:16, 15F
→
05/25 08:17, , 16F
05/25 08:17, 16F
→
05/25 10:38, , 17F
05/25 10:38, 17F
推
05/25 12:18, , 18F
05/25 12:18, 18F
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
5
12