#include <ansi.h>
inherit NPC;

string *list=({"yg-putuo","yg-moon","yg-wzg",
        "yg-fangcun","yg-hell","yg-jjf",
        "yg-dragon", "yg-xueshan",
        "yg-wudidong",
        });

string *dirs = ({
        "/d/youxia/",           //wanmei
        "/d/nanhai/",           //putuo
        "/d/emei/",             //emei
        "/d/qujing/fengxian/",  //fengxian
        "/d/shaolin/",          //shaolin
        "/d/qujing/huangfeng/", //huangfeng
        "/d/qujing/baoxiang/",  //baoxiang
        "/d/qujing/pingding/",  //pingding yalong
        "/d/qujing/wuji/",      //wuji
        "/d/qujing/jindou/",    //jindou
        "/d/qujing/nuerguo/",   //nrg
        "/d/qujing/dudi/",      //dudi
        "/d/qujing/firemount/", //firemount
        "/d/qujing/jilei",      //jilei
        "/d/qujing/jisaiguo/",  //jisaiguo
        "/d/qujing/jingjiling/",//jjl
        "/d/qujing/xiaoxitian/",//xxt
        "/d/qujing/zhuzi/",     //zhuzi
        "/d/qujing/qilin/",     //qilin
        "/d/qujing/pansi/",     //pansi
        "/d/qujing/biqiu/",     //biqiu
        "/d/qujing/qinfa/",     //qinfa qinghua
        "/d/qujing/yuhua/",     //yuhua
        "/d/qujing/baotou/",    //baotou
        "/d/qujing/zhujie/",    //zhujie
        "/d/qujing/qinglong/",  //qinglong
        "/d/qujing/jinping/",   //jinping
        "/d/qujing/tianzhu/",   //tianzhu
        "/d/qujing/maoying/",   //my
        "/d/qujing/sanjie/",    //sanjie
        "/d/qujing/wuzhuang/",  //wzg
        "/d/dntg/hgs/", //hgs
});     

string work_me();
string cancel_me();
string random_place(object ob,object me);
 
void create()
{
set_name("袁天罡", ({"yuan tiangang", "yuan"}));
set("gender", "男性" );
set("age", 33);
set("long","袁天罡是天监台总管，听说他法术高深。
他为人正直仗义，脸上总是一股忧国忧民的神情。\n");
set("int", 30);
set("per", 25);
set("combat_exp", 5000000);
set("daoxing", 8000000);
        
        // discourage NK yuan.
set("eff_dx",1000);
set("nkgain",1);
set("env/wimpy",100);

set("attitude", "friendly");
set("title", "天监台正先生");

set_skill("unarmed",260);
set_skill("dodge", 250);
set_skill("parry", 150);
set_skill("spells", 200);
set_skill("baguazhou", 200);
set_skill("literate", 250);
set_skill("sword", 260);  
set_skill("changquan", 250);  

map_skill("spells", "baguazhou");
map_skill("unarmed", "changquan");

set("max_kee", 4000);
set("max_sen", 4000);
set("force", 5000);
set("max_force", 2500);
set("force_factor", 100);
set("mana", 6000);
set("max_mana", 3000);
set("mana_factor", 100);

set("chat_chance",5);
set("chat_msg", ({
                    name()+"叹道：生逢乱世，妖魔横行啊！\n",
                    name()+"问道：可有谁愿去为大唐灭妖吗？\n",
                    }));

seteuid(getuid());

set("inquiry", ([
        "寻宝" : (: work_me :),
        "取消" : (: cancel_me :),
        ]));

setup();
add_money("gold", 5);
carry_object("/d/obj/cloth/baguapao")->wear();
carry_object("/d/obj/weapon/sword/taomujian")->wield();
}

int accept_fight(object me)
{
write("袁天罡凛然道：学武乃是为了强身，不是打打杀杀！\n");
return 0;
}

int recognize_apprentice(object me)
{
if((int)me->query("yuan-learn"))
        return 1;
return notify_fail("袁天罡说道：您太客气了，这怎么敢当？\n");
}

int accept_object(object who,object ob)
{
if (ob->query("id")=="fan he")
        {
        if (((string)who->query("family/family_name")=="将军府"))
                {
                who->set("yuan-learn", 1);
                write("袁天罡笑道：将军看起来一表人才，以后定是人前出头之辈！
袁天罡略为沉思，又道：若将军有何问题，可随时和我商讨，天罡若是知晓，定会答复．\n");
                call_out("destroy", 1, ob);
                return 1;
                }
        if (((string)who->query("family/family_name")!="将军府"))
                {
                command("say 多谢多谢，我正饿着哪！");
                command("give 1 silver to " + who->query("id"));                      
                call_out("destroy", 1, ob);
                return 1;
                }
        }
else return 0;
}

void destroy(object ob)
{
destruct(ob);
return;
}

string random_place(object ob,object me)
{
int  i, j, k,l,t,flag =0;
object  npc,newob,*inv;
mixed*  file, exit;
string where;
        
if ( !ob || !me || !present(me,environment()) )
        return 0;

if( !sizeof(dirs) )  return 0;

i = random(sizeof(dirs));    
file = get_dir( dirs[i]+"*.c", -1 );
if( !sizeof(file) )
        return 0;

for(k=0;k<30;k++) 
        { 
        j = random(sizeof(file));
        if( file[j][1] > 0 ) 
                {
                newob = load_object(dirs[i]+file[j][0]);
                if ( newob )
                        {  
                        if( newob->query("no_fight") || newob->query("no_magic") 
                         || !(exit=newob->query("exits")) || sizeof(exit)<1 || !objectp(newob) )
                                continue;
                        inv = all_inventory(newob);
                        for(l=0;l<sizeof(inv);l++)
                                {
                                if ( objectp(inv[l]) )
                                        {
                                        if ( userp(inv[l])
                                          || functionp(inv[l]->die()) 
                                          || !living(inv[l]) )
                                                continue;
                                        else    {
                                                npc = inv[l];   
                                                flag++;
                                                break;
                                                }
                                        }
                                }
                                
                        if ( !flag || !npc || !objectp(npc) )
                                continue;               
                                                                            
                        if ( ob->move(npc) )
                                {
                                me->set("袁-送物/obj",ob);
                                me->set("袁-送物/start",time());
                                me->set("袁-送物/place",MISC_D->find_place(environment(npc)));
                                t = 60+me->query_kar()+random(me->query_kar());
                                me->set("袁-送物/time",t);
                                where = ob->short()+"目前流落在 ";      
                                where+= YEL+MISC_D->find_place(environment(npc))+NOR" 的";
                                where+= YEL" "+npc->name()+NOR"("+capitalize(npc->query("id"))+") 身上，";   
                                where+= "请这位"+RANK_D->query_respect(me)+"在 "HIW+FINGER_D->age_string(t)+" 内去将之寻来与吾。。。";
                                return where;
                                }       
                        }
                }
        }                               
return 0;
}

string work_me()
{
object obj, me;
string where;
mapping sw;

me = this_player();
sw = me->query("袁-送物");
if ( sw )
        return "不是让你去将"+(sw["obj"]?sw["obj"]->short():"东西")+"从"+(sw["place"]?sw["place"]:"那里")+"拿来交给我吗？";
        
obj = new("/d/game/give/item");
if ( !obj || !objectp(obj) )
        return "目前没有任务，你还是等会再来吧。";
        
where = random_place(obj,me);
if ( !where || !stringp(where) )
        return "目前还没有任务，你等会再来吧。";

return where;
}

string cancel_me()
{
return "hoho,等等先";
}
