[指令] 魔法武器(enchant)效果說明
繼續 coding,今天主改 /adm/daemons/user_d.c,已先備份
成 /adm/daemons/user_d.20120810,今天 coding 用的背景
音樂是電影【冷光線索】原聲帶。
=====================================================
if(wp=(object)me->query("weapon1"))
{
wp->check_enchant();
wptype=me->query_wp_type();
}
在讀取 wp 那邊新增 check_enchant() 程式段,依目前的寫
法應該會造成一定程度的 loading,所以有在考慮將附魔改
成不計時間(這樣幾乎可以不需 check)。
=====================================================
hv : 普攻/en 中額外增加一回合連擊數
// 魔法武器專用 for laechan@sanc 2012/08/10
if(wp)
if(i=(int)wp->enchant("hv")>99)
times=times+1+times/6;
這是普攻/en額外增加連擊數的設定區,它的概念是,「至少
增加一連擊」,然後再額外增加「原本連擊數/6」,這樣低連
擊數時看的到效果(+1),高連擊數時也不會增加太多。先暫定
這樣。
而理論上可以跟 i 連結,例如..
times=1+(times*(200+i/200))/200;
這個的意思就是,假設玩家現在 enchant 技能值 700,那它
就增加 3.5% 的連擊數,而且保證至少加 1 擊。擴大來講,
一個 40 連擊的玩家將來假設加到最多 15% 的連擊數時,就
變成 46 連擊,原則上 50 連擊以下我都是默認的,不過,最
好還是別加太多,但也別加太少。
======================================================
fp : 普攻/en 中額外增加經驗值及學點
// Laechan@Sanc add in 2012/08/10 for 魔法武器
if(wp)
if(i=wp->enchant("fp")>99)
t4=(t4*(200+i/200))/200;
這是經驗值的增加部份,上面公式的意思就是,假設玩家現在
enchant 技能值 700,那獲得的經驗值就增加 3.5%,設定概念
同上面連擊數的部份。
// Laechan@sanc add in 2012/08/10 for 魔法武器
// t2 不為 0 才增幅
if(wp)
if(i=(int)wp->enchant("fp")>99)
t2=t2+1+random(i/1000);
上面的意思是,學點會先經過本來就有的一個計算後,確認不
為 0 時才做增幅,保證加 1,最多加 1+3 這樣。
=======================================================
fi : 普攻/en 中額外增加技能熟練度
// Laechan@Sanc add in 2012/08/10 for 魔法武器
if(t1>0 && wp)
if(i=(int)wp->enchant("fi")>0)
t1=t1+(t1*(400+i/400))/400+random((t1*(400+i/400))/400);
這個概念是,假設魔法武器最高 3000,那熟練度額外增加 7.5%
(確定),以及 0~7.5%,即最少 7.5% 最高可到 15%。
=======================================================
z1 : 普攻/en 中隨機自動施放 xxx hands 法術
if(wp && tar)
{
if(i=(int)wp->enchant("z1")>99)
{
switch(random(5))
{
case 0:
t1=me->query("skill/burning hands");
"/d/spell/burning_hands"->start_effect(tar,me,t1/100,t1,1+i/1000);
break;
.
.
上面是 z1 的部份(與靈力武器的併效),它的意思是說,在你
打完攻擊之後,它還會額外「隨機」挑一個 hands 類的法術做
攻擊,而且..
1.你施展的 xxx hands 技能值原先可以為 0
(則擊出後理論上有可能技能值變 1)
2.不會消耗任何的 sp 值
但是「cleanse」不列入(因為我得確認這技能是不是在新手鎮
有被歸類為額外學習類技能)。
========================================================
z2 : 普攻/en 攻擊對邪惡系怪物一定命中
// 魔法武器專用 for laechan@sanc 2012/08/10
if(wp)
{
if(i=(int)wp->enchant("hv")>99)
times=1+(times*(200+i/200))/200;
if(i=(int)wp->enchant("ad")>99)
if(i/50 > random(100))
dam=(dam*(200+i/200))/200;
if(i=(int)wp->enchant("z2")>99)
if((int)tar->query("ethic")<0)
hit=9999;
}
這是保證命中的部份。本來想跟束縛術併效,但考量實用性,
最後還是決定採這個。不過這個原則上依然不適用「飄浮狀態
」。
========================================================
hr : 普攻/en 中只要有擊中怪物,就回復一些 pp 值
if(i>0)
{
if(i=(int)wp->enchant("hr")>99)
me->add_3p("pp",1+random(i));
}
這是 hr 的效果,假設玩家 enchant 技能值 700,那麼戰鬥中
每一輪的 普攻/en 只要有擊中怪物時,pp 就回復 1~700。
這個確定是暫定公式,原則上我認為回值+%應該是最理想做法,
但就怕有些幾十萬 pp 的玩家,比方 50 萬,那回 1% 就是5000
以上,所以不可能說回到 10% 那麼多,頂多 1.5%,然後加上值
還有是否加入 sp,我是認為加 sp 的合理性不足。至於 hp 則
是可以的,目前先暫時只做回 pp 的部份。
========================================================
ad : 普攻/en 增加「爆擊」機率,此時傷害會提高
// 魔法武器專用 for laechan@sanc 2012/08/10
if(wp)
{
if(i=(int)wp->enchant("hv")>99)
times=1+(times*(200+i/200))/200;
if(i=(int)wp->enchant("ad")>99)
if(i/50 > random(100))
dam=(dam*(200+i/200))/200;
}
增傷的效果部份,跟影響連擊數的部份寫在一起,它是寫在迴圈
外的,所以要另外計算「機率」,目前機率暫時採用技能值/50
的做法,比方你 enchant 技能值 700,那發動機率就是 14%,
而增傷值就是 3.5%。
========================================================
再來是改 mob_d.c 的 die 函數。
========================================================
kr : 殺死怪物後 hp/sp/pp 回滿
// Laechan@Sanc add in 2012/08/10 for 魔法武器
if(wp)
if((int)wp->enchant("kr")>99)
killer->full_3p(111);
這是 kr 的效果,即擊殺怪物時 3p 回滿,它的前提是該怪物
沒有自訂 die 函數,因為有自訂的不會觸發原先的 die()。
為此得改一下 full_3p,若 hp 超過 hp_src 就無視,以免牧
師的 pure power 效果被覆蓋。(已改)
========================================================
km : 殺死怪物後增加得到的金錢數量
// Laechan@snac add in 2012/08/10 for 魔法武器
if(i>0 && wp)
if(max=(int)wp->enchant("km")>99)
i=(i*(200+max/200))/200;
這是 km 的效果,即擊殺怪物時可得到較多的金錢部份,其獲
得數量最多增加 15%。它同樣會先經過一些原始的判斷,確定
玩家可獲得金錢時(i>0),才額外做加成。
========================================================
接著修改 /cmds/std/_view.c
========================================================
已修改完畢。先隨便 wear 一把武器,然後使用 running 指令
貼入底下的東西..
ob=me->query_wp();
i=time();
ob->set_enchant("ad",700,i);
ob->set_enchant("fi",700,i);
ob->set_enchant("fp",700,i);
ob->set_enchant("km",700,i);
ob->set_enchant("kr",700,i);
ob->set_enchant("z1",700,i);
ob->set_enchant("z2",700,i);
ob->set_enchant("hv",700,i);
ob->set_enchant("hr",700,i);
write(identify(ob->enchant())+"\n");
貼好後確認各附魔效果已設入,就可以 view,底下是 view 後
的結果...
狂 風 刀(Crazy_Wind Blade)
────────────────────────────
級數:100
型態:blade
重量:180
價格:7000
殺傷:2800
命中:200
認主:laechan
影響:str+13 air+8 con-9
附魔:+3.5% 怪物金錢掉落量
殺死怪物後 hp/sp/pp 全滿
14% 的普攻/en的爆擊傷害提高 3.5%
普攻/en攻擊中隨機自動施展 hands 類法術
普攻/en擊中怪物回復 1~700 點 pp 值
普攻/en攻擊中獲得經驗值提高 3.5%
普攻/en攻擊對邪惡系怪物一定命中
+3.5% 普攻/en一回合連擊數
普攻/en攻擊中獲得熟練度提高 1.7%~3.4%
這是一把狂風刀, 刀身有時會突然捲起一陣狂風, 據說有掃除魔
物的力量.
────────────────────────────
當然實際上玩家使用時最多只能附魔到五種左右。
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 編輯: laechan 來自: 210.61.157.53 (08/10 15:26)
推
08/10 21:02, , 1F
08/10 21:02, 1F
→
08/10 21:15, , 2F
08/10 21:15, 2F
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章