網頁好讀版: http://www.ptt.cc/bbs/mud/M.1403073218.A.F78.html
tmi2_fluffos_v3_改,20140618 版本
http://sanclaechan.myweb.hinet.net/tmi2_fluffos_v3_modify.rar
建議下載並解壓縮後目錄位置為 D:\tmi2_fluffos_v3_改\
(底下以 tmi2_v3_改 簡稱)
WinXP 使用者,可直接雙擊 D:\tmi2_fluffos_v3_改\bin\啟動 mud 捷徑,
即可執行 mud。Win7 或 Win8 使用者,則務必先參考底下這篇:
http://www.ptt.cc/bbs/mud/M.1399357070.A.366.html
mud 啟動成功後,目前確定以 pietty 連線 localhost 5000 (Telnet),可
連線成功:
http://imgur.com/IQwusvX.jpg
在 tmi2_fluffos_v3_改\ 目錄下會放一些圖片及說明文件。
目前連線 telnet://210.61.157.53:5000 可連到以最新版本所架的測試站
,有公頻聊天指令可使用,也有遠端頻道指令 tmi2 可使用,使用前 mail
給 laechan.bbs@ptt.cc 提出申請,信件內容需有:
1.你所架的站台 ip 及 port
2.你所架的站台之名稱(若沒有這個名稱會內定為 XXX's PC)
==================================================================
本次修改範圍: 2014/06/13~2014/06/18
這次的修改量比較多。
一、修改 /std/user/autoload.c
讓使用者帶著東西離線後再登入,東西還是會在身上,也就是可儲存離
線前帶在身上的物品,並新增物品可設定 sdata 的額外儲存資料功能。
sdata 在 sanc 目前是用來儲存認主資料,武防具只要有底下設定:
set("sdata",({"names"}));
則當玩家拿到認主的武防具時
set("names",ppl->query("name"));
這項資訊在玩家帶著該武防離線時會一起被儲存起來,下次登入時該武
防的認主資料就會一起被載入。
二、新增 /adm/daemons/runnumd.c
此即數字圖防機系統,底下是呼叫後會得到的結果範例:
> call /adm/daemons/runnumd;runnum
*
*****
** ** ***** ***** ******* * * ******
** * * * * ***** * *
* ***** ***** * * * *
* * * ******* * ******
* ***** ***** ** * * *
* * *
* ******* * ******
答案是:122892 <= 玩家並不會看到這個訊息只有 wiz 會看到
> call /adm/daemons/runnumd;runnum;123456 <= 若給數字就顯示該數字的字圖
* * * *
* ***** ***** * * ****** ******
* * * * * * * *
* * * * ***** ***** ****** * *
* * * * * ******* * ****
***** ** ** * * * *
* * * * *
****** ******
答案是:123456
/adm/daemons/logind.c 的 get_name 函數、及 /std/user.c
的 cmd_hook 函數,都有寫如何引用數字圖防機系統的段落,
/include/runnum.h 檔則有定義如何使這兩個區段的防機能夠
work,使用者可自行參考。
三、修改 /adm/daemons/channeld.c
讓 semote 內的 $T、$M、$M1 等參數可以 work,以及當玩家
下 semote 相關指令時能顯示 semote 的內容,底下有 demo
四、修改 /std/user/tsh.c
主要是讓 !指令 可支援被 alias 過的指令,底下有 demo。
五、重寫 /cmds/std/_help.c
這個即 input_to 式的 help,在 sanc 類似 xhelp,但是比
xhelp 更好用。原先的 _help.c 則更名為 help.c,為 help
後面有接字串時實際會呼叫的物件檔案,沒接字串時就是使用
新的 help 功能。
help 預設會導向 /doc 目錄,所有的說明文件都將放在這裡
六、新增區域產生組合
/cmds/wiz/_drawmap.c x-x 型地圖繪圖指令
/cmds/wiz/_makearea.c x-x 型地圖產生及讀取指令
/cmds/wiz/_trans.c 數字圖轉實體區域房間指令
/d/area/00 新型態區域需包含的元素範例
│
└/d/area/area_room.h 關鍵定義檔
/d/area/area_room.c 關鍵繼承檔
/d/area/mapX 關鍵地圖檔
/d/area/script_X 關鍵腳本檔
/d/area/01/01 目錄下的東西,即是以上述組合所產生的區域
,寫這樣一個簡單的區域只需要 30 分鐘,而且與區域的大小
、規模無關。
換言之,有心的話一天要量產十幾個區域就跟吃飯喝水一樣簡
單。
底下亦會有 demo。
七、其它修改
對 /std/monster.c 及 /std/user.c 新增 query_attac_msg()
函數。
空手時:
> call me;query_attack_msg
OBJ(laechan /std/user#3)-> query_attack_msg() = "$N用砂鍋大的拳頭打向$O"
拿武器時
> wear dagger
你裝備上格鬥匕首(fight dagger).
> call me;query_attack_msg
OBJ(laechan /std/user#3)-> query_attack_msg() = "$N手握格鬥匕首戳向$O"
至於怪物則 follow set_verbs 的設定
> call rabbit;query_attack_msg
OBJ(小兔兔 /d/area/newbie/mob/rabbit1#12)-> query_attack_msg() =
"$N用兔牙咬向$O"
目前也實裝了戰鬥中會損血的設定。
增加了一些說明文件。會陸續增加。
新增 semote_search 指令
> semote_search 某人
come2
.tme
$O突然打起了一陣冷顫, 似乎某人正打算對$O做什麼詭異的事...
come
.tme
$O的眼前突然一黑, 接著幾記悶棍將$O打的趴在地上, 哇! 被"come"布袋了!
隱約中只聽到某人的奸笑聲...
八、待修改事項
目前 數字 指令 的指令格式因故失效,將於下個版本修正。
==========================================================
底下是相關 demo。
> l
[/d/area/newbie/room/003 ]
[寧靜的街道]
你注意到北邊有塊醒目的招牌, 那裡是一家[道具屋],
有不少稀奇古怪的東西, 可以去逛逛看喔. 南邊則是一
家[修理店], 專門修復損壞的物品.
明顯出口有: south, north, east, 和 west.
魁爾加鎮民(quarcha man)
魁爾加鎮民(quarcha woman)
> semote aluba
.me
$N把自己抓去ㄚ魯巴~~魯~~魯
.tme
$N與$O互相對望了一眼, 突然一起衝上前去, 分別拉住$T
的左右手後, 拉去羅德斯巨型高塔下阿~魯~巴~你聽到從遠處傳來$T
的哀叫聲!!ㄠㄨ~~ㄠㄨ~~
> aluba
你把自己抓去ㄚ魯巴~~魯~~魯
> aluba woman;man
你與 魁爾加鎮民 互相對望了一眼, 突然一起衝上前去, 分別拉住 魁爾加鎮民
的左右手後, 拉去羅德斯巨型高塔下阿~魯~巴~你聽到從遠處傳來 魁爾加鎮民
的哀叫聲!!ㄠㄨ~~ㄠㄨ~~
> chat *aluba woman;man
【閒聊】你與 魁爾加鎮民 互相對望了一眼, 突然一起衝上前去, 分別拉住 魁爾加鎮民
的左右手後, 拉去羅德斯巨型高塔下阿~魯~巴~你聽到從遠處傳來 魁爾加鎮民
的哀叫聲!!ㄠㄨ~~ㄠㄨ~~
> semote m3
.me
$N舉刀向兄弟們大呼:兄弟們!$M1!$M2!$M3!
.tme
$N舉刀向$O大呼:$O!$M1!$M2!$M3!
.mod
搶錢,搶糧,搶娘們
> chat *m3
【閒聊】你舉刀向兄弟們大呼:兄弟們!搶錢!搶糧!搶娘們!
> chat *m3 man:練功,打怪,賺錢
【閒聊】你舉刀向 魁爾加鎮民 大呼: 魁爾加鎮民 !練功!打怪!賺錢!
> chat *m3 man:,,,搶怪
【閒聊】你舉刀向 魁爾加鎮民 大呼: 魁爾加鎮民 !搶錢!搶糧!搶怪!
> semote chou10
.me
$N:『$M!$W你見過沒有?不要逼我出手吧!我發起瘋來, 連自己也怕呀!』
.tme
$N:『$O!這是什麼?$W你見過沒有?不要逼我出手吧!我發起瘋來, 連自己也怕呀!』
.mod
老伯
> wear dagger
你裝備上格鬥匕首(fight dagger).
> chat *chou10
【閒聊】你:『老伯!格鬥匕首你見過沒有?不要逼我出手吧!我發起瘋來,
連自己也怕呀!』
================================================================
防機範例
> more /include/runnum.h
#define RUNNUM_LOGIN_CHECK 3 <= login 時最多答錯幾次
#define RUNNUM_CMD_HOOK_CHECK 30 <= 每隔幾秒在下指令時就觸發防機
登入時
目前在線的使用者: Laechan.
請輸入您的角色帳號或是您欲註冊的新帳號: testing
* *
* ***** ****** *****
* * * * * ****** * * *
* * * * * * * *****
* * * * ****** * * ***** *
* * ***** * ***** * *****
* * * * * * * *
****** * *
****** *
上圖的數字是: 123456
你答錯了!!
上圖的數字是: 987654
你答錯了!!
上圖的數字是: 105642
你答對了!!
請輸入您的登入密碼:
下指令時
> look
* ** *******
* ******* * * * ***** * *
* * * ******* ***** * * * *
* * * * * * ***** * *
* * * ** * * * * *
* * * ******* ***** * * *
* ** * * * *******
* * ******* *
*******
上圖的數字是: 123456
你答錯了!!
> look
***** * ***** ****** *
* * * * * * *
* * * * * * ***** ***** * <= 數字跟前一次不會
* * * ***** * * * ** 一樣
* * * * ***** ***** *
* * * *
* * ******* * * *
*
* *
上圖的數字是: 104281
> look
[寧靜的街道]
北邊是鎮上唯一的[武器店], 提供了不少冒險者適用的
武器, 南邊的[防具店]賣的都是相當實用的裝備.
明顯出口有: south, north, east, 和 west.
====================================================================
> alias cc update $*
Alias: cc (update $*) altered.
> cc here
/d/area/wiz: Updated and loaded.
> h
1 note list
2 more /include/runnum.h
3 h
4 cc here <= 它會紀錄 alias 過的指令
5 h
> !cc
cc here
/d/area/wiz: Updated and loaded. <= 它會正確執行 update
> h
1 note list
2 more /include/runnum.h
3 h
4 cc here
5 h
6 cc here
7 h
============================================================
> help
[/doc/]
1.讀我 2.[concepts] 3.[daemons]
4.[driverdoc] 5.[etc] 6.[functions]
7.[help] 8.[LPC相關] 9.[mudlib]
10.[properties] 11.[wizhelp] 12.[技能]
13.[指令] 14.回上一層.
(已經有做一些設定)
請輸入: ?
數字 : 進入一個目錄或觀看一個說明檔案
0 或 < : 回上一層
del 數字 : 將某一項目遮蔽不顯示
name 數字 = 名稱 : 將某一項目取新的名稱
data : 顯示所在目錄有哪些設定資料
q : 離開
請按 enter 鍵繼續:
[/doc/]
1.讀我 2.[concepts] 3.[daemons]
4.[driverdoc] 5.[etc] 6.[functions]
7.[help] 8.[LPC相關] 9.[mudlib]
10.[properties] 11.[wizhelp] 12.[技能]
13.[指令] 14.回上一層.
請輸入: data
help_data["name"]["/doc/"]=
([ "lpc" : "LPC相關", "README" : "讀我" ]) <= 有設定的別名
help_data["del"]["/doc/"]= <= 有設定的無視項
({ "emote" })
請按 enter 鍵繼續...
[/doc/]
1.讀我 2.[concepts] 3.[daemons]
4.[driverdoc] 5.[etc] 6.[functions]
7.[help] 8.[LPC相關] 9.[mudlib]
10.[properties] 11.[wizhelp] 12.[技能]
13.[指令] 14.回上一層.
(所以 LPC相關 實際上是 lpc 目錄、讀我 實際上是 README 檔案,
以及它不會顯示 emote 目錄)
請輸入: name 6 = 函數
functions 已更名為 函數.
[/doc/]
1.讀我 2.[concepts] 3.[daemons]
4.[driverdoc] 5.[etc] 6.[函數]
7.[help] 8.[LPC相關] 9.[mudlib]
10.[properties] 11.[wizhelp] 12.[技能]
13.[指令] 14.回上一層.
(這樣第六項的 functions 就會被更名為 函數)
請輸入: del 10
properties 已刪除.
[/doc/]
1.讀我 2.[concepts] 3.[daemons]
4.[driverdoc] 5.[etc] 6.[函數]
7.[help] 8.[LPC相關] 9.[mudlib]
10.[wizhelp] 11.[技能] 12.[指令]
13.回上一層.
(這樣 properties 就會不見)
請輸入: 2
[/doc/concepts/] <= 這樣就會進入 concepts 目錄去看它裡面的內容
1.ChangeLog 2.README 3.attacks
4.banishing 5.bodies 6.domains
7.encumbrance 8.events 9.gamedriver
10.guilds 11.healing 12.invisibility
13.keys 14.locks 15.magic
16.money 17.permission.prop 18.permissions
19.player_killing 20.quests 21.races
22.rooms 23.security 24.shsh
25.stats_and_skills 26.virtual_objects 27.vrgrid
28.回上一層.
請輸入: 2 <= 看項目 2.README 的內容
This directory contains documents which describe the various features
of the MUD: eg, the magic system, the skill system, the virtual room
grid, etc. They describe what the objects are and how they work together
in a general sense rather than discussing the code specifically.
lfun documents are found in /doc/functions/lfuns.
請按 enter 鍵繼續...
[/doc/concepts/]
1.ChangeLog 2.README 3.attacks
4.banishing 5.bodies 6.domains
7.encumbrance 8.events 9.gamedriver
10.guilds 11.healing 12.invisibility
13.keys 14.locks 15.magic
16.money 17.permission.prop 18.permissions
19.player_killing 20.quests 21.races
22.rooms 23.security 24.shsh
25.stats_and_skills 26.virtual_objects 27.vrgrid
28.回上一層.
請輸入: 21 <= 看項目 21.races 的內容
The MudOS mudlib comes with player races but they do very little. They are
mostly there so that you have a foundation that you can build on more than
because we had any uses in mind.
The one thing that they DO do is affect player statistics. Statistics are
rolled up between 9 and 21, and all races except human have their statistics
modified by up to 3 points either way. All modifications are zero sum, so that
the total of stats is unaffected. Thus, the final range of possible statistics
is from 6 to 24. The statistics rolls and modifications take place in the file
adm/obj/login/cretion.c, if you want to modify them.
There are a lot of things you can do with races that are only being done
on a few MUDs. Perhaps the most common is languages: allow players of the
same race to send messages that aren't understood by members of other races.
Then you can allow dwarves to learn the elven tongue...
Another thing you can do is make areas of the MUD off-limits to some races,
ie have a dwarf cave city where elves and orcs are not permitted to enter. You
can also make the interactions of NPCs and players be race-dependent: for
example, have a wandering monster that only attacks orcs. You can make the
player's starting location depend on his race, so that you appear in the city
of your race.
There are lots more creative ways to use the race property and we encourage
you to go nuts with it. Having meaningful races is one way to add a lot to
the role-playing aspect of the game, to steer away from the hack-and-slash