MUD-武林MUD资料站-武侠MUD游戏

 找回密码
 注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

[求助] 苏州媒婆婚礼问题(泥潭2单机)

[复制链接]
跳转到指定楼层
1# .
xiuliinlove 发表于 2013-11-8 12:37:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xiuliinlove 于 2013-11-8 17:40 编辑

算了,前面我被定式思维给欺骗了,一直折腾的是suzhou目录下的meipo,如今仔细看了hongniangzhuang的代码才发现载入的居然是adm下的meipo。
在meipo文件里注释掉了转移月老的语句,可以进行拜堂之后的流程了。虽然没有完全解决问题(不注释还是会报错),但我的水平也只能搞到现在这样了。
估计会每次办婚礼yinyuantang都会多个yuelao出来,不知道mud重启多出来的yuelao会不会消掉……








单机泥潭2结婚测试,拜完堂后会提示:
“(执行时段错误:*call_other() couldn't find object

程式:feature/move.c 第 80 行
物件:/d/suzhou/npc/yuelao#3997
呼叫来自:adm/npc/meipo.c 的 last_marry() 第 632 行,物件: adm/npc/meipo#3705 ("媒婆")
呼叫来自:feature/move.c 的 move() 第 80 行,物件: d/suzhou/npc/yuelao#3997 ("月老")
媒婆笑着对二人说:“今个儿是你们大喜的日子,我没有什么礼物,只好送给你们这对新人一对结婚戒指吧)”

谁后拜就在谁那里显示这个错误信息,先拜的那个正常,然后后面的自动去酒楼的流程就停止执行了。

单机泥潭四里测试了一下,居然能正常执行后面去酒楼的流程。然后我把单机泥潭4的meipo.c和move.c都复制到单机泥潭2,结果还是出现同样的错误提示。又把泥潭4的mudos也复制过来,结果泥潭2直接不能注册账号了(输入中文名字报错)……
折腾了好久也没搞定。
请问:错误提示里面的问题应该是哪个文件导致的?我怀疑可能是mudos有问题,比如不支持call_other什么的,但mudos我不会改……
能通过修改meipo或者move的代码来搞定么?
相关文件部分相关代码:
meipo
……
call_out("do_right",1,me,obj);
        call_out("last_marry",1,ob,me,obj);
        return 1;
    }
}

int do_right(object me, object ob)
{
        string fn;
        string fc;
        object ring;

        message("visoin", name() + "笑着对二人说:“今个儿是你们"
                "大喜的日子,我没有什么礼物,只好送给你"
                "们这对新人一对结婚戒指吧!”\n\n", environment(me));

        fc = read_file(MARRY_RING);
        fc = replace_string(fc, "LONG_DESCRIPTION",
                            "这是" + me->name(1) + "和" +
                            ob->name(1) + "的结婚戒指,是两人的定情之物。\n");

        // give ring to me
        fn = RING_DIR + me->query("id");
        if (file_size(fn + ".c") > 0)
        {
                if (ring = find_object(fn)) destruct(ring);
                rm(fn + ".c");
        }
        assure_file(fn);
        write_file(fn + ".c", fc);
        ring = load_object(fn);
        ring->move(me, 1);
        tell_object(me, HIY "你获得了一个结婚戒指。\n" NOR);
        me->set("can_summon/" + "wedding ring", fn);

        // give ring to ob
        fn = RING_DIR + ob->query("id");
        if (file_size(fn + ".c") > 0)
        {
                if (ring = find_object(fn)) destruct(ring);
                rm(fn + ".c");
        }
        assure_file(fn);
        write_file(fn + ".c", fc);
        ring = load_object(fn);
        ring->move(ob, 1);
        tell_object(ob, HIY "你获得了一个结婚戒指。\n" NOR);
        ob->set("can_summon/" + "wedding ring", fn);
        
        // record
        me->set("couple/witness", name());
        me->save();
        ob->set("couple/witness", name());
        ob->save();
       return 1;//这个是meipo.c的632
}
int last_marry(object ob,object me,object obj)//拜堂结束
{
    object moon,room;
    if(!(room = find_object("/d/suzhou/yinyuan-tang")))
        room = load_object("/d/suzhou/yinyuan-tang");
    moon = present("yue lao", room);
    moon->move("/u/smallfish/workroom");

    ob->delete_temp("wait_time");
    ob->delete_temp("marry/money");
    say("媒婆喊道:“轿夫!快将新人送到迎宾楼举行婚宴,我和月老就不去了,呵呵!”\n说完一扭一扭地向西边走去。\n");");
……



move

……
if (objectp(dest))
        ob = dest;
    else
    if (stringp(dest))
    {
        call_other(dest, "???");//这个是move.c的80
        ob = find_object(dest);
        if (! ob) return notify_fail("move: destination unavailable.\n");
    } else
        return notify_fail(sprintf("move: invalid destination %O.\n", dest));
……

不知道为什么泥潭2里报错,也不知道为什么泥潭4里能够正常执行,泥潭2和泥潭4里都没有那个/u/smallfish/workroom目录和文件的,sign。希望有空能帮忙看看……

另外,我在排除skills代码的比较明显的错误,还没弄完。建议检查一下daojian-guizhen.c和wudang-zhang/zhen.c的me->add("neili",xxx)代码,里面应该是少了个负号,会把本来应该减内力的行为变成加内力(泥潭2里错误,看了下泥潭4里也没修正,所以以泥潭4为基础的需要检查一下,泥潭单机里错别字神马的还是不少的)……




MUD - MUD游戏 - 文字MUD - 武林MUD - 长期、稳定、高速、互助、活跃、更新的武侠MUD站点,一起MUD吧!
2# .
是开碧落 发表于 2013-11-9 14:22:34 | 只看该作者
/u/smallfish/workroom.c 是巫师的工作室, 随便建

wudang-zhang的pfm早就被我砍掉了

daojian-guizhen的什么? 我搜了下没看到 add neili 有问题啊
3# .
 楼主| xiuliinlove 发表于 2013-11-10 00:32:41 | 只看该作者
本帖最后由 xiuliinlove 于 2013-11-10 00:44 编辑
是开碧落 发表于 2013-11-9 14:22
/u/smallfish/workroom.c 是巫师的工作室, 随便建

wudang-zhang的pfm早就被我砍掉了

那可能是已经修正了。
daojian-guizhen.c 练习(practice应当是add负的内力)
看了下,手上几个不同地方下载的nt4,有的是有负号,有的是没负号的……

婚礼问题不去弄了,因为我发现泥潭里结婚两个id也不能互学和教授武功了……

nt2的所有skills和pfm基本都看过一遍,修正了很多错别字和不当描述。挑出几个比较大的错误,供检查代码参考:
1 dugu-jiujian 修正jue精神判断,去掉jing_cost负号(if (me->query("jing") < -jing_cost)
                return notify_fail("你现在太累了,无法集中精神演练「总诀式」!\n");)
2 taiji-quan 修正yin命中时增加消耗内力和不命中时增加消耗内力(原来不命中时消耗内力反而比命中时消耗多)
3 tanzhi-shentong 修正huayu命中时自己为消耗内力(少个负号)(if (ap / 2 + random(ap) > dp)
        {
                damage = damage_power(me, "finger");
                me->add("neili", 350);)
4 yunlong-jian 修正yu命中时消耗内力(少个负号)
上面的是pfm的,下面的是skills本身的:
5 piaoxue-zhang.c 修正功夫id(if (me->query_skill("strike", 1) < me->query_skill("sixiang-zhang", 1))
                return notify_fail("你的基本掌法太差,无法领会更高深的飘雪穿云掌。\n");)
6 rulai-zhang.c 修正功夫id(if (me->query("str") < 26)
                return notify_fail("你先天膂力不足,无法学习淳厚的古拙掌法。\n");)



另外问下:梵文怎么学?貌似九阴真经上好多功夫需要梵文,但我没找到哪里教授梵文……
4# .
是开碧落 发表于 2013-11-10 09:55:16 | 只看该作者
xiuliinlove 发表于 2013-11-10 00:32
那可能是已经修正了。
daojian-guizhen.c 练习(practice应当是add负的内力)
看了下,手上几个不同地方 ...

梵文 大理一灯学
r dali;n;w;w

Archiver|武林MUD资料站 ( 鲁ICP备17038480号 本站关键词:mud 武林mud mud游戏 文字mud

GMT+8, 2024-5-19 09:20

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表