_Dark_
Members-
Posts
473 -
Joined
-
Last visited
Everything posted by _Dark_
-
Программирование собственных плагинов.
_Dark_ replied to Sektor's topic in Помощь / Отчеты об ошибках
Во-первых, вам придется писать плагин к клиентской части и к серверной. Во-вторых, это, как уже сказали выше, реализуется скриптово. -
Вы так и не поняли, что я пытался до вас донести... Из серии "- Как тебя зовут? - Родителей нет дома!". Я вам лишь намекну: Вы начинаете восхищаться тем и расхваливать то, с чем незнакомы. Лично я не переношу таких людей. Я один не понял этот вопрос?
-
Эм... А есть аналоги этой функции? Можно ссылочку на wiki? Ну а вообще, эта функция нужна для регистрации собственных событий. Со всеми вытекающими последствиями.
-
Вот! Спасибо! Именно это я и хотел донести до этого человека, не мог просто кратко описать Как минимум, я мог бы вам посоветовать вначале изучить код, а потом модифицировать его. Кстати, вы зря сделали x, y глобальными. Я сомневаюсь, что вам за пределами функции они понадобятся.
-
Уважаемый, я сужу по вашему сленгу, количеству знаков препинания в сообщении, а так же всевозможных "круто!!!!1111!", "красава111!", "вау!!!!! как круто!!!". И заметьте: я не против MTA. Я наоборот суда перешел. Я повторяю: вы не на то смотрите. Вы приводите в пример "исходный код на С++", "SDK", "функцияй набито в нем свыше 1000". Такое ощущение, что: 1. Вы вообще не знакомы с языками программирования или знакомы поверхностно. 2. Вы не тот, за кого себя пытаетесь выдавать. Ок))) я тоже уважаю тебя чувак. Исторический сложилось сперва я был на сампе, и захотел сделать не плохой мод, задумал графический инвентарь сделать, увы в сампе это не поддерживается, одежду тоже нельзя одевать, тву ты думаю, и ушел... Подтверждение моим словам. Переходить в другой мультиплеер, учить новый язык из-за "графический инвентарь" и "одежду тоже нельзя одевать" как минимум глупо. Опять таки, ведут так себя несерьезные люди. Смотрите глобальнее, не надо приводить в примеры мелочные вещи. Просто люди до 15 лет склонны к такому поведению, как у вас. Это из серии: "Ой какая цаца!!111! Ухты!!! Аааа круто!!!!!!". Ничего личного, воспринимайте как хотите.
-
Эм... Как клиент эти функции обрабатывать будет, если для него ничего не писать, то?
-
А как в плане нагрузки? Клиент будет тормозить, если будет работать таймер, обрабатываться ивенты на его стороне?
-
Вы вообще о чем? Вообще-то, если на то и пошло, то плагин писать нужно к клиентской части, а не к серверной, если что.
-
Я с вами согласен, но вы не на то смотрите. Такое ощущение, что вам лет 12, честное слово. Наобум говорите.
-
Если бы я не создал таблицы, я бы не спрашивал вообще ничего, потому что ничего бы не работало.
-
Я же четко поставил вопрос и привел скриншот. Я же написал, какая именно произошла проблема, соответственно ищу ответ именно на нее.
-
Они есть выше этого кода, я их просто не включил в мое сообщение, иначе как бы я скриншоты то сделал?
-
и я так думал! Добавил их, все заработало. Kenix, спасибо!
-
Эм... А пункты "Заправка" и "Тюнинг"? guiGridListSetItemText(GUIEditor_Grid[1],0,1,"Заправка") guiGridListSetItemText(GUIEditor_Grid[1],1,1,"Тюнинг")
-
Есть код: GUIEditor_Window[2] = guiCreateWindow(329,193,365,442,"Заправочная станция",false) GUIEditor_Grid[1] = guiCreateGridList(10,28,342,362,false,GUIEditor_Window[2]) guiGridListSetSelectionMode(GUIEditor_Grid[1],2) guiGridListAddColumn(GUIEditor_Grid[1],"Список услуг",0.2) for i = 1, 2 do guiGridListAddRow(GUIEditor_Grid[1]) end guiGridListSetItemText(GUIEditor_Grid[1],0,1,"Заправка") guiGridListSetItemText(GUIEditor_Grid[1],1,1,"Тюнинг") guiSetVisible(GUIEditor_Window[2], true) а вот результат его работы: Почему так?
-
Можно ли отключить повреждение транспорта, если в нем никого нет?
-
Точно так же, как если скрыть окно в котором есть другие gui элементы привязанные к нему. Они тоже скроются.
-
А, да, точно. Спасибо.
-
function checkMarkerMode(hitElement, matchingDimension) local markermode = getElementData(source, "mode") if markermode == "gas station" then local element = getElementType(hitElement) if(element == "vehicle") then local player = getVehicleOccupant(element) outputChatBox("Это заправка, епт!!!", player) end end end addEventHandler("onMarkerHit", getRootElement(), checkMarkerMode) Почему пишет WARNING: Bad argument @ 'getVehicleOccupant' если заехать на маркер на автомобиле? И почему пишет всем игрокам? Ведь должно только водителю?
-
Вопрос решил без setElementData(...) Я прописал нужную мне информацию маркеров прямо в .map файле, а потом уже вытаскиваю их через getElementData(...) и сравниваю с тем, что мне нужно.
-
Точно такая же идея пришла. Сделаю так наверно...
-
Вот есть код: local Markers1 = {} local Markers2 = {} Markers1[1] = createMarker(2120, 928.79, 9.80) Markers2[1] = createMarker(2120.89, 917.79, 9.80) function markerHit(hitPlayer, matchingDimension) for index,markers in pairs(Markers1) do if (source == markers) then --[[Маркер, на который встал игрок из таблицы Markers1 Значит, выполним функцию function1()]] end end for index,markers in pairs(Markers2) do if (source == markers) then --[[Маркер, на который встал игрок из таблицы Markers2 Значит, выполним функцию function2()]] end end --Получается, что нужно создавать несколько циклов! Это правильно или есть более лучший способ? end addEventHandler ( "onClientMarkerHit", getRootElement(), markerHit ) Создаем одну таблицу для одной группы маркеров, а потом когда игрок наступает на маркер, перебираем все маркеры из таблицы и проверяем совпадает ли какой-то с тем, на который игрок наступил. Но тогда, если у меня будет 10 групп маркеров, то нужно делать 10 циклов. Что-то мне подсказывает, что это не совсем правильно.
-
Короче, что я хочу. Есть: mymarker[1] = createMarker(bla-bla-bla) mymarker[2] = createMarker(bla-bla-bla) mymarker[3] = createMarker(bla-bla-bla) mymarker[4] = createMarker(bla-bla-bla) Надо чтобы: Если игрок встал в маркер marker[1] или marker[2], то должна выполниться ф-ия function1, а если в marker[3] или marker[4], то function2. Только я не хочу после каждого маркера делать так: addEventHandler( "onPlayerMarkerHit", mymarker[1], function1) addEventHandler( "onPlayerMarkerHit", mymarker[2], function1) addEventHandler( "onPlayerMarkerHit", mymarker[3], function2) addEventHandler( "onPlayerMarkerHit", mymarker[4], function2) Значит надо циклом перебрать и проверить на какой маркер игрок встал.
-
Про цвета я образно сказал Что бы разделить маркеры на группы, но я цвета использовать разные не буду
-
Нет, не в любой. Допустим есть 5 маркеров зеленого цвета и 5 маркеров красного. Если я вхожу в любой из 5 маркеров зеленого цвета, должна выполняться одна и та же функция. Если я вхожу в любой из 5 маркеров красного цвета, должна выполняться одна и та же другая функция.
