Как перевести скрипт с LUA 5.0.2 на 5.1.1

Если Вы хотите поставить себе птоку с поддержкой новых скриптов, т.е. с поддержкой LUA 5.1.1, то прочтите это руководство.

Что же Вам нужно знать?

Во-первых, замените в скрипте следующее:

string.gfind => string.gmatch

table.getn => table.maxn

math.mod => math.fmod

loadlib => package.loadlib

require => dofile

Во-вторых, что касается table.foreach. Здесь замена немного посложнее. Показываю на примере:

было: table.foreach(self._PMPlayers,function(nick,_) 

стало: for nick,_ in pairs(self._PMPlayers) do

В принципе, ничего сложного нет.

В-третьих, пробегитесь с помощью F3 по всему скрипту в поиске строки, начинающейся с for

Все строки, виде for 1знач, 2знач in таблица нужно заменить на: for 1знач, 2знач in pairs(таблица)

Например:

было: for index, value in TrivEx._PMPlayers do

cтало: for index, value in pairs(TrivEx._PMPlayers) do

Также вы можете воспользоваться специальной программой-конвертером от Mutor'a:

http://dc.hovel.ru/files/50to51_1.02.zip

Но я все-таки рекомендую сначала сделать все вручную и, если скрипт будет все еще отказываться работать, то попробовать переконвертировать его с помощью этой программы. Но она тоже не идеальна. Например, почему-то в некоторых местах доставляет )

В общем, желаю удачи!

P.s. - может быть вам даже пригодится конвертер из LUA4, который я тоже прилагаю.

P.p.s. - если Вы захотите сделать скрипт с поддержкой LUA 5.0 / 5.1x, то пишите - я вас научу)

 

Прикрепленный файлРазмер
Lua4ToLua5Converter.rar1.16 Мб