Flaker Posted August 9, 2012 Share Posted August 9, 2012 Можно как-то отключить фатальное поврежнение транспорта (падение до 0 хп) если оно перевернулось? Но при этом хотелось бы оставить остальные повреждения - тараны, удары, стрельбу. Если я правильно тебя понял, то ты хочешь, чтобы автомобиль не терял хп, когда лежит на крыше? Если да, то вот: addEventHandler("onVehicleDamage", getRootElement(), function(lossHP) if isVehicleOnRoof(source) then setElementHealth(source, getElementHealth(source)+lossHP) end end ) Вот функция isVehicleOnRoof: function isVehicleOnRoof(vehicle) local rx,ry=getElementRotation(vehicle) if (rx>90 and rx<270) or (ry>90 and ry<270) then return true end return false end Не проверял, но должно работать. По-моему ивент onVehicleDamage нельзя отменить, поэтому нужно устанавливать хп. В данном случае, если машина лежит перевернутая, то при стрельбе и таране и всех остальных видах урона, машина не получит дамаг. (Так как он востановится) Link to comment
Vamp1r Posted August 9, 2012 Share Posted August 9, 2012 В данном случае, если машина лежит перевернутая, то при стрельбе и таране и всех остальных видах урона, машина не получит дамаг. (Так как он востановится) Только что проверил. Событие не вызывается, когда автомобиль лежит на крыше. Вызывается только при повреждениях (например, когда автомобиль катится на крыше). Действовать нужно немного по-другому. При помощи события onVehicleDamage отслеживать весь полученный урон и сохранять его. Создать таймер, который проверял бы, лежит транспорт или нет. Если лежит, то сравниваем урон полученный через onVehicleDamage с 1000 - getElementHealth(автомобиль), и если урон транспорта больше, то ставим правильный урон, из onVehicleDamage Link to comment
Flaker Posted August 9, 2012 Share Posted August 9, 2012 Помему просто обработаться и востановится урон не успевает! По алгоритму то, при любом виде дамага, повреждения востанавливаются! Действовать нужно немного по-другому. При помощи события onVehicleDamage отслеживать весь полученный урон и сохранять его. Создать таймер, который проверял бы, лежит транспорт или нет. Если лежит, то сравниваем урон полученный через onVehicleDamage с 1000 - getElementHealth(автомобиль), и если урон транспорта больше, то ставим правильный урон, из onVehicleDamage Слишком большая нагрузка! Таймер который проверяет все машины, да и еще массив, который должен хранить дамаг! Вобщем все это дело очень сильно нагружать сервер будет! И кстати всеравно таймер не будет успевать проверить все машины... Их могут подорвать раньше чем сработает таймер! Link to comment
Vamp1r Posted August 9, 2012 Share Posted August 9, 2012 Помему просто обработаться и востановится урон не успевает!По алгоритму то, при любом виде дамага, повреждения востанавливаются! Действовать нужно немного по-другому. При помощи события onVehicleDamage отслеживать весь полученный урон и сохранять его. Создать таймер, который проверял бы, лежит транспорт или нет. Если лежит, то сравниваем урон полученный через onVehicleDamage с 1000 - getElementHealth(автомобиль), и если урон транспорта больше, то ставим правильный урон, из onVehicleDamage Слишком большая нагрузка! Таймер который проверяет все машины, да и еще массив, который должен хранить дамаг! Вобщем все это дело очень сильно нагружать сервер будет! И кстати всеравно таймер не будет успевать проверить все машины... Их могут подорвать раньше чем сработает таймер! Только что проверил. Обрабатывал 5000 автомобилей, каждые 200 мс (таймером). На выполнение каждой обработки уходило 13-15 мс. Нагрузка не слишком велика. И что значит таймер не будет успевать? Чушь. Таймер обрабатывает за 200 мс весь транспорт. Link to comment
Flaker Posted August 9, 2012 Share Posted August 9, 2012 Незнаю незнаю... Можно конечно и так... Но лично я бы не стал бы так грузить сервак. Но тут уж каждый сам решает, так что не буду осуждать этот вариант. Link to comment
H1TM4N Posted August 11, 2012 Share Posted August 11, 2012 Возможно изменить размер приаттаченого объекта к элементу через attachElements? Link to comment
Flaker Posted August 11, 2012 Share Posted August 11, 2012 Возможно изменить размер приаттаченого объекта к элементу через attachElements? Поясни... Не очень понятно что конкретно нужно... Link to comment
H1TM4N Posted August 11, 2012 Share Posted August 11, 2012 Возможно изменить размер приаттаченого объекта к элементу через attachElements? Поясни... Не очень понятно что конкретно нужно... создал объект, приаттачил его к игроку. Объект слишком большой. Его можно изменить в размерах? Link to comment
AMARANT Posted August 11, 2012 Share Posted August 11, 2012 Можно конечно, Kenix дал функцию. Link to comment
562141 Posted August 12, 2012 Share Posted August 12, 2012 Всем привет ))) Народ подскажите как сделать чтоб если ты в тиме например копы то тебя телепортирует якобы на базу Link to comment
Other Languages Moderators Disinterpreter Posted August 12, 2012 Other Languages Moderators Share Posted August 12, 2012 Всем привет ))) Народ подскажите как сделать чтоб если ты в тиме например копы то тебя телепортирует якобы на базу Проверяешь в тиме ли игрок, если игрок в тиме то тпшиш его на базу. Link to comment
562141 Posted August 12, 2012 Share Posted August 12, 2012 подскажи комаду для проверки если можеш Link to comment
562141 Posted August 12, 2012 Share Posted August 12, 2012 function TeamFunction () local {D} = getTeamFromName ( teamName ) if ( theTeam ) then local players = getPlayersInTeam ( {D} ) for playerKey, playerValue in ipairs ( players ) do spawnPlayer ( playerValue, 0.0, 0.0, 5.0, 90.0, 0 ) end end end addEventHandler( "onResourseStart", TeamFunction ) {D} Это тиам Link to comment
Flaker Posted August 12, 2012 Share Posted August 12, 2012 function TeamFunction () local {D} = getTeamFromName ( teamName ) if ( theTeam ) then local players = getPlayersInTeam ( {D} ) for playerKey, playerValue in ipairs ( players ) do spawnPlayer ( playerValue, 0.0, 0.0, 5.0, 90.0, 0 ) end end end addEventHandler( "onResourseStart", TeamFunction ) {D} Это тиам O____________O Тебе надо когда игрок заспавнился за полицию, его телепортировало на базу? Так? Link to comment
Flaker Posted August 12, 2012 Share Posted August 12, 2012 addEventHandler ( "onPlayerSpawn", root, function ( posX, posY, posZ, spawnRotation, theTeam, theSkin, theInterior, theDimension ) if ( getTeamName ( theTeam ) == "Police" ) then setElementPosition ( source, 0, 0, 0, true ) end end ) Link to comment
TaHkep Posted August 12, 2012 Share Posted August 12, 2012 есть у меня такая идея, чтоб на сервере было два ак, один простой, а второй тактический, не спешите писать что я могу второй заменить вместо м4, так как тоже самое я хочу сделать с м4 что мне пришло в голову: поставить обычный ак, если игрок находиться в определенном тиме, то изменить видимость оружия, а потом просто прицепить к костям новую модель ак, которая не будет оружием, а просто модель. вот что у меня получилось: клиент function kickScreen () myWeapon = getPedWeapon(getLocalPlayer()) if ( myWeapon ) then triggerServerEvent( "kickPl", getLocalPlayer(), "Hello World!" ) end end addEventHandler ( "onClientResourceStart", getRootElement(), kickScreen ) сервер function kickPlay ( kicked ) myWeaponi = getPedWeapon(source) setElementVisibleTo ( myWeaponi, getRootElement(), false ) end addEvent( "kickPl", true ) addEventHandler( "kickPl", getRootElement(), kickPlay ) но, это не работает... выдает ошибку WARNING: ese/ser.lua:r: Bad argument @ 'setElementVisibleTo' [Expected element at argument 1, got number '31' ] также был такой вариант скрипта: function kickScreen () myWeapon = getPedWeapon(getLocalPlayer()) setElementAlpha(myWeapon, 0) end addEventHandler ( "onClientResourceStart", getRootElement(), kickScreen ) но он тоже выдает ошибку WARNING: ese/client.lua:2: Bad argument @ 'setElementAlpha' я так понимаю что проблема в myWeapon = getPedWeapon(getLocalPlayer()) потому что это не элемент... Link to comment
Flaker Posted August 12, 2012 Share Posted August 12, 2012 Ты когда смотришь функцию, ты первым делом смотри что она возвращает. так вот getPedWeapon возвращает id оружия: ReturnsReturns an int indicating the type of the weapon the ped has in the specified slot. If the slot is empty, it returns 0. It should be noted that if a ped runs out of ammo for a weapon, it will still return the ID of that weapon in the slot (even if it appears as if the ped does not have a weapon at all), though getPedTotalAmmo will return 0. Therefore, getPedTotalAmmo should be used in conjunction with getPedWeapon in order to check if a ped has a weapon. Link to comment
TaHkep Posted August 13, 2012 Share Posted August 13, 2012 тогда возможно ли использовать текстуру как элемент? function kickScreen () txd = engineLoadTXD ( "data/ak.txd" ) engineImportTXD ( txd, 355 ) dff = engineLoadDFF ( "data/ak.dff", 355 ) engineReplaceModel ( dff, 355 ) setElementAlpha(txd, 0) end addEventHandler ( "onClientResourceStart", getRootElement(), kickScreen ) Link to comment
_Dark_ Posted August 13, 2012 Share Posted August 13, 2012 Объект — это элемент. Вы можете взять любой объект, заменить его текстуру, а затем делать с ним все, что хотите. Прикреплять (attachElements) элементы к игроку можно только этих типов, поэтому TXD, DFF вы прикрепить к игроку не сможете, как вы хотите. Markers Blips Objects Players Vehicles Sounds Colshapes Link to comment
Flaker Posted August 13, 2012 Share Posted August 13, 2012 Я предполагаю, что можно сделать так: В Map Editore находишь самый ненужный объект) Заменяешь его модель и прикрепляешь к игроку как оружие... Хотя конечно такой замененный объект может на карте оригинальной встретится Ну это вобщем как вариант... Link to comment
DakiLLa Posted August 13, 2012 Share Posted August 13, 2012 Я предполагаю, что можно сделать так:В Map Editore находишь самый ненужный объект) Заменяешь его модель и прикрепляешь к игроку как оружие... Хотя конечно такой замененный объект может на карте оригинальной встретится Ну это вобщем как вариант... Ну взять какой-нибудь там скомканный листок с номером (можно найти в группе Miscellaneous, насколько я помню). Таких едва заметных объектов в игре навалом, так что проблем не должно возникнуть. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now