作者laechan (小太保)
看板mud_sanc
標題[法師] 魔法陣初期效果及級數設定說明
時間Tue Jun 7 16:41:52 2011
最快這個禮拜實裝(因為要改很多法術檔)。
決定不給魔法陣的效果
特攻型技能威力全部強化 <= 決定給主職騎士的陣法使用
節省法力 <= 決定都給杖類武器做為特色效果
消掉怪物的 goldfield、dodge、自體護盾 <= 可能也會給主職騎士的陣法使用
(這一個主要是魔法陣的名字難取)
初期開放效果及暫定級數設定
攻擊法術練習魔法陣 Lv.1
輔助法術增幅魔法陣 Lv.2
攻擊法術增幅魔法陣 Lv.3
縮短大絕再施放時間魔法陣 Lv.4
空間封閉魔法陣 Lv.5
效果及限制參考值
魔法陣技能值、magic heart 技能值、runes 技能值、mag 值
各魔法陣簡易說明
1.攻擊法術練習魔法陣
這個魔法陣一出現,玩家就可使用 spells 指令,該魔法陣及
該指令會提供足夠的訊息讓玩家知道 spells 怎麼用。可以由
高階法師施展魔法陣來讓低階法師練習攻擊法術。
(因為在該魔法陣存在期間,會持續消耗施放者的 sp)
另外,玩家如果在被攻擊狀態就無法使用 spells 練習魔法。
玩家能藉這個魔法陣練上去的技能值,跟「施展者」的上述所
列參考值是相關的。 <= 給高階法師一些被依賴價值
2.輔助法術增幅魔法陣
因為所有的法術檔,當初都有 inherit /d/spell/spell_d.c
,所以 Lv2 跟 Lv3 的效果就很好寫,以 holy_body.c 為例..
========================================================================
tell_object(target,HIW+user->query("sex_name")+HIW"覺得自己像是被天上"+
"的神靈所保護著一樣,心裡覺得非常地幸福!\n"NOR);
fel=user->query("stat/fel");
if(user->query_temp("heal_time/clerical heart"))
heart=user->query("skill/clerical heart");
LEVEL=user->query("level");
g=user->query("guild/clerical");
t1=LEVEL/20+g/3+fel/100; // 10+20+20 = 50
t2=lv*(fel*2+heart)/3000; // 10x(2000+4000)/10000 = 60
much=t1+t2;
if(user->query_temp("mc_effect")>time()) // 最初的簡易判斷
if(mc=present("特殊魔法陣id",environment(user)))
much=mc_effect_2(mc,much); // return 新的 much 值回來
========================================================================
把 mc_effect_2 函數寫進 spell_d.c 裡頭,再在每個輔助法術
檔中都加進上面三行,就可以增幅所有輔助法術的 much 值。
3.攻擊法術增幅魔法陣改法類似上面
4.縮短大絕再施放時間魔法陣
這個的做法非常簡單,因為魔法陣有心跳,在每輪心跳時間(或者
是每輪 check_time 時間)都做底下的動作..
obs=all_inventory(env);
times=time();
foreach(env in obs)
if(env && userp(env) && 滿足其它條件)
{
// 底下只以大劍技為例
t=(int)env->query_temp("time_record/slash_crack_slash");
if(t>0 && times - t > 0 && times-t < 300) // 表示還被限制不能再發大劍技
env->set_temp("time_record/slash_crack_slash",t-1); // 縮短一秒
}
這樣在魔法陣持續存在的時間裡頭,再施放大絕的時間就會被縮
短,這樣理論上最多就可縮短一半的時間。
5.空間封閉魔法陣
這個有兩種做法。
一種做法是看這個房間有幾個出口,就 clone 出一個主魔法陣,
以及 n 個(n=出口數)子魔法陣,由主魔法陣控制該房間的怪物走
不出去,然後將子魔法陣各別移動到與該房間連結的所有房間,
由這些子魔法陣控制怪物無法移動到該房間。
(空間封閉魔法陣對玩家無效)
但是這種做法缺點頗多,不採用。
另一種做法就是只 clone 出一個主魔法陣...
a.由該魔法陣的 init() 函數來控制怪物一走進來就馬上移往別
的房間。(採 move_to 移動法避免連續 move)
b.該魔法陣有 add_action("go_xxx","go"); 該房間的怪物只要
試圖用 go 要走去別的房間就會被禁止。
而原則上假設該怪物會「瞬移」,我想採取的做法是個案處理,
因為採通案的話有兩種方法..
a.修改 move 函數 <= 最好不要
b.為瞬移增加專用函數 move_xxx <= 這個其實可行
但基本上會瞬移的怪是不多的,因此個案處理即可。
然後所謂的「封閉」還有很多種解釋,這個就由其它 wiz 或玩
家有想到時就建議出來,或實際去修改之。
還未開放的魔法陣效果
1.n個法師合力施展型魔法陣
這n個魔法師的魔法陣都必須達到 Lv.n 才行,所以原則上會
把這個魔法陣設為 Lv 7~Lv 8。
主要是合力施展後的「效果」要定為什麼?要舉例的話,例如
「破壞房間的所有陷阱」這一類的,類推的話就類似房間型的
魔法陣。別的例子的話例如合力打開了通往OOXX的魔法陣之類
的。
這種魔法陣的施作方法,假設要三個,則寫法如下..
mixed obs=all_inventory(environment(ppl)),caster=({});
t=time();
foreach(ob in obs)
if(t-(int)ob->query_temp("cast_magic_cycle_級數") > 有效時間內)
caster+=({ob});
if(sizeof(caster)>=滿足條件人數)
{
foreach(ob in caster)
ob->delete_temp("cast_magic_cycle_級數");
執行合力施展魔法陣及相關敘述;
}
else
ppl->set_temp("cast_magic_cycle_級數",time());
2.暫定契約魔法陣
這個很可能定為 Lv6 or Lv7,暫定契約專用,有這個魔法
陣在的時候可以使用特殊的指令。
若未來魔法陣有新的效果時,就不會有暫定契約魔法陣。
(也就是暫定契約不需要施放魔法陣、或用 Lv10 替代為暫定契約魔法陣)
3.進階二轉魔法陣
這個確定是 Lv9。
結論:所以目前實際上還缺一個魔法陣效果。
我目前有想到一個,叫做回家魔法陣,你召出這個魔法陣,
就可以透過這個魔法陣直接回天空城之家。
它有兩種做法..
一、單純回家
二、你可以回家 n 秒,n 秒後只要你還在家裡,就能再回
去。但是它的限制很嚴,你不能離開天空城區域以外的
地方(例如可以去農場),不然它就視為你離開過家裡,
這時就不能再回去(像買藥水、簽樂透等)
以後天空城之家還會擴增用途,所以這個魔法陣其實還蠻值
得做的。
總之,大家有意見都可提出。魔法陣的內容就像這篇寫的這
麼長,這是沒辦法的,希望主職法師的人都可以看過一遍,
瞭解我想做的「具有聖殿特色的魔法陣」是什麼樣子的。
Belldandy.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 115.83.14.146
推 justinj :看到練習的我想到 幻影術,能量盾...這些要怎麼升.. 06/07 18:03
→ laechan :喔? 這些沒有排進魔法圖書館的魔法書裡頭? 06/07 20:05
→ laechan :那我再想個好方法讓它們能升好了 06/07 20:05
推 justinj :雷盾,暫定契約... 06/07 21:06
→ justinj :我覺得可以替換成水系法術,暗系法術..(連極大一起換) 06/07 21:07
推 justinj :水系是..沒有這種屬性攻擊,闇系是只有一招有,而且與 06/07 21:11
→ justinj :光系相對.... 06/07 21:13
→ laechan :那些不急.現在有火系跟冰系法術攻擊,我比較懷疑現在 06/07 21:31
→ laechan :能輕易地交待清楚「兩者之間究竟有何不同」? 06/07 21:31
→ aiggkimd :魔法陣來個整隊瞬間移動也不錯 06/07 22:54
→ laechan :這個是 teleport & 牧師 return spell 的部份 06/07 23:15
→ laechan :teleport 是大魔導士的技能之一 06/07 23:15