• QQ21031394

    工作时间

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

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

  • 手机版二维码

    随时手机查素材

  • 扫描二维码

    加入官方QQ群

站长推荐
松坂砂糖/7 一级会员
  • 未知地域
  • 18发帖数
  • 3主题数
  • 0关注数
  • 2粉丝

[演示和教程] 【JASS】纯JASS的哈希表的使用教程AND哈希表的自定义值扩展

[复制链接]
松坂砂糖/7 发表于 2021-5-12 18:01:33 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
提莫作坊QQ群:提莫作坊www.tbwlm.cn

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

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

x
本帖最后由 松坂砂糖/7 于 2021-6-9 11:27 编辑

研究jass的副产物,虽然没什么人用。后续还有一些纯Jass的系统,伤害系统副本系统之类的,看心情写



哈希表的定义直接略过
在JASS中,哈希表的类型为hashtable,使用InitHashtable()创建一个新的哈希表.(通常情况下会在全局变量中定义哈希表)
globals
    hashtable A = InitHashtable()
endglobals

使用哈希表一般用到4种方法

    1.SaveXXX(哈希表,索引1,索引2,储存的值) 往哈希表中存数据
    2.LoadXXX(哈希表,索引1,索引2) 从哈希表中取出数据
    3.RemoveXXX(哈希表,索引1,索引2) 删除哈希表中的数据
    4.HaveSavedXXXX(哈希表,索引1,索引2) 哈希表是否有存某项数据

    哈希表:你创建的一张哈希表
    索引12,任意的整数
    XXX对应的是一种数据类型,如integer,real,boolean,unit等等
    具体函数名可在WE 触发编辑器-TESH-Function list中查询

    代码示例
    local hashtable h = InitHashtable() // 创建一个哈希表
    call SaveInteger(h, 123, 456, 9)    // 在哈希表中的(123, 456)位置处存放了一个整数9
    set i = LoadInteger(h, 123, 456)    // 读取上面存的整数9 现在i=9



使用哈希表实现面向对象储存自定义值:   


    别问为什么会有这个东西,问就是不想用逆天自定义变量
    思路是用StringHash()函数把字符串转换成整数,
    而Handle变量可以用GetHandleId()函数转换成整数,成为哈希表的坐标
    代码示例:

    local unit u = GetTriggerUnit()
    local inetger k1 = GetHandleId(u)
    local integer k2 = StringHash("maxAttack")
    call SaveInteger(h, k1, k2, GetUnitState(u, ConvertUnitState(0x15)))
    set maxAttack = LoadInteger(h, k1, k2)
    以上代码设置了u的maxAttack值,可以在任何能获取到单位u的地方得到u的maxAttack值

演示地图是楼主把上面的内容封装成库,有兴趣的可以下来看看
演示地图:
演示-哈希表.w3x (29.34 KB, 下载次数: 9)











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

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

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

精彩评论2

Oo破破oO 发表于 2021-5-13 00:58:37 来自手机 | 显示全部楼层
StringHash()是这个函数吧
 楼主| 松坂砂糖/7 发表于 2021-5-15 15:07:08 | 显示全部楼层
Oo破破oO 发表于 2021-5-13 00:58
StringHash()是这个函数吧

啊对,是我弄混了

强调下版规的规定,如有恶意灌水从重处罚:
=====发表主题规则=======
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 )营业执照