UID11438
阅读权限90
威望 点
积分10672
注册时间2012-2-5
最后登录1970-1-1
听众
收听
升级
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;
}
}
测试了没错误,其他的自己根据原来的东西加吧。 |
|