作者laechan (揮淚斬馬雲)
看板mud_sanc
標題Re: [閒聊] 寵物系統
時間Mon Sep 23 16:33:16 2019
六日累翻了,先不弄,現在也很想睡。
先看可不可行。
首先依照 dummy.c 的寫法,它是 inherit MONSTER; 所以我大概
得讓傭兵所的目錄位於 /adm/daemons 下例如與科隆塔同一目錄,
在這個地方下像是 hire [玩家id] 的指令,就可以進行傭兵的雇
用。
方便的設計是透過該房間 clone 出 dummy 然後:
call_other(dummy,"loading_xxx","玩家id");
我剛剛試是可以的,玩家下指令可不可以我就不清楚,要試了才知
道,先當成可以。
該傭兵被叫出來後就會直接變成玩家的傭兵,依下篇
Re: [閒聊] 寵物系統
https://webptt.com/m.aspx?n=bbs/mud_sanc/M.1566646651.A.7E2.html
預計會改到
/adm/daemons/look_d.c
比方
摳頂機器(Laechan:進階盜賊)正站在這裡。
└帶著寵物[潔潔(gigi)]
└帶著傭兵[飛影(hiei)]
上面就是我說的可能會讓顯示看起來較複雜的例子,以後可能還有
帶著生命體之類的,RO 的玩家可以同時帶這三種出門。
sanc 也可以。
傭兵的英文是 mercenary,簡單一點用 guard 也可,假設叫 guard
,那麼預計會使用到玩家 temp_data 區的 guard 欄位。
/cmds/std/_guard.c
那可能是這樣
> guard
傭兵[飛影(hiei)]正跟著你一起行動.
名字: 飛影(hiei)
等級: 120
種族: 石化人
職業: 騎士
能力: 多重攻擊Lv1 騎乘攻擊Lv1 ....
裝備: 基本上可以用虛擬的,看有無必要,大概寫得出來..
能力可以在 loading 時就順便讀取及寫入,初期我的簡單想法是,
比方這個玩家是有學多重攻擊的,那就會有多重攻擊Lv1,它的意思
是如果玩家僱用這個人當傭兵,它會稍微影響到僱主在多重攻擊方
面的相關數值,EX: 連擊數。
讀取例子則像這樣
if(guard=user->query_temp("guard"))
{
if(guard->query("ability/multi-attack"))
num=(num*11)/10;
}
基本上也會有 guard -dehire 這類的解雇語法。
至於其它命令....嘛,或許命令它施展受到限制的輔助法術有可能
做到,像是 guard -cast heal 之類的....guard 指令可以限制玩
家在 -cast 後面能接的法術範圍。
不過這不太好改。目前的 start_skill 及 start_effect 都沒有把
caster 放在函數的參數內,所以必須由傭兵做為發動的主體,而不
是下 guard 指令的人,除非改 start_skill,以 pray.c 為例
int start_skill(object tar,int lv)
{
object ppl=this_player();
string str=skill_name("pray");
改成
varargs int start_skill(object tar,int lv,object ppl)
{
string str=skill_name("pray");
if(!ppl) ppl=this_player();
至於 start_effect 倒是就還好,有把 user 帶進參數內。
初期我會放幾個吧,holy power 會優先放看看。
/std/user.c
大概像底下
> hp
第[120]級 摳頂機器(Laechan:進階盜賊)
生命力 : 100% **************************************************※
精神力 : 100% **************************************************※
內 力 : 100% **************************************************※
寵物:
第[120]級 潔潔(gigi)
生命力 : 109% ************************************************** ※
傭兵:
第[120]級 飛影(hiei)
生命力 : 100% **************************************************※
攻擊目標:
第[55]級 遊客(Customer)
生命力 : 109% ************************************************** ※
adm/daemons/user_d.c
主要改 quit 函數,當玩家有傭兵然後 quit 時,傭兵會被自動移除。
/adm/simul_efun/new_defance.c
嘛,這裡就牽涉到傭兵是要拿來幹嘛的,以及需考量到它跟寵物之間的
同質性問題。
例如 ro 的寵物,有附加飼主能力的效果,常駐的除非寵物消失。
ro 的傭兵,則可以幫忙攻擊,但沒聽說可以幫忙格擋,倒是可以招呼到
一些原本會打向玩家的攻擊。然後基本上對雇主的能力沒啥影響。
也就是說
寵物 傭兵
可否攻擊怪物 X ○
可否被怪物攻擊 X ○
對玩家常駐效果 ○ X
能否對它下指令 ○ ○ (但是下指令的結果各不相同)
能否讓它背東西 X X
sanc 基本上也會對寵物與傭兵做一些基本區別。
以上是設定稿,看起來可行,擇期實裝。
LAechan
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.66.104 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/mud_sanc/M.1569227599.A.9CF.html