Hytale之我见 专注hytale服务器技术

lua脚本属性强化

2019-12-28
hytaleme

介绍

玩家输入属性强化时,玩家移动速度改为20,设置身体大小为2倍,不允许被攻击(无敌); 玩家输入取消强化时,恢复属性

准备

  1. 首先打开官方文档页面,方便查看提供的接口:https://developers.mini1.cn/wiki/

  2. 准备一个编辑器,推荐vscode,或者简单点也可以用notepad++

开始

一. 设置属性代码

-- 参数含义:玩家ID 属性 值
local result = Player:setAttr(objid, attrtype, val)

二. 设置行为属性代码

-- 参数含义:玩家ID 行为属性 是否开启
local result = Player:setActionAttrState(objid, actionattr, switch)

整体代码浏览

-- 04. 个人属性配置教程

-- 按官方文档说明,这些用到的类必须要先生成
local Chat = class.Chat.new()
local Player = class.Player.new()

-- 监听玩家发出聊天信息事件
ScriptSupportEvent:registerEvent("Player.InputContent", function ( event )
    local playerId = event.eventobjid
    local content = event.content
    if content == '属性强化' then
        -- 参数含义:玩家ID 属性 值
        local result1 = Player:setAttr(playerId, 10, 20) -- 移动速度改为20
        local result2 = Player:setAttr(playerId, 21, 2) -- 大小改为2
        -- 参数含义:玩家ID 行为属性 是否开启
        local result3 = Player:setActionAttrState(playerId, 64, false) -- 不允许被攻击
        -- 提示结果
        Chat:sendSystemMsg(result1 == ErrorCode.OK and result2 == ErrorCode.OK and result3 == ErrorCode.OK and '属性强化成功' or '属性强化未完全成功')
    elseif content == '取消强化' then
        -- 参数含义:玩家ID 属性 值
        local result1 = Player:setAttr(playerId, 10, -1) -- 移动速度默认为-1
        local result2 = Player:setAttr(playerId, 21, 1) -- 大小恢复为1
        -- 参数含义:玩家ID 行为属性 是否开启
        local result3 = Player:setActionAttrState(playerId, 64, true) -- 允许被攻击
        -- 提示结果
        Chat:sendSystemMsg(result1 == ErrorCode.OK and result2 == ErrorCode.OK and result3 == ErrorCode.OK and '取消强化成功' or '取消强化未完全成功')
    end
  end)

PS

以上就是全部教程了。

最后:

  1. 如果想要获取更多教程可以关注我
  2. 如果想要体验本教程的效果,可以收藏下面的教程专用地图:试炼场(此地图将包含所有的脚本教程),并在游戏内进入体验
  3. 点个赞呗~

相似文章

目录