找回密码
 点一下
查看: 3000|回复: 5

用RemoveRect()清除GetPlayableMapRect()的严重后果

[复制链接]
发表于 2008-7-14 15:18:38 | 显示全部楼层 |阅读模式
就是这样:
[codes=jass]
function A takes nothing returns nothing
local rect r=GetPlayableMapRect()
call RemoveRect(r)
set r=null
endfunction
[/codes]
貌似会清除【完整地图区域】,使以后的GetPlayableMapRect()全部读取为空项!
这会使之后的
[codes=jass]
GetUnitsInRectAll(GetPlayableMapRect())
GetUnitsInRectMatching(GetPlayableMapRect(),......)
GetUnitsInRectOfPlayer(GetPlayableMapRect(),.........)
[/codes]
之类的Function直接无效!!!
这个Bug把我害苦了……………………
大家不要犯我这个错……………………

评分

参与人数 1威望 +15 收起 理由
狡猾的兔子 + 15 小小鼓励。

查看全部评分

 楼主| 发表于 2008-7-14 15:26:23 | 显示全部楼层
大家都来看一下嘛………………
回复

使用道具 举报

发表于 2008-7-14 18:35:31 | 显示全部楼层
哈哈

我不太相信

回复

使用道具 举报

发表于 2008-7-14 23:26:25 | 显示全部楼层
既然你诚心滴问了
我就告诉你吧
这个不是BUG
[jass]
function GetPlayableMapRect takes nothing returns rect
    return bj_mapInitialPlayableArea
endfunction
[/jass]
于是呢
RemoveRect()的时候你把 bj_mapInitialPlayableArea给搞掉了
于是以后都会出错了
说明白点就是那个不能清除的

那你又想知道bj_mapInitialPlayableArea怎么来的么?
其实他就素
[jass]
Rect(GetCameraBoundMinX()-GetCameraMargin(CAMERA_MARGIN_LEFT), GetCameraBoundMinY()-GetCameraMargin(CAMERA_MARGIN_BOTTOM), GetCameraBoundMaxX()+GetCameraMargin(CAMERA_MARGIN_RIGHT), GetCameraBoundMaxY()+GetCameraMargin(CAMERA_MARGIN_TOP))
[/jass]

可惜这个区咩有加分口牙
失望ing
回复

使用道具 举报

发表于 2008-7-15 12:29:47 | 显示全部楼层
看过ls的解释 有点懂了
r与bj_mapInitialPlayableArea    用的是同一个地址空间   
对吧
回复

使用道具 举报

 楼主| 发表于 2008-7-21 11:06:54 | 显示全部楼层
………………
恩,后来自己也想明白了,谢谢大家。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 04:57 , Processed in 0.038402 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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