Jump to content

nikitafloy

Members
  • Posts

    419
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by nikitafloy

  1. Наверное так? addCommandHandler("timeout", function() outputChatBox("Таймаут команды на две секунды") setTimer(function() outputChatBox("Команда выполнена...") end, 2000, 1) end ) Нет, нет, я про getTickCount(). Примерный алгоритм: Отправка команды, запрос на инф-ю времени о получении данной командой данным игроком ранее, разность данных, вывод в n-переменной, если время прошло более чем 2 000 мс, то отправить команду, если нет, то вернуть. Не пользовался getTickCount() ранее, в функции он мне возвращает данные timeup сервера.
  2. Как установить тайм-аут на команде? Допустим сейчас требуется поставить таймер использования на починку авто.
  3. Использовал, я же писал, что затемнение идет после телепорта, а не во время него. И самое главное что мне нужно - исправить баг с телепортом из интерера. Ин-фа инт-ра которого берется из 1-ого пикапа...
  4. Пользуюсь заготовкой телепорта с форума: local Teleports = { --Создаем список телепортов { x=2244.6, y=-1664.8, z=15.5, pickupInt=0, pickupDim=0, teleX=207.7, teleY=-109.6, teleZ=1005.2, rot=0, int=15, dim=0}; { x=207.7, y=-110.9, z=1005.2, pickupInt=15, pickupDim=0, teleX=2244.9, teleY=-1663.4, teleZ=15.5, rot=0, int=0, dim=0} } addEventHandler ( "onResourceStart", resourceRoot, --При старте этого ресурса проходимся по массиву Teleports и создаем телепорты(пикапы) function ( ) for _,teleport in ipairs(Teleports) do --Цикл прохода по списку --teleport в данном случае это массив. В массиве Teleports это строчка { x=, y=, z=, teleX=, teleY=, teleZ=, rot=, int=, dim=}; --При каждом проходе позиция teleport сдвигается на 1 от предыдущей local TelePickup = createPickup(teleport["x"], teleport["y"], teleport["z"], 3, 1318) --Создем пикап if ( TelePickup ) then --Если пикап создан setElementInterior ( TelePickup, teleport["pickupInt"] ) setElementDimension ( TelePickup, teleport["pickupDim"] ) setElementData ( --Записываем в его дату "TeleportData", массив с позициями телепорта TelePickup, "TeleportData", { x = teleport.teleX, y = teleport.teleY, z = teleport.teleZ, rot = teleport.rot, int = teleport.int, dim = teleport.dim } ) addEventHandler ( "onPickupHit", TelePickup, onTeleportPickupHit ) --Добавляем эвент, при входе на этот пикап end end end ) function onTeleportPickupHit(hitElement) if ( getElementType ( hitElement ) == "player" and not isPedInVehicle ( hitElement )) then local TeleportData = getElementData(source, "TeleportData") --получаем массив с позицией телепортации setElementInterior ( hitElement, TeleportData["int"] ) setElementDimension ( hitElement, TeleportData["dim"] ) setElementPosition ( hitElement, TeleportData["x"], TeleportData["y"], TeleportData["z"], true ) end cancelEvent() end Но работает не всегда. А т.е., допустим, я вхожу в здание, всё ОК, при выходе интерьер не изменяется. К тому же я не дошел до плавного 'потемнения' экрана. Оно срабатывает после телепорта, а не во время него. Собственно 2 вопроса: Как исправить данный баг с телепортом из интерьера на улицу (0 инт). Скидывайте, если есть другие способы ТП-а; Как сделать плавное 'потемнение' экрана.
  5. Благодарю. Тогда как сделать проверку на то, состоит ли player в двух группах? https://wiki.multitheftauto.com/wiki/IsObjectInACLGroup Пробовал, не работает. Срабатывает только первое условие, второе нет. Т.е. я запрашиваю состоит ли челвоек в группе #1 или группе #2. Но если первой не удовлетворяет, то дальше проверка не идет. if isObjectInACLGroup ( "user." .. getAccountName ( getPlayerAccount ( Player )), aclGetGroup ( "FBI" ) ) or isObjectInACLGroup ( "user." .. getAccountName ( getPlayerAccount ( Player )), aclGetGroup ( "Security" ) ) and allVehicles[source] ~= getAccountName( getPlayerAccount( Player ) ) and not veh[ getElementModel( source ) ] then _______________________________ Создается 2 пикапа + действует для любых пикапов. Как локализовать? Почему создается по 2-ому кругу 2 пикапа, а не 1? local coordM = { {1320.80005, 1254.69995, 14.6}, ... {2637.19995, -1471.30005, 16.5} } function createPU() local rnd1 = math.random (1, #coordM) pick = createPickup ( coordM[rnd1][1], coordM[rnd1][2], coordM[rnd1][3], 3, 1274, 99999999999999999999 ) outputChatBox ( "На карте указан маркер (Стрелочка), где находятся деньги!", getRootElement(), 140, 215, 42, true ) outputChatBox ( "Ваша цель - добраться первым и забрать их!", getRootElement(), 140, 215, 42, true ) createBlipAttachedTo (pick, 3, 1, 0, 0, 0, 255, 0, 450 ) end function check() local attached = getAttachedElements ( pick ) if ( attached ) then for k,element in ipairs(attached) do if getElementType ( element ) == "blip" then destroyElement ( element ) destroyElement ( pick ) end end end end setTimer ( check, 899999, 0 ) setTimer ( createPU, 900000, 0 ) function destroy( thePlayer ) outputChatBox ( getPlayerName ( thePlayer ) .. " нашел один из пикапов! Поздравляем!", getRootElement(), 140, 215, 42, true ) givePlayerMoney ( thePlayer, 50000 ) local attached = getAttachedElements ( pick ) if ( attached ) then for k,element in ipairs(attached) do if getElementType ( element ) == "blip" then destroyElement ( element ) end end end end addEventHandler ( "onPickupUse", getRootElement(), destroy )
  6. Благодарю. Тогда как сделать проверку на то, состоит ли player в двух группах?
  7. aclGetGroup ( "Security" or "Donate" ) Может ли работать корректно? У меня пропускает мимо...
  8. Это не совсем то. Эти данные задаются и при создании пикапа, мне нужно, чтобы пикап не создавался вообще после использования. Ну тогда наверное имеет смысл уничтожить его: addEventHandler( "onPickupHit", твой_пикап, function() destroyElement( source ) end ) Ах да, у меня был destroy только если его никто не юзал. Благодарю.
  9. Это не совсем то. Эти данные задаются и при создании пикапа, мне нужно, чтобы пикап не создавался вообще после использования.
  10. Как запретить пикапу появляться после использования, или убрать его по таймеру.
  11. Я уже сделал это, с помощью копирования новых файликов с офф. сайта. (admin, разных managers,..) И пошли такие строки при запуске скриптов через консоль.
  12. Только без решения ошибок 2/3 ресурсов не запускается.
  13. Многие ресурсы не запускаются из-за данной ошибки: Resource 'wlkst' start was requested (Not starting resource wlkst as this server version is too low (1.3.2 required) ) Пакет файлов этой версии где найти не знаю. Как решить данную проблему?
  14. Не знаю что за карты, но в любом случае сделанные вручную через Map Editor. И скорее всего использовалась замена стандартных объектов Мне интересен процесс, где бы его изведать?
  15. Интересно, откуда берутся такие карты, как Акина, Окару и пр. ? Как их конвертировать из формата для GTA SA в формат, который считывается сервером?
  16. sortGC = { Admin = {137, 0, 255}, SuperModerator = {255, 96, 0}, Helper = {0, 128, 255}, Garant = {255, 128, 0}, Security = {0, 51, 255}, DT = {255, 0, 0}, Donate = {255, 213, 0}, Everyone = {255, 222, 0} } local theplayerblip = getBlipAttachedTo(source) local blips = getElementsByType ( "blip" ) for blipK, blipV in ipairs ( blips ) do if getElementAttachedTo( blipV ) == thePlayer then if isObjectInACLGroup ( "user." .. getAccountName ( getPlayerAccount ( source )), aclGetGroup ( "#" ) ) then setPlayerNametagColor (source, #) setBlipColor (theplayerblip, #, 255) end end Как применить данную таблицу в коде теперь? И видно, что цвет блипа устанавливается для всех. Как установить индивидуальность?
  17. Некорректный код снизу, который я резал и исправлял по шаблонам. В целом, не получается изменить blip игрока. Дошел только до того, что он изменялся у всех подряд через определенное время. Радар-диско... local theplayerblip = getBlipAttachedTo(source) local blips = getElementsByType ( "blip" ) for blipK, blipV in ipairs ( blips ) do if getElementAttachedTo( blipV ) == thePlayer then if isObjectInACLGroup ( "user." .. getAccountName ( getPlayerAccount ( source )), aclGetGroup ( "Admin" ) ) then setPlayerNametagColor (source, 137, 0, 255) setBlipColor (theplayerblip, 137, 0, 255, 255) elseif isObjectInACLGroup ( "user." .. getAccountName ( getPlayerAccount ( source )), aclGetGroup ( "SuperModerator" ) ) then setPlayerNametagColor (source, 255, 96, 0) setBlipColor (theplayerblip, 255, 96, 0, 255) elseif isObjectInACLGroup ( "user." .. getAccountName ( getPlayerAccount ( source )), aclGetGroup ( "Helper" ) ) then setPlayerNametagColor (source, 0, 128, 255) setBlipColor (theplayerblip, 0, 128, 255, 255) elseif isObjectInACLGroup ( "user." .. getAccountName ( getPlayerAccount ( source )), aclGetGroup ( "Garant" ) ) then setPlayerNametagColor (source, 255, 128, 0) setBlipColor (theplayerblip, 255, 128, 0, 255) elseif isObjectInACLGroup ( "user." .. getAccountName ( getPlayerAccount ( source )), aclGetGroup ( "Security" ) ) then setPlayerNametagColor (source, 0, 51, 255) setBlipColor (theplayerblip, 0, 51, 255, 255) elseif isObjectInACLGroup ( "user." .. getAccountName ( getPlayerAccount ( source )), aclGetGroup ( "DT" ) ) then setPlayerNametagColor (source, 255, 0, 0) setBlipColor (theplayerblip, 255, 0, 0, 255) elseif isObjectInACLGroup ( "user." .. getAccountName ( getPlayerAccount ( source )), aclGetGroup ( "Donate" ) ) then setPlayerNametagColor (source, 255, 213, 0) setBlipColor (theplayerblip, 255, 213, 0, 255) elseif isObjectInACLGroup ( "user." .. getAccountName ( getPlayerAccount ( source )), aclGetGroup ( "Everyone" ) ) then setPlayerNametagColor (source, 255, 222, 0) setBlipColor (theplayerblip, 255, 222, 0, 255) end end end
  18. Каким способом можно создать одноразовый код для команды? Допустим, /mKey Sqfferq, т.е. можно создавать несколько таких кодов, но, после использования, они теряли актуальность.
  19. Благодарю. Как осуществить работу полиции - оглушение игрока с 1 удара, имитация наручников, посадить игрока. На счет посадить - Есть тюрьма, это точка, нужно вычислить разность между позициями игрока и тюрьмы. Т.е. мент приводит игрока в тюрьму, где перед ним несколько камер. Мент вводит команду /p 1, например, и игрока сажает spawnPlayer на позицию тюрьмы #1. Там уже таймер включается, которой освобождает его через опр. время. Опять же респаунит на улицу, например. И можно ли заблочить двери для игрока, если он находится в полицейском автомобиле? Не любитель РП, просто задумка пришла для РПГ.
  20. А...Эм... Вылетела мысль.... Выше кидали то же самое. Вроде, что-то здесь должно быть по-другому, как мне показалось. Сейчас посмотрю... Ах, да.. Это не для команд выполнения, а для маркера. Заходишь на маркер - идет проверка. Сразу же вопрос по теме маркеров. Эвент выполняется при условии, если игрок зашел на маркер. Но что делать, если их >1? Получается, что он будет выполнять самую первую функцию...
  21. if isObjectInACLGroup ( "user." ..tostring(getAccountName(getPlayerAccount(player))) , aclGetGroup ( "Security" ) ) then Bad argument @getAccountName Expected account at argument 1, got boolean.
  22. Все, что связано с админкой, не руссифицировано!
  23. local skinID = { [280] = true, [281] = true, [282] = true, [283] = true, [284] = true, [288] = true, [228] = true, [286] = true } local skinIDrnd = { {280}, {281}, {282}, {283}, {284}, {288}, {228}, {286} } function giveWeapSec ( player, cmd ) if ( isObjectInACLGroup ( "user." .. getAccountName ( getPlayerAccount ( player )), aclGetGroup ( "Security" ) ) ) then if skinID [ getElementModel ( player ) ] ~= nil then setPedSkin ( player, skinIDrnd[ math.random ( 1, #skinIDrnd ) ] ) giveWeapon ( player, 31, 300, true ) giveWeapon ( player, 24, 90, true ) setElementHealth ( player, 100 ) setPedArmor ( player, 100 ) else giveWeapon ( player, 31, 300, true ) giveWeapon ( player, 24, 90, true ) setElementHealth ( player, 100 ) setPedArmor ( player, 100 ) end end end addCommandHandler( "gwSec", giveWeapSec ) Не выдается рандомный скин. Наверняка проблема в извлечением элементов таблицы. И как не делать 2 таблицы, а пользоваться одной, в данном случае, подскажите. Спасибо.
  24. Админка стандартная. Руссифицировано то, что видно для игроков. ---- Первое, Что это?
  25. Да вроде как и так последние стоят. Я их руссифицировал. Если я сейчас их стану обновлять, геморой заново начнется.
×
×
  • Create New...