怎么解决lua 不重复随机数导入 lua

怎么解决重复导入 lua_百度知道
怎么解决重复导入 lua
使用require替换loadstring和loadfilerequire的时候会对package.loaded这个table进行维护在require的过程中 值会为true require结束穿触扁吠壮杜憋森铂缉后 会为一个table 即你要加载的整个env所以多次require 不会重复导入lua
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Lua的函数环境、包实例讲解
投稿:junjie
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了Lua的函数环境、包实例讲解,本文分别对函数环境、包的定义、实现方式、使用方式做了分解,需要的朋友可以参考下
function foo()
&& print(g or "No g defined!")
setfenv(foo, { g = 100, print = print }) --设置foo的环境为表{ g=100, ...}
print(g or "No g defined!")
--No g defined!
--No g defined!
定义:函数环境就是函数在执行时所见的全局变量的集合,以一个表来承载。
说明:每个函数都可以有自己的环境,可以通过setfenv来显示的指定一个函数的环境。如果不显示的指定,函数的环境缺省为定义该函数的函数的环境。在前面的代码中,函数foo的缺省环境里没有定义变量g,因此第一次执行foo, g为nil,表达式g or "No g defined!"的值就是"No g defined!"。随后,foo被指定了一个环境 { g = 100, print = print }。这个环境定义了(全局)变量g,以及打印函数print,因此第二次执行foo,g的值就是100。但是在定义函数foo的函数的环境下,g仍然是一个未定义的变量。
应用:函数环境的作用很多,利用它可以实现函数执行的“安全沙箱”;另外Lua的包的实现也依赖它。
--mypack.lua:
module(..., package.seeall) --定义包
ver = "0.1 alpha"
function aFunInMyPack()
&&& print("Hello!")
_G.aFuncFromMyPack = aFunInMyPack
--testP.lua:
pack = require "mypack" --导入包
print(ver or "No ver defined!")
print(pack.ver)
print(aFunInMyPack or "No aFunInMyPack defined!")
pack.aFunInMyPack()
print(aFuncFromMyPack or "No aFuncFromMyPack defined!")
aFuncFromMyPack()
--执行testP.lua结果
No ver defined!
No aFunInMyPack defined!
function: 0068CB50
定义:包是一种组织代码的方式。
实现方式:一般在一个Lua文件内以module函数开始定义一个包。module同时定义了一个新的包的函数环境,以使在此包中定义的全局变量都在这个环境中,而非使用包的函数的环境中。理解这一点非常关键。以前面的代码为例, “module(..., package.seeall)”的意思是定义一个包,包的名字与定义包的文件的名字相同(除去文件名后缀,在前面的代码中,就是“mypack”),并且在包的函数环境里可以访问使用包的函数环境(比如,包的实现使用了print,这个变量没有在包里定义,而是定义在使用包的外部环境中)。
使用方式:一般用require函数来导入一个包,要导入的包必须被置于包路径(packagepath)上。包路径可以通过package.path或者环境变量来设定。一般来说,当前工作路径总是在包路径中。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具 上传我的文档
 下载
 收藏
喜欢不断探索新的东西,工作不仅仅是技能展示,更是事业,我希望在这条路上越走越好
 下载此文档
正在努力加载中...
Lua脚本在游戏引擎中的习应用
下载积分:1250
内容提示:Lua脚本在游戏引擎中的习应用
文档格式:PDF|
浏览次数:4|
上传日期: 18:47:09|
文档星级:
该用户还上传了这些文档
Lua脚本在游戏引擎中的习应用
官方公共微信[汉化工具]v0.992(图形界面+批量导入出+检测)真·luaContool全平台lua字节码文本修改提取工具(支持扩充文本) - 汉化交流 - 扑家吧
[汉化工具]v0.992(图形界面+批量导入出+检测)真·luaContool全平台lua字节码文本修改提取工具(支持扩充文本)
win7(32位支持) xp需依赖python3.2.5以上运行环境
感谢caoyang老师提供的新样本
感谢同学提供的bug报告(已修复)
1.本次更新增加gui用户界面,其实以前的版本根本就不是给人用的,只是个内核而已
2.增加输出模式编码,建议选择gbk或utf-8
3.增加自动检测机制,极大提高了准确性
4.新增批量导入替换功能
可以说现在的版本相当完善了,鸟枪换炮,从脚本上升到软件的高度了(笑)
依旧是ps3&psp&pc&etc
软件界面图
此次设计可以批量导入,可以满足实际需求
前几个版本软件bug实在太多太多,但是再也不用怕了,因为加入了检测机制,理论上导出的文件可以原封不动的导回,所以在每次导入时都会有这样的提示
执行提示就可以看到所有不匹配的文件名称(好几千个文件只有一个不匹配,orz)
为了追查原因我请来了hexcmp
定位整个文件只有一处不匹配,用madedit查看
看来仅仅是重复编码而已,所以此游戏已经无压力了(大笑)
最后是百度网盘
这次没有源码,我直接打包了exe,没有python环境的同学也可以放心大胆的下载了
参数设定推荐多种组合尝试进行
最后再次感谢caoyang131老师,w酱大,dv(c)890大,同学的测试,建议以及bug汇报,代码写的太烂,让你们费心了
依旧收集bug
以下内容为旧
========================================================================================
自己写的python脚本,功能如名字那样
通用工具真的很难写,而写这样一个工具我的收获也很大,如果真的能派上用场,我这几天的辛苦也就值了
感谢dv(c)890大提交的bug-------------问题由sizeofnumber变量引起,以修复
1.本次更新修复sizeofnumber bug,第七龙神2可导出导入
2.追加大小端自动识别,ps3,psp,pc等平台均可通用
3.w酱提供了一个很有趣的异常判断剧情文本方式,我把它加了进去,效果很神奇
4.追加控制符检测机制(修正控制符bug导致的不匹配)
ps:此版本号为偶数,视为稳定版本,若无重大bug,暂不更新
以下内容为旧
===========================================================================
##########################luaConV0.7############################
#
#
提取lua5.1字节码的文本抽取工具
#
依赖python3.3环境
#
本工具现阶段仅支持psp&pc 其他处理器核心待更新
#
1.修改ft指向解析后的文件生成的文件名 (r''格式)
#
2.def getString(file):为需要解析的lua文件名 (r''格式)
#
#
本脚本处于测试阶段,如您发现了问题,请及时联系
powered by feitiange
#
################################################################
版本更新:v0.7
修正尾部字符串问题
添加导出文件功能
###########################luaConReuilt V0.1#############################
#
修改lua5.1字节码总的字符串的小工具
#
依赖python3.3环境
#
基于luaConv1.0修改版提取的constant池
#
本工具现阶段仅支持psp&pc 其他处理器核心待更新
用法:getString(oldclasses,newclasses,constant):
#
oldclasses 未修改的字节码名称
#
newclasses 生成的字节码名称
#
对luaCon提取出的constant(rprint)修改后导出的文件名称
#
#
重大提示:修改后的constant请手动删除第一行(文件名),否则一定会出错
#
友情提示:字符串需以r''格式书写,详见样例
本脚本处于测试阶段,如您发现了问题,请及时联系
powered by feitiange
#
#########################################################################
luaConV0.7
luaConrebuildV0.1
文本回写程序,(千万阅读代码头部注释,内有重大提示)
powered by feitiange
欢迎提交bug
(这次我可是认真的)
以下内容为旧
=======================================================================================
前情提要:/topic/4133/
话说今天@caoyang131老师发布了某游戏的研究(准确说是昨天),在帖子中深刻的教(chai)育(tai)了我应该实事求是的精神,于是我深刻的进行了反思...改正了前篇中关于通用型这三个字的定义(orz)
为了弥补犯下的错误,这篇帖子我把名字改成了《psp通用全自动型》(话说你真的有反省了吗)
不过也确实感谢老师给出的样本,我的脚本就能更兼容一些其他情况了
还有@w酱大大关于rprint函数的建议我确实收到了,再次表示感谢。
然后书归正传,开始我们今天的话题,回写脚本(理论部分参见前贴与w酱的讨论)
好吧,我想说的是我做到了,确确实实把字符串扩充了,所以w酱的疑虑应该可以消除了吧(笑)
但是我现在的代码惨不忍睹,为了方便大家修改,我会整理一下在放出来。
所以,敬请期待吧
晚安诸位
(其实我是一图流。。。)
( ⊙ _ ⊙ )安
早安~~~
我的承诺兑现了
我简单拿手上的第七龙神2020-2的脚本尝试,导出都搞不了,提示是内存错误,我的是py2.6,难道是版本问题?
@ python3和python关于字符串编码模式是有很大不同的,所以我特意强调是py3以上版本
还有谢谢指出错误,3q
@ 额,看这情况应该是导出了一部分文本是吧,不介意的话发个样本可以吗,我手上的样本貌似不太够,个人感觉问题出在luafuncontant那个8上面
大大不联系我,我也没办法,自己下了个第七龙神2,然后尝试了一下
问题跟我预想的一样,出在luafuncontant的8上,在这里应该是4
历史遗留问题,下个版本一定会修复
更新。。。。求样本。。。。
用v0.98导出会出现
编辑不了了,用(用v9.8导出)用v9.8导入会缺掉第一行,即导入v9.8有问题
用(v9.8导出)用v0.1导入则不会
还有,好像导出不完全
@ ft = open(r'D:\luacout.string','w',encoding=charset)应该是要指定encoding,默认gbk实在蛋疼
@ 我知道问题出在哪里,下次更新解决,还有文本缺失的只限英语和纯符号(比如[......])这类的,因为无需翻译,不必导出
@ 确实没有全部导出(不是英语或纯符号)
可能你用的字符集是shift-jis吧,我刚问过w酱,他说用cp932来解shift-jis
请先再回复,如果你还没有账号,请先。}

我要回帖

更多关于 lua 导入非lua后缀 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信