北大侠客行MUD论坛

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

请教lua的问题

[复制链接]
发表于 2009-12-1 10:04:48 | 显示全部楼层 |阅读模式
现在有var.lua和exec.lua
其中var.lua内容为:
hp = {}

hp[jingli] = 100

hp[jingshen] = 98

我要在在exec.lua文件中访问var.lua中的内容,我要怎么操作啊?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-12-1 10:17:50 | 显示全部楼层
在excel.lua中一开始的地方加入这句

include "var.lua"

----

手上没有lua环境,无法测试代码,但这么写是不错的.如果运行有问题,请尝试去掉引号等
另外include前面一定不能有任何字符,包括空格,空行(也不一定要这么严格要求,但严格一点不会有坏处)
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-12-1 11:46:26 | 显示全部楼层
用dofile("hp.lua")

在hp.lua中的变量不要声明为local。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-12-1 11:49:31 | 显示全部楼层
原帖由 tianheng 于 2009-12-1 10:04 发表

hp[jingli] = 100

hp[jingshen] = 98


另外,这样赋值好像有问题……
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-12-1 11:51:35 | 显示全部楼层
  1. local settings = {["id"] = "1.游戏英文id",
  2. ["passwd"] = "2.游戏密码",
  3. ["skills_basic"] = "3.要领悟的基本技能,之间用“;”隔开,例如force;sword;dodge;claw",
  4. ["skills_special"] = "4.与基本技能对应的特殊技能,用“;”隔开,例如:taiji-shengong;taiji-jian;tiyunzong;taiji-zhao",
  5. ["skills_weapon"] = "5.特殊技能使用的武器,用“;”隔开,如果空手或内功则为none,刀法为blade,杖法为gangzhang,剑法为jian,鞭法为whip,dagger为dagger,例如:none;jian;gangzhang;blade;whip;dagger"
  6. }
复制代码


参照这样赋值吧。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-12-1 14:02:36 | 显示全部楼层
谢谢
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-12-1 14:03:07 | 显示全部楼层
lua中怎么把string转为table,谢谢!
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-12-1 14:05:58 | 显示全部楼层
table.insert()
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-12-1 14:49:21 | 显示全部楼层
string.split=function(str, pat)
   local t = {} -- NOTE: use {n = 0} in Lua-5.0
   local fpat = "(.-)" .. pat
   local last_end = 1
   local s, e, cap = str:find(fpat, 1)
   while s do
      if s ~= 1 or cap ~= "" then
table.insert(t,cap)
      end
      last_end = e+1
      s, e, cap = str:find(fpat, last_end)
   end
   if last_end <= #str then
      cap = str:sub(last_end)
      table.insert(t, cap)
   end
   return t
end
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-12-1 14:52:00 | 显示全部楼层
string.split=function(str, pat)
   local t = {} -- NOTE: use {n = 0} in Lua-5.0
   local fpat = "(.-)" .. pat
   local last_end = 1
   local s, e, cap = str:find(fpat, 1)
   while s do
      if s ~= 1 or cap ~= "" then
table.insert(t,cap)
      end
      last_end = e+1
      s, e, cap = str:find(fpat, last_end)
   end
   if last_end <= #str then
      cap = str:sub(last_end)
      table.insert(t, cap)
   end
   return t
end

days = "Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday"

tab = string.split(days,",")

for i,v in pairs(tab) do
   print(i,v)
end
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 09:46 AM , Processed in 0.009444 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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