Jump to content

CocaColaBear

Members
  • Posts

    229
  • Joined

  • Last visited

Everything posted by CocaColaBear

  1. onClientKey getPedWeapon -- Если объект/игрок/транспорт, то getPedTarget getDistanceBetweenPoints2D -- Иначе processLineOfSight -- вперед на нужную дистанцию Примерно так
  2. У setElementData последний аргумент: По умолчанию, он установлен в true, это значит, что если клиент или сервер поменяет data элемента, то data изменится везде. Если false, то только на одной стороне,клиент или сервер, в зависимости от того, где сработала setElementData
  3. Т.е. когда я создаю на клиенте например просто элемент (createElement) или маркер (createMarker), то он существует только на этом клиенте и виден только ему? и на сервере его не найти? Да. Все что создано на клиенте остается только там. Многие, кто пришел с SA-MP не понимают разницы между клиентскими скриптами и серверными, ибо в SA-MP есть только вторые. Так вот, клиентские скрипты - это скрипты, которые скачивает клиент при входе и работает с ними пока вы не покинете сервер. Т.е. сервер не контролирует действия происходящие в клиентских скриптах. Для примера, возьмем функцию setElementModel. Если на сервере игроку установить скин под номером 1, а после на клиенте сменить скин на 2, то сервер не будет знать об этом и будет думать, что скин все еще под номером 1. И если вы попробуете сменить скин на стороне сервера обратно на 1, то ничего не произойдет. Потому что функция не устанавливает новый скин, когда он равен старому, независимо от того, что вы видите скин под номером 2. Только в данном ресурсе.
  4. Да, именно это я и хочу сказать. Навыка полетов нет. В одиночке была лишь летная школа. А основной транспорт этот тот, который чаще всего использовался в игре. А если вспомнить сюжетную линию, то миссий с самолетом/вертолетом слишком мало, по сравнению с авто/мото.
  5. Что значит "переключать рельсы"?
  6. Нету такого навыка. Потому что самолеты/вертолеты/лодки не являются основным видом транспорта в игре. Есть 3 навыка: велик, мото, авто.
  7. Если уж и разбираться в ООП, то определенно не в Lua. Да и нужно ли, лесть в ООП с начальными знаниями?
  8. Проверьте все файлы и найдите этот текст. Он в любом случае где-то хранится
  9. Наверное так? addCommandHandler("timeout", function() outputChatBox("Таймаут команды на две секунды") setTimer(function() outputChatBox("Команда выполнена...") end, 2000, 1) end )
  10. Так никто не запрещает поставить 100, но только потом полетят жалобы от игроков, типа: "Читеры, быстро бегают/стреляют"
  11. Нету такого скрипта, который подходит ко всем случаям. Чтобы лезть к базе, вначале нужно знать SQL, без его вам с базами делать нечего. Примеры есть на вики https://wiki.multitheftauto.com/wiki/DbConnect#Example https://wiki.multitheftauto.com/wiki/DbQuery#Example
  12. PHP прекрасно работает с SQLite. Качаешь SQLiteBrowser и смотришь интересующие тебя таблицы, поля, а потом составляешь запрос к ним.
  13. addCommandHandler("warp", function(player, _, wPlayer) local warpPlayer = getPlayerByName(wPlayer) if(warpPlayer) then local vehicle = getPedOccupiedVehicle(player) if(vehicle and getPedOccupiedVehicleSeat(player) == 0) then local occupants = getVehicleOccupants(vehicle) local maxPassengers = getVehicleMaxPassengers(vehicle) if(#occupants <= maxPassengers) then local seatID = 1 for i = 2, maxPassengers do if(not isElement(occupants[i])) then seatID = i break end end warpPedIntoVehicle(vehicle, seatID) else outputChatBox("В автомобиле нет мест!", player) end else outputChatBox("Вы не в авто или не за рулем", player) end else outputChatBox("Такого игрока нет", player) end end ) Примерно так, адаптируешь под себя.
  14. Прежде чем писать такие комментарии, нужно прочитать внимательно пост. В котором ясно написано: "Для примера". Суть поста была в том, чтобы показать примерную затрату времени на данную реализацию.
  15. Никто не возьмется. Хотите знать почему? Для примера, напишите программу на C#, хотя бы на 50 тысяч строк кода. А потом перепишите ее на C++ под Linux. Сразу все станет ясно.
  16. Если setElementHealth не работает, то как-то так: -- где-то педу дали setElementData(ped, "health", 25000) addEventHandler("onClientPedDamage", resourceRoot, function(_, _, _, loss) local pedHealth = getElementData(source, "health") pedHealth = pedHealth - loss setElementData(source, "health", pedHealth) if(pedHealth > 100) then cancelEvent() end end ) Проверки разные я не добавлял, добавишь сам.
  17. Либо мне кажется, либо кто-то говорил что никак.
  18. ГТА СА на мобилки http://www.rockstargames.com/newswire/a ... ember.html Обещают переработанную графику
  19. Как вариант борьбы: Игрок подгружает замененную анимацию себе. Следовательно видит ее только он. А значит событие onClientPlayerDamage при source == localPlayer не работает. Тогда пусть хедшот обрабатывает сам стрелявший. addEventHandler ( "onClientPlayerDamage", localPlayer, function(attacker, weapon, bodypart) if(localPlayer == attacker and bodypart == 9) then killPed(source) end end ) Минус в том, что синхронизация не идеальна и скорее всего убитый в голову будет в недоумении, как это в его не попали, а голова отлетела? P.S. Или вообще, использовать сервер как обработчика попадания.
  20. Вообще-то, рендер вызывается при каждой смене кадра. Если использовать стандартное ограничение кадров, то это максимум - 38 кадров. Следовательно лучше вызывать таймер каждую секунду для проверки, чем 38 раз в секунду проверять состояние автомобиля. А гонка за секунду не пропадет. P.S. Вот после таких вот действий в рендере люди жалуются: "А почему у меня фпс проседает?".
  21. Засорять? По-моему, баг-трекер создан, чтобы его засоряли различными багами/недоработками. Сразу бы так и сказали :facepalm: Как было сказано выше. МТА - разрабатывается сообществом, следовательно никто не обязан ничего делать.
  22. addEventHandler("onClientGUIClick", guiEditor.staticimage[1], function(button) if(button == "left") then -- Нажата левая кнопка мыши elseif(button == "right") then -- Нажата правая кнопка мыши else -- Нажата средняя кнопка мыши end end)
  23. Наверное потому, что getRealTime() на сервере, возвращает время сервера, а getRealTime() на клиенте возвращает время клиента. Как вариант, все операции со временем выполняй на стороне сервера. Если не хочешь, то просто когда trigger'ишь на клиент, передавай в качестве параметра реальное время (но это очень плохое решение).
  24. Не знаю что за карты, но в любом случае сделанные вручную через Map Editor. И скорее всего использовалась замена стандартных объектов Мне интересен процесс, где бы его изведать? Полёт фантазии
×
×
  • Create New...