Welcome Guest ( Log In | Register )

欢迎访问本站。游客仅能浏览首页新闻、版块主题、维基条目与资源信息,需登录后方可获得内容发布、话题讨论、维基编辑与资源下载等权限。若无账号请先完成注册流程。
 
Reply to this topicStart new topic
> 自制WeiDU Macro/Function介绍及WeiDU内置Macro/Function使用心得, 3月6日添加utf8-文本转换及创建独立stats/splstate效果
四是而非
2017-01-04, 11:14
Post #1


主物质者
Group Icon
 23
   4

Group: Builder
Posts: 30
Joined: 2012-04-17
Member No.: 48323


Attached File GlobalFunction.zip ( 6.8k ) Number of downloads: 0

Macro/Function是weidu提供的类似其他语言的"库"的一种功能, 定义之后可在tp2或其他weidu文件里调用, 可以省去大量操作.

自制的Macro/Function已经打包进附件, 使用时需要在tp2文件中用INCLUDE命令调用.

Macro/Function有两种, Action和Patch, 可以理解为外部和内部. 外部的Action可以理解为复制/删除等普通的文件操作, 而内部的Patch即需要在使用COPY, COPY_EXISTING等命令将文件后调入内存之后的编辑等操作.

使用语法:
ACTION:
LAUNCH_ACTION_MACRO macro名, 或是简写LAM macro名
LAF function名 INT_VAR 整数型变量1=x 变量2... STR_VAR 字符串变量1=y 变量2...END
PATCH:
LPM macro名
LPF function名 INT_VAR 整数型变量1=x 变量2... STR_VAR 字符串变量1=y 变量2...END


1-5楼介绍对cre, itm, spl文件内的效果操作.
1楼:添加效果
2楼:删除效果
3楼:修改效果
4楼:按等级批量创建法术文件扩展头部, 并修改效果属性
5楼:复制效果
6楼:为物品添加扩展头部
7楼:将tra文件转换为增强版使用的utf-8 NO ROM型文本
8楼:添加独有的效果标识



一. 添加效果
PATCH_FUNCTION


不论对于SPL, ITM还是CRE文件, weidu已经内置了完善的Function, 可以直接调用.

1. 为法术添加效果(扩展头部里)
weidu语法:
LAUNCH_PATCH_FUNCTION(缩写为LPF) ADD_SPELL_EFFECT INT_VAR 整数型参数1=值 参数2=值... STR_VAR 字符串参数1=值 参数2=值... END

变量解释, 以中文DLTCEP为准
» Click to show Spoiler - click again to hide... «


用法示例: 为魔法飞弹SPWI112.spl添加一个20%几率使自身高等隐形6秒的效果
» Click to show Spoiler - click again to hide... «

2. 为物品技能添加效果(扩展头部里)
weidu语法:
LPF ADD_ITEM_EFFECT INT_VAR 整数型参数1=值 参数2=值... STR_VAR 字符串参数1=值 参数2=值... END

用法和变量与法术基本一样, 只是多了一个变量可以设定
» Click to show Spoiler - click again to hide... «


3. 为物品添加装备时的效果
weidu语法:
LPF ADD_ITEM_EQEFFECT INT_VAR 整数型参数1=值 参数2=值... STR_VAR 字符串参数1=值 参数2=值... END


4. 为法术添加开始施法时产生的效果(区别于施法完成产生的效果)
weidu语法:
LPF ADD_SPELL_CFEFFECT INT_VAR 整数型参数1=值 参数2=值... STR_VAR 字符串参数1=值 参数2=值... END


5. 为生物添加效果
weidu语法:
LPF ADD_CRE_EFFECT INT_VAR 整数型参数1=值 参数2=值... STR_VAR 字符串参数1=值 参数2=值... END

这三项用法都与前面的ADD_SPELL_EFFECT 类似, 为生物添加效果还有一些额外的变量可以设置, 但很少会用到, 不做说明. 有需要用到的可以参看weidu说明文档.

This post has been edited by 四是而非: 2017-03-08, 13:29
TOP
四是而非
2017-01-04, 11:47
Post #2


主物质者
Group Icon
 23
   4

Group: Builder
Posts: 30
Joined: 2012-04-17
Member No.: 48323


二. 删除效果
PATCH_FUNCTION

删除和更改效果的Function在weidu中也有集成, 但可设定的变量只有效果代码opcode, 在mod制作中觉得不够完善和便利, 于是自己写了写Function来用.
weidu版本237开始已经有了功能完整的删除效果Function. 以下说明以weidu 240为准


weidu语法:
LPF DELETE_EFFECT INT_VAR 整数型参数1=值 参数2=值... STR_VAR 字符串参数1=值 参数2=值... END

变量解释, 分为两部分:
1. 全局设定
» Click to show Spoiler - click again to hide... «
2. 参数匹配, 当已有效果的参数与所设定的参数全部相同则删除该条效果
» Click to show Spoiler - click again to hide... «


old post
» Click to show Spoiler - click again to hide... «

This post has been edited by 四是而非: 2017-03-06, 17:07
TOP
四是而非
2017-01-04, 12:57
Post #3


主物质者
Group Icon
 23
   4

Group: Builder
Posts: 30
Joined: 2012-04-17
Member No.: 48323


三. 修改效果
PATCH_FUNCTION


与删除相似, weidu内置的function只提供了对效果代码opcode的匹配, 我写了另外几个function可以有更好的针对性.
weidu版本237开始已经有了功能完整的修改效果Function. 以下说明以weidu 240为准


weidu语法:
LPF ALTER_EFFECT INT_VAR 整数型参数1=值 参数2=值... STR_VAR 字符串参数1=值 参数2=值... END

变量解释, 分为三部分:
1. 全局设定
» Click to show Spoiler - click again to hide... «
2. 参数匹配, 当已有效果的参数与所设定的参数全部相同则对该条效果进行修改
» Click to show Spoiler - click again to hide... «
3. 新参数, 如未设置则保留原有状态
» Click to show Spoiler - click again to hide... «





old post
» Click to show Spoiler - click again to hide... «

This post has been edited by 四是而非: 2017-03-06, 17:12
TOP
四是而非
2017-01-04, 14:28
Post #4


主物质者
Group Icon
 23
   4

Group: Builder
Posts: 30
Joined: 2012-04-17
Member No.: 48323


四. 按等级批量创建法术文件扩展头部, 并修改效果属性
PATCH_FUNCTION


制作按等级有成长的法术大概是mod制作中最麻烦的事情, DLTCEP提供的批量处理功能不够完善, 可设置的项目有限. 实在太懒之下逼出了以下两个function.

1. 创建头部. 首先需要一个效果和头部属性全部设置好的SPL文件. 需求等级设为1.

weidu语法:
LPF C4_CREATE_HEADERS INT_VAR 整数型参数1=值 参数2=值... STR_VAR 字符串参数1=值 参数2=值... END

» Click to show Spoiler - click again to hide... «

变量解释:
» Click to show Spoiler - click again to hide... «


2. 头部创建好, 下面开始将每个头部的效果与等级匹配

weidu语法:
LPF C4_ALTER_HEADER_EFFECT_LVL_PROGRESS INT_VAR 整数型参数1=值 参数2=值... STR_VAR 字符串参数1=值 参数2=值... END

» Click to show Spoiler - click again to hide... «

变量解释: 分为3部分
a. 设定和匹配
» Click to show Spoiler - click again to hide... «
b. 打算对已有头部1有特殊修改的某项.
» Click to show Spoiler - click again to hide... «
c. 成长参数设定
» Click to show Spoiler - click again to hide... «



用法示例:
给5级奥术破解术SPWI513增加一个造成强酸伤害的效果, 伤害为每3级+1. 30级后不再成长.
» Click to show Spoiler - click again to hide... «

This post has been edited by 四是而非: 2017-03-06, 17:12
TOP
四是而非
2017-01-04, 14:42
Post #5


主物质者
Group Icon
 23
   4

Group: Builder
Posts: 30
Joined: 2012-04-17
Member No.: 48323


五. 效果复制
PATCH_FUNCTION


weidu内置的还有一个非常强大的function: CLONE_EFFECT, 效果是从物品/法术/生物文件中找到需要的某个效果, 复制下来, 对某些项单独进行修改, 保留其他项的数值不做修改.

例如我所做的c4AI, 诗人自动吟唱功能时就用到, 搜索所有会显示战歌小图标的法术, 克隆下来并改成一个供脚本检测的Stats效果.

weidu语法:
LPF CLONE_EFFECT INT_VAR 整数型参数1=值 参数2=值... STR_VAR 字符串参数1=值 参数2=值... END


变量解释, 分为三部分:
1. 全局设定
» Click to show Spoiler - click again to hide... «
2. 参数匹配, 当已有效果的参数与所设定的参数全部相同则对该条效果进行修改
» Click to show Spoiler - click again to hide... «
3. 新参数, 如未设置则保留原有状态
» Click to show Spoiler - click again to hide... «

This post has been edited by 四是而非: 2017-03-06, 17:13
TOP
四是而非
2017-01-04, 15:04
Post #6


主物质者
Group Icon
 23
   4

Group: Builder
Posts: 30
Joined: 2012-04-17
Member No.: 48323


六. 为物品添加头部
PATCH_FUNCTION
操作文件只能是.itm的物品文件


为物品添加头部虽然可以直接用如DLTCEP等软件修改, 但当数量较多或是为确保兼容性, 还是用weidu来做更好.
此Function可配合ADD_ITEM_EFFECT使用, 在添加头部后加入想要的效果, 并配上相应说明文字.

weidu语法:
LPF C4_ADD_ITEM_HEADER INT_VAR 整数型参数1=值 参数2=值... STR_VAR 字符串参数1=值 参数2=值... END

代码:
» Click to show Spoiler - click again to hide... «

变量解释
» Click to show Spoiler - click again to hide... «

用法示例:
为各种无限法术书添加一个物品技能, 效果是每天一次治疗自身20hp
» Click to show Spoiler - click again to hide... «
头部图标用的无限法术书自己的按钮图标, 当然也可换成其他. "治疗自身20点生命"将会出现在按钮的注释内.也可以是引用tra文件条目的方式, 比如:
tra文件内写上@123 = ~治疗自身20点生命~, 再到语句中写name=~@123~
文字(如tip)或条目数字(如num)可以用变量, 则语句改为name=EVAL ~%tip%~, 或是name=EVAL ~@%num%~的形式

This post has been edited by 四是而非: 2017-03-06, 17:13
TOP
四是而非
2017-03-06, 17:36
Post #7


主物质者
Group Icon
 23
   4

Group: Builder
Posts: 30
Joined: 2012-04-17
Member No.: 48323


七. 将tra文件转换为增强版使用的utf-8 NO ROM型文本
ACTION_FUNCTION


使用方法:
1. 下载附件iconv.zip, 将iconv文件夹解压并保存到mod目录下, 注意是整个文件夹而非文件夹里的文件.

2. 在tp2文件头部的ALWAYS功能中输入以下内容:
» Click to show Spoiler - click again to hide... «

3. 在LANGUAGE模块中填入:
~字符串1~ ~字符串2~ ~字符串3~
字符串1: 安装时显示的语言选项, 例如"简体中文"
字符串2: 相应语言所保存的文件夹, 例如中文文本保存在"my-mod/tra/schinese下, 则填入schinese. 注意简体中文必须是schinese, 繁体中文必须是tchinese, 英文可以是english或者american
字符串3: 安装时立刻载入的路径和文件名, 例如my-mod/tra/schinese/setup.tra


源代码:
» Click to show Spoiler - click again to hide... «
Attached File iconv.zip ( 742.25k ) Number of downloads: 1

This post has been edited by 四是而非: 2017-03-06, 18:33
TOP
四是而非
2017-03-06, 18:07
Post #8


主物质者
Group Icon
 23
   4

Group: Builder
Posts: 30
Joined: 2012-04-17
Member No.: 48323


八. 添加独有的效果标识
PATCH_FUNCTION
增强版可直接使用, 原版则必须安装tobex才有效


SCS相信都不陌生, 怪物的AI会对玩家身上的各类型法术/装备的防护效果作出判断, 再采用针对性的攻击手段, 方法就是给各种防护效果添加一个stat. 然而原版已有的stat几乎已经被占用, 为保证兼容性只有借助tobex提供的#318号效果.

weidu语法:
CODE
LPF C4_ADD_UNIQUE_MARK INT_VAR 整数型参数1=值 参数2=值... STR_VAR 字符串参数1=值 参数2=值... END 

变量说明:
» Click to show Spoiler - click again to hide... «

使用示例:
» Click to show Spoiler - click again to hide... «

说明: 因为此function会先查找一次游戏中所有生物/法术/物品文件中已有的标识, 在第一次运行此function时会需要较长时间

This post has been edited by 四是而非: 2017-03-06, 18:30
TOP
Fast ReplyReply to this topicStart new topic
 


Time is now: 2017-03-25, 17:38