⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 etang.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
//Cracked by Kafei// /d/bwdh/sjsz/etang.c
// 啸云虎坛
// by sdong 08/08/99

#include <ansi.h>
inherit ROOM;
#define BOARD "/clone/board/bwboard"
#include "sjsz_room.h"
string long_desc();
int do_withdraw(string arg);
int do_plant(string arg);

void create()
{
	set("short", HIW"啸云虎坛"NOR);
	set("long", (: long_desc :));

	set("exits", ([
		"north" : "/d/bwdh/sjsz/etower5",
		"down" : "/d/bwdh/sjsz/eting",
	]));

	create_room();
	setup();
}


void init()
{
  init_room();
  add_action("do_withdraw", "ba");
  add_action("do_withdraw", "withdraw");
  add_action("do_plant", "plant");
}


string long_desc()
{
  	string desc,temp;
	int nRank,i,j;

	if( query("flag") >0 )
	  	desc  = HIY"

		           /I______________I\\               "+HIC"|"+HIW"=====|"+HIY"
		         //||||||||||||||||||\\\\             "+HIC"|"+HIW" 武   |"+HIY"
		     T\\//IIIIIIIIIIIIIIIIIIIIII\\\\/T         "+HIC"|"+HIW"=====|"+HIY"
	             ^^^^"+HIG"||"NOR+HIY"^^^"+HIW"【啸云虎坛】"NOR+HIY"^^^"+HIG"||"+HIY"^^^^         "+HIC"|"+HIY"
		         "+HIG"||"NOR+HIY"__________________"+HIG"||"NOR+HIY"             "+HIC"|"+HIY"
			/||||||||||||||||||||||\\            "+HIC"|"+HIY"
		    T\\//IIIIIIIIIIIIIIIIIIIIIIII\\\\/T        "+HIC"|"+HIY"
	            ^^^^"+HIG"||"+HIY"^^^^^^^^^^^^^^^^^^^^"+HIG"||"+HIY"^^^^        "+HIC"|"+HIG"
			||                    ||            "+HIC"|"+HIW"
	  []___[]___[]__|[]___[]___||___[]___[]|__[]___[]___[]
	  |__________________|_|________|_|__________________|"+HIW"
             ||                                          ||
\n"NOR;
	else
	  	desc  = HIY"

		           /I______________I\\               
		         //||||||||||||||||||\\\\            
		     T\\//IIIIIIIIIIIIIIIIIIIIII\\\\/T       
	             ^^^^"+HIG"||"NOR+HIY"^^^"+HIW"【啸云虎坛】"NOR+HIY"^^^"+HIG"||"+HIY"^^^^
		         "+HIG"||"NOR+HIY"__________________"+HIG"||"NOR+HIY"
			/||||||||||||||||||||||\\            
		    T\\//IIIIIIIIIIIIIIIIIIIIIIII\\\\/T
	            ^^^^"+HIG"||"+HIY"^^^^^^^^^^^^^^^^^^^^"+HIG"||"+HIY"^^^^
			||                    ||            
	  []___[]___[]__|[]___[]___||___[]___[]|__[]___[]___[]
	  |__________________|_|________|_|__________________|"+HIW"
             ||                                          ||
\n"NOR;

  	return desc;
}

int do_withdraw(string arg) {
    object flag, me=this_player(), *obj;
    string type;
    int i, bGuarded = 0;

    if(!arg) return 0;
    if(me->is_busy()) return 0;
    if ( arg != "flag" && arg != "qi") return 0;

	if ( query("flag") <= 0 ) return notify_fail("没旗可拔。\n");
	if ( me->query("sjsz/white") > 0 ) return notify_fail("偷自己的旗?\n");
	
	message_vision(HIY"$N向旗杆跃起,想一把拔下旗子。\n"NOR, me);

	obj = all_inventory(environment(me));
	for(i=0;i<sizeof(obj);i++)	 {
			if( living(obj[i]) &&
			obj[i]->query("sjsz/team_name") != me->query("sjsz/team_name") 
			&& obj[i]->query("env/invisibility") < 1
				)
			{
				obj[i]->kill_ob(me);
				message_vision(HIR"$N急对$n喝道:“$n竟敢偷旗,看招!”\n"NOR, obj[i],me,me);
				me->kill_ob(obj[i]);
				bGuarded = 1;
			}
	 }

	 if( !bGuarded )
	 {
	    flag = new("/d/bwdh/sjsz/obj/flag");
	    flag->set_name(query("team_name")+"大旗", ({ "flag" }) );
	    if(flag->move(me)) {
        	message_vision(HIG"$N一把扯下了大旗,高高举起。\n"NOR, me);
		set("flag",0);
	    } else {
        	destruct(flag);
	    }
	   CHANNEL_D->do_channel(this_object(), "rumor",
		"听说"+me->name()+"夺走了"+query("team_name")+"的大旗!" );		

	}
	

    return 1;
}

int do_plant(string arg) {
    object flag, me=this_player(), *obj;
    string type;
    int i, bGuarded = 0;
    object board;
    mapping entryA, entryB;
    int scoreA,scoreB;

	 board =  find_object(BOARD);
	 if (!objectp(board)) {
		  board = load_object(BOARD);
		  if (!objectp(board))
				return notify_fail("找不到团体赛成绩版。\n");
	 }
	 entryA = board->query("team/" + board->query("east"));
	 entryB = board->query("team/" + board->query("west"));
	 if(!entryA || !entryB )return notify_fail("现在没有比赛。\n");
	 scoreA = entryA["this_score"];
	 scoreB = entryB["this_score"];


    if(!arg) return 0;
    if(me->is_busy()) return 0;
    if ( arg != "flag" && arg != "qi") return 0;

	if ( query("flag") > 0 ) return notify_fail("旗杆上已有旗了。\n");
	if ( !me->query("sjsz/white") ) return notify_fail("这可不是你的大本营。\n");

	flag= present("flag",me );
	if(!flag)return notify_fail("你手中没旗可以插。\n");

	if( flag->query("name") != query("team_name")+"大旗"  ) 
		return notify_fail("自己的大本营怎么能插人家的旗?\n");

	
	message_vision(HIY"$N把大旗哗啦啦展开,插上了旗杆。\n"NOR, me);

	destruct(flag);

	set("flag",1);

	CHANNEL_D->do_channel(this_object(), "rumor",
		"听说"+me->name()+"将大旗插回了大本营!" );		

	me->add("sjsz/flag",1);
	me->add("sjsz/bw_score",1000);
	me->add("sjsz/this_flag",1);
	me->add("sjsz/this_score",1000);
	if( me->query("sjsz/white") )scoreA += 1000;
	else if( me->query("sjsz/red") )scoreB += 1000;
	entryA["this_score"]=scoreA;
 	entryB["this_score"]=scoreB;

	board->set("team/" + board->query("east"),entryA);
	board->set("team/" + board->query("west"),entryB);

	board->save();
    return 1;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -