• QQ21031394

    工作时间

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

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

  • 手机版二维码

    随时手机查素材

  • 扫描二维码

    加入官方QQ群

站长推荐
提百万 联盟管理员
  • 未知地域
  • 内测小天使

    内测期间为论坛做出突出贡献的会员
  • 优秀学员勋章

    通过近期表现由站长颁发
  • 优秀新人勋章

    通过近期表现由站长颁发
  • 高级学员勋章

    通过近期表现由站长颁发
  • 特级学员勋章

    通过近期表现由站长颁发
  • 天工合约会员

    拥有浏览和下载天工精品模型区权限
  • 3648发帖数
  • 1970主题数
  • 0关注数
  • 158粉丝
12
返回列表 发新帖

[演示和教程] 魔兽制图JASS入门到提高教程,想学J的进来!

[复制链接]
 楼主| 提百万 发表于 2018-5-7 03:45:30 | 显示全部楼层 <
提莫作坊QQ群:提莫作坊www.tbwlm.cn
第二节    二维数组
    早先我就说过,在JASS里面没有二维数组,只有一维数组,这在我们进行运用的时候有很大的不方便。但是由于有了GC和RB,让我们进行一个二维数组的摸拟是完全可行的。
由于无论是何种数据,我们都可以使其与整型数据挂够。所以我们只需要将前面所讲的GC相关函数进行一下修改即可。为了方便我们进行后面的讲解,先在此将所需要的函数进行一下修改。
+  Shingo Jass Highlighter 0.41 function  H2I  takes handle h returns integer
    return h
    return 0
endfunction
function  I2U takes integer i returns unit
                    return   i
                    return   null
               endfunction
               function I2G takes integer i returns group
                    return i
                    return null
               endfunction
               function  I2T takes integer i returns timer
                    return   i
                    return   null
               endfunction
               function  I2It takes integer i returns item
                    return i
                    return null
               endfunction
               function  I2Ef takes integer i returns effect
                    return i
                    return null
               endfunction
               function I2Li takes integer i returns lightning
                    return i
                    return null
               endfunction
function game takes nothing returns gamecache  
    if bj_lastCreatedGameCache==null then  
        call FlushGameCache(InitGameCache("Alex.w3v"))  
        set bj_lastCreatedGameCache=InitGameCache("Alex.w3v")
    endif
    return bj_lastCreatedGameCache
endfunction
function RealArrayStore takes real i,string name,integer project, integer node returns nothing
    call StoreReal(game(),name+I2S(project),I2S(node),i)
endfunction  
function IntegArrayStore takes integer i, string name,integer project, integer node returns nothing
    call StoreInteger(game(),name+I2S(project), I2S(node),i)
endfunction  
function IntegArrayRead takes string name,integer project,integer node returns integer
    return GetStoredInteger(game(),name+I2S(project), I2S(node))
endfunction  
function RealArrayRead takes string name,integer project,integer node returns real
    return GetStoredReal(game(),name+I2S(project), I2S(node))
endfunction  
function FlushData takes string name,integer project returns nothing
    call FlushStoredMission(game(),name+I2S(project))
endfunction  
function FlushCache takes nothing returns nothing
    call FlushGameCache(game())
endfunctionj/abc
我们在进行实例讲解的时候仅以整数为例,实数就不用了。也就是说,我们现在只需要用到以下三个函数了:
j/function IntegArrayStore takes integer i, string name,integer project, integer node returns nothing
    call StoreInteger(game(),name+I2S(project), I2S(node),i)
endfunction  
function IntegArrayRead takes string name,integer project,integer node returns integer
    return GetStoredInteger(game(),name+I2S(project), I2S(node))
endfunction  
function FlushData takes string name,integer project returns nothing
    call FlushStoredMission(game(),name+I2S(project))
endfunction

那么我们就用例子来进行讲解吧。
Eg.1:现有5个英雄ABCDE,分将他们的3围存贮起来,在需要的时候读取出来。
分析:5个英雄;3围。这就是传出中的5行3列2维数组。如果用C语言表示就是这样的Hero[4][2],为了顺应编程习惯,下标均从0开始。那么我们就开始进行摸拟了。
+  Shingo Jass Highlighter 0.41 //存贮
function StoreHeroAtr takes nothing returns nothing
     local    unit    array      Heros
     local    string             ArrayName
     local    integer            i = 0
     set   Heros[0] = A
     set   Heros[1] = B
     set   Heros[2] = C
     set   Heros[3] = D
     set   Heros[4] = E
     loop
         exitwhen i == 5
         call IntegArrayStore(GetHeroAgi(Heros<i>),ArrayName,i,0)
         call IntegArrayStore(GetHeroStr(Heros<i>),ArrayName,i,1)
         call IntegArrayStore(GetHeroInt(Heros<i>),ArrayName,i,2)
         set i = i + 1
    endloop
endfunction

这样一来,我们就把不同英雄的三围都存入到了一个叫做ArrayName的“二维数组中去了”
当我们需要的时候只需要  +  Shingo Jass Highlighter 0.41 call IntegHandleRead(ArrayName,x,y)

因为ArrayName是一个变量,表示这个二维数组的名字,就像一维数组名那样。于是在一个地图中可以有多个这样的“二维数组了”。
其实这一节也应该算是“人贱合一”内容,我之所以单独拿出来讲,一方面是为了加强大家对“人贱合一”的理解,另一方面也是为了告诉大家,JASS也可以拥有二维数组,而且要比其他任何一种语言都要灵活。因为Returnbug的存在,我们可以将任意数据转换成整数,在我们需要的时候再转换成对应的数据,这是其他语言所不具备的。
单一例不知道大家是否能够理解“二维数组”。因为为了例子而想问题总归是想不出来那么多例子,因此我也就无法为大家讲解更多的“二维数组”的例子了,但是大家在将来的实际练习过程中也许会碰到这样的问题,到时候只希望你能将所学的运用上去,并且自己有所创新。
免责条款:本站仅提供学习的平台,所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,并不承担任何法律责任,如果对您的版权或者利益造成损害,请提供相应的资质证明,我们将于3个工作日内予以删除。

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

本网站所提供的信息,只供参考之用。本网站不保证信息的准确性、有效性、及时性和完整性。本网站及其雇员一概毋须以任何方式就任何信息传递或传送的失误、不准确或错误,对用户或任何其他人士负任何直接或间接责任。在法律允许的范围内,本网站在此声明,不承担用户或任何人士就使用或未能使用本网站所提供的信息或任何链接所引致的任何直接、间接、附带、从属、特殊、惩罚性或惩戒性的损害赔偿。
Silent 发表于 2018-5-24 00:34:27 | 显示全部楼层 <
一篇非常好的教程,我在学C语言的同时,也在学JASS,学习魔兽作图,触类旁通!
 楼主| 提百万 发表于 2018-5-24 01:21:02 | 显示全部楼层 <
Silent 发表于 2018-5-24 00:34
一篇非常好的教程,我在学C语言的同时,也在学JASS,学习魔兽作图,触类旁通! ...

大佬   这是我 偶久转来的 ..我也不懂  J
yz93420 发表于 2019-5-20 17:06:00 | 显示全部楼层 <

我是新银。来混个脸熟、、
谢谢楼主分享!!!
gandi2019 发表于 2019-12-21 16:17:31 | 显示全部楼层 <

这东西我收了!谢谢楼主!天工社区真好!
酒笙Ear 发表于 2020-3-19 15:01:06 | 显示全部楼层 <

这个帖子不回对不起自己!我想我是一天也不能离开天工社区
花损芳谢,忆昨残红落街。风也清绝,霜也凌烈,独抱浓愁宿月,泪融残粉似雪。
q931358177 发表于 2020-9-26 16:57:57 | 显示全部楼层 <
这个帖子不回对不起自己!我想我是一天也不能离开天工社区。
[发帖际遇]: q931358177 在论坛发帖时没有注意,被老提莫摸去了 1 枚 绿钻. 幸运榜 / 衰神榜
only 发表于 2020-10-26 16:05:25 | 显示全部楼层 <
大佬有这贴的文档吗,我下载下来学习学习!

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