Re: [問題] 現在的bousou
看板mud_sanc (Sanctuary - 聖殿)作者laechan (小太保)時間15年前 (2010/06/28 23:04)推噓0(0推 0噓 6→)留言6則, 2人參與討論串5/5 (看更多)
用這篇解釋暴走部份的程式設定流程,會有一些程式碼,
看不懂程式碼的就專看解說也可以。
暴走由 heart bousou 發動,發動後會在玩家身上設定兩
個參數..
#define BASIC_BOUSOU_TIMES 60 // 基本暴走時間
t=time(); // 現在時間
i=(int)me->query("skill/fighter heart")/100; // 戰士之心/100
me->set_temp("time_record/bousou_times",t+BASIC_BOUSOU_TIMES+i);
me->set("record_data/next_bousou_times",t+300); // 下次可再使用時間
最高持續時間 159 秒,再使用時間為施展後 +300 秒。
與 bousou 參數有關的指令則是..
cast 在暴走持續時間內無法 cast
drink 在暴走持續時間內無法 drink
heart 在暴走持續勢間內無法 heart
recall 在暴走持續時間內無法 recall
spell 在暴走持續時間內無法 spell
steal 在暴走持續時間內無法 steal <= 不過這有設跟沒設一樣
swoop 只有在暴走狀態才可以使用
系統部份與 bousou 有關的部份則是..
一、/adm/daemons/user_d.c 的 continue_attack 函數
裡面有一行「若玩家血量 < 1」就陣亡......囧rz
這行已經順手改掉了,改成若在暴走狀態就不會死。
(然後若是直接 call die 式的攻擊仍會死)
二、/std/user.c 的 heart_beat(心跳周期循環函數)
// Laechan@Sanc add in 2010/06/09
// 唯有玩家處於有心跳的狀態, 暴走的參數才可能解除
// 否則即便在斷線狀態中暴走參數已過期仍無法解除
// 在 improve_skill 中則會有相關判斷
if(query_temp("time_record/bousou_times")<now_times2)
delete_temp("time_recofrd/bousou_times");
else
data["pp"]=data["pp_src"];
上面的意思是如果你在暴走中斷線,暴走參數會在,只要
該參數還在就完全無法獲得技能熟練度。另外目前在暴走
中斷線也會送 shout 訊息,方便判斷是否不當使用暴走。
若該參數在且未過期,就回不斷地回復暴走中的玩家的pp
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.9.179
→
06/28 23:28, , 1F
06/28 23:28, 1F
→
06/28 23:28, , 2F
06/28 23:28, 2F
→
06/28 23:28, , 3F
06/28 23:28, 3F
→
06/28 23:28, , 4F
06/28 23:28, 4F
那就改成暴走無過期的問題也可以。
但相對的代價就是..
一、你本次的暴走時間越長,到下一次能再使用的間隔
時間就越長。--代價一
二、應統一有暴走後遺症。--代價二
例如到下次能再施展前的這段期間,有些指令不能
用、有些道具不能用、etc...
三、暴走仍會死於一些特殊的死法,而且其 range可能
更寬,例如會直接解除你暴走再瞬殺你的。
無過期的好處就是不用判斷 time,缺點就是斷線者不
判斷 time 就得判斷別的,所以有一種改法就是暴走中
斷線就是暴水晶。
(不判斷 time 的好處就是減輕系統負擔)
但同樣的,以一來說將來般若懺同樣可以縮短其再使用
時間,以二來說牧師將來某些法術可能可以「解除或減
輕」其副作用。
→
06/28 23:29, , 5F
06/28 23:29, 5F
→
06/28 23:31, , 6F
06/28 23:31, 6F
※ 編輯: laechan 來自: 122.117.9.179 (06/28 23:40)
討論串 (同標題文章)
完整討論串 (本文為第 5 之 5 篇):
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
10
18