作者laechan (小太保)
看板mud
标题Re: [闲聊] tmi2-mudlib 的更改
时间Thu May 29 21:28:47 2014
稍微聊一下 TMI-2 (LPMud) 的战斗流程,假设 ppl 与 mob
一对一单挑的话
ppl->kill_ob(mob);
mob->set_heart_beat(1);
↓
ppl 的 heart_beat 呼叫 continue_attack 函数
mob 的 heart_beat 呼叫 continue_attack 函数
↓
ppl 的 continue_attack 呼叫 execute_attack 函数
mob 的 continue_attack 呼叫 execute_attack 函数
战斗结束时,ppl 与 mob 会持续呼叫 continue_attack 但
是不会有作用:
void continue_attack() {
if (!any_attack) return;
那目前跑 /d/area 下的区域,与怪物战斗时会出问题,跟
monster.c 与 sanc 不同有关,在 TMI-2_v3 里头,代表着
hp 与 sp 的栏位分别是 hit_points 与 spell_points,而
不是 sanc 常用的 hp 与 sp,所以这些怪物一开始就没有
hp 及 sp,一进入战斗自然就瞬死产生屍体,然後很怪的是
怪物也不会消失这样。
下次发布的版本主要解决这个问题,并把 hit_points 以及
spell_points 全面替换为 hp 及 sp,并导入等级的概念,
其它有问题会替换的东西包括:
修改 wield_weapon 函数
修改 equip_armor 函数
新增 wear_all() 函数
修改 max_hp、max_sp 参数为 hp_src、sp_src 参数
透过 level 及 race 参数,会自动生出 mob 的 hp、sp 等
数值。
PS.下次发布新版本时这篇会删除,并编入 tmi2_v3_改 里
头,不过我稍微评估了一下,要改的东西非常多,当初
sanc 的 Int 花了半年大改特改才改出 sanc 的雏形..
所以要在今年内改出能拿来架的版本还是很困难的。
Laechan@Sanc
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.165.181.172
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/mud/M.1401370131.A.961.html
5/30 updated:
1.昨天有下载档案放在 win7 跑,改 driver.exe 的两个地方
a.与 xp sp3 相容
b.以管理员身份执行
2.在 winxp 下开始→搜寻→档案或资料夹
a.搜寻目录: d:\tmi2_fluffos_v3_改\lib
b.搜寻「关键字」: hit_points
http://imgur.com/OMQE83D.jpg
用记事本点开这 31 个档案,编辑→取代,把 hit_points
改为 hp 後存档。
(其实 /obj 下的可以不用改,因为以後不会用到这些 mob)
都改完後再重覆 2 确认所有的 hit_points 都改掉。
3.改搜寻 spell_points,重覆 2,共 16 个档案
http://imgur.com/sKG4DeI.jpg
(这两张图片也会放进 tmi2_v3_改 资料夹内)
4.删掉自己原先存在的两个玩家档 laechan.o
5.改好後重新启动 mud 确认没问题
a.启动无问题
b.登入无问题
c.创新角色无问题
d.下指令 data 确认已改为 hp, sp
http://imgur.com/DqDlu6D.jpg
5.仿 2-5 再修改 max_hp 及 max_sp 为 hp_src 与 sp_src,
那因为 hp_src 与 sp_src 是独特字串,所以就不 log 图
了(只要搜寻+取代,就能换成自己想用的字串)
PS.hp_src 及 sp_src 为 sanc 使用的参数
6.把 /adm/daemons/newuserd.c 里面的两行改掉
player->set("hp_src", hp); // , MASTER_ONLY);
player->set("sp_src", sp); // , LOCKED);
7.完成暂时的 chat 及 chatlog 指令
8.完成暂时的 recall 指令
9.目前下载档已更换为 0530 这个版本
a.创了自己的角色後,修改 /include/config.h 把 AUTO_WIZHOOD
移除,之後新创的角色就不会带 wiz 指令权限
b.修改 /adm/etc/groups 把 "laechan" 改成自己想用的 id
该 id 就能具有 root 权限(要在执行 a 之後做)
c.call me;set;"wizard";1
d.重开 mud, 这样自己的 id 就能具有 root 权限
※ 编辑: laechan (210.61.157.53), 05/30/2014 12:00:25
1F:→ laechan :端午节後目标还是以战斗系统大改为主 210.61.157.53 05/30 12:12
2F:→ laechan :还有将ob_data替换为data,补入semote 1.165.181.172 05/30 16:40