作者laechan (小太保)
看板mud_sanc
标题[wizs] 未监定防具设定备忘
时间Sat Sep 7 05:00:10 2013
这篇是写给自己看的也是写给 wiz 们看的。
首先所有新型态区域的「群式怪物」都继承 /std/new_ob/gmonster.c
,而该档案有自订 die 函数,换言之只要是没有自订 die 函数的新型
态区域怪物,阵亡时都会 follow /std/new_ob/gmonster.c 的 die。
(当然它里头该 return 1 的都有 return 1)
在各新型态区域的 area.h 里会定义怪物的阵列资料串,其中会掉防具
的怪物它资料串里头会多一个东西,一般是 ({ }),有设定时就变成像
是 ({"cape"}) 这样。
比方某怪设定会掉 cape,这时它就会找 /std/new_ob/cape.c 并clone
出来当做未定名防具的实体档。
所以 /std/new_ob/ 目录下没有的防具要自己新增,以 cape 为例
/std/new_ob/cape.c 防具实体档
/std/new_ob/cape_set.c 防具设定档
more cape.c 即可知道它只有几行(无视 /* */),大部份的设定都放在
cape_set.c 这才是重点。
mixed return_ob_effect(string ftype)
{
switch(ftype)
{
case "锁妖塔":
switch(random(3))
{
case 0:return ({"syt" ,"雪羽披风", 50,-30, 50, 0, 30, 40, 0}); break;
case 1:return ({"syt" ,"银狐披肩", 45,-30, 40, 0, 40, 45, 0}); break;
case 2:return ({"syt" ,"白灵肩甲", 40,-30, 30, 0, 50, 50, 0}); break;
}
break;
default :return ({"sanc" ,"圣殿披肩", 50,-30, 40, 0, 40, 40, 0}); break;
}
}
所以其实很简单,比方说我希望菲里德古堡研究馆的某只有设定会掉
cape 的怪物会掉 cape,那就新增底下
case "菲里德古堡研究馆":
case 0:return ({"syt" ,"OOOO披风", 50,-30, 50, 0, 30, 40, 0}); break;
case 1:return ({"syt" ,"XXXX披肩", 45,-30, 40, 0, 40, 45, 0}); break;
case 2:return ({"syt" ,"$$$$肩甲", 40,-30, 30, 0, 50, 50, 0}); break;
break;
一般准备三种名字不一样(称呼也不一样)的 cape,比方你也可以仿
已设定的去给披风、披肩及肩甲,或给新的。
後面的七个数字第七个就是 Int,一般防具不给 +Int。
前六个数字依 score l 的顺序 Fel Str Dex Air Con Mag,代表初
始的属性。比方我可以设定研究院某 cape 是 +mag -con 的,那就
可以设成像是 30, 10, 50, 10, 50, -20, 0
而 identify 则有机率可以做底下的事情
完整: 五个正属性都在
无遐: 扣属性的消失
坚固: 增加 armor 值
高属: 随机挑属性高属
高属: 随机挑属性再高属
所以初始值不需要很高,可参考目前玩家有拿到「最高」属性的防
具,比方它是 arm 类,再去 more /std/new_ob/arm_set.c,依照
它是哪里产的(例如蛇窟或锁妖塔),再看它的名子(如臂甲),就可
以知道它的设定:
"蛇王臂甲", 0, 50,-50, 50, 50, 35, 0
然後要注意一件事就是要给「default」设定:
default :return ({"sanc" ,"圣殿臂甲", 50,-30, 40, 0, 40, 40, 0}); break;
searchobj 可发现有些玩家有圣殿臂甲,这是因为有些防具并不是
依正规做法产生的,这时防具就没有 ftype 标记,因此而需要一
个 default: 的判断。
理念就是让各 xxx_set.c 档来控管所有的新型态防具,而因为它
是 xxx_set.c 这时就能 call xxx_set;某函数 去读取其资料,就
能写管理用程式。(可参考 norr 写的 npc 指令做法)
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.61.157.53
1F:推 pssjim :早上五点还没睡 !! 09/07 06:39
2F:→ laechan :加班到五点半啊~ 09/07 11:54