作者laechan (小太保)
看板mud_sanc
标题[圣殿] 马匹修改公告
时间Fri Sep 25 16:52:30 2009
不确定能改到哪,所以边改边贴。後续再做的修改会以回文的方式
继续。
一、修改 /std/horse.c (备份档在 /std/horse.980925)
create 函数加设 data["no_attack"] = 1;
二、修改 /adm/daemons/mob_d.c
新增底下函数..
int replace_to_horse(object tar,string names,int trust)
horse_name 用来控制要 clone /d/obj/horse/ 下
哪一匹马出来
names 认主设定值
trust 信赖度设定值
三、假设 /d/obj/horse/ass.c 为小毛驴,在成功驯服它之後将会
有底下的类似判断式..
names=this_player()->query("name"); // 读取驯服者的 name
trust=count_trust(); // 计算信赖度
if(replace_to_horse(this_object(),names,trust)>0) // 代表替换成功
this_object()->remove();
return 1;
在 die 函数的情况则是..
::die();
return 1;
1)假若 this_object()->remove(); 先被执行,自然就没有下面
::die(); 的问题.
2)假若 this_object()->remove(); 没被执行,代表替换马匹的
过程产生问题而失败时,就执行底下的 ::die(); 也就是马匹
的原死亡过程。
四、因此,接着要进行的工作就是为所有马匹进行命名,以及档案的
拷贝工作。以 ass.c 为例,我预计在 /d/std/horse/ 目录下建
立两种档案:ass.c 与 old_ass.c
old_ass.c : 原先的小毛驴. 档案会 copy 到这里, 然後原始档
案处就 inherit old_ass.c
ass.c : 实际继承 HORSE 的 ass
这样即可达到马匹控管的目的。
另外,我尽量让「没被修改到的马」可以维持原状,即你若原先能骑
它,那在修改的过程中只要它没被改到,你一样可以骑。
还有,mob 会无视一切的设定绝对可以骑马。这是避免某些有配置马
匹的 mob 出问题。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 编辑: laechan 来自: 61.225.162.9 (09/25 16:58)