找回密码
 点一下
楼主: chyj4747

哈希表教程——我不会告诉你这是T版的!(已添加4个演示~ 2012/07/13)

[复制链接]
发表于 2012-7-11 10:52:29 | 显示全部楼层
中文的hashtable的UI是夜天UI加进去的,基本上就是官方版的翻译+一套CJ版的。里面各种悲剧(包括官方的就很悲剧),比如Save Ability Handle这UI,一用就挂。
回复

使用道具 举报

发表于 2012-7-11 11:09:42 | 显示全部楼层

回 chyj4747 的帖子

chyj4747:还真有…………
早知道我就拿原版WE做教程了。。
(2012-07-10 13:34)
实际上HT本身是1.23之后出现的
出现之后原始的UI就有这个动作

关键在于很多人使用了老狼的UI
因为老狼的UI是1.23前的
所以会因为使用UI文件导致隐藏相关动作。

所以这个东西完全跟你使用的WE(扩展版本的)无关
貌似除了头目的那个,它好像把UI打包到了程序中。

本身YDWE也算是基于NewGen的,或者说参考?
因为这两个的功能核心是jasshelper,靠它来支持vj、cj这类扩展语法的。
因为NewGen是老外做的,导致完全不支持中文路径,另外断更了
后续几个人修改过版本、汉化,包括我自己也出过支持1.24的版本。
然后基本上是同时,aeris等人做了YDWE(本来我做的时候就请教aeris很多问题)

以上都是废话,总之就是说,是否隐藏HT关键在于使用的UI
而YDWE的UI本身包含了几个部分
老狼、夜天、果子等人自己做的扩展功能UI
呃也许还有其他。

而支持HT完全是夜天的部分,

HT的意义在于,你终于可以再不使用任何Jass语句(自定义代码)
来实现局域参数的延时传递
也就是纯T

另外,因为HT是个实体,所以我们可以把HT当做一个数据包来在函数中传递

以此来实现函数的多值返回及数组参数。

此外多层HT(用HT存储HT)可以构建复杂的存储系统
回复

使用道具 举报

发表于 2012-7-11 11:41:53 | 显示全部楼层
actboy168:
中文的hashtable的UI是夜天UI加进去的,基本上就是官方版的翻译+一套CJ版的。里面各种悲剧(包括官方的就很悲剧),比如Save Ability Handle这UI,一用就挂。

Save Ability Handle这个动作的问题嘛。应该说官方版的WE就自带这个bug。

只要一尝试点击Ability参数,编辑器就会挂。这是因为这个函数用到了ability这个类型。但是编辑器里的TriggerData.txt根本没有定义这个类型。编辑器完全认不出来,所以才会导致编辑器崩溃。

[jass]
native  SaveAbilityHandle takes hashtable table, integer parentKey, integer childKey, ability whichAbility returns boolean
[/jass]

这个ability类型和我们熟知的“技能”类型不同。我们熟知的“技能"类型是“技能类型”类型,而且其实是整数。但这个ability类型其实是技能的实例,它是一种handle。而且只能用于下面这个native函数中。这个函数和单位使用技能相对应,会返回被使用的技能的handle。

即使两个单位身上的技能完全一样,这个函数返回的handle值也是不同的。因为这两个单位身上的技能并不是同一个实例。

[jass]
constant native GetSpellAbility             takes nothing returns ability
[/jass]
回复

使用道具 举报

发表于 2012-7-11 11:50:51 | 显示全部楼层
修复这个bug的方法超简单:

印象中夜天还是哪个UI的作者很久以前就问过我这个问题。

因为导致这个bug的缘由是因为编辑器不认识这个数据类型。因此只要把它的定义写到TriggerData.txt里就ok了。

在TriggerData.txt里面加一行字

ability=0,1,1,技能 (Handle)

这里为了方便直接使用了“技能 (Handle)"作为编辑器里显示的名字。当然最标准的方法是自己定义新的字符串WESTRING_TRIGTYPE_abilityhandle。然后在TriggerStrings.txt里面本地化它。这样它在WE里会被显示为这个新类型的类型名。

加完后这条动作就正常了:

未命名.jpg

捕获.JPG


可以直接把这个UI文件夹放到安装目录下,这样标准WE就可以正常使用Save Ability Handle这个动作了

UI.rar

39 KB, 下载次数: 19

回复

使用道具 举报

发表于 2012-7-11 21:34:45 | 显示全部楼层

回 麦德三世 的帖子

麦德三世:Save Ability Handle这个动作的问题嘛。应该说官方版的WE就自带这个bug。

只要一尝试点击Ability参数,编辑器就会挂。这是因为这个函数用到了ability这个类型。但是编辑器里的TriggerData.txt根本没有定义这个类型。编辑器完全认不出来,所以才会导致编辑器崩溃。
....... (2012-07-11 11:41) 
括号里就说官方的也悲剧了,其实这UI的作用就是0,因为根本就没有返回值是ability的UI,夜天里还有很多这种毫无意义的UI
回复

使用道具 举报

发表于 2012-7-11 22:21:00 | 显示全部楼层
对纯GUI用户来说确实是如此。


考虑到有不少人还是半GUI+半Jass。这东西修复以后倒是可以用用。毕竟GetSpellAbility()这个函数容易记,而且没有参数。比记住带四个参数的 SaveAbilityHandle()是容易的多。

一般来说遇到4个或以上参数的函数,半jass用户多半都得先去common.j里面查查原型什么的。不过当然,把GetSpellAbility()也加入进GUI里的话对GUI用户来说就更方便了。
回复

使用道具 举报

发表于 2012-7-12 08:01:19 | 显示全部楼层
我现在用的是红狼1.24A的UI,是别人接着红狼的手更新下去的,可以么?

话说不用JASS的的哈希表用法能发一下嘛?
回复

使用道具 举报

发表于 2012-7-12 11:31:33 | 显示全部楼层

回 冷漠 的帖子

冷漠:我现在用的是红狼1.24A的UI,是别人接着红狼的手更新下去的,可以么?

话说不用JASS的的哈希表用法能发一下嘛? (2012-07-12 08:01)
不可能纯T。。。GUI有很多功能没有实现
回复

使用道具 举报

发表于 2012-7-12 11:51:13 | 显示全部楼层
不要说胡话。

GUI只要能读数据能写数据就够了。


就算没有把所有功能都GUI化照样能用。
回复

使用道具 举报

发表于 2012-7-12 18:40:33 | 显示全部楼层

回 麦德三世 的帖子

麦德三世:
不要说胡话。

GUI只要能读数据能写数据就够了。


.......

未命名.jpg

到底能不能纯T使用哈希表……

求头目指教……
回复

使用道具 举报

发表于 2012-7-12 19:16:15 | 显示全部楼层

回 · 的帖子

·:

不可能纯T。。。GUI有很多功能没有实现
没有什么是不可能的
回复

使用道具 举报

发表于 2012-7-12 19:57:34 | 显示全部楼层

回 冷漠 的帖子

冷漠:

到底能不能纯T使用哈希表……
....... (2012-07-12 18:40)
不是有创建哈希表,读取哈希表数据,存储哈希表数据。这三种GUI动作和函数了么?

最基本的功能都有了,有什么不能用的。


能不能用和能不能用到所有细节功能可是两回事。
回复

使用道具 举报

发表于 2012-7-13 07:21:10 | 显示全部楼层

回 麦德三世 的帖子

麦德三世:不是有创建哈希表,读取哈希表数据,存储哈希表数据。这三种GUI动作和函数了么?

最基本的功能都有了,有什么不能用的。

....... (2012-07-12 19:57)
噢,所得死捏

但细节功能要如何弥补呢?
回复

使用道具 举报

发表于 2012-7-13 09:28:07 | 显示全部楼层
自定义代码,UI,jass随便哪样……
回复

使用道具 举报

发表于 2012-7-13 11:50:04 | 显示全部楼层

回 lo 的帖子

lo:自定义代码,UI,jass随便哪样…… (2012-07-13 09:28)
锤地……

就是不会JASS啊……
回复

使用道具 举报

 楼主| 发表于 2012-7-13 12:47:31 | 显示全部楼层
别急~~  等我的演示+简化版教程啦~~
回复

使用道具 举报

发表于 2012-7-13 13:14:44 | 显示全部楼层

回 冷漠 的帖子

冷漠:噢,所得死捏

但细节功能要如何弥补呢? (2012-07-13 07:21)
不用jass你还要弥补做啥。

用好基本功能就好了,最多用下强化UI。那些功能都是显示你多少上等用的。
回复

使用道具 举报

 楼主| 发表于 2012-7-14 03:03:58 | 显示全部楼层
哈希表T版教程基础演示.w3x (33 KB, 下载次数: 137)
UI:YDWE1.20
一共四个演示,前两个最基础的储存+读取,后两个是与多人化相关~  当然我的写法只是众多写法中的一种,其它做法请参考别人的演示~

考虑到不少同学用YD,最后还是决定用YD来做教程和演示,由于YD在获取句柄值(身份证号~)的时候有分支(教程中有说明),因此T和J两种我都做了,T版本的写法需要智能注入~
回复

使用道具 举报

发表于 2012-7-14 08:06:11 | 显示全部楼层

回 chyj4747 的帖子

chyj4747:
UI:YDWE1.20
一共四个演示,前两个最基础的储存+读取,后两个是与多人化相关~  当然我的写法只是众多写法中的一种,其它做法请参考别人的演示~

考虑到不少同学用YD,最后还是决定用YD来做教程和演示,由于YD在获取句柄值(身份证号~)的时候有分 .. (2012-07-14 03:03)
红狼的UI打不开,悲了个剧
回复

使用道具 举报

 楼主| 发表于 2012-7-14 08:09:11 | 显示全部楼层
冷漠:红狼的UI打不开,悲了个剧 (2012-07-14 08:06)
装个YD又不会怎么样……红狼UI你可以照样用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-4-26 15:52 , Processed in 0.238036 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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