Jump to content

Помогите написать скрипт...


Recommended Posts

Помогите примером скрипта!

Скрипт на группу автомобилей для участников определённой ACL...

Машины должны обладать просто неубиваемостью и всё)

Всё вроде бы легко а написать не выходит( да и я нуб( пока что)

Заранее очень благодарен даже за критику и смех)

Link to comment
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
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

во первых) постить много не стоит, редактируй прошлые посты если после твоих никто не ответил, имхо читать столько мукулатуры не есть хорошо думаю для всех... перейдем к коду)) в функции 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 by Guest
Link to comment
во первых) постить много не стоит, редактируй прошлые посты если после твоих никто не ответил, имхо читать столько мукулатуры не есть хорошо думаю для всех... перейдем к коду)) в функции 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

Не прошло и минуты как опять возникла загадка) Сделала как вы написали запускаю скрипт и каждой машины штук по 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
    
    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

я указал же таблицу не просто так))) есть два способа создать проверку на авто модели непосредственно))

по таблице и просто через источник тобишь приведу 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 by Guest
Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...