RO的獵人老鷹->寵物系統 - MUD Game

Anonymous avatar
By Anonymous
at 2019-07-30T16:43

Table of Contents

剛好上次有人問,這裡提一下。

帶寵物(或是RO的獵鷹、生命體那樣的模式)趴趴造的情況,我們
先看結果,當你帶著寵物時,別的玩家 look 會看到

> look
一個房間
這是一間尋常的房間。

明顯出口有: out.

路人甲(User1)[帶著獵鷹]正站在這個地方。
>

假設是這樣子顯示,在 look_room 那邊的判斷通常有幾種:

1. if(user->query(XXX))
2. if(user->query_temp(XXX))
3. if(pet=present("PET",user)) // 所有寵物都有共通的 PET id
4. if(pet=present("PET",environment(user)))
// 通常很少這樣寫但也不是不行
// 這樣寫的缺點是還要把玩家kill寵物、房間reset、玩家recall
// 或陣亡等因素考量進來


我的意思就是,其實我們(mud coder)在 coding 一段時間到有
經驗之後,我們的思維就會很自然地變成

我們會優先去想像它在 mud 裡頭 run 起來的樣子



接著大致也會知道大概要動、要改哪些地方(根據經驗)
甚至一些 code 就會產生,並開始在腦海裡轉啊轉的..


┌─→ 不可行,可能是基於blabla..等因素
評估 ─┤
└─→ 可行 ─→ 決定動刀的順序 ─→ 動刀


以寵物系統為例,我通常會先決定的就是上面的 1,2,3,4 要用
哪一種,那假設用 2. if(user->query_temp(XXX))

那就是假設寵物不是帶在身上的東西,而是類似"遠端"的一個
東西,那接著就決定它是不是生物(living)。

那假設它就是生物,但是又不希望把它帶在身上,那就是當我們
召喚牠時:

pet=find_object(對映的寵物檔名);
user->set_temp("pet",pet);

這樣的做法。

(我沒記錯的話部份 mud 的 horse 即座騎,是採取這種做法)

這樣這個寵物系統最關鍵的問題就解決了。

剩下的問題就是呈現,而任何的呈現幾乎都會跟底下的判斷有關

if(pet=user->query_temp("pet"))

比方其它玩家 look 時要看到你帶著寵物 -> 改相對應的 code

比方你自己下 i 指令時發現寵物在你身上 -> 改相對應的 code

比方你希望你走動時會看到寵物也跟著你移動的訊息 -> 改相對應的 code

比方你希望下 hp 或下 score 時也能看到寵物的 -> 改相對應的 code

.
.

你考量到的地方越多、你改動的範圍也越多時,你所呈現出來的
就會更趨近於真實(real),隨時都讓人感受到這隻寵物就像是在
你的身邊跟著你,並且對這件事絲毫不會有任何的起疑。

但是實際上: 這隻寵物根本就沒有在玩家的身邊

然後,實際上沒有在你身上,可是能不能做到當你下 look pet
時,能夠看到它呢? 當然可以,改相對應的 code 就行了。


以上一點分享,順便解答某人曾問過我的問題,以及再一次強調
,因為我慣用的 mudlib 跟你正在研究且將要使用的不一樣,然
後座騎、寵物等系統,每一家的寫法也都不盡相同,所以把握共
通的原則就好,也就是讓呈現出來的樣子夠趨近於真實,就好了
採取怎樣的寫法都無所謂啦!

然後多看看別人的 code,甚至多玩、多接觸其它遊戲、事物,
對自己最有幫助的一點就是會激發自己將來能思考更多可能的寫
法。

mud coder 當到最後,每個人都會是高明的詐欺師。


--
Tags: 線上

All Comments

Rosalind avatar
By Rosalind
at 2019-08-01T17:39
改了一下,有打錯一些地方
Leila avatar
By Leila
at 2019-08-03T18:35
(點點頭。)
Emily avatar
By Emily
at 2019-08-05T19:31
想過把mud寫成LOL,但AI我頭就痛了
Megan avatar
By Megan
at 2019-08-07T20:27
做成NPC,後續才有比較多的玩法
Anonymous avatar
By Anonymous
at 2019-08-09T21:23
今天才看到 3.跟4. 寫錯了,改一下

終於收集到每個位置的紫卡了

Noah avatar
By Noah
at 2019-07-30T16:11
之前留言一個月無課全兄弟紫卡沒人相信 看笑話酸民居多 所以我也懶的po照片 結果現在又被拿出來講 以下貼圖證明 因為我認為效益不高 所以原本有的二世和周董都被我拉成藍卡了 這兩張拿到卡時沒有截圖紀錄 不過前幾篇有發周董文 要不要相信是你們自己決定 https://i.imgur.com/MD53JQl.jp ...

官方臉書更新網站網址

Selena avatar
By Selena
at 2019-07-30T15:41
一小時前更新,沒想到竟然沒人發文QQ https://i.imgur.com/XHrGzTm.jpg 連結如下 http://unlight-world.com/ 我好興奮啊啊啊啊啊啊啊啊啊!!! - ...

全民打棒球Online-FB

Brianna avatar
By Brianna
at 2019-07-30T14:20
各位親愛的球迷玩家們 在與原廠的反覆討論後 我們將會針對目前的滑球(及部分打擊方面)進行調整 版本調整將於下次改版更新時一併套用 由於本次變更靠近全國俱樂部大賽 小編也提醒各位要注意版本的變動,才能在比賽中奪下關鍵的比賽勝利 未來也將會持續調整營造更加美好的遊戲環境 感謝您的支持與鼓勵 《全民打 ...

RO的獵人老鷹->寵物系統

Faithe avatar
By Faithe
at 2019-07-30T13:25
實例影片: https://youtu.be/9L5XtcGnGiU 以下code是es2內建的, 只是原始碼我一直沒看到他的應用~ 後來就寫個寵物系統給他:(有興趣的稍微看一下,應該就懂了) mapping *read_table(string file) { string *line, ...

畢業了AVA

Damian avatar
By Damian
at 2019-07-30T12:07
再見了,AVA 哪天希望可以看到戰谷再代理一次這遊戲 - ...