tie-ren.c

来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 154 行

C
154
字号
// tie-ren.c 铁人inherit NPC;inherit F_CLEAN_UP;void create(){    set_name("铁人", ({ "tie ren", "tie", "steel man", "steel" }) );	set("gender", "男性" );	set("age", 30);    set("long", "一个练功用的比武铁人\n");	set("attitude", "heroism");    set("str", 30);	set("cor", 25);	set("cps", 25);	set("int", 25);    set("max_qi", 2000);    set("eff_qi",2000);    set("qi", 2000);	set("max_jing", 100);	set("jing", 100);	set("neili", 300);	set("max_neili", 300);	set("jiali", 10);    set("shen_type", -1);    set("combat_exp", 10000000);    set_skill("force", 99);    set_skill("unarmed", 99);    set_skill("dodge", 99);    set_skill("parry", 99);	set("fight_times", 0);		setup();        }int accept_fight(object ob){	object me;	mapping hp_status, skill_status, map_status, prepare_status;	string *sname, *mname, *pname;	int i, temp;	me = this_object();	if (is_fighting()) return 0;	if (me->query("damaged"))        return notify_fail("这个铁人已经被打坏了! \n");	if (random(me->query("fight_times")) >= 10) {		me->set("damaged", 1);        return notify_fail("这个铁人已经被打坏了! \n");	}	if (me->query("last_fighter") == ob->query("id"))        return notify_fail("你刚跟这个铁人练过功! \n");	me->set("last_fighter", ob->query("id"));	me->add("fight_times", 1);	remove_call_out("renewing");		call_out("renewing", 300 + random(300), me);	/* delete and copy skills */	if ( mapp(skill_status = me->query_skills()) ) {		skill_status = me->query_skills();		sname  = keys(skill_status);		temp = sizeof(skill_status);		for(i=0; i<temp; i++) {			me->delete_skill(sname[i]);		}	}	if ( mapp(skill_status = ob->query_skills()) ) {		skill_status = ob->query_skills();		sname  = keys(skill_status);		for(i=0; i<sizeof(skill_status); i++) {			me->set_skill(sname[i], skill_status[sname[i]]);		}	}	/* delete and copy skill maps */	if ( mapp(map_status = me->query_skill_map()) ) {		mname  = keys(map_status);		temp = sizeof(map_status);		for(i=0; i<temp; i++) {			me->map_skill(mname[i]);		}	}	if ( mapp(map_status = ob->query_skill_map()) ) {		mname  = keys(map_status);		for(i=0; i<sizeof(map_status); i++) {			me->map_skill(mname[i], map_status[mname[i]]);		}	}	/* delete and copy skill prepares */	if ( mapp(prepare_status = me->query_skill_prepare()) ) {		pname  = keys(prepare_status);		temp = sizeof(prepare_status);		for(i=0; i<temp; i++) {			me->prepare_skill(pname[i]);		}	}	if ( mapp(prepare_status = ob->query_skill_prepare()) ) {		pname  = keys(prepare_status);		for(i=0; i<sizeof(prepare_status); i++) {			me->prepare_skill(pname[i], prepare_status[pname[i]]);		}	}		hp_status = ob->query_entire_dbase();		me->set("str", hp_status["str"]);		me->set("int", hp_status["int"]);		me->set("con", hp_status["con"]);		me->set("dex", hp_status["dex"]);		me->set("max_qi",    hp_status["max_qi"]);		me->set("eff_qi",    hp_status["eff_qi"]);		me->set("qi",        hp_status["qi"]);		me->set("max_jing",  hp_status["max_jing"]);		me->set("eff_jing",  hp_status["eff_jing"]);		me->set("jing",      hp_status["jing"]);		me->set("max_neili", hp_status["max_neili"]);		me->set("neili",     hp_status["neili"]);		me->set("jiali",     hp_status["jiali"]);		me->set("combat_exp",hp_status["combat_exp"]);	return 1;}void renewing(object me){	me->delete("last_fighter");}

⌨️ 快捷键说明

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