找回密码
 点一下

征集【疑难解答】【活动已结束】

[复制链接]
发表于 2009-7-28 19:46:35 | 显示全部楼层
我得出门,mua,回见
回复

使用道具 举报

发表于 2009-7-28 21:43:12 | 显示全部楼层
天哪,这才几天啊…………
哎…………
回复

使用道具 举报

发表于 2009-7-28 21:56:06 | 显示全部楼层
啥口牙,小孩都会打酱油了
回复

使用道具 举报

发表于 2009-7-28 22:01:01 | 显示全部楼层
……………………明显跟现实不挂钩…………无视某cp……
回复

使用道具 举报

发表于 2009-7-28 22:06:34 | 显示全部楼层
虾米,下次把小孩给你拿来看看
回复

使用道具 举报

发表于 2009-7-28 22:07:25 | 显示全部楼层
………………
好晚了
回复

使用道具 举报

发表于 2009-7-28 22:15:34 | 显示全部楼层
才10点口牙
回复

使用道具 举报

发表于 2009-7-29 07:33:40 | 显示全部楼层
Q:我想把隐身时半透明的效果去掉怎么办?
A:更改单位“是一个建筑”为true,不过有很多Bug,还有一种方式是是用钻地。

Q:我想显示错误信息怎么办?
A:利用书本来随时显示技能错误信息~~ 头目神贴。

Q:怎么捕捉所有新单位?
A:首先要有一个任意单位进入完整地图的触发,还有召唤单位的触发…………还有一些不过那触发几率就比较小了。

Q:我的图标为什么有的时候显示为纯绿色?
A:需要在ReplaceableTextures\\CommandButtonsDisabled\\下设置你的不可见图标。

Q:我的技能变身后就没有了怎么办?
A:UnitMakeAbilityPermanent(设置单位机能永久性)为true即可。
回复

使用道具 举报

发表于 2009-7-29 10:19:27 | 显示全部楼层
问:什么是unionbug及相关
答:[Union Bug]多值多类型对多值多类型的强制类型转换~~替代H2I和I2H的新方案~~
        这是头目的介绍帖,大约是对于unionbug的最早的介绍
    特别解释:
所谓变量连接数~~

你知道handle表是war3拿来定位对象的一个表~~很多对象在表中有其唯一标识也就是handle值~~

这个表呢~~每个元素都是一个结构~~存储目的对象的实际内存地址和引用了该对象的变量数量~~

比如某单位handle值1892323~~然后这个单位被赋给了某个unit变量A~~那么变量A的值就是1892323~~那么handle表中的1892323这个元素的变量连接数就+1~~

但是这样下去的话随着对象的增加~~handle表内的元素会不断增加~~虽然每个元素所占空间不大但是积累起来的内存泄露也是很惊人的~~

于是jass就有个机制也就是表位复用~~比如我先删除1892323这个表位所对应的单位~~然后jass会判断这个表位的变量连接数是不是被清零了~~如果发现没有任何变量指向这个表位~~那么这个表位的结构就可以被复用~~比如我下次新建一个单位的时候还是用的1892323这个表位~~

你想既然是每当有一个新变量指向这个表位~~这个表位的变量连接数就+1~~那么减少连接数的方法呢?~~自然是让原本指向它的变量指向其他值~~当然~~除了null以外的值它都是handle表位(正数)~~或是造成非法操作的值(负数)~~所以就算改成其他正整数也会使得其他handle表位遭殃~~因此set null是最好的减少变量连接数方法~~

这很好是吧~?~~问题是jass有一个疏忽~~我们都知道局部变量只生存于函数内~~函数结束后就会被销毁~~问题是如果某个局部变量在函数结束后消失~jass却并不会一并将它指向的对象的变量连接数-1~~于是就很糟糕了~~这个是jass的漏洞~~其他编程语言都会自动减少变量连接数的~~(这里我们只考虑局部变量,因为全局变量并没有被销毁这一说而且连接数的计算方式不同,并没有这个问题)~~于是我们这个局部变量完蛋以后~~它原本所指向的那个表位的变量连接数无法减到0了~~于是那个表位就永远挂在那里造成内存泄露~~直到地图退出~~


于是我们才提倡手动将局部变量set null~~然后为什么Union Bug将最后一个Union变量声明为integer就没这问题呢?~~因为handle表位的变量连接数只追踪handle型变量(其实也包括string等等因为它们也有handle,所以除外的只有integer)~~当任何一个handle类型变量被赋值为某个正整数的时候~~该正整数的handle表位的变量连接数就+1~~拿前面那个1892323为例~~如果某个handle类型变量(不一定得是unit类型)的值被设为1892323的时候~~这个表位的变量连接数就自动+1~~然而jass是不可能去追踪integer型变量的~~因此一旦将最后一个Union变量声明为integer~~那么整个共用空间的属性就被定义为无害的integer型~~handle表就会忽视它~~永远不会进行追踪了~~

然后如果你很会动脑的话~~大概会有这样的疑问~~

如果我用这种形式
local udg_location= Location(0,0)
lcoal udg_i

也就是说在整个共用空间被重定义为无害的integer之前~~我先将其指向一个handle表位~~那么其结果会不会增加变量连接数?~~首先我得说这个想法很好但是毫无意义~~因为事实上Union Bug是不可能这样写的~~毕竟这种写法就意味着当udg_i被声明的时候~~整个共用空间的值已经成为udg_i的初值~~原有的值就消失了~~在Union Bug中~~最后一个变量被声明之前的赋值行为是没什么实际意义的~~

另外至于如果我硬要问说这个究竟会不会增加变量连接数?~~那么其实你可以自己分析下的~~首先当local udg_location= Location(0,0)执行的时候~~连接数其实是确确实实增加了的~~但是同时~~当下一条语句执行的时候~~两个变化发生了~~


第一个:由于共用空间有了新的初值~~那么显然就不再指向 Location(0,0)对应的表位~~于是该表位变量连接数被清空~~一旦你destroy了那个location~~这个表位就可以复用了~~

第二个:随着udg_i被声明~~共用空间的性质发生改变~~于是该共用空间的新值(不管是什么,就算udg_i的初值不为空)~~他也不会对handle表产生任何影响~~

因此就算是这种无聊的情况~~变量连接数造成的泄露还是照样被避免了~~


相关的帖子:Union Bug 1个需要注意的地方

unionbug是忽略大小写的:Union Bug 之` 忽略变量大小写``
回复

使用道具 举报

发表于 2009-7-29 10:28:06 | 显示全部楼层
问:怎样显示自定义的错误的文字信息呢?(包括自定义显示条件)
答:利用书本来随时显示技能错误信息~~
        有时候我们会需要使我们的技能被指向一些不合适的目标时显示一些错误信息~~比方说目标生命值已满~~目标已经死亡~~不能对自己使用~~必须对牛头人使用~~

有时候我们并不能将技能改的正好能适合发出这些错误~~比方说某些技能它就是不能检查目标是否满血~~你怎么办呢?~~你如果试图使用触发来对隐藏单位发布命令~~会发现它是不会显示错误信息的~~当然你可以用假技能~~用一个会检查目标是否满血的技能来做假技能~~然后用隐藏单位来使用真实效果的技能什么的~~

不过这种法子并不是总能奏效的~~因为技能的允许目标十分有限~~而实际的单位类型和分类总是多变的~~比方说你很难找到一个只能对牛头人使用的指向性技能~~更具体的来说如果你想要一个技能只能对坦克或牧师使用怎么办?~~你自然可以在单位发布命令的时候判断命令目标是不是牧师什么的~~但是你如果想同时让技能也提示“只能对牧师或坦克使用”~~甚至"只能对魔免单位使用"这些信息?~~这就很麻烦了~~

再者~~有时候你的法术需要一些更加诡异的条件~~比方说对方身上有什么特别buff~~施法时单位必须有多少点生命等等~~你可以用触发来暂停单位发布停止命令解除暂停~~这样这个技能就不会释放~~但是如何显示错误信息呢?~~

很多地图(比方说dota)在这时候只好采用模拟的方式~~用屏幕显示文字来冒充错误信息~~但是如果这个帖子也用这种模拟的法子的话~~我干嘛把它写出来呢?~~模拟的终究是模拟的啦~~我们需要的是真正的错误提示~~


现在~~我就说~~想要完美地显示错误提示~~那就用书本罢~~这里可是真正的错误信息~~而不是用什么模拟~~这里就展示了如何随时地用书本来随时显示你想要的错误信息~~



里面准备了4种错误提示的例子你只要按esc就会开始随机提示其中之一~~也可以试着去捡起地上的书来看错误提示的引发原理~~你可以修改界面编辑器来修改这些错误字符~~因为它们就是真正的错误信息~~

基本上所有技能的错误提示都可以用书本显示~~不过要注意的是~~无法在目标点建造建筑的错误信息是不会显示的~~因为这个错误判断是存在于另外一个层面的~~如果你利用书本来建造建筑技能~~那么建筑会无视地形、可通行、附近的单位等等状态~~直接在书本的位置被建造出来~~也不会提示错误~~不过你如果要需要这种提示的话也很简单~~在界面编辑器里随便拿个其他什么技能的错误提示改改就可以~~
回复

使用道具 举报

发表于 2009-7-29 10:34:59 | 显示全部楼层
问:书本的其他作用……
答:除了上一贴的显示错误信息,书本还可以用作发动一些技能……
    比如:[你们真的了解书本的强大了么?]完全无触发无敌光环和不需要引导的暴风雪
                    [压箱底活技]制作一个昏迷光环(一个更完美的修正版本,原版WE也能打开)
回复

使用道具 举报

发表于 2009-7-29 10:38:36 | 显示全部楼层
问:如何当物品栏已时获得物品不会有错误提示(用于购买叠加物品)
答:简单方法是用购买单位来代替购买物品,然后用触发添加,不过此方法需要很多马甲单位,效率低下。
    另外就是头目的方法:简式欺骗——绕过物品栏已满检查~~附带一个特殊物品栏演示和一个禁用单个物品演示
回复

使用道具 举报

发表于 2009-7-29 10:50:49 | 显示全部楼层
问:魔法书的相关?
答:大部分内容在[资料]魔法书的补充属性
       其他没有特别说明的我直接在这里说一下:
    1、无法通过发布命令ID来打开魔法书,只能用UI键的方法
    2、无法获取打开或关闭魔法书的事件
    3、打开魔法书后隐藏单位然后删除魔法书技能再显示单位,会出现保留窗口的bug,此bug可以用添加魔法书技能(物品的魔法书技能可以使用但是无法恢复)来修复状态(此bug用于模拟守卫类型)

无意中找到了头目的帖子kook有空的话进来下~~ ,于是5hits
回复

使用道具 举报

 楼主| 发表于 2009-7-29 14:26:08 | 显示全部楼层
疯人¢衰人320000
血戮魔动冰120000


所有搜集【可能】会原封不动照搬到教学区的……

目前银行剩余金额:约5800W
回复

使用道具 举报

匿名
匿名  发表于 2009-7-29 14:58:25
5800W的利息大约2.9W/Day吧
回复

使用道具 举报

发表于 2009-7-29 15:06:31 | 显示全部楼层
看到你们钱这么多,我不乐意了。
统统从疑难区活动贴转贴。


问题描述:如何在固定玩家种族、生命百分比。
解决方案:在情节属性-势力选项卡中选中“固定玩家设置”
参考资料:http://www.islga.org/bbs/read.php?tid=26186&fpage=2
                    http://www.islga.org/bbs/read.php?tid=26779&fpage=2
回复

使用道具 举报

发表于 2009-7-29 15:07:16 | 显示全部楼层
问题描述:如何更改建筑物的朝向(面向角度)?
解决方案:将"是否为建筑"改为False
                    然后就可以在地图上摆设和改变朝向,
                    修改完后记得再改回True
参考资料:http://www.islga.org/bbs/read.php?tid=27300
                    http://www.islga.org/bbs/read.ph ... 6%FE%7C%B3%AF%CF%F2
回复

使用道具 举报

发表于 2009-7-29 15:19:44 | 显示全部楼层
我不过是把木瓜市场中赔的钱找回来
回复

使用道具 举报

发表于 2009-7-29 15:31:57 | 显示全部楼层
木瓜市场是悲剧,哇哈哈
回复

使用道具 举报

发表于 2009-7-29 15:36:05 | 显示全部楼层
很悲剧,非常悲剧。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 16:56 , Processed in 0.058449 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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