Jump to content

sir135

Members
  • Posts

    65
  • Joined

  • Last visited

Everything posted by sir135

  1. My post only for "the_GTA"
  2. I found bug, when converter parsing IDE files and comparing model names with existing model names, and if names differ big or small letters, he skiping this model. Example: IDE file: model name "ODIE_Schraft" exist model name "odie_schraft" pls do indifference small big letters. Or try make autorenamer tool for fix this trouble sorry for bad english, but i russian.
  3. Вспомни мапедитор, как они там курсором безколизийные ловят, я думал этой функцией, пробовал всякие варианты, не получилось, однако обычные объекты детектирует нормально. P.S. В мапедиторе кнопка "E" включает этот режим, и курсор сменивается на красный цвет.
  4. Испробовал различные настройки этой функции, но я так понял что она не детектирует такие объекты, если кто это уже делал, пожалуйста ответьте.
  5. Вот этот мод, который раньше прекрасно работал на радеон 3730 и теперь не работает на гфорсе гт 430. http://www.gtagarage.com/mods/show.php?id=17746 Теперь отвечаю у какой видеокарты, какая поддерживаемая версия шейдеров. radeon hd 3730 - поддерживаемая версия шейдеров 4.0 geForce GT 430 - поддерживаемая версия шейдеров 5.0 И еще, мастер, постарайся довести до хорошего результата, мою тему с голосовым чатом(дистанция).
  6. пробовал устанавливать различные версии, включая самый новый,- не помогло!
  7. Поставил nvidia geForce GT 430 и теперь вода отображается некорректно.
  8. Эффект тот-же, если можешь напиши разработчикам. Была еще проблема, что передавалось только одному человеку в радиусе, добавил сферу чтоб собрать всех людей в радиусе. Вот смотри что получилось. addEventHandler("onPlayerVoiceStart", root, function() outputChatBox("Внимание;- голосовой чат ограничен!(10м)", source) voice_dist = 10 sourX, sourY, sourZ = getElementPosition( source ) for i, thePlayer in ipairs( getElementsByType( 'player' ) ) do tarX, tarY, tarZ = getElementPosition( thePlayer ) if not(source == thePlayer) then distance = getDistanceBetweenPoints3D ( sourX, sourY, sourZ, tarX, tarY, tarZ ) if (distance > voice_dist) then setPlayerVoiceIgnoreFrom(thePlayer, source) setPlayerVoiceIgnoreFrom(source, thePlayer) else voiceSphere = createColSphere( sourX, sourY, sourZ, voice_dist ) nearbyPlayers = getElementsWithinColShape( voiceSphere, "player" ) destroyElement( voiceSphere ) for index, nearbyPlayer in ipairs( nearbyPlayers ) do setPlayerVoiceIgnoreFrom(thePlayer, nil) setPlayerVoiceIgnoreFrom(source, nil) setPlayerVoiceBroadcastTo(source, nearbyPlayer) setPlayerVoiceBroadcastTo(nearbyPlayer, source) end end end end end ) Или если у тебя есть еще идея,- пиши....
  9. Попробую и отпишусь, спасибо за совет.
  10. Разработчики откликнитесь, похоже нам с мастером не получится разрешить эту проблему. Теперь происходит эффект мута(mute) "игроков-источников"(source players)! Думаю, функция setPlayerVoiceIgnoreFrom() это и делает. Есть ли функция, обратная этой по свойствам?
  11. Проблема не решена полностью, попытаюсь объяснить что не так. Люди, находящиеся вдали, блокируются функцией "ignore",- после, они вообще теряют возможность говорить,- как будто их мутят по голосу!
  12. вот: addEventHandler("onPlayerVoiceStart", root, function() outputChatBox("Внимание;- голосовой чат ограничен!(10м)", source) local posX, posY, posZ = getElementPosition( source ) for i, thePlayer in ipairs( getElementsByType( 'player' ) ) do local tarX, tarY, tarZ = getElementPosition( thePlayer ) if not(source == thePlayer) then local distance = getDistanceBetweenPoints3D ( posX, posY, posZ, tarX, tarY, tarZ ) if (distance > 10) then setPlayerVoiceIgnoreFrom(thePlayer, source) end end end end)
  13. Мастер, если бы все было так просто, я бы и не обращался на форум, конечно же я несколько вариантов пытался делать. Делал именно на серверной части и результат нулевой. Во первых функции и события в новизну! Так что если можешь напиши пожалуйста как должно быть.
  14. а на "серверной" этого никак не сделать?
  15. Более толковый ответ можете дать? Я не прошу как решить проблему ограничения обычного чата,- прошу помогите мне с голосовой связью!
  16. Вот, после того как мой скрипт не работал, я написал именно эти строки, чтобы удостовериться в неработоспособности этой функции. Вот пример: addCommandHandler("test", function(thePlayer, command) setPedAnimation ( thePlayer,"carry", "crry_prtial", -1, false, true, true, true ) local animblock, anim = getPedAnimation ( thePlayer ) outputChatBox(animblock.." "..anim, thePlayer) end) Дебуг указывает на строку с "local animblock, anim = getPedAnimation ( thePlayer )". (attempt to call global "getPedAnimation" (a nil value))
  17. Всем доброго времени суток, похоже не исправна функция getPedAnimation(). Проверьте и испишитесь, буду ждать ответа.
  18. Баг MTA 1.1 Начиная с буилда 2986 по текущий, функция setSoundPosition не работает, пожалуйста примите меры, иначе в релизе она тоже работать не будет. Если кто умеет писать в баг трекер, напишите туда и сообщите об этом..
  19. Последний скрипт работает на все сто, всем спасибо за помощь, особая благодарность Easterdie, за разъяснение сути вопроса, и MX_Master за готовый скрипт.
  20. Мастерь, спасибо, но твоя формула неприменима ко всем случаям поворота.(не работает)
  21. Какие из переменных начальный, конечный углы?
  22. Всем, доброго времени суток. Допустим, начальный угол поворота объекта равен 300. Мне нужно его повернуть по кратчайшему пути так, чтобы его угол стал 5(Верная разность между ними 65(кратчайший путь), а не 295, как вы подумали). Как вы видите, простое вычитание из большего меньшее тут не пройдет. Я говорю про самый последний аргумент функции moveObject, поворот по оси Z. Известно, ели давать отрицательные значения, то объект поворачивается направо,- положительные влево.
  23. Скрипт работает только для последнего, зашедшего на сервер. Клиентская часть: addEventHandler( "onClientResourceStart", getResourceRootElement( getThisResource() ), function() triggerServerEvent ( "start_fuel", getRootElement(), getPlayerName(getLocalPlayer())) end ) addEvent("show_fuel",true) addEventHandler("show_fuel",getRootElement(), function(fuel, flag) prflag = flag fl = fuel fuelrender2() end ) addEventHandler("onClientRender", getRootElement(), function() if (prflag == 1) then fp = dxDrawImage(838,642,185,87, "fuel/images/fuelful.png", 0.0,0.0,0.0,tocolor(255, 255, 255, 255),false) end end ) function fuelrender2() if (prflag == 1) then fm = dxDrawImage(820+fl, 684, 50,26, "fuel/images/fuelmark.png", 0.0,0.0,0.0,tocolor(255, 255, 255, 255),false) end end addEventHandler("onClientRender", getRootElement(), fuelrender2) Серверная часть: refuel = 0 addEvent("start_fuel",true) addEventHandler("start_fuel",getRootElement(), function(nameCurrentPlayer) CurrentPlayer = getPlayerFromName(nameCurrentPlayer) bindKey ( CurrentPlayer , "i", "down", engine_operation) --bindKey ( CurrentPlayer , "l", "both", door_operation) fuelmark1 = createMarker ( 1944.852, -1769.554, 12.0125, "cylinder", 1.5, 255, 128, 0, 17 ) fuelmark2 = createMarker ( 2209.816, 2481.934, 9.8203, "cylinder", 1.5, 255, 128, 0, 17 ) fuelmark3 = createMarker ( 604.8804, 1705.273, 5.541, "cylinder", 1.5, 255, 128, 0, 17 ) fuelmark4 = createMarker ( -2414.49, 982.081, 44.2969, "cylinder", 1.5, 255, 128, 0, 17 ) fuelmark5 = createMarker ( -2244.623, -2561.828, 30.9219, "cylinder", 1.5, 255, 128, 0, 17 ) fuelmark6 = createMarker ( -1327.512, 2678.107, 49.0625, "cylinder", 1.5, 255, 128, 0, 17 ) fuelmark7 = createMarker ( -95.1488, -1174.303, 0.9281, "cylinder", 1.5, 255, 128, 0, 17 ) fuelmark8 = createMarker ( -1679.982, 408.9051, 6.2365, "cylinder", 1.5, 255, 128, 0, 17 ) fuelmark9 = createMarker ( 652.03, -571.34, 15.34, "cylinder", 1.5, 255, 128, 0, 17 ) fuelmark10 = createMarker ( -1605.897, -2714.252, 47.5335, "cylinder", 1.5, 255, 128, 0, 17 ) fuelmark11 = createMarker ( -1471.48, 1864.31, 31.64, "cylinder", 1.5, 255, 128, 0, 17 ) fuelmark12 = createMarker ( 1596.5, 2199.1, 9.83, "cylinder", 1.5, 255, 128, 0, 17 ) fuelmark13 = createMarker ( 2145.9, 2748.16, 9.83, "cylinder", 1.5, 255, 128, 0, 17 ) fuelmark14 = createMarker ( 2642.11, 1106.53, 9.83, "cylinder", 1.5, 255, 128, 0, 17 ) fuelmark15 = createMarker ( 2117.42, 920.42, 9.83, "cylinder", 1.5, 255, 128, 0, 17 ) fuelmark16 = createMarker ( 1381.68, 456.26, 18.91, "cylinder", 1.5, 255, 128, 0, 17 ) fuelmark17 = createMarker ( 1002.0087890625, -933.244140625, 41.1796875, "cylinder", 1.5, 255, 128, 0, 17 ) veh_check() end ) function engine_operation() if (isPedInVehicle (CurrentPlayer)) then if (fuel ~= 0) then setVehicleEngineState ( fv, not (getVehicleEngineState(fv))) else tryburn = math.random(1,9) if (tryburn == 5) then setVehicleEngineState ( fv, not (getVehicleEngineState(fv))) end end end end --[[function door_operation() setVehicleLocked ( fv, not (getVehicleLocked(fv))) end]] function veh_check() veh_check_timer = setTimer(veh_check, 5000, 1) if (isPedInVehicle (CurrentPlayer)) then fv = getPedOccupiedVehicle (CurrentPlayer) if (refuel == 0) then fuel = math.random(50,100) killTimer(veh_check_timer) decrease_fuel() else fuel = 100 killTimer(veh_check_timer) refuel = 0 decrease_fuel() end end end function decrease_fuel() dTimer = setTimer(decrease_fuel, 26000, 1) --3250 if isElement(fv) then if (isVehicleBlown (fv)) then flag = 0 triggerClientEvent(CurrentPlayer, "show_fuel", getRootElement(), fuel, flag) killTimer(dTimer) veh_check() end -- if (isElementInWater (fv)) then -- flag = 0 -- triggerClientEvent(CurrentPlayer, "show_fuel", getRootElement(), fuel, flag) -- killTimer(dTimer) -- veh_check() -- end else flag = 0 triggerClientEvent(CurrentPlayer, "show_fuel", getRootElement(), fuel, flag) killTimer(dTimer) veh_check() end if (isPedInVehicle (CurrentPlayer)) then fv = getPedOccupiedVehicle (CurrentPlayer) if (getElementData(fv,"fuel") == false) then fuel = math.random(50,100) setElementData(fv,"fuel",tonumber(fuel)) end fuel = tonumber(getElementData(fv,"fuel")) if (fuel > 0) then if getVehicleEngineState(fv) then fuel = fuel-1 flag = 1 setElementData(fv,"fuel",tonumber(fuel)) triggerClientEvent(CurrentPlayer, "show_fuel", getRootElement(), fuel, flag) else flag = 1 setElementData(fv,"fuel",tonumber(fuel)) triggerClientEvent(CurrentPlayer, "show_fuel", getRootElement(), fuel, flag) end else flag = 1 setElementData(fv,"fuel",0) triggerClientEvent(CurrentPlayer, "show_fuel", getRootElement(), fuel, flag) setVehicleEngineState ( fv, false ) end else if (fuel > 0) then if getVehicleEngineState(fv) then fuel = fuel-1 flag = 0 setElementData(fv,"fuel",tonumber(fuel)) triggerClientEvent(CurrentPlayer, "show_fuel", getRootElement(), fuel, flag) else flag = 0 setElementData(fv,"fuel",tonumber(fuel)) triggerClientEvent(CurrentPlayer, "show_fuel", getRootElement(), fuel, flag) end else flag = 0 setElementData(fv,"fuel",0) triggerClientEvent(CurrentPlayer, "show_fuel", getRootElement(), fuel, flag) setVehicleEngineState ( fv, false ) end end end addEventHandler( "onMarkerHit", getRootElement(), function(hitElement) if (getElementType( hitElement ) == "player") then if (source == fuelmark1) or (source == fuelmark2) or (source == fuelmark3) or (source == fuelmark4) or (source == fuelmark5) or (source == fuelmark6) or (source == fuelmark7) or (source == fuelmark8) or (source == fuelmark9) or (source == fuelmark10) or (source == fuelmark11) or (source == fuelmark12) or (source == fuelmark13) or (source == fuelmark14) or (source == fuelmark15) or (source == fuelmark16) or (source == fuelmark17) then if (isPedInVehicle ( hitElement )) then if (fuel < 100) then setVehicleFrozen ( fv, true ) playSoundFrontEnd ( hitElement, 46 ) refuel = 1 setElementData(fv,"fuel",100) flag = 1 setTimer(setVehicleFrozen, 1000, 1, fv, false ) veh_check() end end end end end )
×
×
  • Create New...