|  | 
 
| 论坛好像有教怎么改出这样的菜单,但我记得是dos下的,不是lua版 
 所以我练习完顺便发上来了,如果回锅了就无视吧
 
 呵呵~
 
 代码是在JYModify.lua里面的,具体在附件中,直接复制可用
 
 附件还整合了我今天早上发布的队友相互吃药系统~
   
 如果不想花银子的,看代码如下:
 
 function SetModify()
 SelectThing=SelectThing_new;        --强化菜单
 Menu_Thing_old=Menu_Thing;                --备份
 Menu_Thing=Menu_Thing_new;                --仿苍龙菜单
 end
 
 
 
 --强化物品菜单,仿苍龙逐日
 function Menu_Thing_new()       --物品菜单
 local menu={                {"全部物品",Menu_Thing_old,1},
 {"剧情物品",Menu_type0,1},
 {"神兵宝甲",Menu_type1,1},
 {"武功秘笈",Menu_type2,1},
 {"灵丹妙药",Menu_type3,1},
 {"伤人暗器",Menu_type4,1}                };
 local r=ShowMenu(menu,6,0,80,10,0,0,1,1,24,C_ORANGE, C_WHITE);
 
 if r == 0 then
 Cls(80,10,CC.ScreenW,CC.ScreenH);
 return 0;
 elseif r<0 then   --要退出全部菜单,
 Cls();
 return 1;
 end
 end
 
 
 
 
 
 
 
 function Menu_type0()
 local thing={};
 local thingnum={};
 local num=0;
 
 for i = 0,CC.MyThingNum-1 do
 thing[i]=-1;
 thingnum[i]=0;
 end
 
 
 
 for i = 0,CC.MyThingNum-1 do
 local id=JY.Base["物品" .. i+1];
 if id>=0 then
 if JY.Thing[id]["类型"]==0 then
 thing[num]=id;
 thingnum[num]=JY.Base["物品数量" ..i+1];
 num=num+1;
 end
 end
 end
 
 local rr=SelectThing(thing,thingnum);
 if rr>=0 then
 if UseThing(rr)==1 then        --使用物品
 return 1;
 else
 return 0;
 end
 else
 return 0;
 end
 end
 
 
 function Menu_type1()
 local thing={};
 local thingnum={};
 local num=0;
 
 for i = 0,CC.MyThingNum-1 do
 thing[i]=-1;
 thingnum[i]=0;
 end
 
 
 
 for i = 0,CC.MyThingNum-1 do
 local id=JY.Base["物品" .. i+1];
 if id>=0 then
 if JY.Thing[id]["类型"]==1 then
 thing[num]=id;
 thingnum[num]=JY.Base["物品数量" ..i+1];
 num=num+1;
 end
 end
 end
 
 local rr=SelectThing(thing,thingnum);
 if rr>=0 then
 if UseThing(rr)==1 then        --使用物品
 return 1;
 else
 return 0;
 end
 else
 return 0;
 end
 end
 
 
 function Menu_type2()
 local thing={};
 local thingnum={};
 local num=0;
 
 for i = 0,CC.MyThingNum-1 do
 thing[i]=-1;
 thingnum[i]=0;
 end
 
 
 
 for i = 0,CC.MyThingNum-1 do
 local id=JY.Base["物品" .. i+1];
 if id>=0 then
 if JY.Thing[id]["类型"]==2 then
 thing[num]=id;
 thingnum[num]=JY.Base["物品数量" ..i+1];
 num=num+1;
 end
 end
 end
 
 local rr=SelectThing(thing,thingnum);
 if rr>=0 then
 if UseThing(rr)==1 then        --使用物品
 return 1;
 else
 return 0;
 end
 else
 return 0;
 end
 end
 
 
 function Menu_type3()
 local thing={};
 local thingnum={};
 local num=0;
 
 for i = 0,CC.MyThingNum-1 do
 thing[i]=-1;
 thingnum[i]=0;
 end
 
 
 
 for i = 0,CC.MyThingNum-1 do
 local id=JY.Base["物品" .. i+1];
 if id>=0 then
 if JY.Thing[id]["类型"]==3 then
 thing[num]=id;
 thingnum[num]=JY.Base["物品数量" ..i+1];
 num=num+1;
 end
 end
 end
 
 local rr=SelectThing(thing,thingnum);
 if rr>=0 then
 if UseThing(rr)==1 then        --使用物品
 return 1;
 else
 return 0;
 end
 else
 return 0;
 end
 end
 
 
 function Menu_type4()
 local thing={};
 local thingnum={};
 local num=0;
 
 for i = 0,CC.MyThingNum-1 do
 thing[i]=-1;
 thingnum[i]=0;
 end
 
 
 
 for i = 0,CC.MyThingNum-1 do
 local id=JY.Base["物品" .. i+1];
 if id>=0 then
 if JY.Thing[id]["类型"]==4 then
 thing[num]=id;
 thingnum[num]=JY.Base["物品数量" ..i+1];
 num=num+1;
 end
 end
 end
 
 local rr=SelectThing(thing,thingnum);
 if rr>=0 then
 if UseThing(rr)==1 then        --使用物品
 return 1;
 else
 return 0;
 end
 else
 return 0;
 end
 end
 
 
 
 
 --显示物品菜单
 --返回选择的物品编号, -1表示没有选择
 function SelectThing_new(thing,thingnum)        --显示物品供选择
 local xnum,ynum=8,5;
 local dx,dy=90,20;
 local w,h=60,60;
 local cur_line=0;
 local cur_x=0;
 local cur_y=0;
 local cur_thing=-1;
 
 
 while true do
 Cls(80,10,CC.ScreenW,CC.ScreenH);
 for y=0,ynum-1 do
 for x=0,xnum-1 do
 local id=y*xnum+x+xnum*cur_line ;        --当前待选择物品
 if x==cur_x and y==cur_y then
 lib.Background(dx-10,dy,dx+(xnum)*w-10,dy+30,128);
 lib.DrawRect(dx-10,dy,dx+(xnum)*w-10,dy+30,C_WHITE);
 if thing[id]>=0 then
 cur_thing=thing[id];
 local str=JY.Thing[thing[id]]["名称"];
 if JY.Thing[thing[id]]["类型"]==1 or JY.Thing[thing[id]]["类型"]==2 then
 if JY.Thing[thing[id]]["使用人"] >=0 then
 str=str .. "(" .. JY.Person[JY.Thing[thing[id]]["使用人"]]["姓名"] .. ")";
 end
 end
 
 str=str .. " X " .. tostring(thingnum[id]) .. ": " .. JY.Thing[thing[id]]["物品说明"];
 DrawString(dx-10+5,dy+5,str,C_GOLD,16);
 local str2="";
 str2=str2 .. get_thing_detail1(cur_thing);
 DrawString(dx,dy+(ynum)*h+50,str2,C_GOLD,16);
 local str3="";
 str3=str3 .. get_thing_detail2(cur_thing);
 DrawString(dx,dy+(ynum)*h+70,str3,C_GOLD,16);
 else
 cur_thing=-1;
 end
 
 lib.Background(dx+x*w-10,dy+y*h+30,dx+(x+1)*w-10,dy+(y+1)*h+30,64);
 lib.DrawRect(dx+x*w-1,dy+y*h+40-1,dx+(x)*w+40,dy+(y)*h+80,C_WHITE);
 else
 lib.Background(dx+x*w-10,dy+y*h+30,dx+(x+1)*w-10,dy+(y+1)*h+30,192);
 end
 
 lib.DrawRect(dx+x*w-10,dy+y*h+30,dx+(x+1)*w-10,dy+(y+1)*h+30,C_WHITE);
 if thing[id]>=0 then
 lib.PicLoadCache(2,thing[id]*2,dx+x*w,dy+y*h+40,1,1);
 end
 end
 end
 lib.Background(dx-10,dy+(ynum)*h+40,dx+(xnum)*w-10,dy+(ynum)*h+130,192);
 lib.DrawRect(dx-10,dy+(ynum)*h+40,dx+(xnum)*w-10,dy+(ynum)*h+130,C_WHITE);
 
 
 ShowScreen();
 local keypress=WaitKey();
 lib.Delay(100);
 if keypress==VK_ESCAPE then
 cur_thing=-1;
 break;
 elseif keypress==VK_RETURN or keypress==VK_SPACE then
 break;
 elseif keypress==VK_UP then
 if  cur_y == 0 then
 if  cur_line > 0 then
 cur_line = cur_line - 1;
 end
 else
 cur_y = cur_y - 1;
 end
 elseif keypress==VK_DOWN then
 if  cur_y ==ynum-1 then
 if  cur_line < (math.modf(200/xnum)-ynum) then
 cur_line = cur_line + 1;
 end
 else
 cur_y = cur_y + 1;
 end
 elseif keypress==VK_LEFT then
 if  cur_x > 0 then
 cur_x=cur_x-1;
 else
 cur_x=xnum-1;
 end
 elseif keypress==VK_RIGHT then
 if  cur_x ==xnum-1 then
 cur_x=0;
 else
 cur_x=cur_x+1;
 end
 end
 end
 
 
 Cls(80,10,CC.ScreenW,CC.ScreenH);
 ShowScreen();
 return cur_thing;
 end
 
 
 
 function get_thing_detail1(thingid)
 local str="";
 if JY.Thing[thingid]["类型"]==0 then
 str="剧情物品";
 elseif JY.Thing[thingid]["类型"]>0 then
 str=get_thing_detail_type1(thingid);
 else
 return 0;
 end
 return str;
 end
 
 
 function get_thing_detail_type1(thingid)
 local str="";
 if JY.Thing[thingid]["类型"]==1 then
 if JY.Thing[thingid]["加攻击力"]>0 then
 str=str .. "攻击 + " .. JY.Thing[thingid]["加攻击力"] .. "   ";
 end
 if JY.Thing[thingid]["加防御力"]>0 then
 str=str .. "防御 + " .. JY.Thing[thingid]["加防御力"] .. "   ";
 end
 if JY.Thing[thingid]["加轻功"]>0 then
 str=str .. "轻功 + " .. JY.Thing[thingid]["加轻功"] .. "   ";
 end
 if JY.Thing[thingid]["加攻击带毒"]>0 then
 str=str .. "带毒 + " .. JY.Thing[thingid]["加攻击带毒"] .. "   ";
 end
 elseif JY.Thing[thingid]["类型"]==2 then
 if JY.Thing[thingid]["改变内力性质"]==2 then
 str=str .. "阴阳调和" .. "   ";
 end
 if JY.Thing[thingid]["加攻击力"]>0 then
 str=str .. "攻击 + " .. JY.Thing[thingid]["加攻击力"] .. "   ";
 end
 if JY.Thing[thingid]["加防御力"]>0 then
 str=str .. "防御 + " .. JY.Thing[thingid]["加防御力"] .. "   ";
 end
 if JY.Thing[thingid]["加轻功"]>0 then
 str=str .. "轻功 + " .. JY.Thing[thingid]["加轻功"] .. "   ";
 end
 if JY.Thing[thingid]["加攻击带毒"]>0 then
 str=str .. "带毒 + " .. JY.Thing[thingid]["加攻击带毒"] .. "   ";
 end
 if JY.Thing[thingid]["加生命最大值"]>0 then
 str=str .. "最大生命 + " .. JY.Thing[thingid]["加生命最大值"] .. "   ";
 end
 if JY.Thing[thingid]["加内力最大值"]>0 then
 str=str .. "最大内力 + " .. JY.Thing[thingid]["加内力最大值"] .. "   ";
 end
 if JY.Thing[thingid]["加医疗能力"]>0 then
 str=str .. "医疗 + " .. JY.Thing[thingid]["加医疗能力"] .. "   ";
 end
 if JY.Thing[thingid]["加用毒能力"]>0 then
 str=str .. "用毒 + " .. JY.Thing[thingid]["加用毒能力"] .. "   ";
 end
 if JY.Thing[thingid]["加解毒能力"]>0 then
 str=str .. "解毒 + " .. JY.Thing[thingid]["加解毒能力"] .. "   ";
 end
 if JY.Thing[thingid]["加抗毒能力"]>0 then
 str=str .. "抗毒 + " .. JY.Thing[thingid]["加抗毒能力"] .. "   ";
 end
 if JY.Thing[thingid]["加拳掌功夫"]>0 then
 str=str .. "拳掌 + " .. JY.Thing[thingid]["加拳掌功夫"] .. "   ";
 end
 if JY.Thing[thingid]["加御剑能力"]>0 then
 str=str .. "御剑 + " .. JY.Thing[thingid]["加御剑能力"] .. "   ";
 end
 if JY.Thing[thingid]["加耍刀技巧"]>0 then
 str=str .. "耍刀 + " .. JY.Thing[thingid]["加耍刀技巧"] .. "   ";
 end
 if JY.Thing[thingid]["加特殊兵器"]>0 then
 str=str .. "特殊 + " .. JY.Thing[thingid]["加特殊兵器"] .. "   ";
 end
 if JY.Thing[thingid]["加暗器技巧"]>0 then
 str=str .. "暗器 + " .. JY.Thing[thingid]["加暗器技巧"] .. "   ";
 end
 if JY.Thing[thingid]["加武学常识"]>0 then
 str=str .. "武学常识 + " .. JY.Thing[thingid]["加武学常识"] .. "   ";
 end
 elseif JY.Thing[thingid]["类型"]==3 then
 if JY.Thing[thingid]["加生命"]>0 then
 str=str .. "生命 + " .. JY.Thing[thingid]["加生命"] .. "   ";
 end
 if JY.Thing[thingid]["加生命最大值"]>0 then
 str=str .. "最大生命 + " .. JY.Thing[thingid]["加生命最大值"] .. "   ";
 end
 if JY.Thing[thingid]["加内力"]>0 then
 str=str .. "内力 + " .. JY.Thing[thingid]["加内力"] .. "   ";
 end
 if JY.Thing[thingid]["加内力最大值"]>0 then
 str=str .. "最大内力 + " .. JY.Thing[thingid]["加内力最大值"] .. "   ";
 end
 if JY.Thing[thingid]["加中毒解毒"]<0 then
 str=str .. "解毒 + " .. -JY.Thing[thingid]["加中毒解毒"] .. "   ";
 end
 if JY.Thing[thingid]["加体力"]>0 then
 str=str .. "体力 + " .. JY.Thing[thingid]["加体力"] .. "   ";
 end
 
 if JY.Thing[thingid]["加抗毒能力"]>0 then
 str=str .. "抗毒 + " .. JY.Thing[thingid]["加抗毒能力"] .. "   ";
 end
 if JY.Thing[thingid]["加武学常识"]>0 then
 str=str .. "武学常识 + " .. JY.Thing[thingid]["加武学常识"] .. "   ";
 end
 elseif JY.Thing[thingid]["类型"]==4 then
 if JY.Thing[thingid]["加生命"]<0 then
 str=str .. "杀伤力: " .. -JY.Thing[thingid]["加生命"] .. "   ";
 end
 if JY.Thing[thingid]["加中毒解毒"]>0 then
 str=str .. "带毒: " .. JY.Thing[thingid]["加中毒解毒"] .. "   ";
 end
 else
 return 0;
 end
 return str;
 end
 
 
 
 function get_thing_detail2(thingid)
 local str="";
 if JY.Thing[thingid]["需内力"]>0 then
 str=str .. "内力需求:" .. JY.Thing[thingid]["需内力"] .. "   ";
 end
 if JY.Thing[thingid]["需攻击力"]>0 then
 str=str .. "攻击需求:" .. JY.Thing[thingid]["需攻击力"] .. "   ";
 end
 if JY.Thing[thingid]["需轻功"]>0 then
 str=str .. "轻功需求:" .. JY.Thing[thingid]["需轻功"] .. "   ";
 end
 if JY.Thing[thingid]["需用毒能力"]>0 then
 str=str .. "用毒需求:" .. JY.Thing[thingid]["需用毒能力"] .. "   ";
 end
 if JY.Thing[thingid]["需医疗能力"]>0 then
 str=str .. "医疗需求:" .. JY.Thing[thingid]["需医疗能力"] .. "   ";
 end
 if JY.Thing[thingid]["需解毒能力"]>0 then
 str=str .. "解毒需求:" .. JY.Thing[thingid]["需解毒能力"] .. "   ";
 end
 if JY.Thing[thingid]["需拳掌功夫"]>0 then
 str=str .. "拳掌需求:" .. JY.Thing[thingid]["需拳掌功夫"] .. "   ";
 end
 if JY.Thing[thingid]["需御剑能力"]>0 then
 str=str .. "御剑需求:" .. JY.Thing[thingid]["需御剑能力"] .. "   ";
 end
 if JY.Thing[thingid]["需耍刀技巧"]>0 then
 str=str .. "耍刀需求:" .. JY.Thing[thingid]["需耍刀技巧"] .. "   ";
 end
 if JY.Thing[thingid]["需特殊兵器"]>0 then
 str=str .. "特殊需求:" .. JY.Thing[thingid]["需特殊兵器"] .. "   ";
 end
 if JY.Thing[thingid]["需暗器技巧"]>0 then
 str=str .. "暗器需求:" .. JY.Thing[thingid]["需暗器技巧"] .. "   ";
 end
 if JY.Thing[thingid]["需资质"]>0 then
 str=str .. "资质需求:" .. JY.Thing[thingid]["需资质"] .. "   ";
 end
 if JY.Thing[thingid]["需经验"]>0 then
 str=str .. "经验需求:" .. JY.Thing[thingid]["需经验"] .. "   ";
 end
 
 return str;
 end
 
 好长~~~~~~~~~~~~但其实东西不多,欢迎指正~
  
 [table=100%,#cbb48a][tr][td][size=9pt][发帖际遇]: [url=http://www.txdx.net/event.php]winson7891暑假期间在洛阳绿竹巷参加《任盈盈琴箫兴趣班》,恭喜你学会了《笑傲江湖》,增加声望13。
 [/url][/font][/td][/tr][/table]
 
 [[i] 本帖最后由 weyl 于 2009-3-23 23:20 编辑 [/i]]
 | 
 评分
查看全部评分
 |