Flaker Posted July 5, 2012 Share Posted July 5, 2012 Ох скриптач, я пришел.Столкнулся с такой проблемой, что не получается передать указатель на функцию через таймер. Есть код function dtest () outputChatBox(getPlayerName(source) .. ": ouch!") end addEventHandler("onPlayerDamage", root, dtest) setTimer(removeEventHandler, 2000, 1, "onPlayerDamage", root, dtest) При выполнении происходит ошибка: [17:34:11] WARNING: dloader\dloader.lua:37 Bad argument @ removeEventHandler' [Expected function at argument 3, got nil] Получается, что таймером указатель на функцию не передается? Или что-то поменялось за то время, что я не ковырялся в МТА? Под указателем ты имеешь ввиду аргумент? Если да, то обычно передается... Попробуй так, не уверен конечно, но всетаки: function dtest () outputChatBox(getPlayerName(source) .. ": ouch!") end addEventHandler("onPlayerDamage", root, dtest) setTimer(function() removeEventHandler ( "onPlayerDamage", root, dtest ) end, 2000, 1) Link to comment
Arisu Posted July 5, 2012 Share Posted July 5, 2012 Фактически переменная dtest имеет значение - указатель на функцию, который в аргументе и передается. Ну, про способ через анонимную функцию я тоже знаю, и он работает, просто стало непонятно, почему аргумент-функция не передался напрямую таймером. Link to comment
H1TM4N Posted July 7, 2012 Share Posted July 7, 2012 RGB в HEX имеешь ввиду?1) Получаем цвет ника в RGB https://wiki.multitheftauto.com/wiki/GetPlayerNametagColor 2) Переводим RGB в HEX https://wiki.multitheftauto.com/wiki/RGBToHex пробовал просто взять команду от суда https://wiki.multitheftauto.com/wiki/RGBToHex, мне выдает - attemp to call global 'RGBToHex' (a nill value) и можно как то заменить иконки на радаре (Blip's) ? Link to comment
_Vincent_ Posted July 7, 2012 Share Posted July 7, 2012 Ты саму функцию-то скопировал из рамки "Function source"? Link to comment
Kenix Posted July 7, 2012 Share Posted July 7, 2012 Заменить блипы пока нельзя, но можно юзать для этого ресурс https://community.multitheftauto.com/ind ... ils&id=960 Link to comment
_Vincent_ Posted July 7, 2012 Share Posted July 7, 2012 https://wiki.multitheftauto.com/wiki/RU/ ... ustomblips страничка по этому ресурсу с блипами на вики Link to comment
H1TM4N Posted July 11, 2012 Share Posted July 11, 2012 Можно как то скрыть или зашифровать мои скрипты? protected работает только на серверные скрипты, а на клиентские что-нибудт подобное есть? Link to comment
Kernell Posted July 11, 2012 Share Posted July 11, 2012 Кто-то из пользователей уже предлагал fileDelete в конец файла - хорошее решение для клиент. скриптов Link to comment
Scripting Moderators Sarrum Posted July 11, 2012 Scripting Moderators Share Posted July 11, 2012 viewtopic.php?f=108&t=33905 Онлайн компилятор: http://mta.dzek.eu/compiler/ Link to comment
Other Languages Moderators Disinterpreter Posted July 11, 2012 Other Languages Moderators Share Posted July 11, 2012 Кто-то из пользователей уже предлагал fileDelete в конец файла - хорошее решение для клиент. скриптов По-моему ZverCR обошел эту идею. Link to comment
TwiX! Posted July 11, 2012 Share Posted July 11, 2012 Кто-то из пользователей уже предлагал fileDelete в конец файла - хорошее решение для клиент. скриптов По-моему ZverCR обошел эту идею. можно удалять компилиные скрипты Link to comment
H1TM4N Posted July 12, 2012 Share Posted July 12, 2012 Помогите доделать команду /o как в ролевой игре. Я не пойму как брать весь текст после команды с учетом пробелов: function oocchat(source, cmd, message) local r,g,b = getPlayerNametagColor ( source ) for index, players in ipairs( getElementsByType("player") ) do if r and g and b then outputChatBox( RGBToHex(r,g,b).."" .. getPlayerName(source) .." #BDBDBDпроизнес: #FFFFFF"..message, players, 255, 255, 255, true) end end end addCommandHandler("o", oocchat) Link to comment
_Vincent_ Posted July 12, 2012 Share Posted July 12, 2012 https://wiki.multitheftauto.com/wiki/AddCommandHandler Server - example 2 По-моему мне в свое время помог именно этот пример. Link to comment
Flaker Posted July 12, 2012 Share Posted July 12, 2012 Помогите доделать команду /o как в ролевой игре. Я не пойму как брать весь текст после команды с учетом пробелов: function oocchat(source, cmd, message) local r,g,b = getPlayerNametagColor ( source ) for index, players in ipairs( getElementsByType("player") ) do if r and g and b then outputChatBox( RGBToHex(r,g,b).."" .. getPlayerName(source) .." #BDBDBDпроизнес: #FFFFFF"..message, players, 255, 255, 255, true) end end end addCommandHandler("o", oocchat) Насколько я понял вот что ты хочешь: addCommandHandler ( "o", function ( player, cmd, ... ) local message = table.concat({...}," ") local r,g,b = getPlayerNametagColor ( player ) outputChatBox( getPlayerName(player).." #BDBDBDпроизнес: #FFFFFF"..message, root, r,g,b, true) end ) Прав? Link to comment
Flaker Posted July 12, 2012 Share Posted July 12, 2012 Можно как то скрыть или зашифровать мои скрипты? protected работает только на серверные скрипты, а на клиентские что-нибудт подобное есть? protected = "true" работает исключительно на клиентские .lua файлы! Link to comment
TwiX! Posted July 12, 2012 Share Posted July 12, 2012 Можно как то скрыть или зашифровать мои скрипты? protected работает только на серверные скрипты, а на клиентские что-нибудт подобное есть? protected = "true" работает исключительно на клиентские .lua файлы! только на серверные Link to comment
Flaker Posted July 12, 2012 Share Posted July 12, 2012 Можно как то скрыть или зашифровать мои скрипты? protected работает только на серверные скрипты, а на клиентские что-нибудт подобное есть? protected = "true" работает исключительно на клиентские .lua файлы! только на серверные Twix, я специально даже зашел в IRC спросил) Сказали, что для client'а эта функция... Хотя очень удивлялись зачем я вобще это спрашиваю, и нахрена защищать серверную часть) Вобще я сам ее юзаю... Отлично все защищается... Вернее client скрипт качается только в буфер в клиенту, но не сохраняется на жестком диске... Link to comment
TwiX! Posted July 12, 2012 Share Posted July 12, 2012 я спокойно могу украсть твои серверные скрипты(если нет нужной защиты,стоит узнать только твой http порт), обычному нубо скриптеру конечно это не под силу Link to comment
Kernell Posted July 13, 2012 Share Posted July 13, 2012 Кто-то из пользователей уже предлагал fileDelete в конец файла - хорошее решение для клиент. скриптов По-моему ZverCR обошел эту идею. Каким образом? Запретом на удаление файлов? Это тоже легко можно обойти, хороший способ - компиляция с мета таблицами, такой скрипт невозможно декомпилировать, даже пытаться не имеет смысла. Особенно хорошо если использовать библиотеку классов. Можно как то скрыть или зашифровать мои скрипты? protected работает только на серверные скрипты, а на клиентские что-нибудт подобное есть? protected = "true" работает исключительно на клиентские .lua файлы! только на серверные Это специально было сделано для клиентских скриптов, в чём смысл делать это для серверных? Оно там просто не нужно. я спокойно могу украсть твои серверные скрипты(если нет нужной защиты,стоит узнать только твой http порт), обычному нубо скриптеру конечно это не под силу А я могу спокойно положить все сервера пентагона, обычному нубо скриптеру конечно это не под силу Не смеши людей, такое возможно только с неправильно настроенным веб-сервером, т.е. у MTA должен быть кривой httpd, но даже при стандартной конфигурации этого не будет. Аргументируй хотя бы. а то сказать "я могу", но не сказать как - умеет каждый. P.S. Даже веб сервера взламывают не потому что там кривой конфиг, а потому что используют нулёные движки CMS/Форумов в которых нуллеры специально наделали дырок, а там уже вызывай хоть тот же exec() Link to comment
TwiX! Posted July 13, 2012 Share Posted July 13, 2012 слушай, умничать здесь не надо, если ты не знаешь как, не надо думать что это невозможно. во 2, зачем мне рассказывать как это сделать всем? бред не неси Link to comment
H1TM4N Posted July 13, 2012 Share Posted July 13, 2012 как можно убрать команды /register и /login ? портят всю малину ... Link to comment
Kernell Posted July 13, 2012 Share Posted July 13, 2012 слушай, умничать здесь не надо, если ты не знаешь как, не надо думать что это невозможно.во 2, зачем мне рассказывать как это сделать всем? бред не неси В данной ситуации ты ведёшь себя очень глупо, пытаешься взять кого-то на понт пытаясь сказать всем как ты мега крут, можешь взломать МТА сервер по HTTP порту и вытащить серверные скрипты Почему это нужно рассказывать всем: чтобы дырку быстрее закрыли, а так как ты этого не говоришь, это только подтверждает то о чём я пишу выше, в итоге бред несёшь только ты Link to comment
Flaker Posted July 13, 2012 Share Posted July 13, 2012 как можно убрать команды /register и /login ? портят всю малину ... Register в ресурсе admin в файле admin_server.lua (Строка 437 вроде) Вот код, по нему поиск можешь сделать: addCommandHandler ( "register", function ( player, command, arg1, arg2 ) local username = getPlayerName ( player ) local password = arg1 if ( arg2 ) then username = arg1 password = arg2 end if ( password ~= nil ) then if ( string.len ( password ) < 4 ) then outputChatBox ( "register: - Password should be at least 4 characters long", player, 255, 100, 70 ) elseif ( addAccount ( username, password ) ) then outputChatBox ( "You have successfully registered! Username: '"..username.."', Password: '"..password.."'(Remember it)", player, 255, 100, 70 ) outputServerLog ( "ADMIN: "..getPlayerName ( player ).." registered account '"..username.."' (IP: "..getPlayerIP(player).." Serial: "..getPlayerSerial(player)..")" ) elseif ( getAccount ( username ) ) then outputChatBox ( "register: - Account with this name already exists.", player, 255, 100, 70 ) else outputChatBox ( "Unknown Error", player, 255, 100, 70 ) end else outputChatBox ( "register: - Syntax is 'register [] '", player, 255, 100, 70 ) end end ) А login незнаю.....password.. Link to comment
Scripting Moderators Sarrum Posted July 13, 2012 Scripting Moderators Share Posted July 13, 2012 Открой acl.xml, найди 'Default', и можно после этой строки: <right name="command.whowas" access="false"></right> добавить это: <right name="command.login" access="false"></right> И так далее для других команд. Link to comment
Seik Posted July 13, 2012 Share Posted July 13, 2012 Уважаемые скриптеры. Прошу помощи: при попытки использовать команду dbPoll результат всегда nil, независимо от самого запроса. Если выставить таймер -1, то сервер виснет. Другие команды(dbConnect, dbQuery) выполняются без ошибок. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now