mud 板


LINE

看板 mud  RSS
※ 引述《tenyfish (何时才有发言权?)》之铭言: : 趁心血来潮,就把 Mud lib 抓下来摸一摸了, : 约莫花了1个小时读new_wiz及directories等文件 : 然後在u/xxx/开了自己的workroom.c,写了几个房间这样。 : 以下是简单的心得,不一定有参考价值 : : 1.因为之前有摸过DS MUDLIB所以我直觉得就改完设定 : 开runmud.bat,然後就出错了(因为driver.exe改位置了) : 原来东西都放在bin里面了,而且都有中文注记,不错 : 2.档案资料架构相对DS mudlib简单,而且都有原文说明 : 这一点对於新人入门比较方面一点 : 3.DSmudlib会帮有权限的人直接开资料夹,而看起来TMI2要自己去开 : 不然home只会到一个clone的workroom,要是能自动开的话也不错。 : 有些还没摸出来,我就直接在这里提问了, : 懒的回我可以自己再摸看看。 : 4. 回wiz.c有指令吗 除了goto之外 : 5. 要如何设定home会到的room?是叫workroom.c吗? : 6. 这里有任何快速编辑当下房间的指令吗 : 例:在DSmudlib的 modify room long 这只是一个房间 : 只是一些当下的想法 是通常没那麽晚睡^^; tmi-2 的话,通常以 "laechan" 这个使用者为例,如果有 /u/l/laechan/workroom.c 的话,按 home 就是 move 到这 个物件,没有的话就是 move 到你看到的那个 clone 出来 的房间。 换言之你了解其运作原理的话 /cmds/wiz/_home.c 指令自 己写也可以,我在 tmi2_v3_改 写的一些指令就是这样子写 来的。 /d/area/wiz.c 则是用 recall 指令,而且是要 wiz 身份 ,非 wiz 身份则会到 /d/area/newbie/room/007.c,这个 修改日志有提到可参考。 workroom.c 不是重点,/cmds/std/_recall.c 才是,一边 看这指令执行的结果,一边 more 这个指令的内容,两相对 照就比较能了解它是干嘛的,了解其原理的话就能自己写。 区域房间的部份,我有更快的方法,我在 mud 板有张贴过 这个方法以及实际的 demo 结果,我预计等改到差不多了才 会把区域产生系统放进去。 不论是 roommaker 或是 modify、setroom、....这些做法 对我来说都太没效率了,万一不幸的你找不到人一起架站, 你只能一个人架的时候,tmi2_v3_改 就是「即便你只有一 个人」,你也能架站、能维护、能持续发展及扩充。 区域产生器 https://webptt.com/cn.aspx?n=bbs/mud/M.1320510743.A.4BB.html https://webptt.com/cn.aspx?n=bbs/mud/M.1320564310.A.5D9.html https://webptt.com/cn.aspx?n=bbs/mud/M.1321636486.A.0FA.html 新 mud 的设定 - 区域篇 https://webptt.com/cn.aspx?n=bbs/mud/M.1348040578.A.C4A.html 有问题都能尽量提出,在你原本的那篇提出也可,我都会 集中在这篇说明。 ================================================== 杀不了兔子是因为我就是那样子设定的,你可以参考前面 tmi2_v3_改 释出的相关文章。 http://webptt.com/cn.aspx?n=bbs/mud/M.1402366361.A.1FB.html 它的关键段落,放在 /adm/simul_efun/attack.c 里面的 normal_attack 函数,如果你有拿武器就有 damage 值那 或许就杀得死,你可以 clone /d/area/newbie/wp 目录 下的武器出来 wear,然後再打看看。 战斗系统也会有说明文件。 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.165.194.160
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/mud/M.1402849541.A.F0C.html ※ 编辑: laechan (1.165.194.160), 06/16/2014 00:29:22
1F:推 tenyfish :我clone了一把白瓦的blade杀 伤害740 1.162.184.31 06/16 00:33
以武器为例,/cmds/std/_wear.c 会看到最终它做了一个 wear_xx() 的呼叫,这个函数是写在 /std/weapon.c 里头 ,会写在这里是因为所有的武器都是 inherit 它。 (也就是 inherit WEAPON = inherit "/std/weapon.c" ) 函数里面一定会有一行就是 玩家->add_damages(武器的damage); 而它要怎麽跟指令对照呢? 就是你 wear 前 data 一下自 己,wear 後再 data 一下自己,就能发现有两个数值有改 变: damage(伤害) 与 hit_chance(命中) (或是 call me;query;"damage" ) 我要强调的是,「这是我为 tmi2_v3_改 所做的雏形规划 」,将来要拿 tmi2_v3_改 架站的人,是可以有自己的规 划的,就像我也不是照 tmi2_v3 原本的规划,而是自己写 一样。 tmi2 的目录规划很简单,核心目录说穿了就底下几个 /adm/daemons /adm/etc /adm/simul_efun /adm/obj /std /cmds /data 如果你会用 grep 指令的话你几乎能找到你想要找的任何 资讯,如果你不会用也没关系,因为 win 也提供依关键 字搜寻到档案的功能,所以你确实可以将重点摆在「我今 天看到了一项有中文的执行结果,我就用它来当关键字去 找出它到底是被写在哪里」,这是确实可以的。 比方我要找「巨大的伤害」是写在哪.. http://imgur.com/JpPBIek.jpg
※ 编辑: laechan (1.165.194.160), 06/16/2014 00:59:03
2F:推 tenyfish :然後我竟然忘了recall的存在 哈哈 1.162.184.31 06/16 00:50
3F:推 tenyfish :有照你的文件 用data确认伤害 114.37.55.240 06/16 01:04
4F:推 tenyfish :我先睡了谢谢l大几个指令摸了一下 114.37.55.240 06/16 01:09
5F:→ laechan :今天继续新增新的系统 210.61.157.53 06/16 09:14
6F:→ laechan :新增数字图防机程式 210.61.157.53 06/16 09:57
在 win 下,比方你进入某一个目录,按右键→排列图示依→修改日期, 就可以知道这个目录有被我动到什麽,以及更动的顺序是什麽,比方如 下: http://imgur.com/9uBO1zJ.jpg
像这样一排就知道我更动了啥,像最新的更动就是 _xxx2.c 那三个指 令,再之前就是 _note.c、_wear.c 这几个指令。 ※ 编辑: laechan (210.61.157.53), 06/16/2014 12:14:16
7F:→ laechan :今天进度不错,这礼拜至少可再释出1次 210.61.157.53 06/16 16:54
8F:→ laechan :明天会针对/doc/emote稍微做个整理 1.165.194.160 06/16 19:25
9F:→ laechan :并开始动货币 1.165.194.160 06/16 19:41
10F:推 tenyfish :确定有伤害还是杀不死兔子 111.243.135.25 06/16 23:20
那就检查 /adm/simul_efun/tell_room.c > grep -n show * [/adm/simul_efun/attack.c] 307: // 让 show 依照 result 是否 >0 309: show(me,tar,msg,result[0]); 312: // 内回的极限就在上面, 即内回 n 次,show 就会被呼叫 n 次 313: // show 的呼叫如果 [/adm/simul_efun/tell_room.c] 11:// show 最好是用 int 宣告 12:varargs int show(object me,object tar,string msg,int damage) 伤害是从 attack.c 的 normal_attack 函数呼叫 show 函数来执行的。 if(damage>0) tar->receive_damage(damage); 然後再看 /std/body/attack.c 的 receive_damage 函数 > grep -n receive_damage * [/std/body/attack.c] 15:// Added receive_damage() and receive_healing() systems, Watcher 3-27-93 117:int receive_damage(int damage) { 143:// positive healing calls. receive_damage() should be used for damage. dam = query("hp") - damage; if(dam < 0) dam = -1; // 暂时 abort by laechan@sanc 2014/06/01 // set("hp", dam); return 1; } 这就是为何打不死的原因。以上也是一种 trace 的 demo,你可以 参考,tmi2 有些东西是固定的,tmi2_v3_改 也不打算做太大的变 动,以上面来说呼叫 receive_damage 进行扣血就是 tmi2 的传统 ,我是从 sanc 也是这样做的来推测。 sanc 的 int 大改过 tmi2 mudlib,结构较 tmi2_v3 更简单,我 有考虑也做这样的大改。比方你 update -R /std/monster.c: > update -R /std/monster.c /std/priv.c: Updated and loaded. /std/object/ob_logic.c: Updated and loaded. /std/object/sec_ob.c: Updated and loaded. /std/body/more.c: Updated and loaded. /std/body/wild_card.c: Updated and loaded. /std/body/alias.c: Updated and loaded. /std/body/track.c: Updated and loaded. /std/body/attack.c: Updated and loaded. /std/living/messages.c: Updated and loaded. /std/coinvalue.c: Updated and loaded. /std/living/env.c: Updated and loaded. /std/object/contents.c: Updated and loaded. /std/living/edit.c: Updated and loaded. /std/living/skills.c: Updated and loaded. /std/living/spells.c: Updated and loaded. /std/body.c: Updated and loaded. /std/living.c: Updated and loaded. /std/monster: Updated and loaded. 但是在 sanc 则是 > update -R /std/monster.c /std/ob/mob.c: 更新及载入了. /std/mob/living.c: 更新及载入了. /std/mob/attack.c: 更新及载入了. /std/monster: 更新及载入了. int 这样的改版不仅是我所欣赏的,也是我想在 tmi2_v3_改 实 作的。 ※ 编辑: laechan (1.165.194.160), 06/17/2014 00:04:03
11F:→ laechan :今天应可完成新版的 help 210.61.157.53 06/17 12:05
12F:→ laechan :新的 help 指令完工 210.61.157.53 06/17 15:10
13F:→ laechan :drawmap,makearea,trans指令修改完毕 210.61.157.53 06/17 16:38
14F:→ laechan :明天会对战斗系统做更多的更动 210.61.157.53 06/17 17:21
15F:→ laechan :明天的目标就是完成区域生产架构 61.224.75.116 06/17 22:55







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灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP