Re: [闲聊] tmi2-mudlib 的更改

楼主: laechan (挥泪斩马云)   2014-06-18 14:33:31
网页好读版: 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

Links booklink

Contact Us: admin [ a t ] ucptt.com