text: // changename.c
  // created by doing
  
  inherit F_CLEAN_UP;
  
  int main(object me, string arg)
  {
      string id, new_name;
      object ob;
      string result;
      string *opts;
      int i;
      int opt_force;
  
      if (!SECURITY_D->valid_grant(me, "(arch)"))
          return 0;
  
      if (!arg)
          return notify_fail("你要修改哪一个玩家的中文名字？\n");
  
      // 强制修改名字的标志
      opt_force = 0;
      opts = explode(arg, " ");
      for (i = 0; i < sizeof(opts); i++)
      {
          if (opts[i] == "-f")
          {
              opt_force = 1;
              opts[i] = 0;
          }
      }
  
      // 判断完毕选项以后重新判断参数
      opts -= ({0});
      arg = implode(opts, " ");
  
      if (sscanf(arg, "%s %s", id, new_name) == 2)
      {
          ob = find_player(id);
          if (!objectp(ob))
              return notify_fail("这个玩家不在线上。\n");
  
          if (!LOGIN_D->check_legal_name(new_name, 8))
              return 0;
  
          result = NAME_D->change_name(ob, new_name, opt_force);
          if (result)
          {
              write(result);
              if (opt_force)
                  write("系统强制修改了 " + id + " 的名字。\n");
          }
          else
              write("成功的修改了 " + id + " 的名字。\n");
          return 1;
      }
      else
          return notify_fail("格式：changename [-f] <玩家ID> <新名字>\n");
  }
  
  int help(object me)
  {
      write(@HELP
  指令格式 : changename [-f] <玩家ID> <新名字>
  
  更改玩家的中文名字，因为所有玩家的中文名字都记录在系统中，所
  以如果直接修改将会造成数据不一致。如果采用了-f参数，则系统会
  强制修改名字而不顾及原先是否有重名或是相近的名字。
  
  HELP );
      return 1;
  }
  