找回密码
 立即注册
    查看: 9|回复: 0

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

    [复制链接]

    71

    主题

    2

    回帖

    325

    积分

    积分
    325
    发表于 昨天 09:16 AM | 显示全部楼层 |阅读模式

    视频课程

    游戏脚本指令应用教案

    ​课程主题​​:游戏脚本常用指令解析与实践
    ​适用对象​​:游戏脚本开发初学者/维护人员
    ​课时​​:1课时(45分钟)


    ​一、课程目标​

    通过本节课学习,掌握游戏中常用脚本指令的功能、参数及实际应用场景,能够独立完成以下任务:

    1. 时间戳与日期时间的转换;
    2. 角色属性(攻击速度、移动速度)的动态调整;
    3. 装备属性批量修改与绑定规则设置;
    4. 怪物状态检测与地图功能控制;
    5. 合区变量运算与沙巴克归属设置等。

    ​二、重点知识讲解​

    ​模块1:时间戳转换指令​

    ​功能​​:将系统时间戳(数值)转换为可读的日期时间格式(如“2025-07-30 10:45:53”),用于玩家界面显示或脚本逻辑判断。
    ​指令格式​​:RingToDateTime(时间戳变量/常量, 格式变量S1, 格式变量S2)

    • ​参数说明​​:
      • 时间戳变量/常量:系统生成的时间戳(如$Runtime)或自定义数值;
      • S1/S2:输出格式(S1为带斜杠格式,S2为带横杠格式,本质相同)。
        ​示例​​:
    -- 将当前时间戳转换为“年-月-日 时:分:秒”格式,存入S1和S2  
    RingToDateTime($Runtime, S1, S2)  
    SendMessage("当前时间:"..S1) -- 输出:2025-07-30 10:45:53
    

    ​注意​​:北京时间与海外时间差(如UTC+8),需根据需求调整时区。

    ​模块2:角色属性动态调整指令​

    ​1. 攻击模式检测(CheckAttackEFF)​

    • ​功能​​:检测当前攻击是否为暴击/格挡/切割等属性,用于触发特殊效果(如飘雪特效)。
    • ​参数​​:攻击属性类型(如暴击、切割)。
    • ​应用场景​​:超变服中暴击特效触发(需引擎开启“新增属性”支持)。

    ​2. 百分比速度修改(SetSpeed)​

    • ​功能​​:按百分比调整移动/攻击/魔法速度(0为原速,>0加速,<0减速)。
    • ​指令格式​​:SetSpeed(速度类型, 速度值, 持续时间)
      • 速度类型:1(移动)、2(攻击)、3(魔法);
      • 速度值:基于固有速度的倍数(如100%为原速,200%为双倍速)。
    • ​示例​​:
    -- 加速移动速度至200%,持续10秒  
    SetSpeed(1, 200, 10000)
    

    ​3. 吸血属性控制(SetHumanHP)​

    • ​功能​​:临时关闭角色吸血效果(小退后失效),可作为PK场景中的“反制Buff”。
    • ​示例​​:
    -- 关闭当前角色的吸血效果(持续600秒)  
    SetHumanHP(0, 0, 600)
    

    ​模块3:装备与战斗功能指令​

    ​1. 召唤分身(SummonClone)​

    • ​功能​​:召唤继承角色属性的分身(数量、持续时间、外观可配置),常用于娱乐服或特色玩法。
    • ​指令格式​​:SummonClone(分身数量, 属性继承百分比, 颜色参数)
    • ​示例​​:
    -- 召唤3个分身,继承100%属性,颜色不变  
    SummonClone(3, 100, 0)
    

    ​2. 设置下次攻击伤害(SetNextAttackDamage)​

    • ​功能​​:指定下次攻击的伤害倍数(百分比),用于“蓄力暴击”“连击强化”等机制。
    • ​参数​​:伤害百分比(≥100,如500表示5倍伤害)。
    • ​示例​​:
    -- 下次攻击伤害提升至300%  
    SetNextAttackDamage(300)
    

    ​3. 装备批量增加属性(BatchAddEquipAttr)​

    • ​功能​​:为指定装备批量添加随机属性(如暴击几率、伤害减免),支持“洗装备”玩法。
    • ​指令格式​​:BatchAddEquipAttr(装备位置, 运算符, 属性组)
    • ​应用场景​​:玩家通过消耗元宝锁定属性词条,随机生成其他词条(如“锁定暴击几率后,随机生成伤害减免”)。

    ​模块4:地图与怪物功能指令​

    ​1. 清理地图怪物(ClearMapMonster)​

    • ​功能​​:清除指定坐标范围内的怪物(支持按名称筛选),用于“刷怪场刷新”或“活动清场”。
    • ​指令格式​​:ClearMapMonster(地图编号, 坐标X1, 坐标Y1, 坐标X2, 坐标Y2, 怪物名称)

    ​2. 获取地图怪物状态(GetMapMonsterInfo)​

    • ​功能​​:获取地图内怪物的剩余血量、刷新时间、坐标等信息(需配合刷怪表配置)。
    • ​参数​​:怪物名称(支持通配符“*”获取全图怪物)。

    ​模块5:合区与绑定规则指令​

    ​1. 合区变量运算(MergeServerVar)​

    • ​功能​​:合区时合并自定义全局变量(如沙巴克捐献总数),支持保留主/副区值、取最大/最小值、相加/相连(相减)。
    • ​参数​​:变量名、运算类型(0保留主区,1保留副区,2取大,3取小,4相加,5相连,6清零)。
    • ​应用场景​​:沙巴克活动中,合并两个服务器的“沙捐总数”时选择“相加”规则。

    ​2. 批量设置绑定规则(SetItemBindRule)​

    • ​功能​​:设置装备的绑定规则(禁止交易、丢弃、存入仓库等),支持高频触发(需注意性能)。
    • ​参数​​:绑定规则值(1=禁止丢弃,2=禁止交易,4=禁止存仓库,8=禁止出售,16=死亡必掉,32=禁止取出仓库,累加数值)。
    • ​示例​​:
    -- 设置装备禁止交易、丢弃、存仓库(规则值=1+2+4=7)  
    SetItemBindRule(-1, 7) -- -1表示当前装备位置
    

    ​三、实践任务(课后练习)​

    1. ​时间显示功能​​:在角色登录时,将系统时间戳转换为“YYYY年MM月DD日 HH:MM:SS”格式,通过聊天框显示。
    2. ​VIP加速功能​​:根据角色VIP等级(1-10级),动态调整移动速度(VIP1加速50%,VIP10加速300%),持续至下线。
    3. ​洗装备玩法​​:玩家消耗元宝后,使用BatchAddEquipAttr指令为武器随机添加3条属性(暴击几率、伤害加成、攻击速度),并支持锁定1条属性后重新生成其他属性。
    4. ​沙巴克合区测试​​:模拟两个服务器合区,合并“沙巴克捐献总数”变量(主区值1000,副区值2000),选择“相加”规则,验证合区后总值是否为3000。

    ​四、总结与注意事项​

    1. ​高频指令性能​​:如SetItemBindRule需避免在入包触发(高频事件)中使用,防止服务器卡顿。
    2. ​引擎配置依赖​​:部分指令(如攻击特效、速度修改)需提前开启引擎对应功能(如“新增属性”“魔法速度控制”)。
    3. ​测试验证​​:所有指令需在游戏内实际测试(如时间戳转换需核对服务器时间,速度修改需观察角色移动效果)。

    ​课后思考​​:如何利用BatchAddEquipAttr和绑定规则实现“装备洗练+锁定”系统?(提示:结合玩家VIP等级限制锁定次数,通过脚本条件判断触发。)

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则