99Max综合娱乐网站(旧版)

 找回密码
 立即注册
楼主: ˉ宝贝ˉ

分享一个可以先看外观然后用材料脱换的NPC商店!

[复制链接]

升级   0%

发表于 2012-4-10 21:21:57 | 显示全部楼层
本帖最后由 一生一叹一痕沙 于 2012-4-10 21:29 编辑

今天回来后正好要更新RA源码,把那段源码if语句加到itemdb.c里,生成失败,他说battle_debug_itemnull不属于battle.......后面几个英文忘了,吃饭前弄的,忘了说了,服务端用的是RA15839
然后就照原来那个脚本自己也做了一个,去掉countitem还是出错。就是灵巧儿源码里的那段警告,就是在把东西拖进窗口点购买后就会显示,制作扣东西都不会再报错了。今天上班一有空就再研究callsub,特别是当中起初判断需要什么材料前的那段if(@bought_nameid == .shop[@i]),一直没理解了,研究了好久才开了一点窍,主要还是没能理解callsub的运用

后来还是用回自己比较熟悉的callfunc

-        shop        qqj_shop        -1,512:50
prontera,150,172,4        script        头饰制作        446,{
        mes "[裁缝]";
        mes "这里我可以为你做很多头饰,";
        mes "但要东西哦";
        callshop "qqj_shop",1;
        npcshopattach "qqj_shop";
        end;

OnBuyItem:
        if(@bought_nameid == 5353) callfunc "HandDo",0,@bought_nameid;
        if(@bought_nameid == 2629) callfunc "HandDo",1,@bought_nameid;



OnInit:
        npcshopitem "qqj_shop",5353,1,2629,1;
        end;
}



function        script        HandDo        {
        switch(getarg(0)) {
                case 0:        setarray @shop[0],500000,502,1,503,1,504,1,0;break;
                case 1:        setarray @shop[0],500000,502,1,503,1,504,1,505,1,0;break;
        }
        mes "- 制作 "+getitemname(getarg(1))+"";
        mes "- 请准备好下面的材料!";
        for(set @e,1;@shop[@e] != 0;set @e,@e+2) {
                mes " "+getitemname(@shop[@e])+"  x" + countitem(@shop[@e]) +"/"+ @shop[@e+1] +(countitem(@shop[@e]) >= @shop[@e+1]?("已完成"):("未完成"));
        }
        mes "需要"+@shop[0]+"Z";
        next;
        switch(select("制作","看样子","结束对话")) {
        case 1:        if(Zeny <= @shop[0]) goto L_nomoney;
                set zeny,zeny-@shop[0];
                for(set @e,1;@shop[@e] != 0;set @e,@e+2) {
                        if(countitem(@shop[@e]) < @shop[@e+1]) goto L_nomoney;
                        delitem @shop[@e],@shop[@e+1];
                }
                mes "制作成功";
                getitem getarg(1),1;
                close;
        case 2:        mes "制作成功";
                close;
        case 3:        close;
L_nomoney:
        mes "get out!";
        close;
        }
}

测试了没错误,其他的自己根据原来的东西加吧。

升级   100%

 楼主| 发表于 2012-4-10 23:07:11 | 显示全部楼层
哥们,我用了你发的脚本显示未知语法文件喔,什么问题呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

升级   0%

发表于 2012-4-10 23:56:24 | 显示全部楼层
你看下是不是每个空白的地方是不是TAB的问题。我测试都正常的才发上来的

升级   100%

 楼主| 发表于 2012-4-11 00:03:38 | 显示全部楼层
还是不行,TAB都检查过了,不如你把付件传上好吗,谢谢

升级   0%

发表于 2012-4-11 00:23:48 | 显示全部楼层
你试试吧。制作物品时的判断按照你发的那个脚本改下,这里我只是大概做了下,玩家做起来可能会有问题,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

升级   100%

 楼主| 发表于 2012-4-11 11:26:54 | 显示全部楼层
你发的能用了,不过小弟实在没能力修改完整脚本,麻烦大大修改完后发下给我好吗?

升级   100%

发表于 2012-4-11 12:09:57 | 显示全部楼层
不仅是countitem,只要对item操作的,比如getitemname类似的指令都会进行查询ID是否合法,不合法就会报告错误.
callfun的话其实已经完全脱离了OnBuyItem.这样后期其实就是一个制作脚本了

升级   100%

发表于 2012-4-23 18:36:17 | 显示全部楼层
下来学习下。什么都不明白

升级   25.67%

发表于 2012-4-28 08:45:52 | 显示全部楼层
很有价值的思路

升级   100%

群组: JRO日本客户端

发表于 2012-4-28 20:43:39 | 显示全部楼层
支持一下了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|99Max综合娱乐网站(旧版) ( 沪ICP备11024206号-1 )

GMT+8, 2025-2-22 23:56 , Processed in 0.250220 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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