[閒聊] spell xxxx -seal

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間13年前 (2012/07/10 15:28), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串1/1
我想這應該是最簡單的寫法,不過這篇只是閒聊,邊聊邊挖 程式碼出來研究,若可行的話今明兩天就先寫這一部份。 (這是針對封印術的) // 取得使用者的技能資料 if(sscanf(str,"'%s' %s",skn,tar)==2 || sscanf(str,"'%s'",skn)); else if(sscanf(str,"%s spell.%s %s",skn,string_lv,tar)==3 || sscanf(str,"%s spell.%s",skn,string_lv)==2); . . 在這一大堆東西的前面先做一次 sscanf if(sscanf(str,"%s -seal",str)==1) seal=1; 這樣其它部份就可以完全套用 _spell.c 的判斷,然後在最 底下這樣做.. if(seal==1) { // 級數 技能值 連擊數 技能名 return (int)skob->start_seal(me,lv, skill, clients,skn); // 原先的程式段在底下 else { if((string)me->query_temp("cmd_auto")=="spell") me->set_temp("cmd_auto_string",str); me->set_temp("cmd_cast_data", ({target,skob,lv,skill,clients,"spell "+str})); return 1; } 額外的判斷則是看 skob 有沒有 start_seal 函數,沒有的 話當然就不能用 -seal 語法。另外就是玩家有沒有學封印術 ,沒有的話當然也不能用。 嘛,理論上是可行的。 基本上封印術也已經自法師的技能表中移除,這意思就是這 東西「只給秘印賢者用」,我預計它的效果會有兩部份.. 一、大幅提升使用該系法術的傷害能力 二、大幅提升 en 攻擊速度(一回合攻擊次數) 三、其它額外效果(比方在封印術式狀態會比較容易怎樣、   或是比較不容易怎樣、或是可施展特殊的什麼之類的) 四、挑一個屬性來加(con/dex/mag/其它) 那我不想為它寫 release。(其實要寫也可以) 這是因為它基本上已經提升了法術的威力,封印後的每一擊 其實都會相當於解放時蓄積的威力。 我個人是覺得 fill/release 還是寫成獨立的系統為宜,然 後讓所有的[主職]法師(比方有學到 runes 的)都可以使用這 樣。 原則上關鍵的效果段落如下.. me->temp_mod("stat/xxx",值,"seal xxx",時間); 這樣就可以讀 ppl->query_temp("heal_time/seal spell")>0 來判斷是否有在作用,玩家按 a 也可以得知剩餘作用時間。 seal xxx 則是用來判斷你正在封印的是哪一個法術,原則 上只要是能用 spell 施展的法術應該都要可以封印,但實 務上只會開放 fire/ice/thunder/light 等。 總之,理論上可行。晚點來寫另一個。 Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.61.157.53

07/10 23:05, , 1F
seal不是說要廢除了嗎XD
07/10 23:05, 1F

07/11 02:17, , 2F
忘記哪篇有寫 seal 要全部撥給秘印賢者,完整化封印術
07/11 02:17, 2F

07/11 02:18, , 3F
式(含術式武裝跟術式解放),總之起始都是 spell -seal
07/11 02:18, 3F

07/11 02:18, , 4F
做法總之有兩種 1.區別封印術式跟術式武裝 2.合併
07/11 02:18, 4F

07/11 02:18, , 5F
(我是怕單純的封印術式寫出來會跟魔法武器類似)
07/11 02:18, 5F
文章代碼(AID): #1F-zc4_Q (mud_sanc)
文章代碼(AID): #1F-zc4_Q (mud_sanc)