⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 anran.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
📖 第 1 页 / 共 2 页
字号:
        "start":                "/d/city4/eastgate",]),
        (["place":                "上天梯",
        "start":                "/d/huashan/shangtianti",]),
        (["place":                "树林",
        "start":                "/d/xiaoyao/shulin3",]),
        (["place":                "南大街",
        "start":                "/d/xiaoyao/shulin3",]),});    
//});    
string ask_job();

void create()
{
        set_name("马仇", ({ "ma chou", "ma"}) );
        set("gender", "男性" );
        set("nickname", "土匪");
        set("age", 31);
        set("long", "住在山西一带的土匪头,略有名气,常常以打劫镖车为生。\n");
        set("str", 29);
        set("dex", 26);
        set("con", 24);
        set("int", 22);
        set("per", 18);
        set("shen", -7500);
        set("max_qi", 2000);
        set("max_jing", 2000);
	 set("neili",2000);
	 set("max_neili",2000);
        set("eff_jingli", 1800);
	 set_skill("blade",100);
	 set_skill("zixia-shengong",200);
	 set_skill("fanliangyi-dao",100);
	 map_skill("blade","fanliangyi-dao");
	 
        set("combat_exp", 750000);
        set("chat_chance_combat", 55);
        set("chat_msg_combat", ({
                (: perform_action, "blade.sanshen" :),
        }));
        set("inquiry", ([
                "劫镖" : (: ask_job :),
                "抢劫" : (: ask_job :),
                "rob" : (: ask_job :),
        ]));        
        setup();
        carry_object("/clone/weapon/gangdao")->wield();
        carry_object("/clone/cloth/cloth")->wear();
        add_money("silver", 10);
}
int accept_object(object me, object obj)
{
   object ob=this_object();
   if(!me || environment(me) != environment()) return 0;
   if(!objectp(obj)) return 0;
   if(!present(obj, me)) return notify_fail("你没有这件东西。");        
   if(userp(obj)){
       command("consider "+(string)me->query("id"));
       command("say 你拿个快死的人来骗我?");
       return 0;
       }
   if(obj->query("id") == "prize" && obj->query("owner") == me->query("id")){
       command("nod "+(string)me->query("id"));
       command("say 好样的!干得好!\n");
       message_vision(HIY"$N将$n"HIY"拆开,拿出了一大堆金银财宝。\n"NOR,ob, obj);
       remove_call_out("destroying");
       call_out("destroying", 5, obj, ob, me);                       
       return 1;
       }
   if(obj->query("money_id")) {
       command("pat " + me->query("id"));
       command("say 钱我有的是,你以后还是留给自己吧。");
       return 0;
       }
   if(obj->query("owner") != me->query("id")){
       command("hehe "+(string)me->query("id"));
       command("say 不错啊,但这活可不是你干的。");
       return 1;
       }
   else return 0;       
}
void destroying(object obj, object ob, object me)
{   
   object n_money;
   if(obj) destruct(obj);
   if(!ob) return;
   if(!me || environment(me) != environment()){
      command("say 咦,人呢?");
      return;
      }
   command("pat "+me->query("id"));
   message_vision(HIY"$N对$n说道:你这次做得极为出色,这是你该得的部分,拿去吧!\n"NOR,ob, me);
   n_money = new("/clone/money/gold");
   n_money->move(me); 
   n_money->add_amount(1);
   me->set_temp("robjob_exp", 150+(me->query_temp("biaoshi")*(random(50)+50)));
   me->add("combat_exp", me->query_temp("robjob_exp"));
   me->add("potential", me->query_temp("biaoshi")*20);
   tell_room(environment(me), me->name()+"数着钱袋里的金子,脸上的肌肉不住地颤动,眼睛散发着一种奇怪的光芒。\n" NOR, ({ me }));     
   tell_object(me, "你被奖励了"+chinese_number(me->query_temp("robjob_exp"))+"点经验值!\n"+chinese_number(me->query_temp("biaoshi")*20)+"点潜能\n");
   me->delete_temp("robjob_exp");
   me->delete_temp("biaoshi");
   return;      
}
string ask_job()
{
  object me, ob;
  mapping aquest;
  int exp, j;
  aquest = quest[random(sizeof(quest))];
  me = this_player();
  ob = this_object();
  exp = me->query("combat_exp"); 
 
   // if(me->query_condition("rob_task"))
   //         return "我现在还没有得到任何消息,你等会儿再来吧。";
    if(me->query_condition("job_busy"))
            return "你现在还有任务在身,等会儿再来吧。";       
    if(ob->query_temp("job_asked") == me->query("id")) 
            return "不是叫你先去那里等我吗?怎么还赖在这里?";
    if(ob->query_temp("job_asked")) 
            return "嘿嘿,你来晚了,等下一次吧。";
    if(me->query("shen") > -10000) return "哼!看来你的心肠还不够黑啊,这种事你不问也罢。";
    if(exp>=600000) j=6;
    else if(exp>=500000) j=5;
    else if(exp>=400000) j=5;
    else if(exp>=300000) j=4;   
    else j=3;   
  
    me->set_temp("rob_job", 1);
    me->delete_temp("biaoshi");
    message_vision(CYN"\n$N阴阴一笑,说道:这两天长风镖局会有一趟镖经过,你够胆就和我一起去看看吧。\n"NOR, ob, me);
    ob->set_temp("job_asked", me->query("id"));
//    ob->set_temp("dest", aquest["name"]);
    ob->set_temp("dest", "robjob");
    ob->set_temp("start_place", aquest["start"]);
    ob->set_temp("place", aquest["place"]);
    me->set_temp("j", j);    
    me->apply_condition("rob_task", 60+(j*20));
    me->start_busy(1);
    remove_call_out("going");
    call_out("going", 30, ob); 
    return "我还有些事要办,你先去"+ob->query_temp("place")+"等我。\n";    
}
void going(object me)
{
       message_vision("$N急急忙忙地走了出去。\n", me);       
       me->move(me->query_temp("start_place"));
	message_vision("$N急急忙忙地走了过来。\n", me);       
}
void init()
{
   object ob, where, me;
   ::init();
   ob=this_object();
   where = environment(ob);
   if(ob->query_temp("dest")){
     if(interactive(me = this_player()) && me->query_temp("rob_job")
        && ob->query_temp("job_asked") == me->query("id")
        && file_name(where) == ob->query_temp("start_place")) {
           remove_call_out("waiting");
           call_out("do_back",120,me);
	    call_out("waiting", 1, ob, me);
           }
     else{
         remove_call_out("do_back");
         call_out("do_back", 90, ob);
         }
     }
}
void waiting(object ob, object me)
{   
    if(!ob || !living(me)) return;
    command("nod "+me->query("id"));
    command("say 好,我们就在这里等着他们来吧。");
    ob->set_temp("wait_target", 1);
    me->set_temp("wait_target", 1);
    remove_call_out("wait_target");
    call_out("wait_target", 30, ob, me);
    return; 
}
void do_back(object me)
{
        me->delete_temp("wait_target");
        me->delete_temp("start_place");
        me->delete_temp("place");
        me->delete_temp("dest");
        message_vision("$N转过山丘,几个起落就不见了。\n", me);
	  me->move("/d/tiezhang/lx");  
        message_vision("$N急急忙忙地走了过来。\n", me);
        remove_call_out("del_temp");
        call_out("del_temp", 400, me);             
}
void del_temp(object me) {me->delete_temp("job_asked");}

int wait_target(object ob, object me)
{
   object obj;
   if(!objectp(present(me, environment(ob)))){
       message_vision("$N说道:耶?那家伙怎么不见了?\n", ob);
       remove_call_out("do_back");
       do_back(ob);
       return 1;
       }
   if(!objectp(ob = present("ma chou", environment(me)))){ 
       tell_object(me,"你发现马仇不见了,只好转身离开。\n");
       tell_room(environment(me), me->name()+"突然一脸茫然的表情,看来是想要离开了。\n", ({ me }));
       me->delete_temp("rob_job");
       me->clear_condition("rob_task");
       me->delete_temp("wait_target");
       return 1;
       }

    obj = new(__DIR__"shangdui");
    obj->move(environment(me)); 
    obj->set("arg", ob->query_temp("dest"));
    message_vision(HIY"\n只听一阵车轮声传来,一只长风镖局的镖队出现在眼前!\n\n"NOR, ob);
    tell_object(me,"猎物终于出现了!\n"); 
    message_vision(HIY"$N对着$n大声命令道:你快抢(qiang)镖队,我来对付其他人!\n"NOR, ob, me); 
    message_vision("说完$N就冲上前去,和几个护镖镖师打斗追逐开了。\n", ob);   
    remove_call_out("do_back");
    do_back(ob);
    me->delete_temp("wait_target");
    me->set_temp("rob_start", 1);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -