找回密码
 点一下
查看: 2201|回复: 9

我的we学习笔记

[复制链接]
发表于 2016-1-11 04:51:15 | 显示全部楼层 |阅读模式
大家好。这篇帖子是我学习world editor的笔记:

1,Q 模仿dota选英雄,要用小酒馆。 但默认英雄都是灰色不可购买的状态。
     A 这个“bug”不在酒馆身上,在英雄身上。 F6打开物编,会发现英雄有两个属性,“开始雇佣时间”,“雇佣冷却时间”(maybe not so accurate)。这下知道了吧。
发表于 2016-1-11 12:09:46 | 显示全部楼层
WE只要参透触发就行了
回复

使用道具 举报

 楼主| 发表于 2016-1-11 17:26:51 | 显示全部楼层
本帖最后由 weiweishuo 于 2016-1-11 17:32 编辑

因为是用lua,没用jass。我把lua的一些经验也记在这儿:

* require后面跟一个variable(而非字符串常量)时,要这样写require(path)。

*require的返回值是这样的:
如果加载的那个lua文件,但它没做返回处理。==========》返回true
否则返回那个lua文件的return value。

manual里的话:If the loader does not return a non-nil value and has not assigned any value to package.loaded[modname], then require assigns true to this entry.

以前老以为默认会require成一个table。
回复

使用道具 举报

 楼主| 发表于 2016-1-11 22:00:31 | 显示全部楼层
*用lua的话,blizzard.j里的函数都要自己重写成lua函数。
  今天重写TriggerReigsterAnyUnitEvent的时候,随手把bj_MAX_PLAYERS_SLOTS设成12,以为够了,谁知道酒馆买英雄时候,SELL事件总触发不了。
  原来这个酒馆是中立敌对的,playerid应该是13,14的样子。把bj_MAX_PLAYERS_SLOTS改成16就好了。(bj里就是)
  把酒馆改成player0的也可以。

*用lua多半是因为它效率。
  但它的设计造成语法检查几乎不可能,经常因为敲错一个变量,检查半天bug。 而这种错误原该由“编译“器查出来。
  
回复

使用道具 举报

 楼主| 发表于 2016-1-11 23:15:56 | 显示全部楼层
本帖最后由 weiweishuo 于 2016-1-11 23:41 编辑

*命令玩家小酒馆招英雄的命令是:
IssueNeutralImmediateOrderById
但注意3点:
1,这条语句写在地图初始化的响应函数里好像会失效,可以用一个timer触发。
2,你要issue哪个玩家,得确保这个player存在。 玩家座位是在“情节”=》“玩家”里设置。
3,最重要的一点,一定要手动设置“自定义队伍”,我是按照dota那样,两边分别是player 1~5, player 6~10。不然会出bug。
我遇到的bug是:设置了10个玩家的位子,但是只有0,1,7玩家“招英雄“成功。

*YDWE里的“局域网测试“选项挺方便的。
不过,不要把玩家设置的太多,不然它会开n个war3的instance。我机器上出现了memory read error,应该就是这个原因。

回复

使用道具 举报

发表于 2016-1-12 13:47:12 | 显示全部楼层
为什么we学习笔记要放在war3 mod里呢0 0

点评

我没找到合适的版块,这个还接近一点儿。  详情 回复 发表于 2016-1-12 14:07
我没找到合适的版块,这个还接近一点儿。  详情 回复 发表于 2016-1-12 14:07
回复

使用道具 举报

 楼主| 发表于 2016-1-12 14:07:15 | 显示全部楼层
希瓦 发表于 2016-1-12 13:47
为什么we学习笔记要放在war3 mod里呢0 0

我没找到合适的版块,这个还接近一点儿。
回复

使用道具 举报

 楼主| 发表于 2016-1-12 14:07:19 | 显示全部楼层
希瓦 发表于 2016-1-12 13:47
为什么we学习笔记要放在war3 mod里呢0 0

我没找到合适的版块,这个还接近一点儿。
回复

使用道具 举报

 楼主| 发表于 2016-1-12 14:15:04 | 显示全部楼层
lua的require机制还是容易忘。
一个lua文件里的function定义时如果不加local,那会在require时候成为全局函数。跟全局变量是一回事。
经常需要把一个lua文件require成一个module:
local module_a = require("a.lua")
其实并没有想象中的那么自动。还是要在"a.lua"里,把函数一个个挂在table上,再手动的把table return出来。 如果a.lua里有一个函数就是裸着定义的,拿它照样是全局函数,跟"module_a"没有关系。
回复

使用道具 举报

发表于 2016-1-14 11:46:41 | 显示全部楼层
weiweishuo 发表于 2016-1-12 14:07
我没找到合适的版块,这个还接近一点儿。

发到War3综合区呀。WE和War3Mod之间还是基本没联系的。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 06:15 , Processed in 0.270020 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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