// 战国 <* 版本 1.00 *>
// File: /cmds/adm/promote.c
// 99-12-10 21:32

#include <command.h>
inherit F_CLEAN_UP;

int main(object me, string arg)
{
        object ob;
        string old_status, new_status;
        int my_level, ob_level, level;
        
        if( me!=this_player(1) ) return 0;

        if( !arg || sscanf(arg, "%s %s", arg, new_status)!=2 )
                return notify_fail("指令格式：promote <使用者> <等级>\n");

        if( wiz_level(new_status) < 0 ) return notify_fail("没有这种等级。\n");


        if( wiz_level(me) < wiz_level(new_status) )
                 return notify_fail("你没有这个权力。");
  if( wiz_level(me) < wiz_level(ob) ) return notify_fail("你没有这个权力。");

        old_status = wizhood(ob);

        seteuid(getuid());
        if( !(SECURITY_D->set_status(ob, new_status)) )
                return notify_fail("修改失败。\n");

        message_vision("$N将$n的权限从 " + old_status + " 改为 " + new_status + " 。\n", me, ob);
        seteuid(getuid());
        ob->setup();
        ob->save();
if( wiz_level(new_status) > 0 )
{
        tell_object(ob,"系统开始更新你的身体，请退出稍后重新连线......\n");
              tell_object(ob,"\n恭喜你晋升为新巫师，你的身体正在脱胎换骨...\n");
                if(file_size("/wiz/"+ob->query("id"))!=-2)
                {
                        mkdir ("/wiz/" + ob->query("id"));
                        tell_object(ob,"你的工作目录(/wiz/"+ob->query("id")+")已经自动建立了...\n");
                         cp("/wiz/test/workroom.c", "/wiz/"+ob->query("id")+"/workroom.c");
                        ob->set("cwd","/wiz/"+ob->query("id"));
                }
                tell_object(ob,"现在正在帮你打开本MUD重要的频道...\n");
                ob->set("channels", ({ "chat","rumor","gbwiz","gwiz","wiz","sys","debug", "es", "err"}) );
ob->set("wiz");
                tell_object(ob,"你的闲聊频道(chat)被打开了...
你的谣言频道(rumor)被打开了...
你的巫师频道(wiz)被打开了...
你的系统频道(sys)被打开了...
你的调试频道(debug)被打开了...
身体更新完毕。\n");
}

if( wiz_level(new_status) < 1 )
{
        tell_object(ob,"系统开始更新你的身体，请退出稍后重新连线......\n");
                       {
                        rm("/wiz/"+ob->query("id")+"/workroom.c");
                        rmdir ("/wiz/" + ob->query("id"));
ob->delete("wiz");
           ob->set("channels", ({ "chat","rumor","es" }) );
     }
}

        return 1;
}

