Вопросы Разработчикам Скриптов, вопросы по скриптам (мелкие вопросы) |
Здравствуйте, гость ( Вход | Регистрация )
Вопросы Разработчикам Скриптов, вопросы по скриптам (мелкие вопросы) |
3.11.2009, 14:00
Сообщение
#601
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Нет, надо именно так:
Код require"test2" Ошибка показывает, что в файле test2.lua в первой строчке явно не то, что ожидается. Представленный код должен работать! И стоит наверное обратить внимание на путь, откуда lua подгружает модуль: E:\Server\DCServer\PtokaX 0.4.1.1\test2.lua Не смотришь ли ты другой файл, например, E:\Server\DCServer\PtokaX 0.4.1.1\scripts\test2.lua ?? |
|
|
3.11.2009, 16:05
Сообщение
#602
|
|
Освоившийся участник Группа: Администраторы Сообщений: 344 Регистрация: 2.6.2008 Из: RB,Ufa Пользователь №: 8 Спасибо сказали: 106 раз |
E:\Server\DCServer\PtokaX 0.4.1.1\?.lua
E:\Server\DCServer\PtokaX 0.4.1.1\libs\?.lua E:\Server\DCServer\PtokaX 0.4.1.1\scripts\libs\?.lua Пути по которым ведется поиск. Модуль подгружается если убрать цикл. Дубликатов нет. Непонятно где он на 1 строке нашел eof. Функция то только начинается.. |
|
|
3.11.2009, 16:12
Сообщение
#603
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Что-то странное у тебя творится.
Только что попробовал, у меня всё работает. |
|
|
3.11.2009, 22:47
Сообщение
#604
|
|
Освоившийся участник Группа: Администраторы Сообщений: 344 Регистрация: 2.6.2008 Из: RB,Ufa Пользователь №: 8 Спасибо сказали: 106 раз |
Не поленился скачал "чистый" хаб. Тажа ерунда :(
Вот так запускается CODE function getsettings(tSettings) for i,e in pairs(tSettings) do Core.SendToAll(tostring(i).." "..tostring(e)) end test = "123" return tostring(test) end причем если return test то ошибка вылезет опять!! |
|
|
4.11.2009, 1:51
Сообщение
#605
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Не здоровая ерунда какая-то))
При чём тут вообще значение, которое возвращается функцией. Ведь функция может быть обычной процедурой. В общем не знаю что за глюк. У меня всё работает. |
|
|
4.11.2009, 19:00
Сообщение
#606
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Может файл не в той кодировке, как вариант, а?
|
|
|
4.11.2009, 22:11
Сообщение
#607
|
|
Освоившийся участник Группа: Администраторы Сообщений: 344 Регистрация: 2.6.2008 Из: RB,Ufa Пользователь №: 8 Спасибо сказали: 106 раз |
Дану быть не может. Все остальное работает. Я использую тот же софт.
|
|
|
4.11.2009, 22:28
Сообщение
#608
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
мда, странно, я тоже проверил у меня робит!!!
|
|
|
5.11.2009, 2:05
Сообщение
#609
|
|
Освоившийся участник Группа: Пользователи Сообщений: 391 Регистрация: 4.11.2009 Из: Дом Пользователь №: 4 923 Спасибо сказали: 239 раз |
Если файл в кодировке utf-8 сохранен, то некотрые редакторы ставят вначале три спец символа, т. н. BOM. Возможно в них и проблема.
|
|
|
5.11.2009, 12:31
Сообщение
#610
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Да тут дело не в кодировке. Тут какой-то глюк в возвращаемом функцией значением))
|
|
|
6.11.2009, 17:20
Сообщение
#611
|
|
Освоившийся участник Группа: Администраторы Сообщений: 344 Регистрация: 2.6.2008 Из: RB,Ufa Пользователь №: 8 Спасибо сказали: 106 раз |
Поставил 2003 sever запахало. в чем была проблема - уже не выяснить. достадно
ScriptMan.GetScript() возвращает nil .. что бы это могло быть? |
|
|
6.11.2009, 17:33
Сообщение
#612
|
|
Белый Волк Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз |
Может, при отправке команды портится название скрипта каким-то скриптом, регулирующим текст? Например, лишние восклицательные убирает, подчеркивающие или ещё что...это как вариант.
|
|
|
6.11.2009, 18:37
Сообщение
#613
|
|
Освоившийся участник Группа: Администраторы Сообщений: 344 Регистрация: 2.6.2008 Из: RB,Ufa Пользователь №: 8 Спасибо сказали: 106 раз |
судя по ману ScriptMan.GetScript() - Return script table with sName, bEnabled, iMemUsage.
весь хаб состоит из 1 скрипта, вот что он содержит: Core.SendToAll(ScriptMan.GetScript().sName) |
|
|
6.11.2009, 20:19
Сообщение
#614
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Код function OnStartup() Core.SendToAll(ScriptMan.GetScript().sName) end Нельзя вызывать функцию, которая возвращает информацию о самом скрипте, до выполнения функции, инициализирующей этот самый скрипт !!! |
|
|
21.11.2009, 23:04
Сообщение
#615
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
И так вопрос на засыпку.
есть функция которая загружает параметры из файла. при этом в виндоусе всё нормально, а в линуксе добавляется на конец некий символ, вероятно перенос строки, который выливается потом в квадратик. Для его убирания я дописал простую строчку(помечена в коде), но при этом в винде съедает лишнюю букву на конце. Ккак выделить этот символ в линуксе и убрать именно его? Код function readArray(filename,array)
local retval={} if array~=nil then retval=array; end local f = io.open(filename, "r") if (f) then local line = f:read("*line") while line do local _, _, key, value = string.find(line , "(%S*)%s*=%s*(.*)") if key then if value == nil then value="" end local sEndValue = value:sub(-1,-2) value = value:sub(1,-2) -- ЭТА СТРОЧКА if tonumber(key) then key= tonumber(key) end if tonumber(value) then value= tonumber(value) end retval[key]=value end line = f:read("*line") end f:close() return retval else return retval ,"readArray failed: " end end |
|
|
21.11.2009, 23:14
Сообщение
#616
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
unix - \n
windows - \r\n Настройки в хуббе записываются в файл по средствам функции, которая и пишет \r\n. Получается, что для unix систем нужно использовать \n, но в файл записывается \r\n. Выход - модифицировать функцию записи, а не чтения Если функция правильная (содержит только \n), то возможен вариант переноса файлов настроек с win системы на unix. Выход - создание и редактирование файлов настроек непосредственно в unix системе. |
|
|
21.11.2009, 23:19
Сообщение
#617
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
тут дело вот в чём, данные берутся из файла с расширением dat который мы набиваем ручками.
поэтому капать надо всё таки эту функцию |
|
|
21.11.2009, 23:37
Сообщение
#618
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Также возможен вариант исправления файлов настроек при помощи notepad++ (меню кодировки -> преобразовать в unix формат). Для просмотра всех символов: Вид -> все символы.
Создавай файл и набирай ручками в unix системе. Или набирай в винде, но преобразовывай ноутпадом++ в unix формат. win.jpg ( 73.34 килобайт ) Кол-во скачиваний: 46 unix.jpg ( 50.41 килобайт ) Кол-во скачиваний: 42 |
|
|
21.11.2009, 23:40
Сообщение
#619
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
Да спасибо это я уже увидел)))
|
|
|
22.11.2009, 0:04
Сообщение
#620
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Проверил на юникс системе. По идее должен отлично работать следующий код:
Код s = s:gsub("\r", "") Так как в юникс системах окончание строки - это \n, а файлы, перенесённые с системы виндовс, оканчиваются на \r\n, то при построчном чтении просто убираем этот возврат каретки. Однако для универсальности нужно сделать код, который будет работать во всех системах, поэтому всё же не стоит это использовать, а стоит создавать файлы в той системе, в которой работает этот скрипт!!! |
|
|
Похожие темы
|
Сейчас: 13.11.2024, 9:53 |