LUACN论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
热搜: YJWOW MagicStone BoL
楼主: zlksdd

叁月教学第二季--如何写一个好的脚本!

[复制链接]
 楼主| 发表于 2024-4-17 14:42:25 | 显示全部楼层
lasskill 发表于 2024-4-16 02:08 PM
大佬写的很详细,有个问题想请教一下。暗牧释放 吸血鬼之触  老是释放2次。这个应该要怎么写。谢谢。

针对这个问题,我有两个方法来下实现
方案一:这里增加一个技能延时,这里是延时0.1秒
[Lua] 纯文本查看 复制代码
--吸血鬼之触
if BeeTargetDeBuffTime("吸血鬼之触")<1
and BeeIsRun("吸血鬼之触","target")  
then   
    if ta==nil then
        ta=GetTime()
    end
    tb=GetTime()
    if tb-ta>0.1 then
        BeeRun("吸血鬼之触","target") ;
         ta=nil
    end  
    return
end


方案二:使用进阶区的函数GetVariable和 SetVariable 的两个函数,增加一个条件,来避免二次释放
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-4-17 14:46:39 | 显示全部楼层
QQ野兽 发表于 2024-4-16 05:20 PM
大佬问下有没有在移动的情况下施放灼烧的函数

你这个问题描述的不清楚,
1、一般正常的服务器,灼烧法术是不能在移动状态下释放的。这是一个读条的技能
2、针对魔改的服务器,你需要测试一下
local A = BeeRun("灼烧","target")
print(A)
在移动的状状态下,看看反馈A的值是什么,来判断是否能移动施法
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-4-17 14:55:02 | 显示全部楼层
lsm05042211 发表于 2024-4-17 11:22 AM
大佬牛逼啊,大佬很久之前写的冰DK的我还在用呢,用着很好。就是我在改的时 ...

这里你要看看 急速鼓和药水是否存在共CD的状况,如果不存在
可以通过下面这段函数来实现。
[Lua] 纯文本查看 复制代码
local QG = "鼓的名字"
if GetItemCount(QG)>0 and GetItemCooldown(QG)==0   and BeeUnitAffectingCombat() then BeeRun("/use 鼓的名字") end

如果需要存在公共CD的问题,可以加一个条件例如所有的符文都在冷却的时候,在加上这个鼓也可以使用GetItemCooldown(QG)==0  我们就敲鼓,对应后面释放的技能 增加 GetItemCooldown(QG)>0这样的条件,就会强制后面的技能等鼓敲了才能使用,上面只是提供了一个方案,可以具体去测试一下
回复 支持 反对

使用道具 举报

发表于 2024-4-17 19:31:28 | 显示全部楼层
zlksdd 发表于 2024-4-17 02:46 PM
你这个问题描述的不清楚,
1、一般正常的服务器,灼烧法术是不能在移动状态下释放的。这是一个读条的技 ...

成功返回 ,true;忘记说了玩的的4.3.4CTM服,点了天赋技能灼烧可在移动中施法
回复 支持 反对

使用道具 举报

发表于 2024-4-18 21:52:31 | 显示全部楼层
虽然大部分我都看不懂,但是也理解了大神得思路。非常受启发。
回复 支持 反对

使用道具 举报

发表于 2024-4-19 09:59:42 | 显示全部楼层
我靠,大佬牛B啊,留下来认真学习一下,虽然看的一知半解
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-4-21 10:48:42 | 显示全部楼层
本帖最后由 zlksdd 于 2024-4-21 10:53 AM 编辑
QQ野兽 发表于 2024-4-17 07:31 PM
成功返回 ,true;忘记说了玩的的4.3.4CTM服,点了天赋技能灼烧可在移动中施法

你现在的效果是不是只要在运动状态下 就用灼烧?如果是的话 很简单
需要用到魔兽世界API函数GetUnitSpeed()这个函数,来判断自己的移动速度
[Lua] 纯文本查看 复制代码
if GetUnitSpeed("player")>2 then
    if BeeIsRun("灼烧", "target") then
        BeeRun("灼烧","target")
    end
end

这个地方GetUnitSpeed("player")>2 这个数值2 你可以定义一下GetUnitSpeed("player")  打印一下  看看反馈的值是多少

回复 支持 反对

使用道具 举报

发表于 2024-4-21 11:35:48 | 显示全部楼层
zlksdd 发表于 2024-4-21 10:48 AM
你现在的效果是不是只要在运动状态下 就用灼烧?如果是的话 很简单
需要用到魔兽世界API函数GetUnitSpee ...

感谢大佬,已解决
回复 支持 反对

使用道具 举报

发表于 2024-4-21 15:01:44 | 显示全部楼层
谢谢分享谢谢分享
回复 支持 反对

使用道具 举报

发表于 2024-4-22 00:01:55 | 显示全部楼层
个梵蒂冈电饭锅发的刚发的

评分

参与人数 1伸手费 -100 收起 理由
vshrd -100

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

小黑屋|手机版|Archiver|LUACN论坛

GMT+8, 2026-5-31 04:14 AM , Processed in 0.040972 second(s), 33 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表