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写错了呢? set_temp,对应 query_temp
另外你缺了一个else query是调用档案里的固定参数,而调用临时参数要用query_temp
if else漏了else
话说啥东东和啥地方啊,那么恶心 另外,有一些纰漏
直接扣精,要考虑到精小于0的情况,扣死了就不对咯
要么就设一个,扣完后if精小于0,就unconcious,要么就扣精前看看够不够扣,不够直接unconcious thanks a lot,我还一直以为else可以缺省默认呢。
地点恶心吧~~还有更恶心的。。 等开学了,我写个更恶心的npc上来yct7
http://pkuxkx.com/forum/thread-4842-1-1.html 本帖最后由 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所知有限。。。 一群疯子{:7_279:}
页:
[1]