看板 mud_sanc 關於我們 聯絡資訊
最快這個禮拜實裝(因為要改很多法術檔)。 決定不給魔法陣的效果 特攻型技能威力全部強化 <= 決定給主職騎士的陣法使用 節省法力 <= 決定都給杖類武器做為特色效果 消掉怪物的 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