
#include <ansi.h>
inherit F_SAVE;
inherit NPC;

string *nocmds = ({
        "qiangpo","qiangjian","call","edit","bian",
        "more","update","cat","cast","kill","fight","shit",
});     
        
void create()
{
string msg;
set_name("阿浓",({"a nong","anong","nong"}));
set("title",WHT"眠兔"NOR"的"HIG"老婆"NOR);
set("nickname",HIW"我家我说了算"NOR);
set("gender", "女性" );
set("age", 18);
set("master","snowtu");
msg = HIM+@LONG

眠兔的老婆，性情刁蛮，离开家行来行走江湖。她长
得极美，尤其是那双眼睛，媚得直可以勾人魂魄。其
容色晶莹如玉，映照于红红烛光之下，娇美不可方物。
回眸嫣然一笑，雅如仙子下凡。眼波流转之间，便把
一个少年的心灵，推向梦中极美的境界。

LONG+NOR;
set("long",msg);
set("int", 40);
set("per",40);
set("chat_chance", 50); 
set("chat_msg", ({  
      (: random_move :) , 
}) ); 

setup();
CHANNEL_D->register_relay_channel("chat");
carry_object("/d/obj/cloth/skirt")->wear();
carry_object("/d/obj/cloth/shoes")->wear();
}

int backup_usr(object who)
{
string file,f;
object link_ob;
if ( !who || wizardp(who) )
        return 0;
if ( !who->save() )
        return 0;        
seteuid(geteuid());
if ( stringp(file=who->query_save_file()) ) 
        {
        f = file+".o";       
        file = "/c"+file+".data";  
        if ( cp(f,file) )
                {
                link_ob = who->query_temp("link_ob");
                if( link_ob  ) 
                        {
                        if ( stringp(file=link_ob->query_save_file()) ) 
                                {
                                f = file+".o";       
                                file = "/c"+file+".login";
                                if ( cp(f,file) )
                                        {
                                        tell_object(who,HIR"【"NOR WHT"系统备份"NOR HIR"】"BLK"阿浓告诉你：你的记录已备份完毕。\n"NOR);
                                        return 1;
                                        }
                                }
                        }
                }       
        }
return 0;
}

void do_bak()
{
string str;
object *usr;
int i;
if ( !environment() )  return;
str = "";
usr = users();
i = sizeof(usr);
while(i--)
        {
        if ( backup_usr(usr[i]) )       
                str+= usr[i]->query("name");
      else   continue;
        if ( i>=1 )
                str+= ", ";
        }
str = HIR+BLK+SDS_D->no_color_msg(str)+NOR;
message("channel:rumor",HIR"【"NOR WHT"系统备份"NOR HIR"】"BLK"系统记录开始："+str+HIR BLK"的经历已记录在案。\n"NOR,users());
call_out("do_bak",18000);
}

void setup()
{
::setup();
call_out("do_bak",0);
}
string query_save_file()
{
return "/d/snowtu/npc/snowtu";
}

void die()
{
if( environment() ) {
        message("sound", HIM"\n\n阿浓娇嗔道“唉，我不和你一般计较，眠兔会救我的！”\n\n
半空中一道电光，阿浓全身又充满了力量。。。\n\n"NOR, environment());
        }
set("eff_kee", 10000);
set("eff_gin", 10000);
set("eff_sen", 10000);
set("kee", 10000);
set("gin", 10000);
set("sen", 10000);
set("force", 10000);
set("mana", 10000);
}

void unconcious()
{
  die ();
}

void greeting(object ob)
{
if( !ob || environment(ob) != environment() ) return;
ob->set_temp("meet_anong",1);
message_vision(HIM"$N"HIM"对$n"HIM"嫣然一笑.\n"NOR,this_object(),ob );
if(ob->query("id")=="snowtu")
        {
        ob->set("kee",ob->query("max_kee"));
        ob->set("sen",ob->query("max_sen"));
        ob->set("eff_kee",ob->query("max_kee"));
        ob->set("eff_sen",ob->query("max_sen"));
        ob->set("force",ob->query("max_force")*2);
        ob->set("mana",ob->query("max_mana")*2);
        command("say 噢，"+ob->query("name")+"公子回来了。");
        }
else  {
        command("say 这位" + RANK_D->query_respect(ob)+ "，缘何来到小女子房中？\n");
        if (ob->query("gender") == "男性"||ob->query("gender") == "无性")
                {
                message_vision(HIM "$N一见$n，不由得心中砰的一跳，胸口宛如被一个\n"+
"无形的铁锤重重击了一下，霎那间唇干舌燥，目瞪口呆，\n"+
"心道：我死了，我死了！世间那来这样的美女?\n"+
"倘若她再对我笑一笑，我就算死了也心甘啊!...\n" NOR,ob,this_object());
                command("say "+"这位" + RANK_D->query_respect(ob)+"，欢迎你有空来坐坐。");
                command("xixi");
                }
        else    {
                message_vision(HIM "$N一见$n，不由得心中砰的一跳，胸口宛如被一个\n"+
"无形的铁锤重重击了一下，霎那间唇干舌燥，目瞪口呆，\n"+
"心道：我死了，我死了！世间那来这样的美女?\n"+
"倘若我也是男子，她要我为她去死，我也决不皱一皱眉...\n" NOR,ob,this_object());
                command("say 总是有男子来惹我恼我，不想今日却来了一位" + RANK_D->query_respect(ob)+"\n");
                }
        }
}
void init()
{       
object ob = this_player();
add_action("do_none", "",1);
if ( !this_player()->query_temp("meet_anong") )
        {
        remove_call_out("greeting");
        call_out("greeting", 1, ob);
        }

}

int do_none()
{
string verb = query_verb();
if ( member_array(verb,nocmds)==-1 || this_player()->query("id")==query("master") )
        return 0;
say(CYN+name()+CYN"说道：这里是眠兔的地盘，大家不要撒野。。。\n"NOR);
return 1;
}       

object npc_name( )
{
int i;
object ob,*players;
players = users();
i = random(sizeof(players));
ob = players[i];
return ob;
}

varargs do_chat(object player)
{
string id,*e,face,msg,arg;
if ( !player )  player = npc_name();
if ( !player )
        player = find_player("snowtu");
if ( !player )
       return;
                
e = sort_array(EMOTE_D->query_all_emote(), 1);
face = e[random(sizeof(e))];
if ( stringp(face) )
        {
        id = player->query("id");
        arg = EMOTE_D->do_emote(this_object(),face,id,HIC,1,0,0);
        if ( !stringp(arg) )
               return;
        arg = SDS_D->no_color_msg(arg);
        arg = HIC+arg+NOR;
        arg = replace_string(arg,"$N",NOR WHT"阿浓"NOR HIC);            
        arg = replace_string(arg,"$P",NOR WHT"她"NOR HIC);
        arg = replace_string(arg,"$c",NOR WHT"眠兔的亲亲老婆"NOR HIC);
        arg = replace_string(arg,"$S",NOR WHT"眠兔的亲亲老婆"NOR HIC);
        arg = replace_string(arg,"$s",NOR HIG"眠兔的亲亲老婆"HIC);
        arg = replace_string(arg,"$C",NOR HIG"眠兔的亲亲老婆"HIC);
        message( "channel:chat",HIC"〖"NOR HIG"女兒界"NOR HIC"〗"+arg+"\n"NOR,users());
        return;
        }
return;
}

void relay_emote(object who,string verb)
{
string arg,face,*e;     
string *loves = ({
        "kiss","mm","touch","cu","piao","sing",
        "sleepy","marry","turelove","vivian",
        "love","young","yi",
});
string *hits = ({
        "pai","kick","and","bored","busy","qie",
        "consider","chui","da","gongan",
        "hit","idea","makeup","norumor",
        "only","shutup","zou","zzz","zhaosi",
});
string *snowtu = ({
        "pai","kick","qie","konglong",
        "pig","pei","de","ah?","bajie",
        "kiss10","noway",
});


if ( member_array(verb,loves)!=-1 )
        {
        if ( who->query("id")=="snowtu" )
                command(loves[random(sizeof(loves))]+" snowtu");
        else    {                                                                                      
                arg = EMOTE_D->do_emote(this_object(),snowtu[random(sizeof(snowtu))],who->query("id"),"",1,0,0);
                if ( !stringp(arg) )
                        say(CYN+name()+"说道：原来"+who->query("name")+CYN"也是一头臭流氓。\n"NOR);
                else    {
                        arg = SDS_D->no_color_msg(arg);
                        arg = CYN+arg+NOR;
                        arg = replace_string(arg,"$N",NOR WHT"阿浓"NOR CYN);              
                        arg = replace_string(arg,"$P",NOR WHT"她"NOR CYN);
                        arg = replace_string(arg,"$c",NOR WHT"眠兔的亲亲老婆"NOR CYN);
                        arg = replace_string(arg,"$S",NOR WHT"眠兔的亲亲老婆"NOR CYN);
                        arg = replace_string(arg,"$s",NOR HIG"眠兔的亲亲老婆"NOR CYN);
                        arg = replace_string(arg,"$C",NOR HIG"眠兔的亲亲老婆"NOR CYN);
                        message_vision(CYN+arg+NOR,this_object(),who);
                        }
                }       
        }

else if ( member_array(verb,hits)!=-1 )
        {
        if ( who->query("id")=="snowtu" )
                command("inn snowtu");
        else    {                                                                                      
                arg = EMOTE_D->do_emote(this_object(),snowtu[random(sizeof(snowtu))],who->query("id"),"",1,0,0);
                if ( !stringp(arg) )
                        say(CYN+name()+"说道：原来"+who->query("name")+CYN"也是一头臭流氓。\n"NOR);
                else    {
                        arg = SDS_D->no_color_msg(arg);
                        arg = CYN+arg+NOR;
                        arg = replace_string(arg,"$N",NOR WHT"阿浓"NOR CYN);              
                        arg = replace_string(arg,"$P",NOR WHT"她"NOR CYN);
                        arg = replace_string(arg,"$c",NOR WHT"眠兔的亲亲老婆"NOR CYN);
                        arg = replace_string(arg,"$S",NOR WHT"眠兔的亲亲老婆"NOR CYN);
                        arg = replace_string(arg,"$s",NOR HIG"眠兔的亲亲老婆"NOR CYN);
                        arg = replace_string(arg,"$C",NOR HIG"眠兔的亲亲老婆"NOR CYN);
                        message_vision(CYN+arg+NOR,this_object(),who);
                        }
                }       
        }
else    {
        if ( who->query("id")=="snowtu" )
                if ( random(2) ) {command(loves[random(sizeof(loves))]+" snowtu");return;} else arg = EMOTE_D->do_emote(this_object(),verb,who->query("id"),CYN,1,0,0);              
        else    {
                e = sort_array(EMOTE_D->query_all_emote(), 1);
                face = e[random(sizeof(e))];
                arg = EMOTE_D->do_emote(this_object(),face,who->query("id"),CYN,1,0,0);              
                }
        arg = SDS_D->no_color_msg(arg);
        arg = CYN+arg+NOR;
        arg = replace_string(arg,"$N",NOR WHT"阿浓"NOR CYN);           
        arg = replace_string(arg,"$P",NOR WHT"她"NOR CYN);
        arg = replace_string(arg,"$c",NOR WHT"眠兔的亲亲老婆"NOR CYN);
        arg = replace_string(arg,"$S",NOR WHT"眠兔的亲亲老婆"NOR CYN);
        arg = replace_string(arg,"$s",NOR HIG"眠兔的亲亲老婆"NOR CYN);
        arg = replace_string(arg,"$C",NOR HIG"眠兔的亲亲老婆"NOR CYN);
        message_vision(CYN+arg+NOR,this_object(),who);

        }
}

void relay_whisper(object who,string verb)
{
relay_emote(who,verb);
}

void random_move()
{
string id,*e,face,msg;
object where,girl;
object player = npc_name();
girl = this_object();

if ( !player )
       return;
if ( time()<query("last_move")+300 )  return;
set("last_move",time());
if ( random(2) )  {
     do_chat();
     return;
     }
e = sort_array(EMOTE_D->query_all_emote(), 1);
face = e[random(sizeof(e))];
if ( !face || !player ) 
id = player->query("id");
where = environment(player);
if ( !objectp(where) || !where )
        return;
if ( where!=environment(girl) )
        {
        tell_room(environment(girl),CYN"阿浓嘻嘻一笑，明眸流彩“偷偷溜出去玩会...”\n
阿浓蹦蹦跳跳着往"+where->query("short")+CYN"方向离去。\n"NOR);
        girl->move(where);
        tell_room(where,CYN"\n\n你眼前一亮，一位可爱娇人的小姑娘走了过来。\n\n\n"NOR);
        girl->command(face+" "+id);
        tell_room(where,CYN"\n\n小姑娘嘻嘻一笑，蹦蹦跳跳的离开了。\n\n"NOR);
        girl->move("/d/wiz/entrance3");
        tell_room(environment(girl),CYN"阿浓高兴的一蹦一跳的回来了。\n"NOR);
        }
else    girl->command(face+" "+id);
return;
}

void relay_channel(object ob, string channel, string msg)
{
string str,*msgs;
int i,ask = 0;
if ( !ob || !userp(ob) || channel=="rumor" ) 
        return;
if ( ob==this_object() || wizardp(ob) )
        return; 
if ( time()<query("last_rechat")+300 )
        return;
set("last_rechat",time());
msgs = ({
        "help","how","怎么","帮忙","问","?","？",
});

str = "";
i = sizeof(msgs);
while(i--)
        {
        if ( stringp(msgs[i]) && strsrch(msg,msgs[i])!=-1 )
                ask++;
        }
if ( ask )
        str+= sprintf("%s要想变得像我家眠兔那么厉害，多看看news和help吧~~~",ob->query("name"));
else    {
        ask = 0;
        msgs = ({       
                "snowtu","兔","tu","眠","wiz",
        });

        i = sizeof(msgs);
        while(i--)
                {
                if ( stringp(msgs[i]) && strsrch(msg,msgs[i])!=-1 )
                        ask++;
                }
        if ( ask )
                return;
        else    {
                ask = 0;
                msgs = ({
                        "fuck","shit","太阳","ri","kao","Kao","KAO",
                        "Fuck","FUCK","SHIT","Shit","SHit","日","md",
                        "nnd",
                        });

                i = sizeof(msgs);
                while(i--)
                        {
                        if ( stringp(msgs[i]) && strsrch(msg,msgs[i])!=-1 )
                                ask++;  
                        }
                if ( ask )
                        str+= sprintf("%s言语真龌龊！哼~~~",ob->query("name"));
                else   str+= sprintf("%s，老说“ %s ”的，你不烦我都听烦了~~~",ob->query("name"),msg);
                }
        }
str = SDS_D->no_color_msg(str);
str = REV+HIM+str+NOR"\n";  
command("tell "+ob->query("id")+" "+str);
}
