![]() |
【求助】有活人么,问个单机架设问题
用的是西游记2000,就小熊下载的那个
但是为什么开封那几个npc就 一直不出来呢 clone都不行,是怎么回事,哪位大仙知道给解释一下啊 bow |
回复: 【求助】有活人么,问个单机架设问题
:em01: 这个到没试过哦。。。
|
回复: 【求助】有活人么,问个单机架设问题
把dtxy和4.5的那些npc文件拷进去也不行,update都不成,
fengyue帮忙啊 要不把你的能出npc的版本支援我一份? 不知道是不是mudos的问题? |
回复: 【求助】有活人么,问个单机架设问题
把你的开封npc文件发个上来看看。
|
回复: 【求助】有活人么,问个单机架设问题
// cracked by vikee 2/09/2002 vikee@263.net
inherit NPC; #include <quest_fd.c> #include <reporting.c> int test_player(); void create() { set_name("猪八戒", ({ "zhu bajie", "zhu", "bajie" })); set("age", 600); set("gender", "男性"); set("long", "嘿嘿,连老猪都不认识啦?\n"); set("attitude", "peaceful"); set("str", 50); set("per", 10); set("combat_exp", 1200000); set("daoxing", 2000000); set("max_kee", 1500); set("max_sen", 1500); set("max_force", 1500); set("force", 1500); set("force_factor", 150); set("mana_factor", 150); set_skill("unarmed", 90); set_skill("dodge", 60); set_skill("parry", 60); set_skill("rake", 150); set_skill("force", 80); set_skill("spells", 80); set_skill("baguazhou", 80); set_skill("yanxing-steps", 70); set_skill("skyriver-rake", 180); map_skill("force", "lengquan-force"); map_skill("spells", "baguazhou"); map_skill("rake", "skyriver-rake"); map_skill("parry", "skyriver-rake"); map_skill("dodge", "yanxing-steps"); set("chat_chance",5); set("chat_msg",({ "猪八戒乐呵呵地说道:西天归来,老猪便是天下美食家也。\n", "猪八戒想想说:乡下发大水灾了,老猪该当救济饥民。\n", "猪八戒说道:老猪要寻遍天下美酒佳肴,再请世人来俺帅府品尝品尝。\n", "猪八戒说道:不是老猪贪嘴,俺老猪想凑个美宴,请平民百姓也能尝个新鲜。\n", "猪八戒自言自语地说:俺老猪不是为自己,老猪想收集世上美食,让大唐人都能来尝尝。\n", "猪八戒扭过身去捧起澡盆大的金饭盆吧嗒吧嗒大嚼了起来。\n", "猪八戒弯腰捧起水桶大的银酒壶咕咚咕咚地灌了下去。\n", })); set("inquiry", ([ "here": "此乃天蓬帅府也,老猪西天归来后唐太宗御赐在此开府,专事饮食慈善业。\n", "name": "猪八戒,谁人不知也。\n", "food": (: test_player() :), "美食": (: test_player() :), "美酒": (: test_player() :), "美宴": (: test_player() :), "佳肴": (: test_player() :), "食物": (: test_player() :), "饮水": (: test_player() :), "吃": (: test_player() :), "喝": (: test_player() :), ])); setup(); carry_object("/d/kaifeng/obj/jiuchipa")->wield(); carry_object("/d/obj/armor/tongjia")->wear(); } void rewarding (object who, object ob); void init () { call_out ("check_player",1,this_player()); } int test_player() { string *strs = ({ "$N略有所思地点点头对$n说道:俺老猪想给大唐人凑个美宴,正缺", "$N对$n说道:老猪我四处寻求天下美味佳肴,正要找", "$N对$n说道:对了乡下发大水灾,有几个灾民想要什么", "$N对$n说道:京城客到,在开封府上,其中有一官人让老猪我代寻什么", "$N对$n点头说道:水陆大会即将开宴请各路法师到会,听说有法师想要什么", "$N对$n一点头说道:俺老猪救济饥民,听说正需要", "$N想想说:有人倒是想让俺老猪给找个什么什么", }); string str; object me = this_object(); object who = this_player(); int *quest_keys; string *quest; int delay; int i; if (who->query("quest/reward") > 0) { message_vision ("$N对$n说道:这位"+RANK_D->query_respect(who)+ ",俺见你身上祥云环绕,何不去从速赴长安进宫请赏?\n",me,who); return 1; } if (who->query("quest/pending/food")) { message_vision ("$N对$n说道:这位"+RANK_D->query_respect(who)+ ",俺还等着请您帮忙找的"+ who->query("quest/pending/food/name")+"呢!\n",me,who); return 1; } quest_keys = me->query_temp("quest_keys"); if (! quest_keys) { quest_keys = sort_quests (quests_food); me->set_temp("quest_keys",quest_keys); } i = quest_accurate_index (quest_keys, who); i = quest_random_index (quest_keys, i, who, "quest/cache/food"); if (i == -1) { message_vision ("$N对$n叹气说道:这位"+RANK_D->query_respect(who)+ "该做的事做了不少,俺看您还是以后再来吧。\n",me,who); return 1; } delay = MAXDELAY * i / sizeof(quest_keys) + DELAY_CONST + uptime(); quest = quests_food[quest_keys[i]]; who->set("quest/pending/food/index", i); who->set("quest/pending/food/daoxing", quest_keys[i]); who->set("quest/pending/food/name", quest[IDX_NAME]); who->set("quest/pending/food/id", quest[IDX_ID]); who->set("quest/pending/food/time", delay); str = strs[random(sizeof(strs))]+quest[IDX_NAME]+ ",\n这位"+RANK_D->query_respect(who)+ "可否赏老猪个大脸设法子去给弄来?\n"; message_vision (str,me,who); informing (me,who,str); return 1; } void check_player (object who) { object me = this_object(); object ob; if (!who || !visible(who)) return; if (! who || environment(who)!=environment(me)) return; if (who->query("quest/reward") > 0) { message_vision ("$N对$n说道:这位"+RANK_D->query_respect(who)+ "身上祥云环绕,请速赴长安进宫请赏!\n",me,who); return; } if (! who->query("quest/pending/food")) return; ob = present (who->query("quest/pending/food/id"),who); if (! ob) return; if (! ob->query("no_give")) return; if (who->query("quest/pending/food/name") != ob->query("name")) return; message_vision ("$N见$n手上拿着"+ob->query("name")+",便赶紧伸手接过去。\n",me,who); rewarding (who, ob); destruct (ob); } int accept_object(object who, object ob) { object me = this_object(); int t; /* if (! ob->query("food_remaining") && ! ob->query("liquid/remaining")) { message_vision ("$N摇摇头:俺老猪现在只须要吃的喝的。\n",me); return 0; } */ if (who->query("quest/reward") > 0) { message_vision ("$N对$n说道:这位"+RANK_D->query_respect(who)+ ",俺见你身上祥云环绕,何不去从速赴长安进宫请赏?\n",me,who); return 0; } if (! who->query("quest/pending/food")) { message_vision ("$N对$n说道:您给老猪这干什么?俺老猪尽管贪嘴也不受不义之财也。\n",me,who); return 0; } if(ob->is_character()) return 0; if (who->query("quest/pending/food/name") != ob->query("name")) { message_vision ("$N对$n说道:这位"+RANK_D->query_respect(who)+ ",俺等着请您帮忙找的"+ who->query("quest/pending/food/name")+ ",您却给俺"+ob->query("name")+",这……\n",me,who); return 0; } if (who->query("quest/pending/food/id") != ob->query("id")) { message_vision ("$N对$n说道:这位"+RANK_D->query_respect(who)+ ",俺等着您的"+who->query("quest/pending/food/name")+ ",东西倒挺象,但不是同一个货;俺要的是("+ who->query("quest/pending/food/id")+"),您给的是("+ ob->query("id")+")!\n",me,who); return 0; } t = who->query("quest/pending/food/time"); if (t >= uptime() && (t-MAXDELAY) <= uptime()) { message_vision ("$N对$n摇头道:这么快就回来了?俺老猪不要假货。\n",me,who); message_vision ("$N又吩咐道:您再花个"+chinese_number((t-uptime())/60+1)+ "分钟去寻寻。\n",me,who); if (! DEBUG) return 0; else tell_object (who,"NOW DEBUG MODE: 让老猪要下东西。\n"); } rewarding (who, ob); call_out ("destruct_ob",1,ob); return 1; } void destruct_ob (object ob) { destruct (ob); } void rewarding (object who, object ob) { object me = this_object(); string reason; int reward; reason = "为唐人美宴寻得"+ob->query("name")+","; message_vision ("$N对$n说道:多谢这位"+RANK_D->query_respect(who)+ reason+"真是为大唐天下民众造福哇!\n",me,who); reward = quest_reward(who, quests_food, "food"); who->add("quest/reward",reward); who->set("quest/reason",reason); who->add("quest/food/times",1); who->add("quest/food/reward",reward); reporting (who,reason, reward, "奖分"); who->delete("quest/pending/food"); quest_done(who); } |
回复: 【求助】有活人么,问个单机架设问题
这个是猪八戒那个屋子的源码
// cracked by vikee 2/09/2002 vikee@263.net // create by snowcat jan 21 1998 inherit ROOM; void create () { set ("short", "帅府"); set ("long", @LONG 帅府内灯笼高悬,正中放着一把肥大的特号躺椅。屋后有一个案台, 上面放着一个澡盆大的金饭盆,边上有一水桶大小的银酒壶。西边有 一门,通向帅府外。 LONG); set("exits", ([ "west" : __DIR__"tianpeng", ])); set("objects", ([ __DIR__"npc/zhubajie" : 1, ])); setup(); } |
回复: 【求助】有活人么,问个单机架设问题
1 个附件
没有问题,我的跟你的一样,用mudos v22p11驱动,我的没有问题。
附件是我的mudos和配置文件,你可以用下看看。 还有,你开开,sys wiz频道看看错误信息,或者mudos.log发下看看都是什么错误, 然后帮你分析下,呵呵。 |
回复: 【求助】有活人么,问个单机架设问题
不行啊,大侠,用你的配置文件就没法打开了
用我的还能打开,虽然先出错,mudos的重启一次就可以了 而且你的和我的配置文件名不一样? 你的是config.cfg,我的是config.xyj 附图是出错提示,谢谢啊 |
回复: 【求助】有活人么,问个单机架设问题
1 个附件
图片没有贴进去?ft
|
回复: 【求助】有活人么,问个单机架设问题
我看看,先谢谢了!!!!!!!!!!
|
回复: 【求助】有活人么,问个单机架设问题
config里面做相应改动了么
另外检查npc路径 |
回复: 【求助】有活人么,问个单机架设问题
复杂得很复杂得很。
|
回复: 【求助】有活人么,问个单机架设问题
和我遇到的问题是一样的。我的debug信息是
Accepting connections on port 6666. Error in error handler: *Too deep recursion. program: /d/kaifeng/npc/zhubajie.c, object: /d/kaifeng/npc/zhubajie, file: /d/kaifeng/npc/quest.c:52 ' command_hook' in ' feature/command.c' (' obj/user#1') /feature/command.c:62 arguments were ("east") locals were: "go","/cmds/std/go",obj/user#1 ' main' in ' cmds/std/go.c' (' cmds/std/go') /cmds/std/go.c:61 arguments were (obj/user#1,"east",0) locals were: "/d/kaifeng/shuaifu",0,0,0,0,d/kaifeng/tianpeng,0,0,([ /* sizeof() == 2 */ "east" : "/d/kaifeng/shuaifu", "west" : "/d/kaifeng/yao1", ]),0 ' load_object' in 'adm/obj/simul_efun.c' (' adm/obj/simul_efun') /adm/simul_efun/object.c:103 arguments were ("/d/kaifeng/shuaifu") ' create' in ' d/kaifeng/shuaifu.c' (' d/kaifeng/shuaifu') /d/kaifeng/shuaifu.c:24 arguments were () ' setup' in ' std/room.c' (' d/kaifeng/shuaifu') /std/room.c:215 arguments were () ' reset' in ' std/room.c' (' d/kaifeng/shuaifu') /std/room.c:56 arguments were () locals were: ([ /* sizeof() == 1 */ "/d/kaifeng/npc/zhubajie" : 1, ]),([ ]),({ /* sizeof() == 1 */ "/d/kaifeng/npc/zhubajie" }),0,0 ' make_inventory' in ' std/room.c' (' d/kaifeng/shuaifu') /std/room.c:21 arguments were ("/d/kaifeng/npc/zhubajie") locals were: 0 ' create' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/zhubajie.c:64 arguments were () ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 ' setup' in 'd/kaifeng/npc/zhubajie.c' ('d/kaifeng/npc/zhubajie') /d/kaifeng/npc/quest.c:52 arguments were () locals were: 0 |
回复: 【求助】有活人么,问个单机架设问题
你的路径错误了,
我的配制文件是需要把mudos和配制文件放到你的G:\mud\xyj2k下面跟你的world在一个目录里边,如果放到你现在的目录,配制文件里的地址应该下面的样子: external_port_1 : telnet 8888 address server ip : localhost address server port : 6688 mudlib directory : . # absolute pathname of driver/config dir binary directory : . mudlib directory : 这个是西游记的数据目录地址,按照你目前mudos放置的目录可以改成 绝对路径G:/mud/xyj2k/world binary directory : 这个是mudos的配制文件,按照你目前的mudos放置的目录绝对路径 应该是 G:/mud/xyj2k/world 建议你的mudos不要放到/world下面. 我的mudos目录图片见下 |
回复: 【求助】有活人么,问个单机架设问题
1 个附件
图片没弄上图片没弄上图片没弄上
|
回复: 【求助】有活人么,问个单机架设问题
:em06:
请问结果如何啊?解决了吗?我也遇到同样的问题,开封quest的NPC无法显示。还有就是南天门老是报错,看不到天王,随着时间增长,天兵越来越多。哪位大侠指点一下啊。 |
回复: 【求助】有活人么,问个单机架设问题
:em12:
知道怎么回事了,代码里面有误,就是在quest.c里面,第52行,setup函数有误。呵呵,参考了其他的源代码发现的问题。 void setup() ///////setup()函数 { string id; setup(); ///////此处递归调用导致无法编译通过 id=query("id"); if(!id) return; if(undefinedp(color_code[id])) return; my_color=color_code[id]; return; } void setup() { string id; ::setup(); /////////修改后,编译通过。 id=query("id"); if(!id) return; if(undefinedp(color_code[id])) return; my_color=color_code[id]; return; } |
回复: 【求助】有活人么,问个单机架设问题
谢谢你!
我还为了这个问题几乎放弃了呢! 想不到在这里看到你的解决方案! 谢谢你!! |
回复: 【求助】有活人么,问个单机架设问题
问题好象在/KAIFENG/NPC/QUESTS.C那个文件里
你看看那个文件,有一小段不知什么意思,删了就好象好了 |
回复: 【求助】有活人么,问个单机架设问题
引用:
{ string id; setup(); id=query("id"); if(!id) return; if(undefinedp(color_code[id])) return; my_color=color_code[id]; return; } 看看有没有这段,我也不懂什么意思,删了再试下 |
回复: 【求助】有活人么,问个单机架设问题
估计是数据库里没有设立这几个npc吧
|
回复: 【求助】有活人么,问个单机架设问题
如果就是那几个quests的npc加不进去的话就肯定是npc文件的问题了。
|
回复: 【求助】有活人么,问个单机架设问题
这已经是好几年的帖子了啊。。。
|
回复: 【求助】有活人么,问个单机架设问题
这个游戏单机玩就没意思了。。:em08::em08:
|
回复: 【求助】有活人么,问个单机架设问题
猪八戒和香兰是由quest.c文件出错引起的,我开始和你一样替代NPC文件,最后发现提示出错的是quest.c文件的52行
我把我正常运行的quest.c文件代码复制上来,如果是在linux下运行,请改换行编码!! // by snowcat // mon #ifndef ESC #include <ansi.h> #endif #include "colors.h"; #ifndef __KAIFENG_QUEST__ #define __KAIFENG_QUEST__ //#define MAXDELAY 200 // mon reduced time limit. 4/7/98 // #define MAXDELAY 60 //#define MAXDELAY 80 //#define DELAY_CONST 50 //#define MAXREWARD 200 #define MAXDELAY 80 #define DELAY_CONST 35 #define MAXREWARD 120 #define Max_count 10 #define INDEXTIMES 40 #define CACHESIZE 30 #define INDEXDELTA 20 #define IDX_TYPE 0 #define IDX_NAME 1 #define IDX_ID 2 #define IDX_OBJ 3 #define IDX_AMT 4 // the quest format is the following mapping: // daoxing : type name id object amount //--------------------------------------------------------------- // 1000 : ({ "find", "秘笈", "mi ji" , "", "1" }), // 5000 : ({ "give", "灾民", "zai min" , "白银(silver)", "5" }), // 12000 : ({ "kill", "白骨精", "baigu jing", "", "3" }); //找一本秘笈,救济灾民五两银子,三打白骨精...... string my_color=WHT"灰"NOR; void _quest_done (object who); void setup() { string id; ::setup(); id=query("id"); if(!id) return; if(undefinedp(color_code[id])) return; my_color=color_code[id]; return; } int *order_list (int *list) { int i, j; int size = sizeof(list); for (i = size-2; i >= 0; i--) { for (j = 0; j <= i; j++) { reset_eval_cost(); if (list[j] > list[j+1]) { int k = list[j]; list[j] = list[j+1]; list[j+1] = k; } } } return list; } // must execute only once ! int *sort_quests (mapping quests) { int *quest_keys = keys (quests); return order_list (quest_keys); } int quest_accurate_index (int *quest_keys, object who) { int i = 0; int j = 0; int k = sizeof(quest_keys)-1; int daoxing; // mon 3/31/99 give daoxing more weight here. daoxing=(who->query("daoxing")*2+who->query("combat_exp"))/3; while (i < k) { // reset_eval_cost(); j = (k-i)/2+i; if (quest_keys[j] == daoxing) { return j; } else if (quest_keys[j] > daoxing) { k = j - 1; } else { i = j + 1; } } return j; } void reduce_cache (object who, string cache_name) { mapping cache = who->query(cache_name); string key; int value = 0; int k = 0; string *my_keys; int *my_values; if (! cache) return; my_keys = keys(cache); my_values = values(cache); k = sizeof (cache); if (k < CACHESIZE) return; while (k--) { if (my_values[k] < value || 0 == value) { key = my_keys[k]; value = my_values[k]; } } who->delete (cache_name+"/"+key); } int quest_random_index (int *quest_keys, int i, object who, string cache_name) { int j = INDEXTIMES; int k; int lower; int upper; int size = sizeof (quest_keys); lower = i - INDEXDELTA; upper = i + INDEXDELTA; if (lower < 0) { lower = 0; upper = INDEXDELTA + INDEXDELTA; } if (upper >= size) { upper = size - 1; } // adjust here, allow access to lower quests: lower = upper/4; if (upper - lower < INDEXDELTA) lower = 0; reduce_cache (who, cache_name); while (j--) { string str; reset_eval_cost(); k = lower + random (upper-lower); str = cache_name+"/"+to_chinese(k); if (! who->query(str)) { who->set(str,who->query("quest/number")); return k; } } return -1; } int log10 (int i) { int j = 0; while (i = i/10) j++; return j; } int quest_reward (object who, mapping quests, string quest) { int reward; int exp = (who->query("combat_exp")+ who->query("daoxing")*2)/3; int dx = who->query("quest/pending/"+quest+"/daoxing"); int index = who->query("quest/pending/"+quest+"/index"); if (exp > 2000000) exp = 2000000; reward = random(who->query("cps")); // initial value reward += MAXREWARD*(1+index)/sizeof(quests); // normal value reward = reward*(1+log10(exp/10000))*exp/(exp+dx)*dx/(exp+dx); // high value reward += random(who->query_int())+random(who->query_kar()); // base value while (reward <= 0) reward = random(who->query("kar")); if (reward >= MAXREWARD) reward = MAXREWARD + random(who->query("kar")); return reward; } void _quest_done (object who) { string *strs = ({ "慢慢地一小团"+my_color+"色祥云在$N的身边升起。\n", "$N的身上慢慢升起一股"+my_color+"色祥云。\n", "一小股"+my_color+"色祥云在$N的身上缓缓升起。\n", "只见$N的身上徐徐飘浮起一小团"+my_color+"色祥云。\n", "一团"+my_color+"色小祥云在$N的身上慢慢升起。\n", }); if(!who) return; message_vision (strs[random(sizeof(strs))],who); tell_object (who, "你的品德增加了。\n"); } void color_counter(object who) { mapping colors=who->query("quest/colors"); string id=query("id"); string *key; string code, *value; int i,j; if(!id || undefinedp(color_code[id])) return; code=color_code[id]; value=values(color_code); if(!colors) { colors=([code: Max_count-1]); } else { if(undefinedp(colors[code])) { colors+=([code: Max_count]); } else { colors[code]=Max_count; } key=keys(colors); i=sizeof(key); while(i--) { if(member_array(key[i],value)==-1) { map_delete(colors,key[i]); continue; } j=(int)colors[key[i]]; if(j>Max_count) j=Max_count; else if(j<=1) { map_delete(colors,key[i]); continue; } j--; colors[key[i]]=j; } } who->set("quest/colors",colors); } void quest_done (object who) { who->add("quest/number",1); color_counter(who); call_out("_quest_done",1,who); } #endif |
回复: 【求助】有活人么,问个单机架设问题
我也正在尝试这个。。。还没有成功。
|
所有时间均为格林尼治时间 +9, 现在的时间是 22:32. |
Powered by SPLS
版权所有 2001-2023 水泊梁山
皖ICP备05012024号
站长 fengyue