Вопросы Разработчикам Скриптов, вопросы по скриптам (мелкие вопросы) |
Здравствуйте, гость ( Вход | Регистрация )
Вопросы Разработчикам Скриптов, вопросы по скриптам (мелкие вопросы) |
19.9.2008, 10:36
Сообщение
#61
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
в новом апи такая возможность есть. Делается так:
Код nTimerInterval1=60000 -- 1 мин nTimerInterval2=72000 -- 1.2 мин nTimerInterval3=90000 -- 1.5 мин TmrMan.AddTimer(nTimerInterval1, "func1") TmrMan.AddTimer(nTimerInterval2, "func2") TmrMan.AddTimer(nTimerInterval3, "func3") function func1() SendToAll("timer 1") end function func2() SendToAll("timer 2") end function func3() SendToAll("timer 3") end для старого апи такую функцию надо писать самому))) |
|
|
3.10.2008, 21:29
Сообщение
#62
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
думаю переходить обратно я не буду, dllку скомпилить тоже врядли смогу(во всяком случае на данном жизненом этапе) значит остаётся два варианта искать глюки в существующей либе и обходить их либо ждать чего то нового. Кстати над этим работы какие нибудь ведутся?
CODE if ( cmd=="!profile" and user.iProfile ~= nil ) then _,_,usernme = string.find( data, "%b<>%s+%S+%s+(%S+)" ) if usernme ~= nil then if Core.GetUser(usernme,true) then nme = Core.GetUser(usernme) if usernme.iProfile ~= -1 then nme = (ProfMan.GetProfile(Core.GetUser(nme.sNick)) and ProfMan.GetProfile(Core.GetUser(nme.sNick).sProfileName).iProfile) -- ошибка тут Core.SendToNick(user.sNick,"*** Пользователь <"..bnick.."> имеет профиль "..nme) return true else Core.SendToNick(user.sNick,"*** Пользователь <"..usernme.."> не зарегистрирован") return true end else Core.SendToNick(user.sNick,"*** Пользователь <"..usernme.."> оффлайн!") return true end else Core.SendToNick(user.sNick,"*** Ошибка! Вы не указали ник!") return true end end как должно быть правильно? [22:28] Синтаксис thunder_newapi.lua:253: bad argument #1 to 'GetProfile' (string or number expected, got 3552855) |
|
|
3.10.2008, 21:45
Сообщение
#63
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Вроде вот так:
Код if (cmd=="!profile" and user.iProfile) then
local _,_,usernme=string.find(data,"%b<>%s+%S+%s+(%S+)") if usernme then local nme=Core.GetUser(usernme) if nme then if nme.iProfile~=-1 then Core.SendToNick(user.sNick,"*** Пользователь <"..usernme.."> имеет профиль ".. ProfMan.GetProfile(nme.iProfile).sProfileName) else Core.SendToNick(user.sNick,"*** Пользователь <"..usernme.."> не зарегистрирован") end else Core.SendToNick(user.sNick,"*** Пользователь <"..usernme.."> оффлайн!") end else Core.SendToNick(user.sNick,"*** Ошибка! Вы не указали ник!") end return true end |
|
|
6.10.2008, 15:40
Сообщение
#64
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
Код sMsg = sMsg:gsub("<!\[CDATA\[", " ") sMsg = sMsg:gsub("\]\]>", " ") пишет [16:38] Синтаксис Bash_API2.lua:94: malformed pattern (missing ']') я понимаю что это квадратные скобки но вроде я посттавил перед ними "\" Что не так? |
|
|
6.10.2008, 15:42
Сообщение
#65
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Читай про магические символы, неужели забыл что перед ними не \ а % ставится?)
Мой открытый вариант скрипта ковырял?? http://mydc.ru/index.html?amp;showtopic=...post&p=2828 |
|
|
6.10.2008, 15:48
Сообщение
#66
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
Читай про магические символы, неужели забыл что перед ними не \ а % ставится?) да с этим я что то тупанул... Мой открытый вариант скрипта ковырял?? http://mydc.ru/index.html?amp;showtopic=...post&p=2828 я его посмотрел... во первых там в папке два файла с закрытым кодом, во вторых не дорос я ещё до таких скриптов... наверно |
|
|
6.10.2008, 15:50
Сообщение
#67
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Файл Core.lua - с открытым кодом! Вроде не так уж и сложно всё там...
Строка 87: Код local _,_, sData = string.find(sDescription, "<!%[CDATA%[(.*)%]%]")
|
|
|
6.10.2008, 15:52
Сообщение
#68
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
ладно может покапаюсь, а щас побежал на тренировку)))))
|
|
|
13.10.2008, 19:38
Сообщение
#69
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
2Setuper: Илюх, ты где то писал про сиистему(начальных букв у переменных), помоему венгерскую, но я что то потерял темку в которой ты это отписывал((( Можешь продублировать ещё раз?(поис мне не помог )
|
|
|
13.10.2008, 19:59
Сообщение
#70
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Странно, но я нашел в поиске: http://mydc.ru/ipb.html?s=&showtopic=3...post&p=2068
|
|
|
13.10.2008, 20:04
Сообщение
#71
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Называется венгерская нотация)))))
Код s - string i - integer n - number l - long b - boolean p - pointer h - handle C - class T - type t - table mt - metatable В lua можно использовать следующие: Код s - string i - integer b - boolean h - handle t - table mt - metatable (iShareSize, bConnected, hFile, tTable, mtTable) http://mydc.ru/ipb.html?s=&showtopic=3...post&p=2068 Спасибо сказали: |
|
|
14.10.2008, 18:53
Сообщение
#72
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
в чём тут ошибка?
Код function UserDisconnected(tUser) tUser[tUser.sIP].OffData = os.date("%d.%m.%Y %H:%M:%S") WriteTable(tUsers, "tUsers", sUser) end Синтаксис ххх.lua:46: attempt to index field '?' (a nil value) |
|
|
14.10.2008, 19:31
Сообщение
#73
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
В таблице tUser нет таблицы равной его ip: tUser[tUser.sIP] = nil, а ты пытаешься в такой таблице создать поле OffData, надо сначала объявить таблицу: tUser[tUser.sIP] = {}, или сразу поле в ней: tUser[tUser.sIP] = {OffData = os.date("%d.%m.%Y %H:%M:%S"),}
|
|
|
14.10.2008, 20:20
Сообщение
#74
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
таблица создаётся в функции юзерконнектед, выглядит так
CODE tUsers = { ["10.2.100.240"] = { ["Nick"] = "-=Wariner=-", ["Shara"] = 12100841835, ["Msg"] = 0, ["OffData"] = 0, ["Downloads"] = 0, ["BanTop"] = 0, ["Ban"] = 0, ["OpBanTop"] = 0, ["GagTop"] = 0, ["Seach"] = 0, ["OpGagTop"] = 0, ["OldNick"] = { }, ["IP"] = "10.2.100.240", }, } после чего идёт описаный выше код, но дальше ошибка |
|
|
14.10.2008, 21:22
Сообщение
#75
|
|
Освоившийся участник Группа: Пользователи Сообщений: 307 Регистрация: 11.7.2008 Пользователь №: 173 Спасибо сказали: 31 раз |
|
|
|
14.10.2008, 21:30
Сообщение
#76
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
2Sephiroth_Lukaw: вот код
CODE sBot = "Protector" function OnStartup() sPath = Core.GetPtokaXPath():gsub("/", "\\").."scripts\\Protector\\" sData = sPath.."Data\\" sText = sPath.."Text\\" sUser = sData.."User.tbl" ... function UserConnected(tUser) Core.GetUserAllData(tUser) local Shara = tUser.iShareSize or 0 if tUsers[tUser.sIP] == nil then tUsers[tUser.sIP] = {} ... tUsers[tUser.sIP].OffData = 0 WriteTable(tUsers, "tUsers", sUser) end end OpConnected = UserConnected RegConnected = UserConnected function UserDisconnected(tUser) tUser[tUser.sIP].OffData = os.date("%d.%m.%Y %H:%M:%S") -- вот тут ошибка WriteTable(tUsers, "tUsers", sUser) end OpDisconnected = UserDisconnected RegDisconnected = UserDisconnected function WriteTable(tTable, tablename, file) local handle = io.open(file, "w") Serialize(tTable, tablename, handle) handle:close() end function Serialize(tTable, sTableName, hFile, sTab) sTab = sTab or ""; hFile:write(sTab..sTableName.." = {\n" ); for key, value in pairs(tTable) do local sKey = (type(key) == "string") and string.format("[%q]",key) or string.format("[%d]",key); if(type(value) == "table") then Serialize(value, sKey, hFile, sTab.."\t"); else local sValue = (type(value) == "string") and string.format("%q",value) or tostring(value); hFile:write(sTab.."\t"..sKey.." = "..sValue); end hFile:write(",\n"); end hFile:write(sTab.."}"); end если не всё ещё понятно объясню подробнее |
|
|
14.10.2008, 21:47
Сообщение
#77
|
|
Освоившийся участник Группа: Пользователи Сообщений: 307 Регистрация: 11.7.2008 Пользователь №: 173 Спасибо сказали: 31 раз |
Ну, если ты сделаешь как сказал Nickolya, то ошибка в той строчке биться не должна...хотя не вижу в ней никакого смысла если честно) т.к. tUser всё-равно локальна и ты её больше нигде не используешь в данной функции..
|
|
|
14.10.2008, 22:10
Сообщение
#78
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Код function UserDisconnected(tUser)
if tUsers[tUser.sIP] then tUsers[tUser.sIP].OffData = os.date("%d.%m.%Y %H:%M:%S") end WriteTable(tUsers, "tUsers", sUser) end |
|
|
14.10.2008, 22:17
Сообщение
#79
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
2Sephiroth_Lukaw я тебя не понимать....
2Setuper спасибо |
|
|
14.10.2008, 22:27
Сообщение
#80
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Цитата tUser[tUser.sIP].OffData = os.date("%d.%m.%Y %H:%M:%S") -- вот тут ошибка Да, тут ошибка и ошибка как всегда глупая, подумай сам: Код tUsers[tUser.sIP].OffData = 0 tUser[tUser.sIP].OffData = os.date("%d.%m.%Y %H:%M:%S") Думаю разница теперь заметна ЗЫ: я тормоз ЗЗЫ: слишком сложно и накладно для самого человека показать человеку как надо делать, легче и полезнее заставить его думать |
|
|
Похожие темы
|
Сейчас: 27.11.2024, 3:56 |