mud吧 关注:20,937贴子:98,903
  • 8回复贴,共1

【求助】函数定义

只看楼主收藏回复

// 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*
求解决办法。别说批量替换了。。囧。。。


IP属地:山东1楼2014-11-07 14:34回复
    风云啊,应该是在/std/weapon/blade.c


    IP属地:黑龙江2楼2014-11-07 16:04
    收起回复
      2025-06-15 18:16:48
      广告
      又看到了你别的帖子,是要把fy4整合到fy3中,这太老太久了我实在记不清楚具体位置有没有变化或者在什么位置了(我记得fy系列这个结构一直没太大变化)。不过你看我说的weapon.h中的定义,就会找到了。


      IP属地:黑龙江5楼2014-11-10 04:40
      回复
        // 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);一样


        IP属地:山东6楼2014-11-10 08:45
        收起回复
          varargs void init_blade(int damage, int flag)
          这不就是init_blade的函数定义么。。。其他的一层一层沿着继承找就行了。
          至于你说的ini放在d下,完全不懂你的意思。


          IP属地:黑龙江7楼2014-11-10 10:36
          回复