北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 5828|回复: 10

请问mush里如何实现zmud里的以下功能?

[复制链接]
发表于 2011-9-13 22:15:14 | 显示全部楼层 |阅读模式
#t+ #t- #if 选择判断语句
#wa 等待
是否只能用函数编程实现?
请问lua入门看什么教材比较好? 另外那个最好有语言命令语句的实例讲解

还有mush里通过触发器抓取的数值如何赋值给变量
另外如何实现数值计算?
谢谢

[ 本帖最后由 ddjch 于 2011-9-13 10:17 PM 编辑 ]
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2011-9-13 22:25:00 | 显示全部楼层
先看这个
http://www.pkuxkx.net/forum/thread-10037-1-1.html
然后看
baidu
《programming in Lua 中文版》
下载下来学习
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2011-9-13 22:26:48 | 显示全部楼层
附件: 您所在的用户组无法下载或查看附件


=/=! 悲剧了
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2011-9-13 22:28:19 | 显示全部楼层
#t+和t-mush都有函数的
if你可以写在脚本里面
我是这样理解的
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2011-9-13 22:59:29 | 显示全部楼层
使用函数:        EnableGroup

触发器、别名和定时器都可以放入一个组中,以标识它们之间的关系。每个组都必须有一个名称,名称不受限制,可以为任何字符。
为了调试方便,函数会返回组中的成员个数(不一定等于被启用或者禁用的个数,因为可能有些成员已经处于这个状态了)。
如果你在插件中执行这个函数,只有插件中的相关组会被删除,插件外面的组将不受影响。相反,在插件外面执行这个函数,插件内部的组不会受到影响。

假如组名是 groupname
EnableGroup ("groupname", true)  -- 启用这个组
EnableGroup ("groupname", false)  -- 禁用这个组

[ 本帖最后由 onlinego 于 2011-9-13 11:01 PM 编辑 ]
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2011-9-13 23:00:14 | 显示全部楼层
也可以具体使用
EnableAliasGroup   EnableTimerGroup   EnableTriggerGroup
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2011-9-14 00:08:13 | 显示全部楼层
那请问 赋值变量如何实现?还有如何用变量进行计算?
比如我以前用zmud玩别的游戏
针对打坐就抓取了当前内力最大值mm 气血当前值mh 和每100气血打坐出的内力值mp
然后通过zmud里的代数运算
@hp=mp/100
@h=@mm/@hp

#if @mh>@h
dazuo @h

这样的计算如何用mush实现呢?
另外求稳二楼那个帖子里的附件要什么条件下载啊?
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2011-9-14 07:08:20 | 显示全部楼层
《programming in Lua 中文版》的目录
Lua程序设计
版权声明
译序
第一篇 语言
第0章 序言
0.1 序言
0.2 Lua的使用者
0.3 Lua的相关资源
0.4 本书的体例
0.5 关于本书
0.6 感谢
第1章 起点
1.1 Chunks
1.2 全局变量
1.3 词法约定
1.4 命令行方式
第2章 类型和值
2.1 Nil
2.2 Booleans
2.3 Numbers
2.4 Strings
2.5 Functions
2.6 Userdata and Threads
第3章 表达式
3.1 算术运算符
3.2 关系运算符
3.3 逻辑运算符
3.4 连接运算符
3.5 优先级
3.6 表的构造
第4章 基本语法
4.1 赋值语句
4.2 局部变量与代码块(block)
4.3 控制结构语句
4.4 break和return语句
第5章 函数
5.1 多返回值
5.2 可变参数
5.3 命名参数
第6章 再论函数
6.1 闭包
6.2 非全局函数
6.3 正确的尾调用(Proper Tail Calls)
第7章 迭代器与泛型for
7.1 迭代器与闭包
7.2 范性for的语义
7.3 无状态的迭代器
7.4 多状态的迭代器
7.5 真正的迭代器
第8章 编译·运行·错误信息
8.1 require函数
8.2 C Packages
8.3 错误
8.4 异常和错误处理
8.5 错误信息和回跟踪(Tracebacks)
第9章 协同程序
9.1 协同的基础
9.2 管道和过滤器
9.3 用作迭代器的协同
9.4 非抢占式多线程
第10章 完整示例
10.1 Lua作为数据描述语言使用
10.2 马尔可夫链算法
第二篇 tables与objects
第11章 数据结构
11.1 数组
11.2 矩阵和多维数组
11.3 链表
11.4 队列和双向队列
11.5 集合和包
11.6 字符串缓冲
第12章 数据文件与持久化
12.1 序列化
12.1.1 保存不带循环的table
12.1.2 保存带有循环的table
第13章 Metatables and Metamethods
13.1 算术运算的Metamethods
13.2 关系运算的Metamethods
13.3 库定义的Metamethods
13.4 表相关的Metamethods
13.4.1 The __index Metamethod
13.4.2 The __newindex Metamethod
13.4.3 有默认值的表
13.4.4 监控表
13.4.5 只读表
第14章 环境
14.1 使用动态名字访问全局变量
14.2 声明全局变量
14.3 非全局的环境
第15章 Packages
15.1 基本方法
15.2 私有成员(Privacy)
15.3 包与文件
15.4 使用全局表
15.5 其他一些技巧(Other Facilities)
第16章 面向对象程序设计
16.1 类
16.2 继承
16.3 多重继承
16.4 私有性(privacy)
16.5 Single-Method的对象实现方法
第17章 Weak表
17.1 记忆函数
17.2 关联对象属性
17.3 重述带有默认值的表
第三篇 标准库
第18章 数学库
第19章 Table库
19.1 数组大小
19.2 插入/删除
19.3 排序
第20章 String库
20.1 模式匹配函数
20.2 模式
20.3 捕获(Captures)
20.4 转换的技巧(Tricks of the Trade)
第21章 IO库
21.1 简单I/O模式
21.2 完全I/O 模式
21.2.1 I/O优化的一个小技巧
21.2.2 二进制文件
21.3 关于文件的其它操作
第22章 操作系统库
22.1 Date和Time
22.2 其它的系统调用
第23章 Debug库
23.1 自省(Introspective)
23.1.1 访问局部变量
23.1.2 访问Upvalues
23.2 Hooks
23.3 Profiles
第四篇 C API
第24章 C API纵览
24.1 第一个示例程序
24.2 堆栈
24.2.1 压入元素
24.2.2 查询元素
24.2.3 其他堆栈操作
24.3 C API的错误处理
24.3.1 应用程序中的错误处理
24.3.2 类库中的错误处理
第25章 扩展你的程序
25.1 表操作
25.2 调用Lua函数
25.3 通用的函数调用
第26章 调用C函数
26.1 C 函数
26.2 C 函数库
第27章 撰写C函数的技巧
27.1 数组操作
27.2 字符串处理
27.3 在C函数中保存状态
27.3.1 The Registry
27.3.2 References
27.3.3 Upvalues
第28章 User-Defined Types in C
28.1 Userdata
28.2 Metatables
28.3 访问面向对象的数据
28.4 访问数组
28.5 Light Userdata
第29章 资源管理
29.1 目录迭代器
29.2 XML解析
第四篇 附录
A. 终端机控制符
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2011-9-14 07:09:41 | 显示全部楼层
4.1 赋值语句


赋值是改变一个变量的值和改变表域的最基本的方法。

a = "hello" .. "world"

t.n = t.n + 1

Lua可以对多个变量同时赋值,变量列表和值列表的各个元素用逗号分开,赋值语句右边的值会依次赋给左边的变量。

a, b = 10, 2*x       <-->       a=10; b=2*x

遇到赋值语句Lua会先计算右边所有的值然后再执行赋值操作,所以我们可以这样进行交换变量的值:

x, y = y, x                     -- swap 'x' for 'y'

a, a[j] = a[j], a         -- swap 'a' for 'a'

当变量个数和值的个数不一致时,Lua会一直以变量个数为基础采取以下策略:

a. 变量个数 > 值的个数             按变量个数补足nil

b. 变量个数 < 值的个数             多余的值会被忽略

例如:

a, b, c = 0, 1

print(a,b,c)             --> 0   1   nil



a, b = a+1, b+1, b+2     -- value of b+2 is ignored

print(a,b)               --> 1   2



a, b, c = 0

print(a,b,c)             --> 0   nil   nil

上面最后一个例子是一个常见的错误情况,注意:如果要对多个变量赋值必须依次对每个变量赋值。

a, b, c = 0, 0, 0

print(a,b,c)             --> 0   0   0

多值赋值经常用来交换变量,或将函数调用返回给变量:

a, b = f()

f()返回两个值,第一个赋给a,第二个赋给b。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2011-9-14 09:38:45 | 显示全部楼层
来学习下
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-17 03:45 AM , Processed in 0.015173 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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