查看“Pere工作笔记”的源代码
←
Pere工作笔记
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[Unlimiter]插件会导致被Create出来的Unit的+0x0C(sprite pointer)变成0,导致无法改unit颜色。所以CreateUnit的代码应该写在unlimiter代码生效之前,只能写在onPluginStart 使用epTrace来debug: 在[main]里面写: <code>debug: 1</code> 然后编译地图后会生成一个out.scx.epmap,把它拖到epTrace.exe,然后进入游戏玩out.scx 退出游戏后,会生成out.scx.epmap.prof,用txt查看即可 教程: <nowiki>https://cafe.naver.com/edac/63490</nowiki> 如何让scv以造建筑的形式造任何单位: 搞出相应的按钮,按钮的Condition: 3 (Always), Action: 29 (Build Terran Building), Action value是要造的unitID 然后把要造的unit在units.dat的requirement改成always use。(当然可以改mineral/gas数/人口数/BuildingDimension等)这样就可以让scv建造它时收到建造order了(order=30, buildQueue0=unitID) 此时可以检测scv的order和buildQueue然后CreateUnit 如果想让scv直接走过去造,则还需要: Construction Animation改成0 如何进行“按钮 - 选择目标位置”的触发: 以scv为例子,首先把scv的5红AI-order全部设为2,Right-Click order设为6,然后有如下几种可行的方法: 1. 建造建筑的按钮 (1)给SCV一个按钮,Condition设为Always(或者Can Create Unit/Building,注意改需求),Action设为Create Building - Terran,然后随便设一个Action Value X,然后注意要让单位X的Requirement满足。 (2)检测到scv的order为30(建造)时,获取scv的orderTargetPosition 2. 基本指令按钮 (1)给SCV一个按钮,Condition设为Always,Action设为20 (Patrol) (2)检测到scv的order为152(Patrol)时,获取scv的orderTargetPosition 注意,按钮Action设为Attack或者move时,由于Attack按钮点到空地和单位上分别会导致order=14(Attack Move)和order=10(Attack Unit)两种,所以检测order时要同时考虑10和14,同理Move点到空地和单位上分别会导致order 6(Ignore)和order 49(Follow)两种。 3. 施法,Tech use (1)给SCV一个按钮,Condition设为Always,Action设为24 (Use Technology),Action Value设为14(Dark Swarm) (2)将Dark Swarm所需要的能量设为0 (3)将TechData的14号(Dark Swarm)的Usage requirement改成Always use。注意:order的119号(Dark Swarm)不用动 (4)检测到scv的order为119(Dark Swarm)时,获取scv的orderTargetPosition 如何把Terran Civilian调出Attack按钮,并且能用它来给order并且给完order之后它原地不动: DatEdit - Unit(Terran Civilian) - AI actions: Attack Unit = 10, Right-click Action = 3 FireGraft - Button Set - Terran Civilian - "Attack" button - Condition = 3 (Always) 注意,使用data dumper来强行改动stat_txt.tbl之后,会使自定义快捷键失效,所以除非万不得已,否则千万不要使用自定义stat_txt.tbl。另外,使用settbl或者settbl2函数也会使得自定快捷键失效。 按钮触发实现方法: (1)方法一:build check法 EE3 - data edit - Button set - Terran Marine - 激活 button list - 右键 - New code - Train Unit - 随便选择一个value(最好选择英雄Unit,假设选择的unit是Jim Raynor),然后随便选一个图标和注释 然后data edit - Unit - Jim Raynor要修改两个: default: Mineral和Vespene都改成0 Requirements: Always Use 然后就可以使用buildcheck和buildreset了 (2)方法二:order法 EE3 - data edit - Button set - Terran Marine - 激活 button list - 右键 - New code - Basic Command - confirm 删掉不需要的按钮,然后button work的condition改成Always,action改成Stop reaver 然后orders - Reaver stop - Requirements改成Always 注意,当同时选中两个兵时,右下角的按钮面板会变为244(Units)号Button Set。所以即使你把两个兵单独的button set改成了其他,那么当同时选中两个兵时,button set还是变为244,所以我们一般在改按钮之后还要把244号button set清空: <code>SetMemory(0x005187E8 + 12 * 244, SetTo, 0);</code> <code>SetMemory(0x005187E8 + 12 * 244 + 4, SetTo, 0);</code> 注意: 当一个兵的Right-Click order设为6时,选中它之后右键空地的效果是:出现⊙动画,但是兵原地不动; 当Right-Click order设为3时,单位将处于“Can't move”状态,选中之后右键空地不会出现⊙动画,同时也会导致很多order用不了(比如Patrol、Attack用不了) 所以,如果把单位的Right-Click order设为3,则需要将152号Order(Patrol)的requirement改成Always Use才能让单位对于Patrol有反应(单位的CUnit的order ID会变为152号)。注意,由于order requirement本身已经处于1316/1316的爆满状态,如果想更改order,可能首先需要将一些没用的order的requirement设为Don't Use SetDeaths的单位如果是P9-P12的单位,则在非eud地图中不起任何作用 如果地图是eud图,则会起作用 星际判断一个单位是否在location中,仅跟该单位的Unit Size (Unit Dimension)有关,即内存0x6617C8
返回至“
Pere工作笔记
”。
导航菜单
个人工具
登录
名字空间
页面
讨论
变体
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
分类目录
常见问题
工作笔记
制图工具
所有页面
工具
链入页面
相关更改
特殊页面
页面信息