Jump to content

YND

Members
  • Content Count

    34
  • Joined

  • Last visited

Community Reputation

0 Neutral

About YND

  • Rank
    Rat
  1. Что в таком случае делать? isLineOfSightClear говорит, что все чисто, на внешний вид препятствий нет, но пули летят в стол. UPD: дело даже не в столе, он и впритык стреляет, но не попадает. Буду искать причину.. function sellerAim(player, ped) if getElementType(player) == "player" and getElementType(ped) == "ped" then local pedhp = getElementHealth ( ped ) if pedhp > 0 and (isPlayerDead(player) == false) then local x,y,z = getElementPosition( player ) local ex,ey,ez = getElementPosition( ped ) local isclear = isLineOfSightClea
  2. Спасибо. Но если отменить эвент, то анимация один раз применится и больше эта функция никогда не вызовется; это же лучше, чем если она будет вызываться каждый раз, когда пед в стриме, ведь анимация все равно остается. Разве не так? function startPeds( ) if getElementType( source ) == "ped" then setPedAnimation( source, "SHOP", "SHP_Serve_Idle" ) removeEventHandler("onClientElementStreamIn", source, startPeds) end end addEventHandler("onClientElementStreamIn", resourceRoot, startPeds) И еще: есть ли вместо "resourceRoot" какой-нибудь "элемент-родитель", кото
  3. Помогите же Если до вызова функции я не видел в лицо педа, независимо от задержки её выполнения/рестарта ресурса, то к нему анимация не применяется. Почему так? Что делать? Не выполнять же эту функцию, когда кто-нибудь увидит этого педа, а потом отменять евент, ерунда же..
  4. Продублирую тут, так как в "Примеры" никто, видимо, не заходит. Нужно заменить текстуру объекта: addEventHandler ( 'onClientResourceStart', resourceRoot, function() txd_deletedAmmo = engineLoadTXD ( "txd/2notherbuildsfe.txd" ) engineImportTXD ( txd_deletedAmmo, 18034 ) if engineImportTXD ( txd_deletedAmmo, 18041 ) == true then outputChatBox "Текстура загрузилась" else outputChatBox "ТЕКСТУРА НЕ ЗАГРУЗИЛАСЬ" end end ) <meta> <info author="noob" name="ammoResource" version="1.0" type
  5. addEventHandler ( 'onClientResourceStart', resourceRoot, function() txd_deletedAmmo = engineLoadTXD ( "txd/2notherbuildsfe.txd" ) engineImportTXD ( txd_deletedAmmo, 18034 ) if engineImportTXD ( txd_deletedAmmo, 18041 ) == true then outputChatBox "Текстура загрузилась" else outputChatBox "ТЕКСТУРА НЕ ЗАГРУЗИЛАСЬ" end end ) <meta> <info author="noob" name="ammoResource" version="1.0" type="script" /> <oop>true</oop> <script src="buyammo.lua" type="client" /&g
  6. У меня есть таблица созданных пикапов pickup[1]; pickup[2]...pickup[n]. Как прикрепить к ним событие "onPickupHit"? Прицепить его к "pickup" не вышло. Прицеплять к каждому - не вариант. Прицепить к руту - есть пикапы, для которых не нужно, чтобы срабатывало событие, а делать так, наверное, глупо. Что тогда делать? for i=1, ido if source == pickup[i] then --code return end end Табуляцию не могу сделать, так как пишу прямо тут. UPD: Как сделать видимым пикап, лишь для одного игрока? gamePickup[1] = createPickup (830.70001, -872.79999, 68.8, 107.9, 3, 1247); setElementVisibleTo
  7. Снимаю шляпу перед вами. Очень хорошо все расписано. ИМХО, стоит подредактировать и добавить в уроки.
  8. Так работает: local cars = {} local cars_meta = { __call = function(self, car) --<<<<<< setVehiclePaintjob (car, 2) --<<<<<< end } setmetatable(cars, cars_meta) addCommandHandler("mt", function() cars(cars[1]) -- тут я cars[1] передаю в качестве аргумента end) А так выдает, что "call method 'cars' - nil". local cars = {} local cars_meta = { __call = function(self) --<<<<<< setVehiclePaintjob (self, 2) --<<<<<< end } setmetatable(cars, cars_meta) addCommandH
  9. Это понятно, непонятно то, как сделать одну функцию для n объектов. Т.е. есть, например, функция: function cars:delDoor(args) --body end Для конкретного объекта можно её вызвать так (но в данном случае self = cars): cars:delDoor(carMustang) cars:delDoor(carBus) cars:delDoor(carBullet) Но как её вызвать так?: carMustang:delDoor() carBus:delDoor() carBullet:delDoor()
  10. cars = {} cars_prototype = {model = 566, x = 1421.6, y = -1345.9, z = 13.6 , rx = 0, ry = 0, rz = 0, carText = "Text"} cars_meta = {__index = cars_prototype} function cars:new (o) o = o or {} setmetatable(o, cars_meta) return createVehicle(o.model,o.x,o.y,o.z,o.rx,o.ry,o.rz,o.carText) end function cars:paintjob setVehiclePaintjob (self, 2) end addCommandHandler("mtcv", function() for i=1, 2 do cars[i] = cars:new{model = 560, carText = "Sultan"} end end) addCommandHandler("mt", function cars[1]:paintjob end) Восьмой час уж
  11. А чем он небезопасен? Просто если делать по вашему примеру, то придется каждый раз проверять все (100-1000) маркеров на "isElementWithinMarker()", что, как мне кажется, более ресурсоёмко, чем 2 лишних эвента, не так ли?
  12. Спасибо за ответ, но как я понял, каждый раз придется проверять каждый маркер на "isElementWithinMarker()". Поэтому, буду использовать эвенты onClientMarkerHit и onClientMarkerLeave, и записывать их с помощью setElementData(localPlayer, "inMarker", source) Если так делать не стоит, напишите, пожалуйста.
  13. "idMarkerGet" равен ведь "test text", значит getMarkers должен вернуть "test text", но, не возвращает.
  14. Спасибо. Не будет ли это слишком ресурсоёмко, при большом количестве маркеров? UPD: В серверном файле, где создаются маркеры, в консоль выводит "corona", а в клиентском файле, не выводит "так как outputDebugString - bollean ". outputDebugString(getMarkerIcon(getElementByID("marker name"))) UPD2: И мой первый вариант не работает. В "Ybuilding/meta.xml" прописано: function="getMarkers" type="server" /> В серверном файле: function getMarkers ( idMarkerGet ) return idMarkerGet end И при вызове функции из клиентского файла outputDebugString(getMarkers("test text"))
×
×
  • Create New...