• QQ21031394

    工作时间

    周一至周五:9:30-18:30

    周末及节日:根据情况调休

  • 手机版二维码

    随时手机查素材

  • 扫描二维码

    加入官方QQ群

站长推荐
Seago 一级会员
  • 未知地域
  • 84发帖数
  • 20主题数
  • 0关注数
  • 24粉丝

[Seago教程] 【通用】哈希表的用法和应用

  [复制链接]
Seago 发表于 2020-8-23 19:16:45 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题 <
提莫作坊QQ群:提莫作坊www.tbwlm.cn

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
简介
哈希表是一种数据存储方式。
目前WE主流的数据存储方式可以分为两种,一种是变量,一种是哈希表。数组的本质也是一种变量,游戏缓存基本可以被哈希表取代。
哈希表的使用并不困难,只不过是使用形式与变量有所差异,很多人不愿意接受新鲜事物所以不愿意去尝试探索,另外逆天功能的普及导致了在T作图时哈希表的存在感也不是很高。
使用哈希表存储数据之前需要先创建一个哈希表。哈希表有主次两个索引,均要求使用整数,理论上没有严格的大小限制。可以将哈希表看作是一个二维数组,只不过数组的索引必须是非负的,而哈希表则没有这个限制。
主次两个索引共同确定了一个存储地址。(扩展:从这个角度来看,我们也可以利用普通的数组来模拟一个二维数组。如我们想摸拟一个[10,10]维度的二维数组,那么两个索引的取值区间都是[0,9],想要在[1,8]位置上存储数据,则可以通过计算1*10+8=18,得到这个位置的实际索引值是18。)
就方便的角度而言,对于哈希表的两个索引不需要太过刻意的去设计,不重复、且便于自己记录即可,结合具体的应用场景可以添加一些特殊设计。
哈希表应用的示例
最为典型的代表是逆天自定义逆天局部变量
逆天自定义值的本质就是利用哈希表进行存储数据。给某个单位存储数据,则以该单位的整数地址做为主索引,具体的自定义属性作为次索引。如果是对单位类型绑定,则以单位类型作为主索引,以此类推。
索引对应的整数是如何产生的?针对单位、物品、特效等实体,他们都有独一无二的整数地址,即handleId,只要没有被排泄,都是唯一的,所以可以直接获取他们的整数地址作为索引。单位类型、物品类型等,他们本身就是一种特殊的整数,可以直接作为索引。
而自定义属性,通常是采用字符串的哈希值这个方式来转换成整数的。
如何确定主次索引?为什么要用单位来作为主索引、自定义属性作为次索引?主次索引的选择并没有严格的规范或限制,通常来说,自定义值是单位的一种扩展属性,存在着一种从属关系,自然而然就有了这种设计。当一个单位死亡之后,我们需要清除相关的数据,以单位为主索引,可以直接清空他对应的子表,即属于他的所有自定义值都可以被一次性清空。如果以自定以值作为主索引,那么只能一次性清空所有单位的这种自定义值,而无法针对某个单位进行统一的清除。总结来说,谁主谁次主要还是根据需求来,看看是否有一种潜藏的从属关系或分类需求
哈希表可以有哪些妙用
有的人会觉得,都是存储数据,用全局变量就可以了,干嘛要用哈希表?相比之下,变量更加松散,获取比较死板。而哈希表是一组结构化的数据,可以通过一系列的运算来集体获取,方便配置。
比较简单的使用,可以给不同的关卡配置不同的怪物、属性加成、奖励信息等,将关数作为主索引,随着关卡的推进,自动获取数据
另外许多新手比较头疼的计时器获取不到触发内的变量,也可以通过哈希表来传递,主索引使用计时器的整数地址即可。
复杂一点的,可以结合地图的玩法策划,实现一些人物属性、UI配置等的扩展,我此前的可配置物品合成系统也是基于哈希表实现的,只需要配置合成公式,在获取新物品的时候可以自动检查并合成,而不需在触发种编写冗长的if条件进行判断。
在T作图时,通常都是事件驱动的设计思路,直接使用逆天自定义值这类封装好的功能即可,操作简单。而J作图时,通常是功能驱动的设计思路,可以结合哈希表编写一些复杂的功能系统。

游客,如果您要查看本帖隐藏内容请回复


楼主热帖
免责条款:本站仅提供学习的平台,所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,并不承担任何法律责任,如果对您的版权或者利益造成损害,请提供相应的资质证明,我们将于3个工作日内予以删除。

本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。

本网站所提供的信息,只供参考之用。本网站不保证信息的准确性、有效性、及时性和完整性。本网站及其雇员一概毋须以任何方式就任何信息传递或传送的失误、不准确或错误,对用户或任何其他人士负任何直接或间接责任。在法律允许的范围内,本网站在此声明,不承担用户或任何人士就使用或未能使用本网站所提供的信息或任何链接所引致的任何直接、间接、附带、从属、特殊、惩罚性或惩戒性的损害赔偿。

精彩评论91

尘怨入梦 发表于 2020-8-23 19:18:12 | 显示全部楼层 <
阿巴阿巴,大佬
入坑萌新一枚,大家多多关照哈!
流行小炮 发表于 2020-8-24 05:26:20 | 显示全部楼层 <
感谢楼主        
CNWorth 发表于 2020-8-24 09:01:26 | 显示全部楼层 <
这个实在,学习了~
freecovld 发表于 2020-8-24 09:47:42 | 显示全部楼层 <
6666666666.看看
q931358177 发表于 2020-8-25 19:33:46 | 显示全部楼层 <
阿巴阿巴,大佬
alwk 发表于 2020-8-26 06:50:24 | 显示全部楼层 <
啊吧~阿吧·~学习一下
a505214683 发表于 2020-8-28 01:03:19 | 显示全部楼层 <
大佬 学习了
nelson 发表于 2020-8-28 16:10:12 | 显示全部楼层 <

阿巴阿巴,大佬
雨散云飞 发表于 2020-8-29 11:18:13 | 显示全部楼层 <
看看!!!!!
[img]https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fd.zdqx.com%2Fhyrz_161

强调下版规的规定,如有恶意灌水从重处罚:
=====发表主题规则=======
1.主题内容请一定要附带预览图片,谢谢;
2.搬运来的东西请尽量不要卖钱!;
3.发帖有任何疑问请联系QQ21031394;
=====发表回复规则=======
1.禁止直接复制标题内容的;
2.禁止纯数字或者纯字母的;
3.禁止乱打一通文不对题;
4.禁止屠版和刷分行为;
第一次扣分处理,第二次扣分+警告,警告三次禁言三天,绝不手软,情况严重的直接封号,请大家珍惜自己的账号!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

猜你喜欢
天工维度唯一QQ群
786014245

欢迎进群交流,入群答案:编辑器

  • 官方在线客服

    QQ客服:小雪

    点击交谈

    QQ客服:砂糖

    点击交谈

    团队老大:荀公子

    商务合作
  • 上海市静安区共和新路4718号宏慧新汇园6号楼603室

  • 手机扫码查看手机版

    手机查找资源更方便

  • 扫一扫关注官方微信

    加入官方QQ群

Powered by 天天RPG&DZX3.4 ©2020-2021 Comsenz Inc.提百万设计( 沪ICP备18032615号-1 )营业执照