mud 板


LINE

看板 mud  RSS
现在开始创建一个新角色. 1.登入自己的 mud. 2.输入一个 id, 例如我是输入 laechan, 然後按 y. 3.这时会出现一个给新玩家的讯息, 这个讯息存在 /adm/news/nplayer_intro 4.输入密码, 然後再输入一次做为确认 5.选性别(我选 male), 选种族(我选 human) 6.输入 email, 输入 [email protected] 就行了 7.输入 real name, 随便输入(像我是输入 laechan) 然後就可登入一开始的登入用房间 /d/TMI/rooms/quad.c more here 就可以看到该房间的档案, data here 则可以看到 这个房间的物件资料, LPmud一般是.. exits: 出口, mapping 格式, key name 是方向, 接的是房间档名 light: 房间亮度 long: 房间长叙述 short: 房间名 所以你可以用编辑器把这个房间改一改, 这样你的 mud 就有了 一个最起始的登入用房间. 再来的话,cd /adm/daemons, 下 ls 指令, 你会看到一些档案, 处理方才登入程序的档案有两个.. /adm/daemons/logind.c // 一般登入用档案 /adm/daemons/newuserd.c // 新玩家专用档案 它的意思就是,如果你是旧玩家,那从你进行登入、到成功登进 mud 的起始房间,大抵上都是由 logind.c 处理。 但如果 logind.c 判断到你是未注册的新玩家,它就会请 newuserd.c 来协助处理你的帐号新增流程(就是选性别, 种族那边). 然後 data me, 你就可以看到自己的一些 data 资料, 一般栏位 是这样的.. armor : 用来储存你穿上装备後的 armor 值资料. 比方某防具      shield 设定防御值 60, 那你装备上它之後就是 armor["shield"]=60 capacity : 负重最大值, 基本上每一件物品都有 mass 重量设定, 总重不能超过这个 capacity 值. cwd : 代表你现在按 cd. 指令会看到的目录名(也就是你目前       所处的工作目录  gender : 就是你的性别 id : 比方我选的 name 是 laechan, 那 id 这个栏位就是 ({"laechan"}) ip : 登入 ip. 因为我是 telnet localhost 5000, 所以 ip 栏位看到的就是 "127.0.0.1" 代表我是本地登入 last_location: 你上一个所处的房间在哪里(wiz 指令 back 用的) mass : 一般人物重量 max_sp : sp(精神力, 魔法力)的最大值 npc : npc 识别. 因为我是玩家不是 npc, 所以 npc = 0 race : 就是你的种族 reply : 若有玩家 tell 你什麽, 然後你 reply 回他, 回他的 讯息就会储存在这个栏位 stat : 玩家的属性数值, TMI-2 目前定义了几种数值 ([ "dexterity" : 17, "strength" : 13, "intelligence" : 16, "constitution" : 15 ]) time_to_heal: 几秒自我回复一次, 通常这个是由 /std/user.c 的 heart_beat 函数控制 weapon1 : 第一武器 weapon2 : 第二武器 . . . 一开始的资料栏位都是很单纯的. /cmds/std 则收集了一般玩家可以下的指令, 常见的 score, look, alias, get, drop, passwd, i(inventory) 等都在这里, LPmud 一 般的分法如下... /cmds/adm 管理者才能下的指令 /cmds/file 一般巫师可以使用的档案类指令 /cmds/ghost 玩家变成 ghost 状态(比方阵亡时)可以用的指令 /cmds/object 与物件相关的指令(如物件移动的 gate) /cmds/std 一般玩家可以使用的指令 /cmds/wiz 权限层级为 wiz 时可使用的指令 /cmds/xtra 权限层级为 elder wiz 时可使用的指令 定义权限的地方则放在 /adm/news/groups 档案内, more 他可以 看到几个东西 (root) cratylus (admin) (root):cratylus (adminaccess) (admin) 也就是说这个 mud 的最高管理者(root)它设定为 cratylus, 我 只要将它改成 laechan, 那我就是我自己 mud 的最高管理者. 再来管理者区(admin)的 (root):cratylus 它的意思, 就是root 当然是管理者的一员, 用 (root) 就代表把 root 区的所有人都 纳进来的意思, : 则是分隔号. 除此之外我亦把 cratylus 也设 为管理者的意思. 而在这个 mud 里头, adminaccess 则是更次一级的管理者的意 思. 像圣殿的分法就是 root、adm_c、adm、deep、wizard 分法可以照自己的意思, 不过刚开始都先 follow 它的预设值即 可. 所以你只要把自己的 id 加进 root 区, 然後重开 mud, 这 样你的角色就会自动变成最高级管理者, 接下来我们对我们的人物下 save, 再 quit, 则你的玩家档案会 被存在 /data/std 目录下, 有两个档案.. /data/std/connection/l/laechan.o // 储存登入用资讯 /data/std/user/l/laechan.o // 玩家资料的实际储存档 底下是在 connection 目录下的 laechan.o 档 #/std/connection.c name "laechan" password "doeaeo`f!jehbnbo`nchhfgndd`fbggnhmfndjnji" body "/std/user" email "[email protected]" real_name "laechan" ip "127.0.0.1" wizard 1 last_on 1311905037 password 即密码的部份, 它储存的是已编码过的. 接着用编辑器打开 user 目录下的 laechan.o, 然後找一行 "PATH":"/cmds/std:/cmds/object:/cmds/xtra:/cmds/file:/cmds/wiz" 这一行就是你登入 or 创造角色时, 系统自动配给你的 「你可以执行指令的范围」 所以虽然一开始创建的角色不是 wiz,却可以执行 wiz 指令,原因 就在於系统有把 wiz 区的指令配给你的缘故。 这是因为 /adm/daemons/newuserd.c 自动帮你做了 set("wizard",1); 的动作的缘故. /adm/daemons/newuserd.c static void get_real_name(string rn, object user, object body) { . . . #ifdef AUTO_WIZHOOD user->set("wizard", 1); write("AUTO_WIZHOOD="+identify(AUTO_WIZHOOD)+"\n"); body->set("PATH", AUTO_WIZHOOD); write("\t[You have been granted automatic wizard status]\n"); #endif /* AUTO_WIZHOOD */ . . } 中间那一段是说如果 /include/config.h 有定义 AUTO_WIZHOOD 的话,就执行 #ifdef ... #endif 之间的东西 user->set("wizard", 1); 设 wizard 标记 body->set("PATH", AUTO_WIZHOOD); 设 AUTO_WIZHOOD 到 PATH 但是 /include/config.h 所 #define AUTO_WIZHOOD 的东西却是 空的(undefined), 既然是空的为何会执行上面? 原因很简单, 因为就算是空的「仍然 #define 了 AUTO_WIZHOOD」, 所以 #ifdef AUTO_WIZHOOD 它就判断为真. 这时候, 虽然 PATH 是空的, 可是因为有 wizard 参数, 玩家在登入 时就会再呼叫 /std/user.c 的 init_commands 函数 /std/user.c static void init_commands() { string path; add_action( "cmd_hook", "", 1 ); path = query("PATH"); if (!path) { if ( wizardp(this_object()) ) path = NEW_WIZ_PATH; else path = USER_CMDS; set("PATH", path, MASTER_ONLY); } } 所以只要把 newuserd.c 的 #ifdef ... #endif 把他们整个 /* */ 掉, 就不会鸡婆地把每个新创的玩家角色都设为 wiz 了。 到这里至少.. 一、你已经可以新增管理者角色. 二、每个在你 mud 新增的角色, 其权限就只会是玩家. 三、你已经知道如何改登入画面、及玩家一开始登入的房间环境. 四、你也可以试着简化 newuserd.c 的流程, 比方如果你的 mud 不需要玩家输入 email 跟 real_name 的话, 那就可以让 newuserd.c 跳过这两个输入流程. Laechan --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 115.83.16.91







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP