entrance.h

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

H
200
字号
//Cracked by Kafei#define CANGKU __DIR__"cangku"void full_all(object me) {    if( !living(me) ) me->revive(0);    me->set("eff_jing", (int)me->query("max_jing"));    me->set("jing", (int)me->query("max_jing"));    me->set("eff_qi", (int)me->query("max_qi"));    me->set("qi", (int)me->query("max_qi"));    me->set("jingli", (int)me->query("max_jingli"));	 me->set("neili", (int)me->query("max_neili"));	 me->set("food", (int)me->max_food_capacity());	 me->set("water", (int)me->max_water_capacity());	 me->remove_all_killer();	 me->clear_condition();}
int relogin_player(object me)
{
		  object env, link_ob, obj;

		  if( !me ) return 1;
		  if(!objectp(me))return 1;
		  if(!userp(me))return 1;

		  env = environment(me);
		  if(!env){
				 if( me->query("sjsz/red") )
				{
					me->move("/d/bwdh/sjsz/west_xiangfang.c");
				}
				else if( me->query("sjsz/white") )
				{
					me->move("/d/bwdh/sjsz/east_xiangfang.c");
				}
				env = environment(me);
		  }

		  // Save the data and exec the player to his/her link object.
		  me->save();

		  // First, create the new body.
		  link_ob = me->query_temp("link_ob");
		  if(!link_ob)return 0;

		  obj = LOGIN_D->make_body(link_ob);
		  if (!obj) return 0;

		  exec(link_ob, me);
		  destruct(me);

		  // Restore new body and exec to it via enter_world in LOGIN_D
		  obj->restore();
		  LOGIN_D->enter_world(link_ob, obj, 1);

		  obj->move(env);
		  obj->delete("sjsz/is_updating");
		  return 1;
}

int update_player(object me)
{
		  object env, link_ob, obj;

		  if( !me ) return 1;
		  if(!objectp(me))return 1;
		  if(!userp(me))return 1;

		  call_out("relogin_player",1,me);
		  return 1;
}
void go_xiangfang() {    object *inv, me=this_player();
    int i;

    inv = all_inventory(me);
    for(i=0; i<sizeof(inv); i++) {
       if( inv[i]->is_character())continue;
        destruct(inv[i]);
    }

	 if( me->query("sjsz/is_updating") )return;
	 /*	 object me = this_player();
	 object *inv;
	 object *old_basket, *basket;
	 object cangku;
	 int i;

	 inv = all_inventory(me);	 basket = allocate(sizeof(inv));	 cangku = find_object(CANGKU);	 if (! objectp(cangku)) {		  cangku = load_object(CANGKU);		  if (!objectp(cangku)) {				message_vision("$N请告诉 wiz: cangku not found\n", me);				return;		  }	 }	 for (i=0; i<sizeof(inv); i++) {		  		  if ( inv[i]->query("id") != "yu di"  ) { // leave yudi/bu dai etc.				basket[i] = inv[i];				inv[i]->move(cangku);				message_vision("$N将一" + inv[i]->query("unit")+ inv[i]->query("name")+"交给小厮。\n", me);		  }		  else				basket[i] = 0;	 }	 old_basket = cangku->query("basket/" + me->query("id"));	 if (arrayp(old_basket)) basket = basket + old_basket;	 cangku->set("basket/" + me->query("id"), basket);
	 */
	 me->set("sjsz/fighting", 1);	 me->set("sjsz/is_updating",1);	 update_player(me);	 return;}void back_stuff(string id)
{
	object *inv, cangku, *basket;
	int i;
	object player;

	return;

	player = find_player(id);
	if(!player)
	{
	  message_vision(NOR"主持人说:咦,"+id+"不见了?好,东西统统归我了!主持人忍不住奸笑了几声。\n");
	  return;
	}


  cangku = find_object(CANGKU);
  if (! objectp(cangku)) {
	 cangku = load_object(CANGKU);
	 if (!objectp(cangku)) {
		message_vision("$N请告诉 wiz: cangku not found\n", player);
		return 0;
	 }
  }

  basket = cangku->query("basket/"+player->query("id"));

  if (basket) {
	 for (i=0; i<sizeof(basket); i++) {
		if (objectp(basket[i])) {
		  basket[i]->move(player);
		  message_vision("$N从主持人手里拿回一"+
					 basket[i]->query("unit")+
					 basket[i]->query("name")+"。\n", player);
		}
	 }
	 cangku->delete("basket/"+player->query("id"));
  }
  else message_vision("主持人说:$N什么也没存在我这里,可别赖我贪污喔!\n", player);

}

void out_xiangfang() {
	 object me = this_player();	 object *inv, cangku, *basket;	 int i;	 string id;

	 return;	 if ( objectp(me) && me->query("sjsz/fighting") ) {		  me->remove_all_killer();		  me->clear_condition();		  inv = all_inventory(me);		  for (i=0; i<sizeof(inv); i++) {				if ( !inv[i]->query_autoload() && inv[i]->query("id") != "bu dai" ) {					 message_vision(NOR"$N把从擂台取的"+inv[i]->query("name")+"还给主持人。\n", me);					 destruct(inv[i]);				}		  }		 me->delete("sjsz/fighting");		 id = me->query("id");		 call_out("back_stuff",2,id);
		 full_all(me);
		 update_player(me);
	 }	 return;}


⌨️ 快捷键说明

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