制图教程

来自咸鱼维基
跳转至: 导航 搜索

魔兽地图编辑器导航

1 百度贴吧-魔兽地图编辑器吧:精品区[编辑]

2 魔兽地图编辑器教程网 - The Helper[编辑]

3 制图教程[编辑]

魔兽地图编辑器相关的制图教程。

3.1 技能[编辑]

3.1.1 马甲[编辑]

3.2 设计[编辑]

3.2.1 种族[编辑]

3.3 多面板[编辑]

3.4 文本[编辑]

3.5 可破坏物[编辑]

  • 树木再生链接输入管理器里的文件才是重点,可以只复制文件(要包括路径)。
    • 路径Scripts\blizzard.j
    • constant integer bj_MAX_DEST_IN_REGION_EVENTS = 64
    • 可破坏物事件监控常量最大值*43

3.6 掉线、异步[编辑]

3.7 数学、算法[编辑]

3.8 血条[编辑]

3.9 动画、动作[编辑]

3.10 随机属性、装备[编辑]

3.11 背包[编辑]

3.12 脚本[编辑]

如果你问的是内存里的栈空间的话,根本不用你操心,函数返回后系统的栈解退机制会自动帮你回收分配的栈空间(包括局部变量和参数);如果你问的是数据结构的话,先进后出,push压栈pop出栈就这样

3.12.1 变量[编辑]

3.12.2 触发器[编辑]

3.12.3 哈希表[编辑]

3.12.4 运行效率、排泄[编辑]

3.12.5 算法[编辑]

3.12.6 DzAPI[编辑]

3.12.7 Lua[编辑]

3.12.8 同步[编辑]

shiyile22:
我觉得你是犯了一个概念性的错误。
看如下伪代码:
hashtable ht = InitHashtable()
SaveStr( ht, GetPlayerName(), "user_data")
你应该能够直观地了解以上代码的意思。
现在我们来说说变量同步和异步的问题,还是老生常谈,除了handle类型的变量,其他变量均异步。
所以parekey也好childkey也好,他们本质上是一个字符串类型,如果你要对他们进行异步处理,只需要“在写法上保持一致”,看如下伪代码:
function async_save_str takes string pare_key, string child_key, string value returns nothing
   local string str_pare_key = pare_key
   local string str_child_key = child_key
   if(GetLocalPlayer() == Player(n)) then
      set str_pare_key = str_pare_key + "loc"
      set str_child_key = str_child_key + "loc"
   endif
   call SaveStr( ht, str_pare_key, str_child_key, value)
endfunction
现在来讲讲你说的分车问题,最终目标就是“强制同步”,也就是说:“要把异步的数据同步给其他玩家”
那么,其实有很多方法,比如:发布中介命令、缓存、自写sync底层函数等等。
发布中介命令
利用了魔兽的事件同步机制,简单来说,注册一个发布坐标命令事件,发布中介命令,捕获x,y(x、y就是你要同步的数据)。这样可以强制同步变量,也是目前最简单的 
方法。
第二种,缓存(已被哈希表替代)但它是可以同步的。
具体实现贴吧里也有,我就不贴具体代码了。
第三种 自写底层同步函数
因为我目前用的是第三种,我大概展开讲一下:
魔兽的局域网游戏机制限制了局域网游戏“只能是局域网游戏”,因此各大游戏平台的联机方法均是“虚拟局域网技术”,这也给我们写同步函数带来了很大的方便。因为我们只要做几件事:
1、获得socket句柄,
2、以魔兽封包的格式向对战平台绑定的局域网ip:6112端口以UDP(管杀不管埋)的方式进行发包,剩下就交给对战平台去发送了
3.hook魔兽的收包函数,过滤出我们的封包,进行收包处理。
因此 你不必获得对战平台服务器房间的真实公网ip(既安全又简便),既可以自己实现收发包,数据类型任意(只需要使用序列化),非常方便。
你可以参考一下,有问题可以再问,个人推荐第三种,自由快捷。

3.12.9 Node.js[编辑]

3.12.10 动态注册[编辑]

3.12.11 选英雄[编辑]

3.12.12 将任意技能变成瞬发[编辑]

3.13 物编[编辑]

3.13.1 攻击速度[编辑]

3.13.2 碰撞体积[编辑]

3.13.3 护甲[编辑]

3.14 地形[编辑]

3.15 界面[编辑]

3.15.1 图标[编辑]

3.15.2 载入界面[编辑]

3.16 模型[编辑]

根据外国一些人的反应,win7及以后的版本貌似是打不开的,而xp可以正常用。 解压完后,进入文件夹c:\autodesk\3dsmax\swl,打开CdSet32.exe,然后安装,这个是cdilla许可程序。 补全度娘云 1bajnx8CnCUN-gVTkJiFQSg 提取钥匙b1jn

3.17 音乐、音效[编辑]

3.18 历史[编辑]

3.19 内核、数据格式[编辑]

3.20 作弊[编辑]

3.21 资源提取[编辑]

3.22 字符串[编辑]

可以

3.23 汉化[编辑]

3.24 战役[编辑]

解、、、解决了,名称太长的锅。。 具体来说“战役文件名”+“存档文件名”(不包括.w3z这几个字符)不超过22个字符。 23个字符开始存档没有问题,也可以通过手动读档打开,但是触发读取的时候就会返回选择关卡界面。

3.25 测试地图[编辑]

3.26 未分类[编辑]

几率不高但不低,然后崩溃没有代码,追踪也是根本没用,崩溃截图如下:
This application has encountered a critical error:
内存资源不足,无法处理此命令。
Program:************\war3.exe
Object:.G
所以这到底是啥崩溃?感觉只能凭经验排查,不然就只能查最近一周做的任何修改
已解决,负选择圈隐藏血条的锅

有些版本的魔兽会,1.24可能会崩。 反正我1.24e闪避和醉拳就会,其他技能没事。 用物品的闪避和醉拳就行了。

搜索: "war3map.doo" The doodad file for trees
然后跳过第一段,从 NEW "Frozen Throne expansion pack beta" format: 开始看
魔兽里面 
[发送的目标类型]玩家名:发送的消息
总共最大显示的长度为147个字符
比如
[所有人]abc:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
刨去[所有人] 就是占136个字符
如果玩家名字大于136个字符 那么后面的信息都显示不出来。包括冒号:
大于132个字符 后面信息显示不出,但冒号能显示。
当发送给盟友的时候就需要玩家名139个字符
所以说不是空格挤出去的而是有字数限制。
因此用|r或其他不显示的字符串都可以。

3.27 待移动到其它页面[编辑]

准备启动一下这个停滞很久的项目。 以前搞的时候没有什么规划,too young too naive。 而现在的话已经准备相对长期来做这件事情了(毕竟正好重制版也快到来)。


仍然基于YDWE制作。 提供的主要特性不再和第一代一样增加大量第三方UI,第二代主要围绕在稳定性和各平台的API上,并提供一些自行撰写的系统。即主要的方向是提高面向作者的适用性,而不再针对引擎开发者提供接口,也不再搞一些过于花里胡哨的功能,也不再强行要求升级最新版或连接服务器。 具体的未来会逐渐公布。 不过不会过多进行技术问答,第一代发布后太多琐碎问题让我实在没能支撑下去,希望能够让第二代更长远一些。


目前可以公布的主要特性: - 触发编辑器的体验优化(更方便的快捷键,更舒适的排版) - 通用的、降低服务器存档开发门槛的API(会逐步同时兼容网易平台、11平台和09平台,这样就不用作者自行编写不同平台的服务器存档代码) - 一些封装后的界面系统,降低魔兽界面的开发门槛 - 支持ejass(飛夫斯基和苍老湿的杰作,一种不用打开cjass编译器的cjass,甚至有很多特性比cjass更方便)

欢迎到时前来参与测试。

4 演示图[编辑]

5 成品图[编辑]