-
Posts
200 -
Joined
-
Last visited
Everything posted by N1kS
-
Мб может кто то поделится кодом, чтобы находить совпадения с guiEdti'a и gridlist'om? Ну тоесть имеется огромный список карт и нужно сделать поиск, чтобы все не перебирать.
-
Спасибо, но нет. Уже разобрался. Возможно кому то пригодится: нужно исправлять dxscoreboard_exports.lua файл, а именно строки 3-7.
-
local Object, timer1, x, y, z; function createObjectF (player) local veh = getPedOccupiedVehicle (player) x, y, z = getElementPosition (veh) timer1 = setTimer(function() Object = createObject ( 2002, x, y, z ); setElementCollisionsEnabled ( Object, false ); attachElements ( Object, veh, 0.62, 2.25, 0.18); setTimer(function() destroyElement(Object) end, 100, 1) end, 500, 0); end addCommandHandler("createobject", createObjectF); function recreateObjectF() destroyElement(Object); killTimer(timer1); end addCommandHandler("destroyobject", recreateObjectF); Тогда вот так.
-
Не сильно понял логику скрипта, но если вам нужно, чтобы создавался объект приаттаченный к вашему ТС, то это будет выглядеть так: local Object; function createObjectF (player) local veh = getPedOccupiedVehicle (player) local x, y, z = getElementPosition (veh) Object = createObject ( 2002, x, y, z ) setElementCollisionsEnabled ( Object, false ) attachElements ( Object, veh, 0.62, 2.25, 0.18) end addCommandHandler("createobject", createObjectF); function recreateObjectF() destroyElement(Object) end addCommandHandler("destroyobject", recreateObjectF); Команда "createobject" создает объект и аттачит его к ТС, команда "destroyobject" удаляет объект с вашего ТС.
-
Помогите разобраться с ресурсом scoreboard. Не вижу смысла писать свой ресурс для кнопки таб, т.к давно существует данный ресурс. Вопрос в следующем - нужно полностью перевести его, все то неплохо, но не могу перевести строчки "Name и "Ping". Нашел след. функцию: function scoreboardAddColumn( name, width, friendlyName, priority, textFunction, fromResource ) Нашел, где она применяется с использованием слов "Name" и "Ping": scoreboardAddColumn( "name", 200, "Name" ) scoreboardAddColumn( "ping", 40, "Ping" ) Изменил на: scoreboardAddColumn( "name", 200, "Имя" ) scoreboardAddColumn( "ping", 40, "Пинг" ) Реакции - ноль. Более детально: строчки "Name" и "Ping" отображаются по нажатию кнопки таб. Нужно перевести их на русский язык.
-
У меня ваше окно появляется только при наборе команды, не при конекте. Что касается кнопки, то добавьте 2 переменных и чуть чуть измените координаты, у меня все работает так, как вы хотите. local window, button; addEventHandler("onClientResourceStart", resourceRoot, function() window = guiCreateWindow(0, 0, 640, 480, "Desktop Params", false) guiWindowSetMovable(window, true) guiWindowSetSizable(window, true) button = guiCreateButton(320, 20, 25, 15, "x", false, window) guiSetFont(button, "default-bold-small") guiSetProperty(button, "NormalTextColour", "FFFF0505") guiSetVisible(window, false) guiSetVisible(button, false) end) addCommandHandler("show", function() if not guiGetVisible(window) then guiSetVisible(window, true); guiSetVisible(button, true); showCursor(true) else guiSetVisible(window, false); guiSetVisible(button, false); showCursor(false) end end)
-
Необходимо было написать функцию динамической телепортации по маркерам, возможно кому то пригодиться.
-
Подскажите пожалуйста, имеется массив, необходимо создать функцию удаления всех элементов и обнулить их. Все элементы удаляются, но не обнуляются. local GUI = { button = {}, checkbox = {}, window = {}, label = {}, edit = {}, label = {} }; function destroyGUI() for i, v in pairs(GUI) do for i, v in pairs(v) do if(v)then destroyElement(v); v = nil; end end end showCursor(false); end С чего я взял, что они не обнуюятся? Т.к есть эвент: addEvent("destroyQuestionGUI", true); addEventHandler("destroyQuestionGUI", getRootElement(), destroyGUI); Данный эвент тригериться с сервера, когда игрок покидает маркер и после того, как я покидаю маркер получаю в дэбаг ошибку: Bad 'element' pointer @ 'destroyElement'(1) --В нашем случае номер строки с ошибкой: 15.
-
Еще вопрос: имеется бинд функции под кнопку Enter. Хочу предотвратить попытку сесть в ближайшее авто, после использование кнопки. Скрипт на клиенте выполняется. Делаю, не помогает. addEventHandler("onClientVehicleStartEnter", root, cancelEvent);
-
Помогло, спасибо.
-
Нужно не уничтожить, а сделать невидимым.
-
local marker = createMarker(542.09765625, -1292.869140625, 17.2421875); function markerParams(source) setElementVisibleTo(marker, source, false) outputChatBox("ydalen"); end addCommandHandler("qqqqq", markerParams); Не пропадает, хоть убей.
-
function destroyGUI() if (GUI.window[1]) then destroyElement(GUI.window[1]); showCursor(false); end end Имеется данная функция. Она выполняется в 2 случаях: если игрок жмет guiButton "нет" или покидает маркер. Все работает, но проблема в следующем: когда окно закрыто с помощью кнопки "нет" и игрок покидает маркер, то в дебаг выводиться сообщением, что поинтер функции destroyElement равен нулю. Подскажите пожалуйста, мб проверку неправильную сделал. Работать то все работает, но хотелось бы избежать мусора в дебаге.
-
Функция: string fileRead ( file theFile, int count ) Выводит текст в строку не смотря на то, как он храниться в файле. Можно ли как то сохранить структуру ентеров?
-
Можно код увидеть?
-
value есть номер строки. Выводит текст определенного номера строки. При выводе всей таблицы в цикле результат не меняется, спасибо.
-
Собственно сабж. Пробовал и utf8 и cp1251. Может быть кто то сталкивался. Вывожу командой: function testDB(source, cmd, value) local qh = dbQuery(mta_db, "SELECT text FROM test"); local table = dbPoll(qh, -1); outputChatBox(table[ tonumber(value) ].text, source); end addCommandHandler("testdb", testDB);
-
Спасибо.
-
Это условие полностью неверно и никогда не будет выполнятся т.к переменная pickupID это число, ид пикапа, а ты проверяешь на строку "id" . Я не понимаю зачем тебе это условие нужно ..Вообщем как всегда копипаст без разбора кода и что он собственно делает. Заканчивайте уже с этим. Вам же хуже. Да уже разобрался давно, спасибо) if(pickupType == "vehiclechange" and vehicleModel == 425) then Скажите пожалуйста, как вытащить из meta.xml длительность карты?
-
Хочу сделать определенное действие, если игрок берет пикап в race и его авто меняется на NRG-500, но почему то это не работает... Из вики: onPlayerPickUpRacePickup Параметры int/string pickupID, string pickupType, int vehicleModel pickupID: номер пикапа при синтаксисе MTA:Race (начиная с 1) или атрибут "id" пикапа в случае синтаксиса DM. pickupType: тип пикапа. Может быть "nitro", "repair" или "vehiclechange". vehicleModel: если тип пикапа - vehiclechange, то это - модель нового транспортного средства, которую он устанавливает. Source Source - игрок, подобравший пикап. Функция: function _f5(pickupID, pickupType, vehicleModel) if(pickupID == "id" and pickupType == "vehiclechange" and vehicleModel == 522) then outputChatBox("ok", source) end end addEvent("onPlayerPickUpRacePickup", true) addEventHandler("onPlayerPickUpRacePickup", root, _f5) Если же делаем так, то получаем "ok" при въезде на любой пикап, но мне нужно именно при смене на NRG-500: function _f5(pickupID, pickupType, vehicleModel) outputChatBox("ok", source) end addEventHandler("onPlayerPickUpRacePickup", root, _f5)
-
/del
-
При логине, если игрок админ, смодер или модер, в зависимости его ник добавляется в определенную таблицу. Он то добавляется, но talbe.remove только по номеру ячейки, так? Так вот как мне определенный ник удалять при логауте?
-
Да все почти готово, мне бы только удалять из таблиц их и все. Все же вопрос остается актуальным. Никто не подскажет что ли?
-
Да все почти готово, мне бы только удалять из таблиц их и все. Все же вопрос остается актуальным.
-
Собственно начал делать скрипт, который отображает всех админов онлайн, сделал команду для дебага, но она выводит не то, что нужно... local Moderators = {} local SuperModerators = {} local Admins = {} --логин function _f1() local acc = getAccountName(getPlayerAccount(source)) if(isObjectInACLGroup("user."..acc,aclGetGroup("Admin"))) then table.insert(Admins, getPlayerName(source)) elseif(isObjectInACLGroup("user."..acc,aclGetGroup("SuperModerator"))) then table.insert(SuperModerators, getPlayerName(source)) elseif(isObjectInACLGroup("user."..acc,aclGetGroup("Moderator"))) then table.insert(Moderators, getPlayerName(source)) end end addEventHandler("onPlayerLogin", root, _f1) --логаут function _f2() local acc = getAccountName(getPlayerAccount(source)) if(isObjectInACLGroup("user."..acc,aclGetGroup("Admin"))) then table.remove(Admins, getPlayerName(source)) elseif(isObjectInACLGroup("user."..acc,aclGetGroup("SuperModerator"))) then table.remove(SuperModerators, getPlayerName(source)) elseif(isObjectInACLGroup("user."..acc,aclGetGroup("Moderator"))) then table.remove(Moderators, getPlayerName(source)) end end addEventHandler("onPlayerLogout", root, _f2) function _f3() outputChatBox(table.concat(Admins, ", "), source) end addCommandHandler("qqq", _f3) Но после логаута не удаляет из таблицы. Как я понял - из таблицы удаляет только по номеру, но как задавать каждому залогиневшемуся номер в таблице? Помогите с этим, пожалуйста.
