World of Warcraft [CLASSIC] plugin lua

news2024/10/7 0:52:29

World of Warcraft [CLASSIC] plugin lua  魔兽世界lua脚本插件

World of Warcraft API - Wowpedia - Your wiki guide to the World of Warcraft

D:\World of Warcraft\_classic_\Interface\AddOns

zwf.lua

function CountdownFunc()
   CountdownFrame = CreateFrame("Frame") 
   FrameScript = function() 
      if GetTime() - MarkTime > 1 then 
         if S == 0 then 
            SendChatMessage(">>烟雾弹<<结束", "YELL") 
            FrameScript = nil 
            CountdownFrame:SetScript("OnUpdate",FrameScript) 
         else 
            SendChatMessage(S,"YELL") 
         end 
         MarkTime = GetTime() 
         S = S - 1 
      end 
   end 
   MarkTime = GetTime() 
   S = 5 
   CountdownFrame:SetScript("OnUpdate",FrameScript) 
   SendChatMessage(">>烟雾弹<<已释放", "YELL") 
end 
 
MainFrame = CreateFrame("Frame") 
MainFrame:RegisterEvent("UNIT_SPELLCAST_SENT") 
MainFrame:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED") 
MainFrame:SetScript("OnEvent", function(_, _, a, b, _, c) 
   if a == "player" and b== "烟雾弹" then 
      n = type(c) == "string" and c or CountdownFunc() 
   end 
end)

zwf.toc

zwf.lua

==Console==

Console.lua

local PlayerName = GetUnitName("Player")
local _, PlayerClass = UnitClass("Player")
--print("ha")

local Console = CreateFrame("Frame", nil, UIParent)
ConsolePointer = Console

Console.isInit = false


--Console:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
Console:RegisterEvent("PLAYER_LOGIN")
Console:RegisterEvent("ADDON_LOADED")
Console:SetScript("OnEvent", function(self,e,...) 
	local func = self.HandleFunc[e]
	func(...)
end)
--[[
Console:SetScript("OnUpdate", function(self, elapsed)
	local func = self.HandleFunc["ON_UPDATE"]
	func(elapsed)
end
]]--
Console.HandleFunc = {

	ADDON_LOADED = function(...)
		local AddonName = ...
		if AddonName ~= "Console" then return end
		--Initialize Saved Variables if Necessary
		if ConsoleData == nil then 
			ConsoleData = {}
			ConsoleData.Position = {X = 335, Y = 155}
			if ConsoleData.CurrentText == nil then 
				ConsoleData.CurrentText = ""
			end
		end
		
		--print("Spells:", type(ItIsReadyData["Spells"]))
	end,
	
	PLAYER_LOGIN = function (...)
		Console.Main = CreateFrame("Frame", nil, UIParent)
		Console.Main:SetHeight(500)
		Console.Main:SetWidth(500)
		Console.Main:SetBackdrop({
			bgFile = "Interface\\AddOns\\Sora's Threat\\Media\\Solid", -- 背景材质路径 
			insets = {left = 1,right = 1,top = 1,bottom = 1}, -- 背景收缩程度,单位为像素,例如,top = 1即背景材质的上边缘向内收缩1个像素 
			edgeFile = "Interface\\AddOns\\Sora's Threat\\Media\\Solid", -- 边框材质路径 
			edgeSize = 1, -- 边框宽度 
		})
		Console.Main:SetBackdropColor(0, 0, 0, 0.5)
		Console.Main:SetBackdropBorderColor(0, 0, 0, 0.7)
		Console.Main:SetPoint("BOTTOMLEFT", UIParent, "BOTTOMLEFT", ConsoleData.Position.X, ConsoleData.Position.Y)
		Console.Main:SetMovable(true)
		Console.Main:EnableMouse(true)
		Console.Main:RegisterForDrag("LeftButton")
		Console.Main:SetScript("OnDragStart", Console.Main.StartMoving)
		Console.Main:SetScript("OnDragStop", function()
			Console.Main:StopMovingOrSizing()
			ConsoleData.Position.Y = Console.Main:GetBottom() 
			ConsoleData.Position.X = Console.Main:GetLeft() 
		end)
		
		Console.Main.Title = Console.Main:CreateFontString(nil, "OVERLAY")
		Console.Main.Title:SetFont(GameTooltipText:GetFont(), 15, "THINOUTLINE")
		Console.Main.Title:SetText("Lua Console")
		Console.Main.Title:SetPoint("TOP" , Console.Main, "TOP", 0, -5)
		
		Console.ScriptFrame = CreateFrame("EditBox", nil, Console.Main)
		Console.ScriptFrame:SetSize(480, 450)
		--Console.ScriptFrame:SetPoint("CENTER", Console.Main, "CENTER", 0, 3)
		Console.ScriptFrame:SetBackdrop({
			bgFile = "Interface\\AddOns\\Sora's Threat\\Media\\Solid", -- 背景材质路径 
			insets = {left = 1,right = 1,top = 1,bottom = 1}, -- 背景收缩程度,单位为像素,例如,top = 1即背景材质的上边缘向内收缩1个像素 
			edgeFile = "Interface\\AddOns\\Sora's Threat\\Media\\Solid", -- 边框材质路径 
			edgeSize = 1, -- 边框宽度 
		})
		Console.ScriptFrame:SetBackdropColor(0, 0, 0, 0.8)
		Console.ScriptFrame:SetBackdropBorderColor(0, 0, 0, 0.8)
		Console.ScriptFrame:ClearFocus()
		Console.ScriptFrame:SetMultiLine(true)
		Console.ScriptFrame:SetMaxBytes(0)
		Console.ScriptFrame:SetMaxLetters(0)
		Console.ScriptFrame:SetAutoFocus(false)
		Console.ScriptFrame:SetFontObject(ChatFontNormal)
		Console.ScriptFrame:EnableMouse(true)
		Console.ScriptFrame:SetText(ConsoleData.CurrentText)
		
		Console.ScriptScroll = CreateFrame("ScrollFrame", "ScrollHandle", Console.Main, "UIPanelScrollFrameTemplate")
		Console.ScriptScroll:SetPoint("TOPLEFT", Console.Main, "TOPLEFT", 10, -22)
		Console.ScriptScroll:SetPoint("BOTTOMRIGHT", Console.Main, "BOTTOMRIGHT", -30, 25)
		Console.ScriptScroll:SetScrollChild(Console.ScriptFrame)
		
		Console.HideAndShowButton = CreateFrame("Button", "ConsoleDisplayControl", UIParent, "UIPanelButtonTemplate")
		Console.HideAndShowButton:SetText("Hide")
		Console.HideAndShowButton:SetScript("OnClick", function() 
			local func = Console.HandleFunc["HIDE_SHOW_BUTTON_CLICK"]
			func()
		end)
		Console.HideAndShowButton:SetPoint("BOTTOMLEFT", Console.Main, "BOTTOMLEFT", 5, -24)
		Console.HideAndShowButton:SetSize(55, 22)
		
		Console.RunBotton = CreateFrame("Button", "RunBotton", Console.Main, "UIPanelButtonTemplate")
		Console.RunBotton:SetText("Run!")
		Console.RunBotton:SetScript("OnClick", function()
			local func = Console.HandleFunc["RUN_BOTTON_CLICK"]
			func()
		end)
		Console.RunBotton:SetPoint("BOTTOMRIGHT", Console.Main, "BOTTOMRIGHT", -5, 2)
		Console.RunBotton:SetSize(55, 22)
		
		Console.ReloadUIButton = CreateFrame("Button", "ReloadUIButton", Console.Main, "UIPanelButtonTemplate")
		Console.ReloadUIButton:SetText("ReloadUI")
		Console.ReloadUIButton:SetScript("OnClick", function() 
			ConsoleData.CurrentText = Console.ScriptFrame:GetText()
			ReloadUI()
		end)
		Console.ReloadUIButton:SetPoint("BOTTOMLEFT", Console.Main, "BOTTOMLEFT", 5, 2)
		Console.ReloadUIButton:SetSize(75, 22)
		
		print("Console has inicialized")
		--print(type(ConsoleData.CurrentText))
	end,
	
	HIDE_SHOW_BUTTON_CLICK = function()
		if Console.Main:IsShown() then
			Console.Main:Hide()
			Console.HideAndShowButton:SetText("Show")
		else
			Console.Main:Show()
			Console.HideAndShowButton:SetText("Hide")
		end
	end,
	
	RUN_BOTTON_CLICK = function()
		local code =  Console.ScriptFrame:GetText()
		--code = string.gsub(code, "\t", "___")
		print(">> "..code)
		local f = assert(loadstring(code))
		f()
	end
	
}

Console.toc

## Interface: 50300
## Version: 0.0.1
## Author: Wing
## Title: lua Console
## Notes: allows you to directly type lua script and run it in WOW
## SavedVariablesPerCharacter: ConsoleData

Console.xml

Console.xml

<Ui xmlns="http://www.blizzard.com/wow/ui/">
	<Script file="Console.lua"/>
	<Script file="Slash.lua"/>
	
</Ui>

Slash.lua

--[[SLASH_SAYSOMETHING1 = "/sayit"
SLASH_SAYSOMETHING2 = "/si"

SlashCmdList["SAYSOMETHING"] = function(...)
	local msg = ...
	print(msg)
	ItIsReadyData.msg = msg
end

SLASH_LOADSOMETHING1 = "/loadit"

SlashCmdList["LOADSOMETHING"] = function(...)
	print(ItIsReadyData.msg)
end
]]--

SLASH_RELOADUISHORT1 = "/rl"

SlashCmdList["RELOADUISHORT"] = function(...)
	ReloadUI()
end

local Console = ConsolePointer
local help_info1 = "\t To add spell watch, enter /iir add {spell id}.\n To remove spell watch, enter /iir rm {spell id}.\n To list all watch, enter /iir list.\n To open/close debug, enter /iir debug.\n"
local help_info2 = "\t To add spell watch group, enter /iir addg {group name}.\n To remove spell watch group, enter /iir rmg {group name}.\n To select a group, enter /iir sel {group name}"

function Console:releaseOnUpdate()
	self:SetScript("OnUpdate", function(self, elapsed) end)
end

SLASH_ITISREADY1 = "/console"
SLASH_ITISREADY2 = "/cmd"

SlashCmdList["CONSOLE"] = function (...)
	local arg, var = ...
	arg, var = strsplit(" ", arg)
	--print(arg)
	--print(var)
	if arg == "add" then 
		
	end
end

Console.SlashHandleFunc = {
	
	
}

==督军战士,督军猎人==

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1870814.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【RedHat】使用VMware Workstation创建配置RedHat操作系统

目录 &#x1f31e;1.前言 &#x1f31e;2. 使用 VMware Workstation 创建配置RedHat &#x1f33c;2.1 VMware Workstation 创建虚拟机 &#x1f33c;2.2 安装RedHat 7.6 &#x1f30a;2.2.1 添加光盘 &#x1f30a;2.2.2 开始安装操作系统 &#x1f30a;2.2.3 系统初始…

大数据开发需要哪些职场知识

职场是个人情世故的江湖&#xff0c;除了专业技能&#xff0c;成功的大数据开发人员还需要掌握多种职场知识。以下是一些重要的职场知识和技能&#xff0c;结合实际例子详细说明。 目录 理论知识与工程实践理论知识工程实践例子 项目经验总结项目管理总结和反思例子 做事方式方…

指针并不是用来存储数据的,而是用来存储数据在内存中地址(内存操作/函数指针/指针函数)

推荐&#xff1a;1、4、5号书籍 1. 基本概念 首先&#xff0c;让小明了解指针的基本概念&#xff1a; 指针的定义&#xff1a;指针是一个变量&#xff0c;它存储的是另一个变量的地址。指针的声明&#xff1a;例如&#xff0c;int *p表示一个指向整数的指针变量p。 2. 形象…

RocketMQ:日常开发中有哪些使用MQ的场景

什么是消息队列&#xff1f; 消息队列是一种通信方法&#xff0c;允许应用程序通过发送和接收消息来互相通信。这些消息/任务/指令存储在一个中间介质中&#xff08;即队列&#xff09;&#xff0c;并由生产者发送&#xff0c;消费者接收。 使用场景 场景一&#xff1a;任务…

2024黑盾杯复现赛题MISC部分

一、一个logo 一张png图片&#xff0c;查看颜色通道即可发现flag 二、 学会Office 最好用联想自带的excel工具查看&#xff0c;我用WPS打开未解出题目 这里会发现有隐藏信息 隐藏信息为宏加密 。去百度了解宏加密后&#xff0c;发现有俩个宏&#xff0c;一个加密一个解密 执…

华为---配置基本的访问控制列表(ACL)

11、访问控制列表&#xff08;ACL&#xff09; 11.1 配置基本的访问控制列表 11.1.1 原理概述 访问控制列表ACL(Access Control List)是由permit或deny语句组成的一系列有顺序的规则集合&#xff0c;这些规则根据数据包的源地址、目的地址、源端口、目的端口等信息来描述。A…

uview中的utabs组件item字数不一致导致滑块偏移

给item单独设置宽度&#xff0c;使滑块计算准确 ::v-deep .u-scroll-box .u-tab-item {width: 80px !important;&:nth-child(3),&:nth-child(4),&:nth-child(5) {width: 60px !important;}flex: 1 1 0% !important; }效果如下&#xff1a;

让DroidVNC-NG支持中文输入

DroidVNC-NG支持控制端输入内容&#xff0c;但是仅支持英文字符&#xff0c;如果需要控制输入法软键盘输入中文的话就没办法了&#xff0c;经过摸索找到了解决办法。 这个解决办法有个条件就是让DroidVNC-NG成为系统级应用&#xff08;这个条件比较苛刻&#xff09;&#xff…

STL中的迭代器模式:将算法与数据结构分离

目录 1.概述 2.容器类 2.1.序列容器 2.2.关联容器 2.3.容器适配器 2.4.数组 3.迭代器 4.重用标准迭代器 5.总结 1.概述 在之前&#xff0c;我们讲了迭代器设计模式&#xff0c;分析了它的结构、角色以及优缺点&#xff1a; 设计模式之迭代器模式-CSDN博客 在 STL 中&a…

俯视LLM的灵魂:一文搞懂稀疏自动编码器

实时了解业内动态&#xff0c;论文是最好的桥梁&#xff0c;专栏精选论文重点解读热点论文&#xff0c;围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;…

【python】OpenCV—Color Map

文章目录 cv2.applyColorMapcv2.putText小试牛刀自定义颜色 参考学习来自 OpenCV基础&#xff08;21&#xff09;使用 OpenCV 中的applyColorMap实现伪着色 cv2.applyColorMap cv2.applyColorMap() 是 OpenCV 中的一个函数&#xff0c;用于将灰度图像或单通道图像应用一个颜色…

【秋招刷题打卡】Day03-二分系列之-二分答案

Day03-二分系列之-二分答案 给大家推荐一下咱们的 陪伴打卡小屋 知识星球啦&#xff0c;详细介绍 >笔试刷题陪伴小屋-打卡赢价值丰厚奖励 < ⏰小屋将在每日上午发放打卡题目&#xff0c;包括&#xff1a; 一道该算法的模版题 (主要以力扣&#xff0c;牛客&#xff0c;…

HexPlane代码复现(十几分钟就复现成功的一篇论文代码!!!!!)

https://caoang327.github.io/HexPlane/ 一、 python setup.py develop命令用不了了 running develop /home/uriky/anaconda3/envs/hexplane/lib/python3.8/site-packages/setuptools/command/easy_install.py:144: EasyInstallDeprecationWarning: easy_install command is d…

仓库管理系统14--仓库设置

1、添加窗体 <UserControl x:Class"West.StoreMgr.View.StoreView"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:mc"http://schemas.openxmlformats.…

算法金 | 没有思考过 Embedding,不足以谈 AI

大侠幸会&#xff0c;在下全网同名「算法金」 0 基础转 AI 上岸&#xff0c;多个算法赛 Top 「日更万日&#xff0c;让更多人享受智能乐趣」 抱个拳&#xff0c;送个礼 在当今的人工智能&#xff08;AI&#xff09;领域&#xff0c;Embedding 是一个不可或缺的概念。如果你没有…

背靠广汽、小马智行,如祺出行打得过滴滴和百度吗?

©自象限原创 作者丨艾AA 编辑丨薛黎 北京时间6月14日凌晨&#xff0c;在特斯拉股东大会上&#xff0c;马斯克阐述了对Robotaxi&#xff08;自动驾驶出租车&#xff09;商业模式的构想——特斯拉不仅会运营自己的无人驾驶出租车车队&#xff0c;还可以让特斯拉车主们的爱…

面试突击:Java 集合知识体系梳理

本文已收录于&#xff1a;https://github.com/danmuking/all-in-one&#xff08;持续更新&#xff09; 前言 哈喽&#xff0c;大家好&#xff0c;我是 DanMu。在 Java 开发中&#xff0c;集合类对象绝对是被使用最频繁的对象之一。因此&#xff0c;深入了解集合类对象的底层数…

Python操作MySQL数据库--使用pymysql模块

Python操作MySQL数据库--使用pymysql模块 一、新建数据库和数据表1.1 新建book数据库1.2 新建bookprice数据表二、连接数据库2.1 建立数据库连接三、新增数据3.1 新增单条数据3.2 新增多条数据3.3 批量新增四、修改数据4.1 修改单条数据4.2 修改多条数据五、删除数据5.1 删除单…

Linux系统相关函数总结

在应用程序当中&#xff0c;有时往往需要去获取到一些系统相关的信息&#xff0c;譬如时间、日期、以及其它一些系统相关信息&#xff0c;本章将向大家介绍如何通过 Linux 系统调用或 C 库函数获取这些系统信息。除此之外&#xff0c;还会向大家介绍 Linux 系统下的/proc 虚拟文…

springboot 缓存框架Cache整合redis组成二级缓存

springboot 缓存框架Cache整合redis组成二级缓存 项目性能优化的解决方案除开硬件外的方案无非就是优化sql&#xff0c;减少sql 的执行时间&#xff0c;合理运用缓存让同样的请求和数据库之间的连接尽量减少&#xff0c;内存的处理速度肯定比直接查询数据库来的要快一些。今天就…