8818513 发表于 3 天前

TXT基础课程,检测与执行第18课

<h1><a href="https://fanm37t2tx.feishu.cn/minutes/obcnyrd4173xwwdctfrr4v39?from=from_copylink">视频课程</a></h1>
<h3>游戏脚本指令应用教案</h3>
<p>​<strong>​课程主题​</strong>​:游戏脚本常用指令解析与实践<br />
​<strong>​适用对象​</strong>​:游戏脚本开发初学者/维护人员<br />
​<strong>​课时​</strong>​:1课时(45分钟)</p>
<hr />
<h3>​<strong>​一、课程目标​</strong>​</h3>
<p>通过本节课学习,掌握游戏中常用脚本指令的功能、参数及实际应用场景,能够独立完成以下任务:</p>
<ol>
<li>时间戳与日期时间的转换;</li>
<li>角色属性(攻击速度、移动速度)的动态调整;</li>
<li>装备属性批量修改与绑定规则设置;</li>
<li>怪物状态检测与地图功能控制;</li>
<li>合区变量运算与沙巴克归属设置等。</li>
</ol>
<hr />
<h3>​<strong>​二、重点知识讲解​</strong>​</h3>
<h4>​<strong>​模块1:时间戳转换指令​</strong>​</h4>
<p>​<strong>​功能​</strong>​:将系统时间戳(数值)转换为可读的日期时间格式(如“2025-07-30 10:45:53”),用于玩家界面显示或脚本逻辑判断。<br />
​<strong>​指令格式​</strong>​:<code>RingToDateTime(时间戳变量/常量, 格式变量S1, 格式变量S2)</code></p>
<ul>
<li>​<strong>​参数说明​</strong>​:
<ul>
<li>时间戳变量/常量:系统生成的时间戳(如<code>$Runtime</code>)或自定义数值;</li>
<li>S1/S2:输出格式(<code>S1</code>为带斜杠格式,<code>S2</code>为带横杠格式,本质相同)。<br />
​<strong>​示例​</strong>​:</li>
</ul>
</li>
</ul>
<pre><code>-- 将当前时间戳转换为“年-月-日 时:分:秒”格式,存入S1和S2
RingToDateTime($Runtime, S1, S2)
SendMessage(&quot;当前时间:&quot;..S1) -- 输出:2025-07-30 10:45:53
</code></pre>
<p>​<strong>​注意​</strong>​:北京时间与海外时间差(如UTC+8),需根据需求调整时区。</p>
<h4>​<strong>​模块2:角色属性动态调整指令​</strong>​</h4>
<p>​<strong>​1. 攻击模式检测(CheckAttackEFF)​</strong>​</p>
<ul>
<li>​<strong>​功能​</strong>​:检测当前攻击是否为暴击/格挡/切割等属性,用于触发特殊效果(如飘雪特效)。</li>
<li>​<strong>​参数​</strong>​:攻击属性类型(如暴击、切割)。</li>
<li>​<strong>​应用场景​</strong>​:超变服中暴击特效触发(需引擎开启“新增属性”支持)。</li>
</ul>
<p>​<strong>​2. 百分比速度修改(SetSpeed)​</strong>​</p>
<ul>
<li>​<strong>​功能​</strong>​:按百分比调整移动/攻击/魔法速度(0为原速,&gt;0加速,&lt;0减速)。</li>
<li>​<strong>​指令格式​</strong>​:<code>SetSpeed(速度类型, 速度值, 持续时间)</code>
<ul>
<li>速度类型:1(移动)、2(攻击)、3(魔法);</li>
<li>速度值:基于固有速度的倍数(如100%为原速,200%为双倍速)。</li>
</ul>
</li>
<li>​<strong>​示例​</strong>​:</li>
</ul>
<pre><code>-- 加速移动速度至200%,持续10秒
SetSpeed(1, 200, 10000)
</code></pre>
<p>​<strong>​3. 吸血属性控制(SetHumanHP)​</strong>​</p>
<ul>
<li>​<strong>​功能​</strong>​:临时关闭角色吸血效果(小退后失效),可作为PK场景中的“反制Buff”。</li>
<li>​<strong>​示例​</strong>​:</li>
</ul>
<pre><code>-- 关闭当前角色的吸血效果(持续600秒)
SetHumanHP(0, 0, 600)
</code></pre>
<h4>​<strong>​模块3:装备与战斗功能指令​</strong>​</h4>
<p>​<strong>​1. 召唤分身(SummonClone)​</strong>​</p>
<ul>
<li>​<strong>​功能​</strong>​:召唤继承角色属性的分身(数量、持续时间、外观可配置),常用于娱乐服或特色玩法。</li>
<li>​<strong>​指令格式​</strong>​:<code>SummonClone(分身数量, 属性继承百分比, 颜色参数)</code></li>
<li>​<strong>​示例​</strong>​:</li>
</ul>
<pre><code>-- 召唤3个分身,继承100%属性,颜色不变
SummonClone(3, 100, 0)
</code></pre>
<p>​<strong>​2. 设置下次攻击伤害(SetNextAttackDamage)​</strong>​</p>
<ul>
<li>​<strong>​功能​</strong>​:指定下次攻击的伤害倍数(百分比),用于“蓄力暴击”“连击强化”等机制。</li>
<li>​<strong>​参数​</strong>​:伤害百分比(≥100,如500表示5倍伤害)。</li>
<li>​<strong>​示例​</strong>​:</li>
</ul>
<pre><code>-- 下次攻击伤害提升至300%
SetNextAttackDamage(300)
</code></pre>
<p>​<strong>​3. 装备批量增加属性(BatchAddEquipAttr)​</strong>​</p>
<ul>
<li>​<strong>​功能​</strong>​:为指定装备批量添加随机属性(如暴击几率、伤害减免),支持“洗装备”玩法。</li>
<li>​<strong>​指令格式​</strong>​:<code>BatchAddEquipAttr(装备位置, 运算符, 属性组)</code></li>
<li>​<strong>​应用场景​</strong>​:玩家通过消耗元宝锁定属性词条,随机生成其他词条(如“锁定暴击几率后,随机生成伤害减免”)。</li>
</ul>
<h4>​<strong>​模块4:地图与怪物功能指令​</strong>​</h4>
<p>​<strong>​1. 清理地图怪物(ClearMapMonster)​</strong>​</p>
<ul>
<li>​<strong>​功能​</strong>​:清除指定坐标范围内的怪物(支持按名称筛选),用于“刷怪场刷新”或“活动清场”。</li>
<li>​<strong>​指令格式​</strong>​:<code>ClearMapMonster(地图编号, 坐标X1, 坐标Y1, 坐标X2, 坐标Y2, 怪物名称)</code></li>
</ul>
<p>​<strong>​2. 获取地图怪物状态(GetMapMonsterInfo)​</strong>​</p>
<ul>
<li>​<strong>​功能​</strong>​:获取地图内怪物的剩余血量、刷新时间、坐标等信息(需配合刷怪表配置)。</li>
<li>​<strong>​参数​</strong>​:怪物名称(支持通配符“*”获取全图怪物)。</li>
</ul>
<h4>​<strong>​模块5:合区与绑定规则指令​</strong>​</h4>
<p>​<strong>​1. 合区变量运算(MergeServerVar)​</strong>​</p>
<ul>
<li>​<strong>​功能​</strong>​:合区时合并自定义全局变量(如沙巴克捐献总数),支持保留主/副区值、取最大/最小值、相加/相连(相减)。</li>
<li>​<strong>​参数​</strong>​:变量名、运算类型(0保留主区,1保留副区,2取大,3取小,4相加,5相连,6清零)。</li>
<li>​<strong>​应用场景​</strong>​:沙巴克活动中,合并两个服务器的“沙捐总数”时选择“相加”规则。</li>
</ul>
<p>​<strong>​2. 批量设置绑定规则(SetItemBindRule)​</strong>​</p>
<ul>
<li>​<strong>​功能​</strong>​:设置装备的绑定规则(禁止交易、丢弃、存入仓库等),支持高频触发(需注意性能)。</li>
<li>​<strong>​参数​</strong>​:绑定规则值(1=禁止丢弃,2=禁止交易,4=禁止存仓库,8=禁止出售,16=死亡必掉,32=禁止取出仓库,累加数值)。</li>
<li>​<strong>​示例​</strong>​:</li>
</ul>
<pre><code>-- 设置装备禁止交易、丢弃、存仓库(规则值=1+2+4=7)
SetItemBindRule(-1, 7) -- -1表示当前装备位置
</code></pre>
<hr />
<h3>​<strong>​三、实践任务(课后练习)​</strong>​</h3>
<ol>
<li>​<strong>​时间显示功能​</strong>​:在角色登录时,将系统时间戳转换为“YYYY年MM月DD日 HH:MM:SS”格式,通过聊天框显示。</li>
<li>​<strong>​VIP加速功能​</strong>​:根据角色VIP等级(1-10级),动态调整移动速度(VIP1加速50%,VIP10加速300%),持续至下线。</li>
<li>​<strong>​洗装备玩法​</strong>​:玩家消耗元宝后,使用<code>BatchAddEquipAttr</code>指令为武器随机添加3条属性(暴击几率、伤害加成、攻击速度),并支持锁定1条属性后重新生成其他属性。</li>
<li>​<strong>​沙巴克合区测试​</strong>​:模拟两个服务器合区,合并“沙巴克捐献总数”变量(主区值1000,副区值2000),选择“相加”规则,验证合区后总值是否为3000。</li>
</ol>
<hr />
<h3>​<strong>​四、总结与注意事项​</strong>​</h3>
<ol>
<li>​<strong>​高频指令性能​</strong>​:如<code>SetItemBindRule</code>需避免在入包触发(高频事件)中使用,防止服务器卡顿。</li>
<li>​<strong>​引擎配置依赖​</strong>​:部分指令(如攻击特效、速度修改)需提前开启引擎对应功能(如“新增属性”“魔法速度控制”)。</li>
<li>​<strong>​测试验证​</strong>​:所有指令需在游戏内实际测试(如时间戳转换需核对服务器时间,速度修改需观察角色移动效果)。</li>
</ol>
<p>​<strong>​课后思考​</strong>​:如何利用<code>BatchAddEquipAttr</code>和绑定规则实现“装备洗练+锁定”系统?(提示:结合玩家VIP等级限制锁定次数,通过脚本条件判断触发。)</p>
页: [1]
查看完整版本: TXT基础课程,检测与执行第18课