【求助】函数定义
mud吧
全部回复
仅看楼主
level 7
风叛 楼主
// blade.c
#include <weapon.h>
#include <ansi.h>
inherit BLADE;
void create()
{
set_name(MAG"瀚海云烟"NOR, ({ "yunblade" }) );
set_weight(4000);
if( clonep() )
set_default_object(__FILE__);
else {
set("unit", "柄");
set("long", "这是一把银光雪亮的长刀,刀刃间隐隐有血光流动,
锋利无匹,映面生寒。\n");
// set("value", 0);
set("material", "iron");
set("wield_msg", "只听「铮」的一声,瀚海云烟脱鞘飞出,自行跃入$N
掌中。瞬时天际间风云变色,电闪雷鸣,弥漫着一片无边杀意。
\n");
set("unequip_msg", "瀚海云烟如有灵性,唰的一声飞回鞘内。\n");
}
::init_blade(100);
}
上边是个例子。
最后的 ::init_blade(100); 应该是从哪里定义的。我从别的版本找物件过来增加到自己版本上。这个“ ::init_blade(100); ” 我就没找到从哪里定义的。必须替换成 setup(); 才能够update。
我搜了别的版本的全部地方,没有找到定义位置。如果不替换就有如下错误:
执行时段错误:*Error in loading object */目录/目录/blade*
求解决办法。别说批量替换了。。囧。。。
2014年11月07日 06点11分 1
level 15
风云啊,应该是在/std/weapon/blade.c
2014年11月07日 08点11分 2
这个blade 那里也没有define这个init啊。 “ ::init_blade” weapon.h我都查过了。
2014年11月09日 07点11分
level 15
又看到了你别的帖子,是要把fy4整合到fy3中,这太老太久了我实在记不清楚具体位置有没有变化或者在什么位置了(我记得fy系列这个结构一直没太大变化)。不过你看我说的weapon.h中的定义,就会找到了。
2014年11月09日 20点11分 5
level 7
风叛 楼主
// weapon.h
#ifndef __WEAPON__
#define __WEAPON__
#define DEFAULT_WEAPON_LIMB "右手"
#define TWO_HANDED 1
#define SECONDARY 2
#define EDGED 4
#define POINTED 8
#define LONG 16
#define NO_HANDED 32
#define UNARMED_TWO_HANDED 64
#define AXE "/std/weapon/axe"
#define BLADE "/std/weapon/blade"
#define DAGGER "/std/weapon/dagger"
#define FORK "/std/weapon/fork"
#define HAMMER "/std/weapon/hammer"
#define SWORD "/std/weapon/sword"
#define STAFF "/std/weapon/staff"
#define SPEAR "/std/weapon/spear"
#define THROWING "/std/weapon/throwing"
#define WHIP "/std/weapon/whip"
#define RING "/std/weapon/ring"
#define FIST "/std/weapon/fist"
#define STICK "/std/weapon/stick"
#define W_AXE "握"
#define W_BLADE "提"
#define W_DAGGER "拿"
#define W_FORK "执"
#define W_HAMMER "握"
#define W_SWORD "提"
#define W_STAFF "执"
#define W_SPEAR "执"
#define W_THROWING "抓"
#define W_WHIP "挥"
#define W_RING "戴"
#define W_FIST "戴"
#define W_STICK "握"
#endif
// blade.c
#include <weapon.h>
inherit WIELD;
void create() {
if(clonep(this_object())) {
destruct(this_object());
return notify_fail("CAN NOT CLONE STARNDARD OBJECT!\n");
}
}
varargs void init_blade(int damage, int flag) {
if(!clonep()) {
set("weapon_prop/damage", damage);
set("flag", (int)flag | EDGED);
set("weapon_wielded", W_BLADE);
set("skill_type", "blade");
if(!query("verbs")) {
set("verbs", ({ "斩", "砍", "劈" }) );
}
}
::init_wield();
}
以上。倒数第二行 ::init_wield();
和::init_blade(100);一样
2014年11月10日 00点11分 6
额。。。我去。。。 void init() { ::init(); if( !query_heart_beat(this_object()) ) set_heart_beat(1); }
2014年11月10日 00点11分
这个ini放在d文件夹下。。
2014年11月10日 00点11分
level 15
varargs void init_blade(int damage, int flag)
这不就是init_blade的函数定义么。。。其他的一层一层沿着继承找就行了。
至于你说的ini放在d下,完全不懂你的意思。
2014年11月10日 02点11分 7
1