--[[作者信息:
Command Extra (游戏命令扩展)
作者QQ:247321453
作者Email:247321453@qq.com
修改日期:2014-3-12
功能:添加额外的命令、GM命令
]]--
print(">>Script: Command Extra.") --[[
.wmsg 内容 GM发送世界消息
.be 查看机器人装备
.npcbot equips 查看机器人装备
.rh GM回复生命
.reset hp GM回复生命
.gh 传送回家
.go home 传送回家
.卡 传送回家
]]--
local function ShowBotEquip(player)--查看机器人装备
local guid=player:GetGUIDLow()--得到玩家的guid
local target=player:GetSelection()--得到玩家选中对象
local text=""
if(target)then
if(target:GetTypeId()==)then--目标是生物
local Q = CharDBQuery("SELECT * FROM character_npcbot Where owner="..guid.." and entry="..target:GetEntry().." and active=1")
--player:Say("me: "..guid.." target:"..target:GetEntry(),0)
if(Q)then--查到相应的信息
text=target:GetName().."的装备:\n"
for i=, do
local item=Q:GetUInt32(i)--读取内容
if(item and item >)then
text=text..GetItemLink(item).." "
target:SendUnitWhisper(GetItemLink(item),player)--向玩家悄悄话
end
end
--target:SendUnitSay(text,0)
else
player:Say("没有找到机器人,或者没有选中机器人",)
end
else
player:Say("请选中一个机器人。",)
end
else
player:Say("请选中一个机器人。",)
end
return text
end local function ResetHP(player)
if(player:GetGMRank()>=)then--判断是不是GM
player:SetHealth(player:GetMaxHealth())
player:SendBroadcastMessage("已经回复生命。")
return false
else
return true
end
end local function Start(player)
player:CastSpell(player,,true)
player:ResetSpellCooldown(, true)
player:SendBroadcastMessage("已经回到家")
end local CMD={
["go home"]=function(player)
Start(player)
end,
["gh"]=function(player)
Start(player)
end,
["卡"]=function(player)
Start(player)
end,
["wmsg"]=function(player,msg)
if(player)then
if(player:GetGMRank()>=)then
SendWorldMessage(string.format("|cFFFF0000[系统]|r|cFFFFFF00%s|r",msg))
end
else
SendWorldMessage(string.format("|cFFFF0000[系统]|r|cFFFFFF00%s|r",msg))
end
end,
["be"]=function(player)--机器人装备
ShowBotEquip(player)
return false
end,
["npcbot equips"]=function(player)--机器人装备
ShowBotEquip(player)
return false
end,
["reset hp"]=function(player)--GM回复生命
ResetHP(player)
end,
["rh"]=function(player)--GM回复生命
ResetHP(player)
end,
} function CMD.Input(event, player, command)
local cmd,space,excmd=command,command:find(" ") or ,""
if(space>)then
cmd=command:sub(,space-)--主命令
excmd=command:sub(space+)--额外命令参数
end
local func=CMD[cmd]--用输入的命令去查找函数
if(func)then
return func(player,excmd) or false
end
end
--PLAYER_EVENT_ON_COMMAND = 42 -- (event, player, command) - Can return false
RegisterPlayerEvent(,CMD.Input)

CommandExtra.lua --游戏命令扩展的更多相关文章

  1. lua游戏开发实践指南学习笔记1

    本文是依据lua游戏开发实践指南做的一些学习笔记,仅用于继续自己学习的一些知识. Lua基础 1.  语言定义: 在lua语言中,标识符有非常大的灵活性(变量和函数名),只是用户不呢个以数字作为起始符 ...

  2. [Lua游戏AI开发指南] 笔记零 - 框架搭建

    一.图书详情 <Lua游戏AI开发指南>,原作名: Learning Game AI Programming with Lua. 豆瓣:https://book.douban.com/su ...

  3. Cocos 2d-X Lua 游戏添加苹果内购(二) OC和Lua交互代码详解

    这是第二篇 Cocos 2d-X Lua 游戏添加苹果内购(一) 图文详解准备流程 这是前面的第一篇,详细的说明了怎样添加内购项目以及填写银行信息提交以及沙盒测试员的添加使用以及需要我们注意的东西,结 ...

  4. Lua游戏逆向及破解方法介绍

    Lua游戏逆向及破解方法介绍   背景介绍 随着手游的发展,越来越多的Cocos-lua端游开发者转移到手游平台.Lua脚本编写逻辑的手游也是越来越多,如梦幻西游.刀塔传奇.开心消消乐.游龙英雄.奇迹 ...

  5. 【AMAD】django-extensions -- Django框架的自定义命令扩展集合

    动机 简介 个人评分 动机 使用Django进行开发的时候,会不会感觉开发工具少了一些.比如每次进入python shell调试的时候要重新import每个model. 简介 django-exten ...

  6. 19-vim-分屏命令-01-末行命令扩展

    1.末行命令扩展 命令 英文 功能 :e空格. edit 打开内置文件浏览器,浏览当前目录下的文件,不用退出vim,可以在vim中上下浏览目录和文件 :n 文件名 new 新建文件 :w 文件名 wr ...

  7. Lua游戏时区问题

    关于cocos2dx-lua版本中游戏时间显示问题 2015-04-19 19:07 1466人阅读 评论(0) 收藏 举报  分类: Lua(29)   cocos2d(38)  版权声明:本文为博 ...

  8. 第一个Cocos2d-x Lua游戏

    我们的编写的第一个Cocos2d-x Lua程序,命名为HelloLua,从该工程开始学习其它的内容.创建工程我们创建Cocos2d-x Lua工程可以通过Cocos2d-x提供的命令工具cocos实 ...

  9. Cocos2d-x Lua游戏开发Mac环境搭建以及一点点感悟

    接触Cocos2d-x 最近由于公司项目的需要,自己开始接触Cocos,开始做一些简单的轻量级的游戏,以前没有接触过这一块的东西,也是借助这个机会学习一下游戏的开发,由于以前自己接触的全都是iOS和A ...

随机推荐

  1. VMware技巧01

    1.20160930 VMware® Workstation 10.0.4 build-2249910,使用中遇到问题(WinXP sp3):网卡 桥接模式,NAT模式 都连不上网... 今天,尝试了 ...

  2. PHP 小方法之 算生日

    if (! function_exists ( 'diff_date' )) { function diff_date($date1, $date2){ $datestart = date ( 'Y- ...

  3. python之Excel操作

    #coding:utf-8 __author__ = 'similarface' import xlrd book=xlrd.open_workbook('/Users/similarface/Dow ...

  4. Shell重定向文件描述符

    #!/bin/bash      最近在看shell,各种困惑,不过解决困惑的感觉还是很不错的.废话少说,linux中使用文件描述符来标识每个文件对象.文件描述符为一个非负整数,可以唯一标识会话中打开 ...

  5. android应用锁之监听应用前后台切换方式

    今天在做技术总结,顺便就把知识共享,个人崇尚分享. 通过以下方式来监听是不是发生了应用的前后台切换: 1. android api 10 – 15 通过ActivityManager register ...

  6. SpringMVC -- 梗概--贰

    1.为什么要配置: mvc:annotation-driven 1>在springMVC的处理流程中,有两个重要组件:HandlerMapping和HandlerAdapter 分别负责解析Ha ...

  7. windows docker测试

    最近测试环节要求比较多,笔记本上虚拟机越来越多,试验一下docker,随笔如下. 一.安装docker 主机windows 10 专业版 网上在windows10上安装docker有两种方法 一个是使 ...

  8. Assembly.Load(path).CreateInstance 反射出错解决办法

    最近采用工厂模式反射DAL层出现一些问题,所以自己想写一下自己认为标准解决的思路和解决方法以备后用. 1.这是项目结构 2.这是DALFactory 反射代码 #region 创建对象(不使用缓存) ...

  9. C# 字符串转义和反转义

    System.Text.RegularExpressions.Regex.Unescape(s) System.Text.RegularExpressions.Regex.Escape(s)

  10. 使用 Java Service Wrapper 启动java后台进程服务

    Java Service Wrapper (http://wrapper.tanukisoftware.com/doc/english/product-overview.html)可以很方便得在各个平 ...