zine 发表于 2010-8-26 16:32:58

jason请进,帮忙看一下这个2个文件。

//ghc 勾魂草
//created by zine 26 Aug 2010
inherit ITEM;
#include <ansi.h>

void setup()
{}

void init()
{
      add_action("do_fu", "fu");
}

void create()
{
      set_name(BLU"勾魂草"NOR, ({"gouhun cao", "cao"}));
      if (clonep())
                set_default_object(__FILE__);
      else {
                set("unit", "棵");
                set("long", "这是一颗勾魂草,传说中剧毒的东西。\n");
                set("value", 1);
                set("no_drop", 1);
                set("no_give",1);
                set("no_put",1);
      }
      setup();
}

int do_fu(string arg)
{
      object me;
      me = this_player();
      if (!id(arg))
                return notify_fail("你要吃什么?\n");


      else {
      me->set_temp("xxpass",1);
      me->add("jing", -500);

me->add("qi", 500);
       message_vision(HIG"$N吞下一颗勾魂草。\n"NOR, this_player());

   message_vision(HIG"$N觉得药性甚是奇怪,精神萎靡,气息却更加充盈。\n"NOR, this_player());
      me->start_busy(1);
      destruct(this_object());
                return 1;
      }
}


下一个房间
// Room: /clone/misc/xiaoxiang.c
// Date: by jason(尔好啊) Tue Nov 17 15:40:17 2009
// edit: by zine Aug 25 2010
inherit "/biwu/biwuroom";

void create()
{

set("short", "小巷");

set("long", @LONG
一条小巷,通向深处,蒙古人撤退之前,在这里布下了剧毒,竟然经年不散。
LONG

);

set("exits", ([ /* sizeof() == 3 */

"north" : __DIR__"northgate",

"south" : __DIR__"northdoor",

      "west" : __DIR__"shop",

"east" : __DIR__"dahu",

"northeast" : __DIR__"pool",

]));



set("no_clean_up", 0);

setup();
}
void init()
{

object me = this_player();

if (me->query("xxpass"))

{

me->add("jing", -200);
}
{

me->unconcious();
}
}



第一个物品加了个xxpass的mark,按说第二个地点有mark就应该减精,但我怎么试了还是直接昏
是我加mark写错了,还是判断mark写错了呢?

jason 发表于 2010-8-26 17:00:01

set_temp,对应 query_temp
另外你缺了一个else

zgbl 发表于 2010-8-26 17:48:57

query是调用档案里的固定参数,而调用临时参数要用query_temp
if else漏了else
话说啥东东和啥地方啊,那么恶心

zgbl 发表于 2010-8-26 17:50:23

另外,有一些纰漏
直接扣精,要考虑到精小于0的情况,扣死了就不对咯
要么就设一个,扣完后if精小于0,就unconcious,要么就扣精前看看够不够扣,不够直接unconcious

zine 发表于 2010-8-26 20:07:59

thanks a lot,我还一直以为else可以缺省默认呢。
地点恶心吧~~还有更恶心的。。

zgbl 发表于 2010-8-27 00:19:35

等开学了,我写个更恶心的npc上来yct7
http://pkuxkx.net/forum/thread-4842-1-1.html

hijacker 发表于 2013-5-8 22:58:08

本帖最后由 hijacker 于 2013-5-8 11:03 PM 编辑

me->start_busy(1);
destruct(this_object());
return 1;


fu的同时drop object(busy时可以drop,至少在北侠是这样),然后等1s过去后再get、fu、drop,如是循环……是不是可以这样呢?
还是说busy是在另一个线程里执行的?对LPC所知有限。。。

juventus 发表于 2013-5-8 23:10:03

一群疯子{:7_279:}
页: [1]
查看完整版本: jason请进,帮忙看一下这个2个文件。