leisel 发表于 2013-7-21 03:48:01

分享自己的全屏装备系统:纯T+多人+可移植+内附教程+支持任意版本

本帖最后由 leisel 于 2013-7-21 17:14 编辑



做地图也有些年了,不敢说十分精通,也积累了点经验,心里总有个想法是不是应该留下点什么呢?
大大小小的老人也都有自己的小系统神马的贡献在外。时间精力关系总没能下决心去做点什么。

大概是因为acomc的缘故(他在GA的ID忘记了~C什么来着),他的一个朋友的徒弟想要一个全屏装备系统,纯T的
我想,为何不趁这个机会把这个东西好好写写呢?(尼玛几个通宵就这样过去了,坑爹啊)
总算是优化完了,希望这个纯T的玩意能够帮到那些新手朋友,也欢迎老鸟一起交流互相学习~

leisel 发表于 2013-7-21 03:50:33

本帖最后由 leisel 于 2013-7-21 17:22 编辑

全屏装备系统简介


操作界面比较丑,有需要的同学可以自行PS,不过物品栏位不能移动因为当前使用的是自动化处理,在修改触发器的前提下,可以配合完成栏位移动
————————————————————————————————————————————

系统简介:

简单来说系统分2个部分,一个是全屏装备系统的逻辑处理,一个是多重背包系统
这个系统把多重背包系统和全屏装备系统合并了
你现在看到的是一个直接操作物品的全屏装备系统...
相对而言演示,这应该是一个成品系统,移植之后对设置进行小小的处理就可以适应多人使用
因此细节还是比较多,为了移植顺利,我都一一罗列了出来,按照程序操作应该是错不了的
自己已经亲自移植过,准确无误

1、适用于1.20~1.26
因为并没有使用哈希表等一些相对高级的东西,用数组就完成了功能的搭建,所以没有对使用什么版本的WAR3提出要求
你可以再在1.20以上任意版本中使用本系统。当然你觉得哈希表可以让这个系统变得更加强大,那么,不妨试试··

2、纯T制作
最初是因为不懂JASS,后来觉得有时间学JASS不如多做一会地图~(JAVA写得还行)
不过也尽量优化了处理过程,语句本身不是很多,尽量减少函数的调用次数,效果尚能接受

3、支持多人
那小堆代码,能够支持1-10个玩家的全屏装备系统,系统初始化也是按照10人规模进行设计的
而且优化的时候这里做了特别的处理,不同玩家之间的装备界面可以不规则地安放,主要记录正确坐标就可以进行系统初始化
我原本的系统是按照固定距离直线排列自动根据玩家初始化,这里没有这样的要求

4、移植方便
优化过程中比较注重触发器的封装,只要修正少量的设置,就能解决所有问题,降低移植难度和意外,一气呵成

5、扩展性强
结构化的东西,都会非常利于扩展,比方说有一天你不需要物品不需要多重背包了,假设你用的是YDWE
可以轻易地构造出随机物品属性什么的,那么全屏装备逻辑系统仍然可以充当面板操作,在后台接合你的属性数据~

缺点:大部分法球效果会失去作用。



演示系统下载:


leisel 发表于 2013-7-21 03:54:06

本帖最后由 leisel 于 2013-7-21 06:57 编辑

全屏装备系统移植流程


一、物体编辑器转移清单
(注意物编最下方自定义部分)

1、导入图形资源(4个):总共3个模型1个贴图
注:inventoryskin256.blp路径改成跟名字一致,其余无需修改保持默认路径即可

2、技能(2个):2个物品栏技能
3、单位(1个):1个充当背包格子的单位——背包

4、可破坏物(6个):
⑴装备界面——装备系统的主界面
⑵选择圈——选中装备系统物品时显示的光圈
⑶丢弃物品——从背包中将物品丢弃出来
注:以上三项是系统元素,另外三个可破坏物代表全屏系统中的图标

5、物品(3个):3个测试物品,关于创建物品和使用细则,后面会有详细讲解,先拷几个样本


二、拷贝触发器

1、在复制触发器之前,请确保你的WE“自动生成未知变量”项是打开的,检验办法如下:
打开WE主窗体→单击左上角的"文件"→"参数设置"→"综合"
勾上"当黏贴触发器数据时自动创建未知变量",点"确定"

2、一共4个触发器文件夹,全部复制完后按Ctrl+B,找出多面板数组LeaderBoard,将数组大小设置为10
找出矩形区域数组d_players,大小设置为10,这两项非常重要,不设不影响单人使用,因此很容易被忽略
想要支持多人使用时就乱套了

3、文件夹:全屏装备系统

⑴找不到"xz3","xz4"因为触发器创建和引用的顺序不一样,点进去重新确认一下就行。(见附图绿色部分)
⑵"xz","xz2"的一级条件中和触发单位进行校对的对象缺失(见附图红色部分),引用到移植的单位“背包”即

⑶"FSChange"和<读档>文件夹下的"Read"都需要校正一次删除和添加物品栏技能动作,如下图所示;







4、文件夹:全屏装备系统初始化

系统的初始化部分,包括不同玩家之间的系统初始化,系统参数初始化以及全屏装备系统物品信息初始化等等,
初始化的细节在相关章节会有提及,有几个地方需要进行调整。

FSCreate:

⑴2重循环内的创建单位动作(见附图红色部分)→将创建的单位指向移植过来的单位——“背包”
循环体中一共有3个,全部替换成“背包”(3个动作一模一样,可复制黏贴)

⑵第1个2重循环外面一个单独“创建可破坏物在最后创建的单位的位置”(见附图黄色部分)
将创建的对象指向可破坏物——“丢弃物品”

⑶确认所有的"三月之匙"(见附图绿色部分),"三月之匙"是默认的指向项,如果该项已经指向一个有属性的物
品,务必更改该项,确保指向的物品是无属性的,不会是自动使用并消失的消耗类物品。

⑷最末端的两个添加技能动作(见附图蓝色部分),分别修正为添加“物品栏2”和“物品栏3”,移植过来的那
两个技能。



到这里,先把地图保存一下,关掉WE,重新打开
然后打开“可破坏物”,把玩家1的全屏装备界面拖出来,放在你想要安置的地方,接着往下看

RPGSystemInit:

FSsys_Kphw_xz = 可破坏物“选择圈”(如图红色部分)
d_players[]是关于全屏装备界面镜头活动范围区域的限制,在刚才拖出来的全屏装备界面的中心点创建一个最
小的矩形区域,参考地图内设置,然后将d_players引用到刚才创建的矩形区域(见附图蓝色部分)。


FSsys_Kphw_Lx[]引用到正确的可破坏物类型上,分别是三个装备的图标
无法设置的,需要删除相关项重新设置变量,正确如图:




OK,到此为止,全屏装备系统移植结束。






leisel 发表于 2013-7-21 03:59:48

本帖最后由 leisel 于 2013-7-21 07:57 编辑

初始化全屏装备系统

一、英雄
"cs"中的 "heroes=最后创建的单位" 这一句实际要达到的效果是"heroes[触发玩家的索引]=使用全屏系统的英雄"
这用法很常见,用过的同学自然知道怎么用,没用过的同学····
假设:
玩家1要使用全屏系统的英雄是吉安娜,那么heroes=吉安娜
玩家2要使用全屏系统的英雄是火女,那么heroes=火女
玩家3要使用全屏系统的英雄是芭比娃娃,那么heroes=芭比娃娃
然后就可以删掉"cs"文件夹了。
这个赋值动作通常发生在选择英雄之后立即进行

二、系统
英雄赋值完毕之后通常就是直接调用FSCreate,进行玩家装备系统的初始化
而RPGSystemInit,EquipInfoInit要在这之前完成初始化,时间上需要进行控制

FSCreate初始化有3个参数需要进行设置:

1、intA = 当前初始化的玩家索引号 (根据游戏创建角色的方式想办法给这个intA赋值上匹配玩家的索引号,如玩家1就给1,玩家2就给2)



2、doubleX = 该玩家的全屏装备界面的第一个背包的x坐标 - 32
3、doubleY =该玩家的全屏装备界面的第一个背包的y坐标 + 34
值得提醒的是,不同玩家的装备界面是没有摆放规律要求的,只要不重叠就好
需要知道的是该玩家所使用的装备界面的第一个背包的坐标,就可以根据该坐标来进行系统初始化
还有就是,通常最初算出来的坐标时可能有偏差的,只需要对doubleX ,doubleY进行微调就好,全体自动调整




RPGSystemInit在增加玩家装备系统的时候只有一个参数需要进行设置,每新增一个玩家就要创建一次d_players[玩家索引]=新的矩形区域
这个新的矩形区域用于控制进入装备系统时的镜头活动范围,可以参照玩家1来造



leisel 发表于 2013-7-21 06:05:56

本帖最后由 leisel 于 2013-7-21 08:26 编辑

全屏系统物品初始化

一、物品

1、所有想要进入全屏装备系统的物品的分类必须设置成“可购买”(系统默认值,可根据需要修改AcquireEquip)
2、可以进入全屏装备系统的全部装备的生命值必须是独一无二的(不能重复)
3、物品物编中设置的属性对使用全屏装备系统的英雄同样生效

二、生成物品全屏系统中的图标和说明信息

1、打开物编"可破坏物"复制一个图标样本(例如暗色单手剑)
修改“替换纹理文件”项的地址到你想要的图标地址(通常和物品的图标地址一致)

2、在EquipInfoInit中复制一份其他物品的FSsys_Kphw_Lx赋值项(可破坏物图标)
黏贴并设置FSsys_Kphw_Lx[匹配物品的生命值] = 匹配物品图标的可破坏物

3、在EquipInfoInit中复制一份其他物品的Str_EquipInfo赋值项(物品说明)
黏贴并设置Str_EquipInfo[匹配物品的生命值] = 匹配物品的说明(从物编复制相关物品的说明黏贴进去就成)
(图标和物品说明是相挨出现,一次就是一对)



假设你要添加物品“梨花枪”到全屏装备系统,它的生命值为5
在EquipInfoInit中新增2两项,分别是设置梨花枪的图标和文字说明
FSsys_Kphw_Lx = 梨花枪(可破坏物-图标)
Str_EquipInfo = (从物编中复制物品-梨花枪的文字说明到这里黏贴就可以)

4、再次强调,物品预设的属性就是英雄穿戴的属性,英雄不想用了给普通单位丢6格背包中是一样使用的
因此物品的预设信息说明和全屏物品中的信息说明应该完全一致

三、物品等级

物品等级代表物品使用的部位,一共分9个部位,每个物品必须严格按照等级划分
等级对应的部位分别是:

1级=主手武器
2级=副手
3级=头盔
4级=身躯
5级=戒指
6级=腰带
7级=手套
8级=鞋子
9级=项链

711 发表于 2013-8-11 22:10:14

顶一个

a4454962 发表于 2013-8-30 21:47:01

本帖最后由 a4454962 于 2013-8-30 21:51 编辑

关于可破坏物 这玩意用LUA比较好
这玩意用J写决对比t方便- -
虽然过时了
但也别一直模仿前人的东西
还有你发错地方了- -
这东西在这地方的确有些老了

711 发表于 2013-9-18 20:35:40

话说这做得蛮好的,怎么这么少人

anhei2000 发表于 2013-9-19 18:32:16

好东西,不管怎样顶个先

906731085 发表于 2013-9-19 19:23:11

话说,这是屏幕显示的版本吗,好像用到可破坏物了,应该是固定区域显示的版本吧

l963218181 发表于 2013-12-18 18:36:15

如果是使用次数的物品材料 那么可破坏物如何显示其数量?

r321sam 发表于 2014-8-16 11:54:45

上年的坟来挖啦,做得真的很好,支持支持!!!

努力作图的萌新 发表于 2017-9-12 19:45:04


大神,我拿走啦。。
我试试能不能加入自己的地图
谢谢大神
叩拜

ledirmu 发表于 2017-10-22 09:54:20

非常感谢你无私分享

719154500 发表于 2018-2-11 15:01:20

大佬,您这个系统好像有点bug啊,只能装6个部位,然后就会出现在背包里

313423948 发表于 2018-7-23 21:52:45

好东西,下载来看看

zxxwjh 发表于 2018-11-7 11:20:41

66666666666666666666

heng_quer 发表于 2019-1-4 21:32:16

下载回帖是美德

八二年花露水 发表于 2019-11-30 22:17:17

看起来好高大上啊!

timcyy 发表于 2020-2-17 15:57:18

支持!很舒服的界面。
页: [1] 2
查看完整版本: 分享自己的全屏装备系统:纯T+多人+可移植+内附教程+支持任意版本