→ laechan:對了數值的設定部份,可以多加討論看看 10/31 17:19
※ 引述《amosdeus (幽素)》之銘言:
: int query_dam(object frog,object ppl,string type,string genre,int class)
: {
: int n,m,dam,table;
: if (m - n > 2) return ({0,"但是毫無作用!!"});
依之前的討論,傷害Lv1對上抗性Lv3時「無作用」?
若是如此應該是 if(m - n >= 2)。
因為對方的抗性等級可以在各個技能檔提早 query 出來,這就代表
以後不是任何一隻怪物都可以拿來練技能的。
我想這是必要的設定。
: n = frog->query(攻擊"kinds");
: m = ppl->query(抗性"屬性[type]","種類[genre]","級數[class]");
攻擊等級
1 2 3 4 5
: table = ({ ({ 1, 130, 180, 250, 340 }),
: 抗 ({ 50, 1, 150, 220, 310 }) ,
: 性 ({ 33, 66, 1, 170, 260 }},
: 等 ({ 25, 50, 75, 1, 190 }},
: 級 ({ 20, 40, 60, 80, 1 }});
}) });
ㄟ,你最後決定用二維陣列?...應該也是可以。
if(m>0 && n>0)
dam = (dam / 100) * table[m-1][n-1];
else if(m<0)
dam = dam * (n - m);
這裡必須限定攻擊等級不能有負的,只有抗性等級可以設負的。
(這樣才合理)
再來是種類的部份,magic/fire/Lv3 對上對 magic 類攻擊均有
k% 抵抗力的怪...
dam = (dam /100) * k;
這樣應該就 ok 了,wiz 們可以參考看看,沒意外的話這個函數
應該會是 simul_efun。
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.225.167.238