                             -=巫师写作心得=-
                                                           Fex   剪贴
*******************************************************************************

int move_all_players()
{
mixed cont;
object room,obj;
int i;
    room =environment(this_player());  //取出玩家所在房间//
    cont = all_inventory( room );   //取出那个房间内所有物件//
         for( i = 0 ; i < sizeof( cont ) ; i++ )
          {
          obj = cont[i];
          obj->move_player(目的地,"SNEAK");
          }
}

*******************************************************************************

init(){                     //怪物闻到玩家身上有"血"的味道，就给他死啦//
      if (this_player()->query_temp("blood")== 1)
      kill_ob(this_player());
}


die(){                   //怪物死了，在玩家身上，留下" 血 " //
        object killer;
        killer = query("last_attacker");
        killer->set_temp("blood", 1);
        ::die();
}

*******************************************************************************

  int  hit_wall() {
      int reg1,reg2;
      reg2=4;
      if ( this_player()->query("level")<20     )
         {
           write ("你撞到墙壁,眼冒金星,流了一点点血...\n") ;
              reg1= this_player()->query("hit_points");
              reg1=reg1-reg2;
              this_player()->set("hit_points",reg1);
              return 1;
             }
           write ("你穿过墙壁到另一个房间来了\n") ;
           say(this_player()->query("chi_name")+
               "说:你一定会认为我失恋了,但,这是穿墙术,不是我想不开!\n") ;
           return 0;
                   }

*******************************************************************************

函数//用处//范例

write() //写字串给一个玩家, 别人看不到 //

say()   //写字串给别人//

shout() //写字串给所有人//

die() //写在mob里的函数,当mob死了,就立刻执行此函数//

tell_object() //传字串给一个物件,人或房间//
tell_object(ob,"激流太大你被冲回来了！\n\n");

tell_room()  //传字串给房间//

message()

present() //用来确定物件是否存在另一个物件//
ob = present("canoe",find_object_or_load(VALE +"vale5"));
             // id //       // 另一个物件//

find_object_or_load()//由目录取出物件//
find_object_or_load(VALE +"vale5")
find_player(), find_living(), find_object()
  //找人//      //找生物//       //找物件//


move_player()//移动玩家//
this_player()->move_player(VALE + "rip3","SNEAK"); //移动时无讯息//
ob->move_player(VALE + "vale14",ob->query("id")+"被激流冲回来了！\n");

move_object()//搬移物件//

room =environment(this_player());  //取出玩家所在房间//
player =environment(this_object()); //取出物品所在玩家//

cont = all_inventory( room );   //取出那个房间内所有物件//

set(), query(), delete(), add()
设定   取出      消去      加成
exp=this_player()->query("combat_exp");
exp=exp +100;
this_player()->set("combat_exp",exp);
this_player()->add("max_kee",-10);
                     // 精
set_temp(), query_temp(), add_temp()//作用在玩家身上的暂存值//
this_player()->set_temp("climbed",this_player()->query_temp("climbed")+1);
this_player()->delete_temp("climbed");

random() //取乱数//

*******************************************************************************

若程式执行文字会出错,而原始程式没错的话,试用ctrl+alt+a变成英文模式看看那
错字附近有没有"\",如果有,再加个"\"上去,即重覆两个"\",这样文字就不会乱糟糟啰..

*******************************************************************************

下面的写法能将自己身上的鞋子(本来是装备上去的)变成未装备....
   present("boots",this_player())->set("equipped",0)
如果是武器,只要把"equipped"改成"wielded"即可.............
ps:1 表装备上去,0 表卸下

*******************************************************************************

如果在mobs中set("alt_corpse","/u/..../obj.c");
那怪物死时, 就会clone obj.c 并执行obj.c 中的set_name()

*******************************************************************************

