目前石器时代SF的服务端和客户端都用的是LUA5.1.4的引擎,但LUA并不支持中文变量,这里只需要稍微修改一下,即可让LUA支持中文变量,同时再把接口加入中文支持,完完全全可以像E语言那样进行LUA脚本编写,非常方便。同时可以让新手易学。
1、搜索下列代码:
else if (isalpha(ls->current) || ls->current == '_') { /* identifier or reserved word */ TString *ts; do { save_and_next(ls); } while (isalnum(ls->current) || ls->current == '_'); ts = luaX_newstring(ls, luaZ_buffer(ls->buff), luaZ_bufflen(ls->buff)); if (ts->tsv.reserved > 0) /* reserved word? */ return ts->tsv.reserved - 1 + FIRST_RESERVED; else { seminfo->ts = ts; return TK_NAME; } }
然后替换成下列代码即可
else if (isalpha(ls->current) || ls->current == '_' || ls->current > 0x80) { /* identifier or reserved word */ TString *ts; if (ls->current == 'L') { next(ls); if (ls->current == '"' || ls->current == '/') { read_wstring(ls, ls->current, seminfo); return TK_WSTRING; } save(ls, 'L'); } /* identifier or reserved word */ do { if(ls->current > 0x80) { save_and_next(ls); save_and_next(ls); } else save_and_next(ls); } while (isalnum(ls->current) || ls->current == '_' || ls->current > 0x80); ts = luaX_newstring(ls, luaZ_buffer(ls->buff), luaZ_bufflen(ls->buff)); if (ts->tsv.reserved > 0) /* reserved word? */ return ts->tsv.reserved - 1 + FIRST_RESERVED; else { seminfo->ts = ts; return TK_NAME; } }
发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。