铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 1847|回复: 16

分享一个“方阵型”列表菜单函数 8月24日更新

  [复制链接]
发表于 2012-8-20 17:14 | 显示全部楼层 |阅读模式
本帖最后由 ivansz 于 2023-5-6 23:44 编辑

效果图:

黄色的选项可以点选 红色和灰色不能点选,支持鼠标操作

不多说 先上代码

函数介绍:ShowMenu3(menuItem,numItem,rownum,x1,y1,x2,y2,isBox,isEsc,size,color,selectColor,Title1,Title2,color2,color3,linenum)
额。。。这个函数有16个参数。。好吧我复杂化了 = = 好吧 我又加了一个参数linenum 行数

参数1:menuItem 需要一个二层表,类似于 ShowMenu2 的第一个参数
参数2:numItem 需要显示的选项数量,类似于  ShowMenu2 的第二个参数
参数3:rownum 列数,表示方阵的列数
参数4-7:x1,y1 是左上角坐标   x2,y2 右下角坐标 ,如果都填 -2 则会自动把菜单放到屏幕中间,也可以只填两个,但一定要成双
参数8:isBox = 1 有边框 ,isBox = 0 无边框
参数9:isEsc = 1 按Esc可以退出,否则不能按Esc退出,也就是必须选择(一般都填1,慎用)
参数10:size 就是字体的大小
参数11,12,15,16 是四种颜色 分别是 默认字体颜色、选中字体和标题的颜色、颜色2、颜色3 稍后做举例解释参数13,14 是两个标题字符串,13左对齐,12右对齐
参数17:linenum 行数 指定显示的行数,显示不下的可以继续往下翻看,支持鼠标滚轮。
ps:Title1,Title2,color2,color3,linenum 都可以不填或者填 nil
ps2:当两个标题都为空时,自动去除标题行

举例说明:
--这是马车传送的函数,我把下面那个列表函数改为ShowMenu3 并且限制10行5列显示
  1. function SelectSceneMenu(x, y)
  2.   local menu = {};
  3.         for i=0, JY.SceneNum-1 do
  4.                 menu[i+1] = {i..JY.Scene[i]["名称"], nil, 2};
  5.                 if JY.Scene[i]["进入条件"] == 0 and JY.SubScene ~= 25 and i ~= 83 and i ~= 82 and i ~= 81 then
  6.                         menu[i+1][3] = 1
  7.                 end
  8.                 if i == 13 then
  9.                         menu[i+1][3] = 3
  10.                 end
  11.         end
  12.   return ShowMenu3(menu, #menu, 5, -2, -2, -2, -2, 1, 1, 24, C_GOLD, C_WHITE,"传送列表",nil,M_DimGray,C_RED,10)
  13. end
复制代码

效果图:在顶上














本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-8-24 16:48 | 显示全部楼层
StarShine 发表于 2012-8-22 22:01
不错不错~
一些地方改进下就会更贴心
例如title为空时,不占空格

改好了你看看行不

点评

另外我想问一下 pageUp 和 pageDown的键值是多少?  发表于 2012-8-24 16:51
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-8-20 17:22 | 显示全部楼层
本帖最后由 云色天清 于 2012-8-20 18:50 编辑

我在想,这个方阵菜单要用在什么地方呢?

哈,想到了,游戏里加个抽奖功能,就用这个菜单,32个数字,
选中者中大奖~~





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x

点评

偶像!!  发表于 2012-8-20 22:40
你太有才了 = =  发表于 2012-8-20 17:37
例如你把马车传送列表做成这样 看看效果  发表于 2012-8-20 17:25
想怎么用都可以。。我以后会在穿越版里用到。。  发表于 2012-8-20 17:24
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-8-20 17:50 | 显示全部楼层
回复 云色天清 的帖子


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x

点评

刚刚重传了一半的图,【我擦,百度还不让外链,我的51张图白费了= =】  发表于 2012-8-28 19:58
松哥看看图行天下的我的动图20中的图能不能看- -  发表于 2012-8-28 19:55
虽然代码完全看不懂,但效果真是杠杠的~~  发表于 2012-8-20 22:51
比翻页快多了  发表于 2012-8-20 19:10
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-8-20 18:00 | 显示全部楼层
有办法搞成地图状么。。

点评

= = 木有  发表于 2012-8-20 18:56
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-8-20 19:12 | 显示全部楼层
要是把数字换成扑克牌会怎么样

点评

不是说地图那个啦  发表于 2012-8-20 19:17
谁帮我做一副这样的牌出来...106张  发表于 2012-8-20 19:14
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-8-20 19:16 | 显示全部楼层
其實就是把物品菜單那裡改一改,把圖片改成字不就好了?

点评

额 我怎么没想到..  发表于 2012-8-20 19:21
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-8-20 19:22 | 显示全部楼层
回复 云色天清 的帖子

人才呀..你真搞出赌场了 = =

点评

原来鼠标是真实存在于代码里面的么= =...好吧我错了T.T  发表于 2012-8-20 22:42
= =  发表于 2012-8-20 19:28
没有赌场的江湖,也不太正常吧  发表于 2012-8-20 19:27
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-8-20 22:24 | 显示全部楼层
求赌场补丁,求老虎机,求六合彩,求21点,求大老二,求扑克,求三国杀
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-8-20 22:28 | 显示全部楼层
求keyPress>999999的解释,在啥情况下键盘值会这么高啊...

点评

那是鼠标的键值  发表于 2012-8-20 22:32
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-8-20 23:01 | 显示全部楼层
回复 二宫和也 的帖子

之前也一直想不通键值那么大代表什么...后来看多了突然就明白了= =

点评

传说中的醍醐灌顶猛然之间冲破任督二脉从此天下无敌么  发表于 2012-8-20 23:06
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-8-22 22:01 | 显示全部楼层
不错不错~
一些地方改进下就会更贴心
例如title为空时,不占空格
以及支持翻页,目前似乎只能显示一页

点评

额 去确实懒了 呵呵,好大大发话了就改  发表于 2012-8-22 22:49
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-8-24 19:18 | 显示全部楼层
本帖最后由 StarShine 于 2012-8-24 19:40 编辑

回复 ivansz 的帖子

翻页功能俺已经实现了,正是用pageup/pagedown实现的,相对来说简单一点  

上下左右键就不翻页了

键码:
pageup 280,
pagedown 281





点评

谢啦  发表于 2012-8-24 19:58
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-8-28 17:42 | 显示全部楼层
ivansz:
你设计的列表函数太棒了。我在几个地方应用均成功。
唯独用在马车传送上,列表正常,但执行时就退出。我感觉是My_Enter_SubScene(sceneid,x,y,direct)可能有点问题,就copy你的系统中的相关定义运行,仍然不行。请指教一下。
谢谢。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-8-28 17:57 | 显示全部楼层
回复 fujs 的帖子

我也没有改别的地方呀。。只改了下面这个函数
  1. --选择场景,马车传送用的
  2. function SelectSceneMenu(x, y)
  3.   local menu = {};
  4.         for i=0, JY.SceneNum-1 do
  5.                 menu[i+1] = {i..JY.Scene[i]["名称"], nil, 2};
  6.                 if JY.Scene[i]["进入条件"] == 0 and JY.SubScene ~= 25 and i ~= 83 and i ~= 82 and i ~= 81 then
  7.                         menu[i+1][3] = 1
  8.                 end
  9.                 if i == 13 then
  10.                         menu[i+1][3] = 3
  11.                 end
  12.         end
  13.   return ShowMenu3(menu, #menu, 7, -2, -2, -2, -2, 1, 1, 18, C_GOLD, C_WHITE,"传送列表","",M_DimGray,C_RED)
  14. end
复制代码

点评

这个效果图是三楼那个  发表于 2012-8-28 17:58
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-8-28 19:15 | 显示全部楼层
我怎么感觉这个楼偏了

点评

偏哪去了 = =  发表于 2012-8-28 19:44
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-8-28 19:39 | 显示全部楼层
回复 ivansz 的帖子

Sorry,是我搞错了。我把文件运行后(1001版),使用F1--马车传送,没有问题。

我原先试的是通过对话那个传送。
通过对话传送是有点这样的问题。为了通过对话启动,我去掉了代码中的第一句“function SelectSceneMenu(x, y)”,将“return ShowMenu3“改成local r =ShowMenu3...,结果如我所问,在你的单通版对话也能传送,没有问题,但在1001版就会列表后,执行时跳出。

谢谢你的函数给我的帮助。你的函数没有任何问题。如有机会,我会举例说明其使用,感觉真的很棒。

点评

恩 那应该是跟1001版稍微有点不兼容..查看debug应该可以知道原因的  发表于 2012-8-28 19:47
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-12-24 10:00

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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