Yashann Posted June 6, 2013 Share Posted June 6, 2013 Помогите примером скрипта! Скрипт на группу автомобилей для участников определённой ACL... Машины должны обладать просто неубиваемостью и всё) Всё вроде бы легко а написать не выходит( да и я нуб( пока что) Заранее очень благодарен даже за критику и смех) Link to comment
Ruga Posted June 6, 2013 Share Posted June 6, 2013 setVehicleDamageProof isObjectInACLGroup прочтите)) Link to comment
Yashann Posted June 6, 2013 Author Share Posted June 6, 2013 setVehicleDamageProof isObjectInACLGroup прочтите)) Спасибо) уже читаю) Link to comment
Yashann Posted June 6, 2013 Author Share Posted June 6, 2013 function car () avto = createVehicle ( 432, 2007.1811, 1544.51, 13.117, 0, 0, 0) setVehicleDamageProof(avto, true) addEventHandler("onVehicleStartEnter",avto , carr ) end addEventHandler ( "onResourceStart", resourceRoot, car ) function carr ( thePlayer, seat, jacked ) accname = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ("user."..accname, aclGetGroup ( "TCT" ) ) then createBlipAttachedTo( avto, 11,thePlayer ) else cancelEvent() end end Знаю что тут так много ошибок что волосы дыбом) но помогите исправить) пожалуйста) так сказать мой первый ужас в студию) Link to comment
Yashann Posted June 6, 2013 Author Share Posted June 6, 2013 И ещё вопрос) как размножить технику не повторяя при этом раз по 10 один и то же код? Link to comment
Yashann Posted June 6, 2013 Author Share Posted June 6, 2013 function car () avto = createVehicle ( 432, 2042.107, 1529.086, 10.49, 0, 0, 0) createBlipAttachedTo( avto, 11) setVehicleDamageProof(avto, true) addEventHandler("onVehicleStartEnter",avto , carr ) end addEventHandler ( "onResourceStart", resourceRoot, car ) function carr ( thePlayer, seat, jacked ) accname = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ("user."..accname, aclGetGroup ( "Admin" ) ) then outputChatBox ("#ffffffРабочее авто: #00ff00Вы заступили на дежурство!", thePlayer, 0,255,0,true) else cancelEvent() end end Исправил) но вопрос остаётся открытым! Как их размножить? Link to comment
Ruga Posted June 6, 2013 Share Posted June 6, 2013 (edited) во первых) постить много не стоит, редактируй прошлые посты если после твоих никто не ответил, имхо читать столько мукулатуры не есть хорошо думаю для всех... перейдем к коду)) в функции carr () не указан source, что значит посадка в любой тс админа будет вызывать продолжение сценария, размножить, создавай внутри функции car() твои авто или создай таблицу внутрь пихай модель тс и проверяй source по модели указанной в таблице model = {[id модели]= true} и непосредственно проверку на model [getElementModel(source)] зачем внутрь функции car пихать event ? onVehicleEnter.. model = { [id ]=true } -- сюда вноси ид модели машины function car () for _, vehicle in ipairs ( getElementsByType("vehicle") ) do -- замечу что атачить блип будет только уже на созданные авто на карте можешь создать их хоть в map editore хоть функцией create главное что бы они были при запуске скрипта, т.е. если они появятся после запуска скрипта то блипов не будет соотвественно if model [getElementModel(vehicle)] then -- проверяем на наличие моделей среди машин createBlipAttachedTo( vehicle, 11) -- атачим блип к этим моделям end end end addEventHandler ( "onResourceStart", resourceRoot, car ) function carr ( thePlayer, seat, jacked ) if model [getElementModel(source)] and seat==0 then -- проверяем посадку игрока именно в нашу модель тс accname = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ("user."..accname, aclGetGroup ( "Admin" ) ) then outputChatBox ("Рабочее авто: Вы заступили на дежурство!", thePlayer, 0,255,0) setVehicleDamageProof(source, true) else cancelEvent() end end end addEventHandler ( "onVehicleStartEnter", getRootElement(), carr ) Edited June 6, 2013 by Guest Link to comment
AMARANT Posted June 6, 2013 Share Posted June 6, 2013 И ещё вопрос) как размножить технику не повторяя при этом раз по 10 один и то же код? Циклами. Link to comment
Yashann Posted June 7, 2013 Author Share Posted June 7, 2013 во первых) постить много не стоит, редактируй прошлые посты если после твоих никто не ответил, имхо читать столько мукулатуры не есть хорошо думаю для всех... перейдем к коду)) в функции carr () не указан source, что значит посадка в любой тс админа будет вызывать продолжение сценария, размножить, создавай внутри функции car() твои авто или создай таблицу внутрь пихай модель тс и проверяй source по модели указанной в таблице model = {[id модели]= true} и непосредственно проверку на model [getElementModel(source)] зачем внутрь функции car пихать event ? onVehicleEnter.. model = { [id ]=true } -- сюда вноси ид модели машины function car () for _, vehicle in ipairs ( getElementsByType("vehicle") ) do -- замечу что атачить блип будет только уже на созданные авто на карте можешь создать их хоть в map editore хоть функцией create главное что бы они были при запуске скрипта, т.е. если они появятся после запуска скрипта то блипов не будет соотвественно if model [getElementModel(vehicle)] then -- проверяем на наличие моделей среди машин createBlipAttachedTo( vehicle, 11) -- атачим блип к этим моделям end end end addEventHandler ( "onResourceStart", resourceRoot, car ) function carr ( thePlayer, seat, jacked ) if model [getElementModel(source)] and seat==0 then -- проверяем посадку игрока именно в нашу модель тс accname = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ("user."..accname, aclGetGroup ( "Admin" ) ) then outputChatBox ("Рабочее авто: Вы заступили на дежурство!", thePlayer, 0,255,0) setVehicleDamageProof(source, true) else cancelEvent() end end end addEventHandler ( "onVehicleStartEnter", getRootElement(), carr ) большое спасибо буду учиться) Link to comment
Yashann Posted June 7, 2013 Author Share Posted June 7, 2013 Не прошло и минуты как опять возникла загадка) Сделала как вы написали запускаю скрипт и каждой машины штук по 100 в одном месте....лаги жуткие...вот model = { [490 ]=true } -- сюда вноси ид модели машины function car () for _, vehicle in ipairs ( getElementsByType("vehicle") ) do -- замечу что атачить блип будет только уже на созданные авто на карте можешь создать их хоть в map editore хоть функцией create главное что бы они были при запуске скрипта, т.е. если они появятся после запуска скрипта то блипов не будет соотвественно createVehicle(490, -1616.40002, 750.09998, -4.9, 0, 0, 0) createVehicle(490, -1612.5, 750, -4.9, 0, 0, 0) createVehicle(490, -1608.90002, 749.90002, -4.9, 0, 0, 0) createVehicle(490, -1604.69995, 749.90002, -4.9, 0, 0, 0) createVehicle(490, -1601.30005, 749.90002, -4.9, 0, 0, 0) createVehicle(490, -1597.5, 749.90002, -4.9, 0, 0, 0) createVehicle(490, -1590.69995, 749.79999, -4.9, 0, 0, 0) createVehicle(490, -1594.30005, 749.79999, -4.9, 0, 0, 0) if model [getElementModel(vehicle)] then -- проверяем на наличие моделей среди машин createBlipAttachedTo( vehicle, 11) -- атачим блип к этим моделям end end end addEventHandler ( "onResourceStart", resourceRoot, car ) function carr ( thePlayer, seat, jacked ) if model [getElementModel(source)] and seat==0 then -- проверяем посадку игрока именно в нашу модель тс accname = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ("user."..accname, aclGetGroup ( "Admin" ) ) then outputChatBox ("Рабочее авто: Вы заступили на дежурство!", thePlayer, 0,255,0) setVehicleDamageProof(source, true) else cancelEvent() end end end addEventHandler ( "onVehicleStartEnter", getRootElement(), carr ) Может я что то не правильно понял? Link to comment
Yashann Posted June 7, 2013 Author Share Posted June 7, 2013 Всё разобрался...Ещё раз спасибо! Link to comment
Yashann Posted June 7, 2013 Author Share Posted June 7, 2013 model = { [490 ]=true } -- сюда вноси ид модели машины function car () createVehicle(490, -1616.40002, 750.09998, -4.9, 0, 0, 0) createVehicle(490, -1612.5, 750, -4.9, 0, 0, 0) createVehicle(490, -1608.90002, 749.90002, -4.9, 0, 0, 0) createVehicle(490, -1604.69995, 749.90002, -4.9, 0, 0, 0) createVehicle(490, -1601.30005, 749.90002, -4.9, 0, 0, 0) createVehicle(490, -1597.5, 749.90002, -4.9, 0, 0, 0) createVehicle(490, -1590.69995, 749.79999, -4.9, 0, 0, 0) createVehicle(490, -1594.30005, 749.79999, -4.9, 0, 0, 0) for _, vehicle in ipairs ( getElementsByType("vehicle") ) do -- замечу что атачить блип будет только уже на созданные авто на карте можешь создать их хоть в map editore хоть функцией create главное что бы они были при запуске скрипта, т.е. если они появятся после запуска скрипта то блипов не будет соотвественно if model [getElementModel(vehicle)] then -- проверяем на наличие моделей среди машин createBlipAttachedTo( vehicle, 11) -- атачим блип к этим моделям setVehicleDamageProof(source, true) end end end addEventHandler ( "onResourceStart", resourceRoot, car ) function carr ( thePlayer, seat, jacked ) if model [getElementModel(source)] and seat==0 then -- проверяем посадку игрока именно в нашу модель тс accname = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ("user."..accname, aclGetGroup ( "TCT" ) ) then outputChatBox ("Рабочее авто: Вы заступили на дежурство!", thePlayer, 0,255,0) else cancelEvent() end end end addEventHandler ( "onVehicleStartEnter", getRootElement(), carr ) Полностью исправленная версия Link to comment
Ruga Posted June 7, 2013 Share Posted June 7, 2013 (edited) я указал же таблицу не просто так))) есть два способа создать проверку на авто модели непосредственно)) по таблице и просто через источник тобишь приведу 2 примера model = { [490 ]=true } -- отсюда мы проверяем по модели, тоесть все машины с этой моделью будут в твоем случае бессмертны local car = createVehicle(490, -1616.40002, 750.09998, -4.9, 0, 0, 0) -- при таком спавне машин на карту можно не закрывать модель а проверять источник по созданному авто тобишь вот function car () createBlipAttachedTo( car , 11) -- атачим блип к созданному тс setVehicleDamageProof(car, true) end addEventHandler ( "onResourceStart", resourceRoot, car ) function carr ( thePlayer, seat, jacked ) if source == car and seat==0 then -- проверка на созданную выше машину, что бы перечислить машины ставь or тоесть source == car or source == car2 or source == car3 и тд. accname = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ("user."..accname, aclGetGroup ( "TCT" ) ) then outputChatBox ("Рабочее авто: Вы заступили на дежурство!", thePlayer, 0,255,0) else cancelEvent() end end end addEventHandler ( "onVehicleStartEnter", getRootElement(), carr ) это конечно зависит от желания. и нужд, но я бы не стал закрывать всю модель, тем более если вручную созхдавать авто через create ... Edited June 9, 2013 by Guest Link to comment
Yashann Posted June 7, 2013 Author Share Posted June 7, 2013 Спасибо перепишу) так действительно удобнее! 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