相信你在组队时候一定有过这样的经历:盯着世界大脚频道一行行刷屏的广告,好不容易眼尖看到有个人在那边喊“某某本来个DPS,4=1”,鼠标点那人头像,信息早就被刷到了上边,花好半天往上翻到信息,窃窃地给人家打了个1,人家一个字“满”回过来,心凉了半截。

我们从第一天进入艾泽拉斯世界,无时无刻不在用这个聊天频道在与它交流,也无时无刻不在被烦人的刷屏信息搞到崩溃。

所以今天我们就来教教大家如何更加优(粗)雅(暴)的在公屏喊话。

基本设置

每个新建的魔兽角色进入游戏后,都会在屏幕的左下角有一个默认的聊天窗口。

在这个聊天窗口,玩家可以在不同频道向世界发送不同的信息,还有一些系统提示等信息。

玩家可以通过右键设置,通过勾选来设置想要看到的信息。

有时候一个窗口显示的频道信息太多会导致信息刷屏,我们会因此错过很多重要的信息。

所以我选择新建几个窗口来显示不同的频道信息;

这些窗口如果是用代码表示,它们有自己独有的名字;

如上面带有四个标签的窗口,从左到右他们分别叫:

ChatFrame1
ChatFrame2
ChatFrame3
ChatFrame4

没错按从左到右数字一直排,魔兽世界插件允许玩家最多有9个标签;

如果你想要某个窗口输入一条消息,只需要在你写的代码里写下一句:

ChatFrame4:AddMessage("这是我要说的话。。。")

这句话到底怎么用,想要实现的话我们下面会讲。

关于频道设置时,有时我们会发现最常用的“大脚世界频道”信息没有了,

这可能是由于暴雪限制了频道进入的人数,我们只需要在下面的聊天栏输入:

/join 大脚世界频道

熟悉的世界频道信息又回来了。

这里如果还没有信息可能是频道人数达到上限,暂时还加不进去,

或者如果提示你已经进入了频道但还是没有信息,在聊天栏输入

/reload

重载一下界面就看到了。

让我们用宏喊喊话

关于宏我们之前有文章介绍过,可以到我公众号“艾泽拉斯日常”里找宏相关的内容。

这里我们做一个喊话的宏。

打开制作宏界面,按ESC,点“宏命令设置”。

或者在聊天栏里打 /m

点击新建选择一个图标,在上面输入宏的名字

确定之后我们就要在下面的代码区填写宏命令了;

关于宏有几个内容我们需要了解一下:

  • 字符限制在256个;
  • 可以有空格,但不可以有回车;
  • 如果宏命令不符合Lua语法,宏会失效,不会有任何提示;

我们先来看下我们的喊话宏:

/script T,F=T or 0,F or CreateFrame("frame")if X then X=nil else X=function()local t=GetTime()if t-T>10 then SendChatMessage("大家好,我是听风轻咛。","channel",nil,1)T=t end end end F:SetScript("OnUpdate",X)

上面这个宏,我在频道1每隔10秒钟进行一次喊话,内容是“大家好,我是听风轻咛。”我们先来看一下效果。

至于这段宏怎么解释,别着急我们下面说。

宏有字数限制怎么办

有了上面的宏,我们就可以在世界公屏发送组队信息啦。

可是问题来了,我说的话不光是那么几个字的时候,发现宏的字符不够用了。

没关系我们有办法。我们来做个新的插件。

仍旧按我们的命名方式,在Addons下建一个文件夹,

命名为03_TalkToAzeroth

在文件夹下建立两个文件,一个是跟文件夹同名的03_TalkToAzeroth.toc文件,另一个是写代码的TalkToAzeroth.lua文件(这个是不用同名的);

有很多细心的小可爱可能发现了,我们今天的插件没有.xml文件。

没错我们今天的插件不需要界面!!!

## Interface: 20300
## Title: 03-喊话的正确姿势
## Author: 听风
## Notes: 向艾泽拉斯说出我们的心声。
## Description: 这是一个为了简化喊话的插件。TalkToAzeroth.lua

我们先把插件信息写好,关掉游戏重启检查一下。

接下来在lua里写我们的宏:

-- /script talk(1, 5, "内容")function talk(channel, time_pad, msg)T,F=T or 0,F or CreateFrame("frame")if TALK then TALK=nilChatFrame4:AddMessage("喊话关闭")else TALK=function()local t=GetTime()if t-T>time_pad thenSendChatMessage(msg,"channel",nil,channel)T=tend endChatFrame4:AddMessage("喊话开启")end F:SetScript("OnUpdate",TALK)
end

我们把上面的宏写成函数,这下为了美观,我们可以把代码排版了。

内容其实还是上面的宏内容,其实我们就仅仅是把/scriptfunction表示。

既然说到函数,我们今天就讲一下Lua的函数。简单的讲,函数就是一段代码,以function开始,以end结束。

在它范围的代码是一个整块,若函数被执行,整个块的代码会被顺序执行。

如上函数是有名称的,也就好比你想让一条狗去接你丢出去的飞盘,你得给他一个命令。我们的命令就是talk

为了你命令发的准确,你得告诉狗接哪个盘,用多长时间接,这里我们用talk括号里的参数来表示;

我们的函数参数channel, time_pad, msg分别表示在哪个频道发,每隔几秒发,发送的内容;

好了,接下来我们就需要把具体怎么实施给狗讲清楚,先干什么再干什么;

T,F=T or 0,F or CreateFrame("frame")
if TALK then TALK=nilChatFrame4:AddMessage("喊话关闭")
else TALK=function()local t=GetTime()if t-T>time_pad thenSendChatMessage(msg,"channel",nil,channel)T=tend endChatFrame4:AddMessage("喊话开启")
end
F:SetScript("OnUpdate",TALK)

下面用文字来描述上面这段话:

T 是 T 或者 0
F 是 F 或者 创建一个新窗口(这个窗口可以不显示)
如果 我在喊话喊话 TALK 关闭在窗口4发送内容:喊话关闭
不是的话告诉你 TALK 怎么喊话 {如果 过了time_pad 时间在channel频道发送内容msgT 就是 当前时间}在窗口4发送内容:喊话开启用新建的窗口F开启上面的喊话TALK(这里的"OnUpdate"表示不停的更新界面,就是重复不停做这件事)

这个时候我们还没有把命令发送出去,我们把发送命令写在宏里:

/script talk(4, 10, "这是我在向艾泽拉斯喊话。")

这样我们就把想说的“这是我向艾泽拉斯在说话”,每隔10秒在频道4里发送。这里的4对应通用频道里的本地防务。

点击新建的宏开启喊话,公屏4频道开始有信息显示,再次点击喊话关闭。

完了最后这个刷屏被骂了,我太南了,自闭自闭。今天就到这里吧,晚安,艾泽拉斯。

欢迎关注微信公众号“艾泽拉斯日常(azeroth-daily)”。

听风的插件-喊话的正确姿势相关推荐

  1. 听风的插件-正在战斗中

    文章目录 文件结构 界面 由上篇中的事件引出 事件处理 上篇我们跟插件打了个招呼,本篇我们要介绍一个简单的战斗统计插件,这个插件的主要功能是在玩家战斗开始发生时提示玩家正在处于战斗,并在战斗结束时显示 ...

  2. 听风的插件-你好艾泽拉斯

    之前我们介绍了wow插件的构成和使用,从这篇开始我们将要学习自己DIY插件,我们从一个简单的例子开始学习.你一定有很多顾虑,如果你想问在学习之前我们需不需要有一些编程方面的基础,答案是:不需要.只要你 ...

  3. [听风]TBC单体插件头像显示ShadowedUnitFrames

    文章目录 如何打开 看看头像条 举一反三 还有其他功能? 话不多说,先看效果- 首先,你要的个人头像,它有可能是这样的: 也有可能是这样的: 当然它还可以更丰富: 如果你觉得仅仅有这些,那你就太小看它 ...

  4. [听风]TBC单体插件“必备安装的DBM”

    [听风]TBC单体插件"必备安装的DBM" 标签(空格分隔): TBC 文章目录 [听风]TBC单体插件"必备安装的DBM" 插件历史 他都做了些什么 快速开启 ...

  5. [听风]艾泽拉斯日常—关于插件目录

    文章目录 写在前面 插件目录 版本 目录 游戏内编写插件 Cube WowLua TinyPad BugSack MPQ 写在后面 Hello大家好,欢迎来到听风的艾泽拉斯日常. 写在前面 今天给大家 ...

  6. 作为一名Python程序员,论听歌的正确姿势?

    程序员听歌的正确姿势. 这有啥,无非就是跪.趴.躺- 啊呸,说错了,正确姿势可能是? 打开网易云–>找到榜单–>选歌 But!!! 这也太普通太随意了嘛,来看一个Python程序员的打开方 ...

  7. GitHub 热点速览:刷 LeetCode 的正确姿势!

    作者 | HelloGitHub-小鱼干 责编 | 郭芮 找对路子,事半功倍,正如本周 GitHub Trending #刷 LeetCode# 主题想表达的那般,正确的学习姿势方能让人走得更远,走进 ...

  8. 如何成为一名合格的Apache项目Committer,参与Apache开源贡献的正确姿势

    近日,孙金城老师在 "Open Source Promotion Plan - Summer 2020" 开源软件供应链点亮计划做了<如何成为一名合格的Apache项目Com ...

  9. 代码排错和避免错误的正确姿势

    本文总结一下学习和工作以来思考了一些排错的思路和避免错误的思路积累在这里,希望对大家有帮助,也欢迎大家补充. 1.代码排错和中医理论很相似 发现写代码排查错误可以学学传统中医的诊断方法, 1.1传统中 ...

最新文章

  1. 关于linux基础的博客,第一篇博客,以下。
  2. c语言如何回缩一个字符,撑大的胃怎样能瘦回去 被撑大的胃还能缩回去吗
  3. 注意!出口货物木质包装IPPC标识规定!
  4. 安装 archlinux 之使用 EFI/GPT
  5. 图的最小生成树和最短路径算法思路总结(Prim,Kruskal,Dijkstra,Floyd)
  6. Codeforces 797B - Odd sum
  7. C#多线程编程实战(二)
  8. Centos单网卡多IP的配置
  9. 【详解】BiLSTM+CRF模型
  10. TFS2010新建项目失败
  11. 最基本财务基础知识,财务知识基础来源
  12. 在Ubuntu上玩《口袋妖怪·叶绿》
  13. JTAG篇(5) OpenOCD 写入数据到TAP
  14. Apache POI 设置Excel单元格的宽度和高度
  15. 2017计算机非全日制调剂,2017年非全日制硕士研究生调剂方案
  16. ARC101E Ribbons on Tree 容斥原理+dp
  17. 魔兽世界活跃人数持续下降
  18. SPSS数据分析软件的安装与介绍(附网盘链接)
  19. JAVA自学-20180320/20180321
  20. EP-306 打印机 进入固件恢复模式 firmware recovery mode

热门文章

  1. Web开发学习3.11
  2. 编译错误: /bin/sh: 1: pushd: not found的问题
  3. pip国内的一些镜像网址
  4. 栈应用之括号匹配(C语言)
  5. python中if brthon环境安装包_python这个正则表达式有什么问题?
  6. MYSQL专题: 脏读、幻读、不可重复读区别及解决方案
  7. fmdb和mysql的区别_fmdb数据库
  8. 陌陌二季度财报发布,唐岩收购探探这步棋走得很妙
  9. 健康指南:手机放哪里辐射危害最低?
  10. Excel密码保护的解除方法与解除原理