myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
53 страниц V  « < 18 19 20 21 22 > »   
Ответить в данную темуНачать новую тему

> Вопросы Разработчикам Скриптов, вопросы по скриптам (мелкие вопросы)

Setuper
сообщение 29.4.2009, 0:19
Сообщение #381


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Никак
Go to the top of the page
+Quote Post
vicious
сообщение 30.4.2009, 10:30
Сообщение #382


Продвинутый участник
****

Группа: Пользователи
Сообщений: 173
Регистрация: 26.1.2009
Из: Saratov
Пользователь №: 1 965
Спасибо сказали: 7 раз




У меня гдет ошибка в скрипте или я совсем рехнулся и dofile("patch") не загружает таблицу в память, если в этом файле записана таблица?
Go to the top of the page
+Quote Post
Setuper
сообщение 30.4.2009, 10:33
Сообщение #383


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Прежде чем загружать функцией dofile, нужно проверить синтаксис функцией loadfile.
При загрузке таким образом, таблица должна быть исключительно глобальной.
Go to the top of the page
+Quote Post
vicious
сообщение 30.4.2009, 10:39
Сообщение #384


Продвинутый участник
****

Группа: Пользователи
Сообщений: 173
Регистрация: 26.1.2009
Из: Saratov
Пользователь №: 1 965
Спасибо сказали: 7 раз




Код
function OnStartup()
sFileH = Core.GetPtokaXPath().."scripts/Hello/Hello.tbl"
sFileHU = Core.GetPtokaXPath().."scripts/Hello/tblUsers.tbl"
    if loadfile(sFileH) and loadfile(sFileHU) then
        dofile(sFileH)
        dofile(sFileHU)
    end    

end
--------------------------------
--------------------------------

function Records(tUser)

    if tbl["MaxUsers"] < (Core.GetUsersCount() + 1) then


Ошибка : "[11:32] Синтаксис ...nts\BACKUPS\30.03.09\PtokaX0.4.1.1\scripts\Hello.lua:122: attempt to compare nil with number"

Не могу понять почему nil когда загружается таблица из файла:

Код
tbl = {
    ["MaxUsers"] = 1,
    ["MaxShare"] = 57327745242,
    ["MaxShareDate"] = "04/30/09 11:25:05",
    ["TopUS"] = {
        [2] = {
            ["iShare"] = 0,
            ["sNick"] = "Нету",
        },
        [3] = {
            ["iShare"] = 0,
            ["sNick"] = "Нету",
        },
        [1] = {
            ["iShare"] = 57327745242,
            ["sNick"] = "[len]vicious",
        },
        [4] = {
            ["iShare"] = 0,
            ["sNick"] = "Нету",
        },
        [5] = {
            ["iShare"] = 0,
            ["sNick"] = "Нету",
        },
    },
    ["MaxUsersDate"] = "04/30/09 11:25:05",
}
Go to the top of the page
+Quote Post
Setuper
сообщение 30.4.2009, 10:42
Сообщение #385


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Ну так посмотри в файле Hello.lua 122 строку
Go to the top of the page
+Quote Post
vicious
сообщение 30.4.2009, 10:56
Сообщение #386


Продвинутый участник
****

Группа: Пользователи
Сообщений: 173
Регистрация: 26.1.2009
Из: Saratov
Пользователь №: 1 965
Спасибо сказали: 7 раз




я ее написал...вот она:
Код
if tbl["MaxUsers"] < (Core.GetUsersCount() + 1) then


Прикрепил заготовку скрита...чувствую что гдет маленькая ошибка...

гляньте плз кто-нить! Чет я ковыряю и ковыряю...но никак не вкурю! нужен свежий взгляд!
Прикрепленные файлы
Прикрепленный файл  Hello.rar ( 4.5 килобайт ) Кол-во скачиваний: 6
 
Go to the top of the page
+Quote Post
Wariner
сообщение 30.4.2009, 11:10
Сообщение #387


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




каждый файл отдельно
Код
    if loadfile(sFileH) then
        dofile(sFileH)
    end    
    if loadfile(sFileHU) then
        dofile(sFileHU)
    end
Go to the top of the page
+Quote Post
Setuper
сообщение 30.4.2009, 11:14
Сообщение #388


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




В файле tblUsers.tbl удали строку: ["uptr"] = userdata: 0102E570,
Go to the top of the page
+Quote Post
vicious
сообщение 30.4.2009, 11:27
Сообщение #389


Продвинутый участник
****

Группа: Пользователи
Сообщений: 173
Регистрация: 26.1.2009
Из: Saratov
Пользователь №: 1 965
Спасибо сказали: 7 раз




СПАСИБО! Сам ды не допер...я так понял он не воспринимает эту строку как поле таблицы и поэтому возвращается false ??? Кстати че означает эта строка и почему не воспринимается, если она присутствует в таблице tUser?

Кстати, как лучше записывать ТОП5 юзеров по шаре, и выводить юзеру их при подключении?
А то чет мой алгоритм там помоему слишком "тяжелый" плюс там недоработка есть...если доработать еще тяжелее станет...может как получше можно?
Go to the top of the page
+Quote Post
Setuper
сообщение 30.4.2009, 11:44
Сообщение #390


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




В lua есть такое тип userdata (пользовательские данные). Этот тип позволяет хранить любые данных из C в переменных Lua. Значение этого типа является ссылкой на блок физической памяти и не имеет предопределенных операций в Lua, за исключением присваивания и проверки на равенство. Однако, используя метатаблицы, програмист может определить операции над значениями этого типа. Значения типа userdata не могут быть созданы или изменены непосредственно в Lua, это возможно только с помощью C API. Такой подход гарантирует целостность данных, принадлежащих ведущей программе.
Go to the top of the page
+Quote Post
Tsd
сообщение 4.5.2009, 13:58
Сообщение #391


Продвинутый участник
****

Группа: Пользователи
Сообщений: 176
Регистрация: 11.7.2008
Пользователь №: 171
Спасибо сказали: 182 раза




Доброго времени суток. Помогите записать в таблицу table содержание файла, к примеру такое:
Цитата
1
2
3
4

Спасибо.
Go to the top of the page
+Quote Post
Setuper
сообщение 4.5.2009, 14:17
Сообщение #392


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Код
function Loader(sFile)
  local t, f = {}, io.open(sFile)
  if f then
    local l = f:read()
    while l do
      table.insert(t, l)
      l = f:read()
    end
    f:flush()
    f:close()
  end
  return t
end
Go to the top of the page
+Quote Post
Tsd
сообщение 4.5.2009, 14:22
Сообщение #393


Продвинутый участник
****

Группа: Пользователи
Сообщений: 176
Регистрация: 11.7.2008
Пользователь №: 171
Спасибо сказали: 182 раза




Спасибо. Как я понял содержимое будет в таблице t ?

Код
bad argument #1 to 'open' (string expected, got nil)
строка   local t, f = {}, io.open(File)          

local Path = Hex.GetScriptsFolder()
    if not File:find("^"..Path) then File = Path..File end
    if loadfile(File) then
        dofile(File)

Это условие выполнено
Go to the top of the page
+Quote Post
Setuper
сообщение 4.5.2009, 14:47
Сообщение #394


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Я написал функцию, которая возвращает таблицу со строками файла.
Я не понимаю что ты хочешь сделать. Либо внятно говори, либо разбирайся сам.
Go to the top of the page
+Quote Post
Tsd
сообщение 4.5.2009, 15:40
Сообщение #395


Продвинутый участник
****

Группа: Пользователи
Сообщений: 176
Регистрация: 11.7.2008
Пользователь №: 171
Спасибо сказали: 182 раза




Задача: При запуске скрипта записать в таблицу t данные из файла (пример содержимого файла приводил выше).
Вот кусок кода:

Код
File = "chathistory.dat"    -- Save history to this file

OnLoad = function()
    local Path = Hex.GetScriptsFolder()
    if not File:find("^"..Path) then File = Path..File end
    if loadfile(File) then
        dofile(File)
        t = {}
        loadhistory(File)
                        -- ЧТО ТУТ ПИСАТЬ?

        end    
        else t = {} savehistory(File,t,"t")
    end    
    Hex.SetAboutString("Tsd, 2009")
    return true
end

function loadhistory(File)
  local t, f = {}, io.open(File)
  if f then
    local l = f:read()
    while l do
      table.insert(t, l)
      l = f:read()
    end
    f:flush()
    f:close()
  end
  return t
end

При перезапуске скрипта таблица t пустая, т.е. нет записи в таблицу.
Go to the top of the page
+Quote Post
vicious
сообщение 4.5.2009, 15:47
Сообщение #396


Продвинутый участник
****

Группа: Пользователи
Сообщений: 173
Регистрация: 26.1.2009
Из: Saratov
Пользователь №: 1 965
Спасибо сказали: 7 раз




А те как записать то надо? каждую строку в отдельное поле таблицы или тупо весь текст в какое нибудь поле таблицы? приведи пример таблицы которая должна получиться после записи...

как можно добавить таймер на функцию с переменной? т.е. вот что я хочу:
Код
tmr = TmrMan.AddTimer(10000,News(tUser))

но чет не канает!)))
Go to the top of the page
+Quote Post
Tsd
сообщение 4.5.2009, 15:50
Сообщение #397


Продвинутый участник
****

Группа: Пользователи
Сообщений: 176
Регистрация: 11.7.2008
Пользователь №: 171
Спасибо сказали: 182 раза




Если к примеру файл содержит текстовое содержание:
Цитата
[04.05.2009__15:42:13] <Tsd> 12
[04.05.2009__15:47:17] <Tsd> yt
[04.05.2009__15:47:19] <Tsd> ui
[04.05.2009__15:47:21] <Tsd> 134

то и таблица t должна иметь то же содержание.
Go to the top of the page
+Quote Post
Setuper
сообщение 4.5.2009, 15:53
Сообщение #398


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Это вполне логично, что таблица у тебя будет пустой, так как до записи дело не доходит.
условие
Код
if loadfile(File) then
у тебя не выполняется, так как это условие будет выполняться, если в файле будет содержаться lua код. Так как у тебя в файле не содержится Lua кода, то функции loadfile и dofile использовать нельзя. Да и вообще какой смысл их использовать, когда я уже написал тебе полностью функцию.

Код
local File = "chathistory.dat"

OnLoad = function()
  loadhistory(Hex.GetScriptsFolder()..File)
  return true
end

function loadhistory(File)
  local t, f = {}, io.open(File)
  if f then
    local l = f:read()
    while l do
      table.insert(t, l)
      l = f:read()
    end
    f:flush()
    f:close()
  end
  return t
end
Go to the top of the page
+Quote Post
vicious
сообщение 4.5.2009, 15:57
Сообщение #399


Продвинутый участник
****

Группа: Пользователи
Сообщений: 173
Регистрация: 26.1.2009
Из: Saratov
Пользователь №: 1 965
Спасибо сказали: 7 раз




какое то же то?
такая таблица должна получится: ???

Код
t = {
    [1]="[04.05.2009__15:42:13] <Tsd> 12"
    [2]= "[04.05.2009__15:47:17] <Tsd> yt"
    [3]= "[04.05.2009__15:47:19] <Tsd> ui"
    [4]= "[04.05.2009__15:47:21] <Tsd> 134"
}


или какая?

пардон, продублирую вопрос, а то может не заметили...

как можно добавить таймер на функцию с переменной? т.е. вот что я хочу:
Код
tmr = TmrMan.AddTimer(10000,News(tUser))

но чет не канает!)))
Go to the top of the page
+Quote Post
Setuper
сообщение 4.5.2009, 16:02
Сообщение #400


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




А зачем тебе понадобился таймер с переменной?
Таймер с переменной сделать нельзя, но можно сделать отдельно таймер и переменную, и в таймере будет использоваться эта переменная. А для того чтобы не нарушать принцип многопоточности нужно создавать целую таблицу с этими переменными.
Go to the top of the page
+Quote Post

53 страниц V  « < 18 19 20 21 22 > » 
Ответить в данную темуНачать новую тему
31 чел. читают эту тему (гостей: 31, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No new ВАЖНО: Topic has attachmentsМодули для скриптов RusHub
26 Setuper 45 397 21.3.2017, 17:31 Посл. сообщение: Alexey
No new ВАЖНО: Topic has attachmentsВаши Вопросы И Предложения По Поводу Форума
447 Svyat 322 700 20.10.2015, 19:39 Посл. сообщение: Ksan
No New Posts От: Вопросы Разработчикам Скриптов
От темы с ID: 173
0 MIKHAIL 4 338 23.1.2015, 0:56 Посл. сообщение: MIKHAIL
No new Topic has attachmentsВопросы по протоколу NMDC
Делаю программу
26 Master255 29 798 12.1.2015, 0:38 Посл. сообщение: Master255
No New Posts Вопросы к Phazeus по Экзекутору
Мастер может забанить мастера, как решить в Экзекуторе?
1 AndreiDC 5 378 31.10.2014, 19:20 Посл. сообщение: Ksan
No New Posts От: Установка скриптов
От темы с ID: 5657
0 MIKHAIL 4 800 29.7.2014, 23:37 Посл. сообщение: MIKHAIL
No New Posts Установка скриптов
Нужна помощь по установке
2 _wRz_ 7 309 29.7.2014, 16:11 Посл. сообщение: Артём
No new От: Вопросы Разработчикам Скриптов
От темы с ID: 173
29 Wariner 26 070 28.1.2014, 13:11 Посл. сообщение: Alexey
No new Topic has attachmentsВопросы по RusHub
Технические вопросы
316 Jaska 269 777 19.12.2013, 13:59 Посл. сообщение: mod
No new Topic has attachmentsМелкие вопросы
44 Wariner 51 032 19.9.2013, 12:34 Посл. сообщение: Alexey
No New Posts От: Ваши Вопросы И Предложения По Поводу Форума
От темы с ID: 753
3 anila 9 134 28.3.2013, 16:02 Посл. сообщение: настя
No New Posts Единая платформа для скриптов
Обсуждения вопроса создания единой платформы скриптов
5 Enyby 9 064 18.1.2012, 20:15 Посл. сообщение: Setuper
No new Topic has attachmentsПеределка скриптов
Прошу помощи
47 Fe(one)X 41 477 26.12.2011, 15:04 Посл. сообщение: Ksan
No new Topic has attachmentsВопросы Разработчикам Скриптов с SQL
вопросы по скриптам (мелкие вопросы)
101 Wariner 62 537 6.12.2011, 0:34 Посл. сообщение: Enyby
No New Posts От: Вопросы по RusHub
От темы с ID: 2902
4 Otshelnik-Fm 8 476 19.10.2011, 9:23 Посл. сообщение: Mangust

 



RSS Сейчас: 27.11.2024, 23:40