魔兽地图编辑器吧 关注:52,184贴子:3,660,731
  • 58回复贴,共1

war3 1.24+依然可用的returnbug

只看楼主收藏回复

由于新的RB过于暴力,以至于jasshelper无法识别,所以需要使用最新的ydwe的功能来达成这个bug。


在ydwe/jass/native目录下,建一个新文件returnbug.j,内容如下
globals
handle ydrb_h
integer ydrb_i
endglobal
native H2I takes handle h returns integer
native I2H takes integer i returns handle
function YDRBSetHanle takes handle h returns nothing
set ydrb_h = h
endfunctio
function YDRBSetInteger takes integer i returns nothing
set ydrb_i = i
endfunctio
function YDRBTypecastHI takes nothing returns nothing
local integer ydrb_h
local handle ydrb_i
endfunctio
function H2I takes handle h returns integer
call YDRBSetHanle(h)
return ydrb_h
endfunctio
function I2H takes integer i returns handle
call YDRBSetInteger(i)
return ydrb_i
endfunction

然后在你的地图的自定义代码出加上这两行
native H2I takes handle h returns integer
native I2H takes integer i returns handle
然后你就可以使用H2I和I2H了,其他RB函数同理。


1.原理请看代码,bug嘛哪有什么原理

2.感谢@shiyile22
3.感觉没啥用,gc+rb还是不如hashtable好用
4.执行本地代码的bug依然在 ,玻璃渣可以出1.28了

5.可以做一些简单的japi功能,然而还是japi好用


1.30的ydwe可以覆盖它变成最新ydwe

http://pan.baidu.com/s/1eRRJ45c


回复
举报|2楼2016-08-25 16:17
    插,前排


    回复
    举报|3楼2016-08-25 16:17
      挽尊


      回复
      举报|4楼2016-08-25 17:04
        [揉脸]


        回复
        举报|来自Android客户端5楼2016-08-25 17:07
          可怕!


          回复
          举报|来自Android客户端7楼2016-08-25 17:28
            几个月前让呆呆给你说了,白说了。。。


            收起回复
            举报|来自手机贴吧9楼2016-08-25 17:36
              txt写图路过


              回复
              举报|10楼2016-08-25 17:42


                回复
                举报|来自Android客户端12楼2016-08-25 17:48
                  总结比较强。


                  回复
                  举报|来自Android客户端13楼2016-08-26 03:21
                    2018-10-24 03:22 广告
                    话说函数名的ydrbsethandle干嘛写成hanle


                    不懂可怕


                    回复
                    举报|来自Android客户端15楼2016-08-26 06:04
                      玩砖


                      回复
                      举报|来自Android客户端16楼2016-08-26 11:07


                        回复
                        举报|来自Android客户端17楼2016-08-26 12:10
                          mark


                          回复
                          举报|来自手机贴吧18楼2016-08-26 12:36
                            不知道能否不神话的rb检测全图做成yd里面可以直接使用的


                            回复
                            举报|19楼2016-10-04 00:09
                              真羡慕你们讨论rb的人 像我这种入坑完的根本没经历guoqrb时代


                              …喵呜可怕


                              回复
                              举报|来自Android客户端21楼2016-10-04 01:11
                                3.感觉没啥用,gc+rb还是不如hashtable好用
                                4.执行本地代码的bug依然在 ,玻璃渣可以出1.28了
                                5.可以做一些简单的japi功能,然而还是japi好用
                                楼主这几个问题,请问 具体指的是什么意思?
                                执行本地代码的bug,是preload 哪个吗》?
                                怎么做一些简单的japi的功能?


                                收起回复
                                举报|22楼2017-02-24 23:40
                                  改commons.j的继承应该也可以,version从继承handle改成继承agent。
                                  这一东西堆自带convertxxx(int) 的都可以正常转换GetHandleId的值。


                                  然后SaveAgentHandle之后就可以得到原来的本体了。


                                  收起回复
                                  举报|23楼2017-02-25 10:02
                                    话说为什么总觉得眼熟呢? 和Union Bug有关系吗?


                                    回复
                                    举报|24楼2017-03-01 11:04
                                      请问类似
                                      local trigger t
                                      ...
                                      set t = CreateTrigger()
                                      ...
                                      return t
                                      这样的做法会泄漏么?
                                      该如何避免这样的泄漏?(可以返回integer的handleid,或者hashtable存取一遍,但这样明显效率损失了)


                                      回复
                                      举报|25楼2018-03-06 01:31
                                        没问题了,决定用全局暂存后返回。。。


                                        回复
                                        举报|来自Android客户端26楼2018-03-06 02:01
                                          1.32.9的ydwe如何做?解压到YDWE根目录下可以吗


                                          回复
                                          举报|27楼2018-08-05 20:39
                                            function h2i takes handle h returns integer
                                            return h
                                            return 0
                                            endfunction
                                            function i2u takes integer i returns unit
                                            return i
                                            return null
                                            endfunction
                                            这些代码还是报错


                                            收起回复
                                            举报|28楼2018-08-05 20:40