(: growup() :), }) ); set_skill("unarmed", 700); set_skill("iron-cloth", 200); set_skill("yiqiforce", 100); set_skill("dodge", 400); set_skill("force",100); set_skill("parry", 400); set_skill("wolf-curse",200); set_skill("cursism",200); set_skill("summonwolf",300); set_skill("perception",400); map_skill("unarmed","yiqiforce"); map_skill("cursism","wolf-curse"); map_skill("force","yiqiforce"); set("combat_exp", 13000000); set("staff",1); set_temp("apply/attack", 200); set_temp("apply/dodge", 200); setup(); if (!query("claw_set")) { if (!random(5)){ staff=new(__DIR__"obj/wolf-fist"); staff->move(this_object()); staff->wield(); staff->set("nodrop_weapon"); set("claw_set",2); } else
void unconcious() { object defeater; if( !living(this_object()) ) return; if( wizardp(this_object()) && query("env/immortal") ) return; if( objectp(defeater = query_temp("last_damage_from")) ) { COMBAT_D->winner_reward(defeater, this_object()); // cyz&kitten 99/05/08 to check who fainted victim if(userp(defeater)) set_temp("last_fainted_from", defeater->query("id")); } this_object()->remove_all_enemy(); // xuy, interrupt all dazuo, jingzuo etc. this_object()->interrupt_me(); this_object()->dismiss_team(); message("system", HIR "\n你的眼前一黑,接著什么也不知道了....\n\n" NOR, this_object()); this_object()->disable_player(" <昏迷不醒>"); set("jing", 0); set("qi", 0); set("jingli", 0); set_temp("block_msg/all", 1); COMBAT_D->announce(this_object(), "unconcious"); call_out("revive", random(100 - query("con")) + 30); }
(: smart_fight() :), }) ); set_skill("perception",200); set_skill("move", 120); set_skill("force", 120); set_skill("unarmed", 180); set_skill("sword", 130); set_skill("parry", 130); set_skill("dodge", 130); set_skill("spells",100); set_skill("qixing",100); set_skill("taijiforce", 130); set_skill("five-steps",120); set_skill("taiji",140); set_skill("three-sword",135); map_skill("spells","qixing"); map_skill("unarmed","taiji"); map_skill("force", "taijiforce"); map_skill("dodge","five-steps"); map_skill("move","five-steps"); map_skill("parry","three-sword"); map_skill("sword","three-sword"); set_temp("apply/dodge", 30); set_temp("apply/armor", 30); setup(); carry_object(__DIR__"obj/silversword")->wield(); carry_object("/obj/armor/cloth")->wear(); }
varargs int move_player(mixed dest, string message, string dir) { object prev; int res; prev = environment( this_object() ); if( res = move(dest) != MOVE_OK ) { write("You remain where you are.\n"); return res; } if(message == "SNEAK") { set_temp("force_to_look", 1); command("look"); set_temp("force_to_look", 0); return 0; } if(!query("invisible")) { if (message == 0 || message == "") { if(dir && dir != "") { tell_room(prev, (string)this_object()->query_mout(dir) + "\n", ({ this_object() })); say((string)this_object()->query_min() + "\n", ({ this_object() })); } else {
void fill_cone(t_env *env, int fd) { char *line; char *temp; int i; i = 0; while (get_next_line(fd, &line) == 1 && i < OBJ.num_cone) { if (*line != '#') { temp = line; temp = set_temp(++temp, 'R'); set_vector(&CONES[i].rot, temp); temp = set_temp(temp, 'P'); set_vector(&CONES[i].p, ++temp); temp = set_temp(++temp, 'V'); set_vector(&CONES[i].v, ++temp); rotate_cone(env, i); temp = set_temp(++temp, 'a'); CONES[i].alpha = ft_atoi(++temp); temp = set_temp(++temp, 'm'); CONES[i].shape.material = ft_atoi(++temp); i++; } free(line); } }
varargs int receive_wound(string type, int damage, mixed who) { int val; if( damage < 0 ) error("F_DAMAGE: 伤害值为负值。\n"); if( type!="jing" && type!="qi" ) error("F_DAMAGE: 伤害种类错误( 只能是 jing, qi 其中之一 )。\n"); set_temp("last_damage_from", who); if(living(this_object()) && objectp(who) && userp(who)) set_temp("last_eff_damage_from", who->query("id")); val = (int)query("eff_" + type) - damage; if( val >= 0 ) set("eff_" + type, val); else { set( "eff_" + type, -1 ); val = -1; } if( (int)query(type) > val ) set(type, val); set_heart_beat(1); return damage; }
(: smart_fight() :), }) ); set_skill("move", 200); set_skill("force", 200); set_skill("spells", 150); set_skill("unarmed", 200); set_skill("sword", 200); set_skill("parry", 150); set_skill("dodge", 150); set_skill("magic",150); set_skill("whip",200); set_skill("qidaoforce", 150); set_skill("five-steps",180); set_skill("thunderwhip",180); set_skill("pofeng-strike",180); map_skill("unarmed","pofeng-strike"); map_skill("force", "qidaoforce"); map_skill("dodge","five-steps"); map_skill("move","five-steps"); map_skill("whip","thunderwhip"); map_skill("parry","thunderwhip"); set_temp("apply/dodge", 30); set_temp("apply/armor", 30); setup(); add_money("gold", random(3)); carry_object("/obj/armor/cloth")->wear(); carry_object(__DIR__"obj/w_whip")->wield(); }
void unconcious() { object defeater, officer; if( !living(this_object()) ) return; if( wizardp(this_object()) && query("env/immortal") ) return; if( this_object()->query_temp("pk_fight") ) { if( !(officer = find_living("pkla officer")) ) return; officer->pk_lose(this_object()); return; } if( objectp(defeater = query_temp("last_damage_from")) ) COMBAT_D->winner_reward(defeater, this_object()); this_object()->remove_all_enemy(); message("system", HIR "\n你的眼前一黑,接着什么也不知道了....\n\n" NOR, this_object()); this_object()->disable_player(" <昏迷不醒>"); set("gin", 0); set("kee", 0); set("sen", 0); set_temp( "block_msg/all", 1 ); set_temp( "block_cmd/all", 1 ); set_temp("unconcious", 1); COMBAT_D->announce(this_object(), "unconcious"); call_out("revive", random(100 - 2*query("con")) + 30); }
void kill_ob (object ob) { set_temp("no_return",1); set_temp("my_killer",ob); ::kill_ob(ob); call_out ("move_to_cave",1,this_object()); }
(: smart_fight() :), }) ); set_skill("perception",200); set_skill("move", 120); set_skill("force", 120); set_skill("unarmed", 180); set_skill("sword", 150); set_skill("parry", 150); set_skill("dodge", 150); set_skill("spells",100); set_skill("qixing",100); set_skill("taijiforce", 150); set_skill("five-steps",150); set_skill("taiji",180); set_skill("taiji-sword",160); map_skill("spells","qixing"); map_skill("unarmed","taiji"); map_skill("force", "taijiforce"); map_skill("dodge","five-steps"); map_skill("move","five-steps"); map_skill("parry","taiji-sword"); map_skill("sword","taiji-sword"); set_temp("apply/dodge", 30); set_temp("apply/armor", 30); set_max_encumbrance(800000); setup(); carry_object(__DIR__"obj/heavysword")->wield(); carry_object("/obj/armor/cloth")->wear(); }
string ask_me(object who) { int i; object *ob; if( query("revealed") ) { if( is_killing(who) ) return "你既然知道了我的身分,今日休想活命!\n"; else { kill_ob(who); who->fight_ob(this_object()); return "老子就是血手刘三,血手刘三就是你老子!纳命来!\n"; } } if( (random(10) < 5) || !is_fighting() ) return "我...不知道!\n"; set_temp("apply/attack", 70); set_temp("apply/dodge", 50); set_temp("apply/parry", 60); set_temp("apply/damage", 20); set("title", "野羊山寨二寨主"); set("nickname", HIR "血手刘三" NOR); message("vision", HIY "刘安禄眼中突然放出异样的光芒,颤声说道:看来...你都知道了?\n\n" "刘安禄大喝一声,叫道:既然如此,老子今天豁出去了,纳命来!\n" NOR "刘安禄使开单刀,招数精奇,沈猛狠辣,和刚才简直判若两人!\n", environment(), this_object() ); set("pursuer", 1); set("attitude", "aggressive"); set("vendetta/authority", 1); set("chat_msg_combat", ({ (: random_move :) }) );
(: busy_attack() :), }) ); set_temp("apply/attack",350); set_temp("apply/dodge",1); set_temp("apply/parry",1); set_temp("apply/armor",1); setup(); }
//给被doctor起死回生的人用的 by bss void relive() { message("system", HIR "\n你的眼前一黑,接着什么也不知道了....\n\n" NOR, this_object()); this_object()->disable_player(" <昏迷不醒>"); set("gin", 0); set("kee", 0); set("sen", 0); set_temp( "block_msg/all", 1 ); set_temp( "block_cmd/all", 1 ); set_temp("unconcious", 1); COMBAT_D->announce(this_object(), "unconcious"); call_out("revive", random(100 - 2*query("con")) + 30); }
varargs void revive(int quiet) { remove_call_out("revive"); while( environment()->is_character() ) this_object()->move(environment(environment())); this_object()->enable_player(); if( !quiet ) { COMBAT_D->announce(this_object(), "revive"); set_temp("block_msg/all", 0); message("system", HIY "\n慢慢地你终于又有了知觉....\n\n" NOR, this_object()); } else set_temp("block_msg/all", 0); }
int do_open(string arg) { object me=this_player(), room; if(!arg || arg!="door") return notify_fail("你要开什么?\n"); if( query_temp("lock") == 1 && !present("key", me) ) return notify_fail("你想怎么开门?\n"); if(!( room = find_object("/u/yuki/room/taoyuan")) ) room = load_object("/u/yuki/room/taoyuan"); if(!objectp(room)) return notify_fail("ERROR:not found 'taoyuan.c' \n"); if(query_temp("lock") == 1 && present("key", me)) { set_temp("lock", 0); message_vision("$N把钥匙插进锁孔,轻轻一转,锁开了。\n", me); message("vision", "外面传来一阵开锁的声音,只听见‘卡嗒’一声,锁开了。 \n",room); } message_vision("$N推开门,眼前一阵强烈的光线。门自己关上了。\n",me); message("vision", "有人走了进来,门在身后自动关上了。\n",room); me->move(room); return 1; }
int inquiry_dao() { object me=this_player(); object ob; if (present("cut knife",me)) { message_vision("你就别寻老头子开心了,你身上不是也有一把吗?\n", me); return 1; } if( query_temp("buyed")==0 ) { message_vision("这位大爷,实在不是我舍不得这刀,小人一家就全靠它过\n" "日子了,给了你,叫我怎么过活啊!\n", me); return 1; } if( query_temp("buyed")==1 ) { message_vision("既然好心人想要,就给你吧,本来史婆婆要我好好保管的,\n" "你可千万别瞎送给别人,否则她会生气的。\n", me); ob=new("/d/xiakedao/obj/knife"); ob->move(me); message_vision("樵夫递给你一把柴刀!\n", me); set_temp("buyed", 0); }
int wakeup1 (object me,object where) { object who = this_player(); int phase = get_current_day_phase(); if (random(5)) { wakeup(me,where); return 0; } if (phase > 0 && phase < 5) { wakeup(me,where); return 0; } me->enable_player(); while( environment(me)->is_character() ) me->move(environment(environment(me))); me->set_temp("block_msg/all", 0); message_vision ("$N大叫一声,醒了过来。连忙叫:徒弟!徒弟!\n",me); set("inquiry/meng" , (: to_meng :) ); set("inquiry/梦", (: to_meng :) ); set_temp("have_dream",1) ; return 1; }
int do_move(string str) { if(!str || str != "box") return notify_fail("你要移动什么?\n"); if(this_player()->query("family/family_name")=="雪苍派"||this_player()->query("family/family_name")=="魔刀门"|| this_player()->query("family/family_name")=="魔刀莫测") { if(this_player()->query("combat_exp")>300000) { if(!query_temp("box_moved")) { set_temp("box_moved",1); message_vision("$N移动了箱子,发现箱子下面竟然出现了一个按钮(button)。\n",this_player()); return 1; } else { delete_temp("box_moved"); message_vision("$N将箱子移回原位。\n", this_player()); if(query("exits/down")) delete("exits/down"); return 1; } } message_vision("你的经验值不够移动箱子。\n",this_player()); return 1; } message_vision("你不是雪苍或本门弟子,所以不能移动箱子。\n",this_player()); return 1; }
varargs int receive_damage(string type, int damage, object who) { int val; int reduction,r_damage; // if( damage < 0 ) error("F_DAMAGE: 伤害值为负值。\n"); if (damage <0) damage =0; if( type!="gin" && type!="kee" && type!="sen" ) error("F_DAMAGE: 伤害种类错误( 只能是 gin, kee, sen 其中之一 )。\n"); if (query("resistance/"+type) || query_temp("resistance/"+type)){ reduction=query("resistance/"+type) + query_temp("resistance/"+type); damage=damage-damage*reduction/100; } if( objectp(who) ) set_temp("last_damage_from", who); val = (int)query(type) - damage; // 这个是用来记录NPC作战对手的伤害力。精神的计算值x2,对玩家虽然有记录,但是没有现实意义。 if (who) { if (query("kee")==query("max_kee") && query("eff_kee")==query("max_kee") && query("kee")==query("max_kee") && query("eff_kee")==query("max_kee") && query("kee")==query("max_kee") && query("eff_kee")==query("max_kee")) damage_list=([]); // NPC 复原时清零。 if (type!="kee") r_damage=damage*2; else r_damage=damage; if( !mapp(damage_list) ) damage_list = ([ who : r_damage ]); else damage_list[who]=damage_list[who]+r_damage; }
void create() { set("short", "空地"); set("long", @LONG 这是大厅前的空地,旁边放了些兵器架、沙袋以及几个木桩。地上 铺满了飘落的树叶和干草。四周装点着青青翠竹,错落有致。旁边有一 口水井、一把水瓢,井水清澈,散发着阵阵凉气。西边是武器库。东边 有一间储藏室,房门(door)关闭着。北边是『白驼山庄』的大厅。南边 就是大门了。 LONG); set("resource/water", 1); set("exits", ([ "northup" : __DIR__"dating", "west" : __DIR__"wuqiku", "south" : __DIR__"damen", ])); set("outdoors", "baituo"); set("no_clean_up", 0); set("item_desc", ([ "door" : (: look_gate :), ])); set_temp("lock",1); set("coor/x", -50010); set("coor/y", 20020); set("coor/z", 20); setup(); // replace_program(ROOM); }
void create() { set("short","明教大殿"); set("long", @LONG 走进这里,突感一阵肃穆之意,大殿中十分空旷,殿顶高悬八盏金 灯,两旁是精壮佩剑武士剑气森严逼人。正中设一宝座,前有一雕花檀 木案,案头供明教圣火令(ling)六枚。宝座后立有一扇玉屏,屏中所画 正是明教圣火图,烈焰直逼日月。宝座上端坐一人,着布衣而显高贵, 含笑不怒而自威,正是明教教主张无忌。 LONG ); set("exits",([ "south" : __DIR__"qiandian", "enter" : __DIR__"neishi", ])); set_temp("tieling",8); set("objects",([ CLASS_D("mingjiao")+"/zhangwuji":1, CLASS_D("mingjiao")+"/yangxiao":1, CLASS_D("mingjiao")+"/fanyao":1, CLASS_D("mingjiao")+"/yintianzheng":1, CLASS_D("mingjiao")+"/xiexun1":1, CLASS_D("mingjiao")+"/weiyixiao":1, ])); set("coor/x", -52030); set("coor/y", 1070); set("coor/z", 110); setup(); }
int do_open(string arg) { object me=this_player(), room; object *inv; int j; if(!arg || arg!="door") return notify_fail("你要开什么?\n"); if( query_temp("lock") == 1 && !present("key", me) ) return notify_fail("钥匙都没有,怎么开门?\n"); if(!( room = find_object(__DIR__"storeroom")) ) room = load_object(__DIR__"storeroom"); inv = all_inventory(me); for (j = 0; j < sizeof(inv); j++) { if (inv[j]->is_character()) { return notify_fail("屋子里位置有限,挤不下那么多人。\n"); } } if(!objectp(room)) return notify_fail("ERROR:not found 'storeroom.c' \n"); if(query_temp("lock") == 1 && present("key", me)) { set_temp("lock", 0); message_vision("$N把钥匙插进锁孔,只听见‘卡嗒’一声,锁开了。\n", me); message("vision","外面传来一阵开锁的声音,只听见‘卡嗒’一声,锁开了。\n",room); } message_vision("$N轻轻推开门,走了进去,随手把门掩了起来。\n",me); message("vision", "有人走了进来,随手把门掩上了。\n",room); me->move(room); return 1; }
int do_repair(string arg) { object obj,me; string file; me = this_player(); if (!arg) return notify_fail("你要补什么东西?\n"); if( !objectp(obj = present(arg, me)) ) return notify_fail("你要补什么东西?\n"); if (!obj->query("armor_prop/armor") || obj->query("armor_prop/armor")<1) return notify_fail("这东西能补吗?\n"); set_temp("busy",1); start_busy(2); file = resolve_path(this_object()->query("cwd"),arg); file = base_name(obj)+".c"; remove_call_out("destroy_ob"); call_out("destroy_ob", 1, obj); obj = new(file); write("双儿吁了一口长气,说道:“补好了,拿去吧,下次小心点哦。\n"); obj->move(me); me->delete_temp("allow_repair"); remove_call_out("enough_rest"); call_out("enough_rest", 2); return 1; }
void create() { generate_name(); set_weight(1); set("unit", "丸"); set("long", "一丸微现宝光的仙丹,有急救延命的神效。\n"); set("value", 100000+ random(1000000)); set("no_get", 1); set("no_give", 1); set("no_drop", 1); set("no_sell", 1); set("no_burn", 1); set_temp("to_cure", "none"); set_temp("cure", 5); ::init_item(); }
(: bite() :), }) ); set("combat_exp",100000); set_skill("dodge", 200); set_temp("apply/attack",100); setup(); }
int accept_object(object who, object ob) { command("smile"); message_vision("谢谢好心的大爷,好人有好报。\n", who); if( ob->query("money_id") && ob->value() >= 3000 ) set_temp("buyed", 1); return 1; }
varargs int receive_damage(string type, int damage, object who) { int val; if( type!="gin" && type!="kee" && type!="sen" ) error("F_DAMAGE: 伤害种类错误( 只能是 gin, kee, sen 其中之一 )。\n"); if( objectp(who) ) set_temp("last_damage_from", who); else{ if(this_player()) if(living(this_player())) set_temp("last_damage_from",this_player()); } if(query(type)<0){ if(!query_temp("last_damage_from")) //如果到死都找不到是谁下的手 set_temp("last_damage_from",this_object()); //就当作是自杀的吧 by bss return 1; } if( damage < 0 ) error("F_DAMAGE: 伤害值为负值。\n"); if((query_temp("mana_shield")||query_temp("mana_shield2")||query_temp("mana_shield3")||query_temp("mana_shield4"))&&type=="kee") { if( query("atman")>50) { type = "atman"; }/*else{ delete_temp("mana_shield"); delete_temp("mana_shield2"); }*/ } if(query_temp("woody")) {damage=0; message("system",HIG"敌人的攻击对妳而言根本不值一晒..\n\n" NOR, this_object()); } if(query_temp("no_armor_effect")) this_object()->delete_temp("no_armor_effect"); else damage=cal_damage(this_object(),damage); val = (int)query(type) - damage; if( val >= 0 ) { set(type, val); } else if( type == "atman") { set(type,0); delete_temp("mana_shield"); delete_temp("mana_shield2");delete_temp("mana_shield3");delete_temp("mana_shield4");} else set(type,-1); if(query(type) <0 && !query_temp("last_damage_from")) set_temp("last_damage_from",this_object()); set_heart_beat(1); return damage; }
(: do_bone_spirit() :), }) ); set("combat_exp", 300000000); set("bellicosity",1000000 ); set_skill("force", 220); set_skill("dodge", 220); set_skill("unarmed", 220); set_skill("staff", 220); set_skill("parry", 220); set_temp("apply/attack", 2000); set_temp("apply/parry", 1500); set_temp("apply/damage", 2000); setup(); carry_object(__DIR__"obj/bone_staff")->wield(); }
int accept_fight(object me) { object weapon; if (me->query("opinion/" MY_OPINION) == ULTRA_OPINION) { message_vision(CYN "$N" CYN "对$n" CYN "道:“很" "好,你也算是宗师高手了,来吧!咱" "们比划一下!”\n" NOR, this_object(), me); return 1; } if (! me->query_temp("want_opinion/shenni")) { command("say 你干什么要和我动手?"); return 0; } command("look " + me->query("id")); COMBAT_D->do_attack(this_object(), me, 0); if (me->query("qi") <= 0) { message_vision(CYN "\n$N" CYN "摇摇头对$n" CYN "道:“你现在的武功还差得远,连" "我一招都接不住!”\n" NOR, this_object(), me); return notify_fail("看来要好好的修炼功夫了。\n"); } message_combatd(HIC "$N" HIC "右掌伸出,正和$n" HIC "手" "掌相对,两人同时运起内力,不一会儿只见" "二人头上生起腾腾雾气。\n忽然$N" HIC "手" "掌一撤、收回功力,没有一点阻滞,不禁让" "$n" HIC "大为愕然。\n" NOR, this_object(), me); if (me->query("neili") < 3000) { message_vision(CYN "\n$N" CYN "摇摇头对$n" CYN "道:“适才你内力不足,我难以衡" "量,待你将内力修炼好了再来吧!" "”\n" NOR, this_object(), me); return notify_fail("看来还是回去锻炼一下内力吧!\n"); } me->set("neili", 0); call_out("check_opinion", 2, me); set_temp("opinion", me); me->delete_temp("want_opinion"); message_vision(CYN "\n$N" CYN "一摆手道:“好了,待我想" "想。”\n" NOR, this_object(), me); return notify_fail("看来不能心急,还得等一会儿。\n"); }
static void set_material(t_env *env, char *temp, int i) { temp = set_temp(temp, 'r'); env->obj.mats[i].diffuse.r = 1.0f * ft_atoi(++temp); if (env->obj.mats[i].diffuse.r != 0) env->obj.mats[i].diffuse.r /= 255; temp = set_temp(++temp, 'g'); env->obj.mats[i].diffuse.g = 1.0f * ft_atoi(++temp); if (env->obj.mats[i].diffuse.g != 0) env->obj.mats[i].diffuse.g /= 255; temp = set_temp(++temp, 'b'); env->obj.mats[i].diffuse.b = 1.0f * ft_atoi(++temp); if (env->obj.mats[i].diffuse.b != 0) env->obj.mats[i].diffuse.b /= 255; temp = ft_strchr(++temp, '*'); env->obj.mats[i].reflection = 1.0f * ft_atoi(++temp); if (env->obj.mats[i].reflection != 0) env->obj.mats[i].reflection /= 10.0f; }