shidui.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 150 行
C
150 行
#include <ansi.h>inherit ROOM;string* obj = ({ __DIR__"obj/book1", __DIR__"obj/book2", __DIR__"obj/book3", __DIR__"obj/book4",});void create(){ set("short", "乱石堆"); set("long", @LONG这里四周所围全是巨石,地上铺满了凌乱的碎石子,象是被人击打巨石所打下来的碎块。正中一块平滑的青石板上蹲着一只雪白的蛤蟆。地下乱七八精有一大堆东西,你好像可以找找(find)看。LONG); set("objects", ([ __DIR__"npc/chanchu" : 1, ])); set("item_desc", ([ "stone": "\n这些巨石都有凹面,看得出是被人拿来练掌力用的。\n", ])); set("outdoors", "白陀山"); setup(); }void init(){ object me = this_player(); if(!me->query_temp("baituo_yun") && me->query("id") != "xuanbing chanchu" && me->query("id") != "snowman"){ message_vision(HIW"玄冰蟾蜍突然纵起,对着$N一口毒气喷出!\n"NOR,this_player()); tell_object(me, HIB "你感到脑中一阵旋晕,立时昏了过去。\n" NOR ); me->unconcious(); me->move(__DIR__"yuanzi5"); tell_room(environment(me), me->name()+"突然从巨石之上直落下来,‘叭’的一声摔在地上!\n", ({ me })); if(me->query_skill("poison", 1) < 100) me->unconcious(); else me->add("max_neili", -5); } add_action("do_climb", "climb"); add_action("do_climb", "pa"); add_action("do_strike", "strike"); add_action("do_find", "find"); add_action("do_find", "zhao"); add_action("do_find", "fan");}int do_climb(string arg){ object me = this_player(); if( !arg || arg=="" ) return 0; if( (int)me->is_busy() || me->is_fighting()) return notify_fail("你正忙着呢。\n"); if (arg == "stone" ){ message_vision("$N手脚并用,爬上了巨石去,翻身一纵,已经跳了出去。\n", me); me->move(__DIR__"yuanzi5"); message("vision", me->name() + "从里面跳了出来。\n",environment(me), ({me}) ); return 1; } return 0;}int do_strike(string arg){ int improve, cost, hmglevel; object me = this_player(); improve = me->query_int() / 10 + random(me->query_int() * 5 / 6); hmglevel = me->query("oyf_hamagong"); if( !arg || arg=="" ) return 0; if( (int)me->is_busy() || me->is_fighting()) return notify_fail("你正忙着呢。\n"); if (arg == "stone" ){ if(!me->query_skill("hamagong", 1)) return notify_fail("你用手指推了推巨石,脸上露出一丝难堪的神色。\n"); if(me->query_skill("hamagong", 1) > 64 && hmglevel < 2) return notify_fail("你用手指推了推巨石,脸上露出一丝难堪的神色。\n"); if(me->query_skill("hamagong", 1) > 100) return notify_fail("你一掌向巨石推去,只听轰的一声,巨石被你掌力震成两半!\n"); cost = 600 / (int)me->query("int"); cost = 600 / (int)me->query("int"); if ((int)me->query("jing") < cost || (int)me->query("jing") < cost){ message_vision("$N用力过猛, 一不留神劲力反弹,震得$N晕了过去。\n",me); me->unconcious(); return 1; } message_vision("$N默诵蛤蟆功口诀,运力于双掌之上,一掌掌向巨石推去。\n"NOR, me); me->improve_skill("hamagong", improve); me->improve_skill("strike", improve/4); me->receive_damage("jing", cost); me->receive_damage("jing", cost); return 1; } return 0;}int valid_leave(object me){ me->delete_temp("baituo_yun"); return ::valid_leave(me);}int found(object me){ object ob = new( obj[random(sizeof(obj))] ); ob->move(me); message_vision("$N翻了半天,找到了" + ob->query("name") + "。\n", me); me->set_temp("baituo_find", 1); return 1;}int do_find(){ object me = this_player(); if( (int)me->query_temp("baituo_find") ) return notify_fail("你已经拿了东西了,走吧。\n"); if (me->query_skill("hamagong", 1) && me->query_skill("poison", 1) > 30){ message_vision("$N捏着鼻子在物品堆中乱翻着。\n", me); found(me); } else if (me->query_skill("poison", 1) > 50){ message_vision("$N捏着鼻子在物品堆中乱翻着。\n", me); if(random((int)me->query("kar")) < 15){ write("你吸了口气,突然觉得头中一阵眩晕。\n"); me->unconcious(); } else found(me); } else { message_vision("$N捏着鼻子在物品堆中乱翻着。\n", me); write("你吸了口气,突然觉得头中一阵眩晕。。。不好!你中毒了!\n"); me->apply_condition("snake_poison", me->query_condition("snake_poison")+22); me->unconcious(); } return 1; }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?