Страница 2 из 3

Re: CrazyLua Server Edition [плагин для сервера]

Добавлено: 20:30, 05.06.2010
CrazyVirus
Yaroslav писал(а):После перезагрузки сервера нужно снова включать скрипты.
У меня сервер работает службой и подымается сам после аварий, но вот скрипты нужно включать вручную.
Сможешь поправить? Нужно, чтобы включенные скрипты включались после перезапуска плагина автоматически.
:shock: Пробовал, всё нормально сохраняется. А другие настройки плагина сохраняются?

Re: CrazyLua Server Edition [плагин для сервера]

Добавлено: 01:12, 06.06.2010
Yaroslav
CrazyVirus писал(а): :shock: Пробовал, всё нормально сохраняется. А другие настройки плагина сохраняются?
Другие настройки сохраняются. Возможно дело в том, что я ни разу не выключил его нормально после включения скрипта. Все выключения сервера если и случаются, то происходят аварийно из-за пропадания электричества.
Сейчас попробовал включить скрипт и выключить/включить плагин. Посмотрим что будет после следующей аварии.

Re: CrazyLua Server Edition [плагин для сервера]

Добавлено: 10:31, 06.06.2010
CrazyVirus
Yaroslav писал(а):Другие настройки сохраняются. Возможно дело в том, что я ни разу не выключил его нормально после включения скрипта. Все выключения сервера если и случаются, то происходят аварийно из-за пропадания электричества.
Сейчас попробовал включить скрипт и выключить/включить плагин. Посмотрим что будет после следующей аварии.
Запись в файл происходит сразу после запуска скрипта, т.е. от способа выключения сервера ничего не зависит.
Странно это всё. :)

Re: CrazyLua Server Edition [плагин для сервера]

Добавлено: 03:17, 07.06.2010
Yaroslav
CrazyVirus писал(а):Запись в файл происходит сразу после запуска скрипта, т.е. от способа выключения сервера ничего не зависит.
Странно это всё. :)
Проверил ещё раз — всё так же.

Как воспроизвести:

1) создать новый скрипт
2) пойти в настройки плагина и запустить его (загорится зелёный треугольник)
--- Можно пропустить шаги ---
а) остановить плагин
б) запустить плагин
--- Необязательные шаги закончились ---
3) пойти в диспетчер задач и убить процесс сервера чата (имитация аварийного отключения компьютера)

=== Проверка ===
Запустить сервер и пойти в настройки этого плагина на закладку скриптов — возле новго скрипта красный квадрат.

Сейчас сделал следующее:
Запустил скрипт и корректно остановил сервер чата.
После включения скрипт оказался запущенным.
Специально проверять не хочу, но при следующей аварии проверю. Думаю теперь будет нормально.

Выходит, что настройки сохраняются только при завершении работы сервера чата.

Re: CrazyLua Server Edition [плагин для сервера]

Добавлено: 03:35, 07.06.2010
Yaroslav
Вообще, огромное спасибо за плагин. Очень полезен мне. Я теперь реализовываю плавно то, что давно хотел.

Скажи, а реально переписать интерактивные игры вроде снежков или викторины на базе плагина? Ты говорил, что какой-то затык с таймером. Я так понимаю, что если вставить sleep в одном скрипте, то пока он не проснётся остальные скрипты работать не будут? Проясни ситуацию, пожалуйста, получится ли сделать многопоточность?

И ещё очень хотелось бы какие-то настраиваемые пути, что ли. А-то я так намучился пока заставил его работать с MySQL, это просто ужас. И сейчас у меня библиотека луа лежит в папке плагина, рядом с собственно плагином, libmysql.dll лежит там, где исполняемый файл сервера (только там его определило). DBI скрипт враппера (тоже lua) лежит в папке скриптов, где, по сути, находиться не должен, так как становится возможным его запускать из интерфейса плагина, а это не нужно.
Всё это немного не логично и не прозрачно, кроме того :) а SQLite я так и не смог пока заставить работать. Он вообще выделывался как-то по-хитрому. Пытался искать файл lua51.dll в разных локациях. Скопированный в папку сервера и переименованный lua5.1.dll вроде его устроил, но там ещё были затыки какие-то :)

Посмотри на предмет таких настроек, если будет настроение.
И да, где они сохраняются вообще, эти настройки плагина?

Re: CrazyLua Server Edition [плагин для сервера]

Добавлено: 16:39, 07.06.2010
CrazyVirus
Yaroslav писал(а):Проверил ещё раз — всё так же.

Как воспроизвести:

1) создать новый скрипт
2) пойти в настройки плагина и запустить его (загорится зелёный треугольник)
--- Можно пропустить шаги ---
а) остановить плагин
б) запустить плагин
--- Необязательные шаги закончились ---
3) пойти в диспетчер задач и убить процесс сервера чата (имитация аварийного отключения компьютера)

=== Проверка ===
Запустить сервер и пойти в настройки этого плагина на закладку скриптов — возле новго скрипта красный квадрат.

Сейчас сделал следующее:
Запустил скрипт и корректно остановил сервер чата.
После включения скрипт оказался запущенным.
Специально проверять не хочу, но при следующей аварии проверю. Думаю теперь будет нормально.
Воспроизвел - при следующем запуске скрипт запускается.
Yaroslav писал(а):Выходит, что настройки сохраняются только при завершении работы сервера чата.
Нет. :)
Yaroslav писал(а):Скажи, а реально переписать интерактивные игры вроде снежков или викторины на базе плагина? Ты говорил, что какой-то затык с таймером. Я так понимаю, что если вставить sleep в одном скрипте, то пока он не проснётся остальные скрипты работать не будут?
Да, пока выполняется вызов одного скрипта, другие стоят. А таймеры я не делал, может потом как-нибудь сделаю...
Yaroslav писал(а):Проясни ситуацию, пожалуйста, получится ли сделать многопоточность?
Сейчас нет...
Yaroslav писал(а):И ещё очень хотелось бы какие-то настраиваемые пути, что ли. А-то я так намучился пока заставил его работать с MySQL, это просто ужас. И сейчас у меня библиотека луа лежит в папке плагина, рядом с собственно плагином, libmysql.dll лежит там, где исполняемый файл сервера (только там его определило). DBI скрипт враппера (тоже lua) лежит в папке скриптов, где, по сути, находиться не должен, так как становится возможным его запускать из интерфейса плагина, а это не нужно.
Всё это немного не логично и не прозрачно, кроме того :) а SQLite я так и не смог пока заставить работать. Он вообще выделывался как-то по-хитрому. Пытался искать файл lua51.dll в разных локациях. Скопированный в папку сервера и переименованный lua5.1.dll вроде его устроил, но там ещё были затыки какие-то :)

Посмотри на предмет таких настроек, если будет настроение.
Посмотри package.path и package.cpath, и увидишь, где можно ложить. DLL`ки можно слаживать в папку clibs в корне сервера, .lua файлы можно в папку lua, и будет порядок. :)
Yaroslav писал(а):И да, где они сохраняются вообще, эти настройки плагина?
В общей папке Application Data\CommFort_server, т.е. там же где и настройки сервера.

Re: CrazyLua Server Edition [плагин для сервера]

Добавлено: 18:01, 07.06.2010
MARVELtm
от птохи подойдут скрипты ?

Re: CrazyLua Server Edition [плагин для сервера]

Добавлено: 19:14, 07.06.2010
Yaroslav
MARVELtm писал(а):от птохи подойдут скрипты ?
Частично да.
Логика подойдёт. Собыия надо переделывать. Без понимания LUA хотя бы базового ничего не выйдет.

Re: CrazyLua Server Edition [плагин для сервера]

Добавлено: 00:46, 12.06.2010
Yaroslav
Ещё раз fail из-за пропадания электричества. Снова скрипт не запустился.

Re: CrazyLua Server Edition [плагин для сервера]

Добавлено: 09:37, 12.06.2010
CrazyVirus
Yaroslav писал(а):Ещё раз fail из-за пропадания электричества. Снова скрипт не запустился.
Включи логирование в файл и в следующий раз посмотри, будет ли что-то в нем.

Re: CrazyLua Server Edition [плагин для сервера]

Добавлено: 17:56, 01.08.2010
Yaroslav
CrazyVirus писал(а):Включи логирование в файл и в следующий раз посмотри, будет ли что-то в нем.
Удалось наконец-то проверить:

Код: Выделить всё

[29.07.2010 - 09:53:50] ошибка при загрузке скрипта UserStat.lua:

...:\serv\CommFort_server4\Plugins\Scripts\UserStat.lua:2: module 'DBI' not found:
	no field package.preload['DBI']
	no file '.\DBI.lua'
	no file 'C:\serv\CommFort_server4\lua\DBI.lua'
	no file 'C:\serv\CommFort_server4\lua\DBI\init.lua'
	no file 'C:\serv\CommFort_server4\DBI.lua'
	no file 'C:\serv\CommFort_server4\DBI\init.lua'
	no file '.\Plugins\Scripts\DBI.lua'
	no file '.\DBI.dll'
	no file '.\DBI51.dll'
	no file 'C:\serv\CommFort_server4\DBI.dll'
	no file 'C:\serv\CommFort_server4\DBI51.dll'
	no file 'C:\serv\CommFort_server4\clibs\DBI.dll'
	no file 'C:\serv\CommFort_server4\clibs\DBI51.dll'
	no file 'C:\serv\CommFort_server4\loadall.dll'
	no file 'C:\serv\CommFort_server4\clibs\loadall.dll'
	no file '.\Plugins\Scripts\DBI.dll'
	no file '.\Plugins\Scripts\clibs\DBI.dll'
	no file '.\Plugins\DBI.dll'
	no file '.\Plugins\clibs\DBI.dll'
При этом сервер стартует службой (после аварийной перезагрузки).
При запуске вручную всё работает нормально. Этот файл, на самом деле, лежит тут:

Код: Выделить всё

C:\serv\CommFort_server4\Plugins\Scripts\DBI.lua
Вызывается так:

Код: Выделить всё

require('DBI')
Полный путь вписывать ему не хотелось бы для того, чтобы не потерять гибкость. Но судя по всему в интерактивном режиме и в режиме службы система передаёт чату разный параметр «рабочая папка».
По идее один из этих должен был сработать:

Код: Выделить всё

	no file '.\Plugins\Scripts\DBI.lua'
	no file '.\DBI.lua'
Точнее срабатывает при интерактивном запуске. Но при запуске службой рабочая папка, наверное, передаётся что-то вроде %systemroot%, вместо папки, в которой установлен сервер.

Наверно проблема решится копированием файла DBI.lua в одну из тех папок, где он пытается его искать, но это всё таки костыль. Может есть идеи лучше?

Re: CrazyLua Server Edition [плагин для сервера]

Добавлено: 18:46, 01.08.2010
CrazyVirus
В следующей версии сделаю добавление в package.path полного пути к папке Scripts.

Re: CrazyLua Server Edition [плагин для сервера]

Добавлено: 21:10, 01.08.2010
Yaroslav
CrazyVirus писал(а):В следующей версии сделаю добавление в package.path полного пути к папке Scripts.
А когда будет следующая версия? :)

Re: CrazyLua Server Edition [плагин для сервера]

Добавлено: 15:14, 02.08.2010
CrazyVirus
Yaroslav писал(а):А когда будет следующая версия? :)
Возможно на днях. :)

Re: CrazyLua Server Edition [плагин для сервера]

Добавлено: 15:28, 02.08.2010
Yaroslav
CrazyVirus писал(а):А когда будет следующая версия? :)
Возможно на днях. :)[/quote]

Ок, буду ждать :)
Спасибо.

PS Дайош враппер для TCL! :roll:
Ну это так...