• Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами Публичной оферты Проекта NetZONA.org: https://netzona.org/help/public-offer/

  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами использования Ваших файлов cookie на Проекте NetZONA.org: https://netzona.org/help/cookies/

  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с Политикой конфиденциальности Проекта NetZONA.org: https://netzona.org/pages/privacy-policy/

  • Ответы на основные вопросы: https://netzona.org/threads/populjarnye-voprosy-i-otvety-na-nix.6122/

  • Приветствуем на сайте, Гость! Приобрести (купить) Информационную услугу (в том числе группу "Проверенный") на Проекте NetZONA.org: https://netzona.org/account/upgrades

Заказать скрипт

  • Автор темы Автор темы Neon
  • Дата начала Дата начала
@☢stalker39☢, тема на запрос на выкладывание скриптов это бесплатно. Либо можно договориться о написании на заказ
Понятно,меня на данный монмент интересует только один скрипт или аддон на лидера фракции для NS.
 
нужен скрипт vending machine
 
Мне нужен маленький скриптик для дарк рп.
Ну, или скорее корректировка.
Вот на хл2рп есть карты, типа сити 17 и прочее. Там есть слайдер двери, которые нельзя открыть. Сделано это для того, чтобы потом подставить скрипт, дабы их могли открывать только комбайны. Но вот проблема, у меня есть чистый скрипт на открывание этих дверей, но чистый он потому, что в нем нет вайтлиста для комбайнов, их могут открывать все, в т.ч. гражданские.
А вот мне нужен этот самый вайтлист. Когда я пытался обратиться за этим на форум фейспанч, мне попытались помочь. Написали такие скрипты, но они не работали. Комбайны просто не могли открыть эти двери, как и гражданские. То есть, скрипт переставал работать. Так что если тут есть хорошие скриптеры, надеюсь на помощь в починке этих скриптов.

P.S. Да, мне нужен вайтлист на работы, типа эти двери может открывать только team_helix и т.д.

А теперь, сами скрипты:

Чистый:

Код:
function KeyPressedUse (ply, key)
    if key == IN_USE then 
        local t = {}   
        t.start = ply:GetPos()   
        t.endpos = ply:GetShootPos() + ply:GetAimVector() * 100   
        t.filter = ply
        local trace = util.TraceLine(t)          
        if trace.Entity and trace.Entity:IsValid() and (trace.Entity:GetClass() == "func_door" or trace.Entity:GetClass() == "prop_door_rotating" or trace.Entity:GetClass() == "prop_dynamic") then
            trace.Entity:Fire("Open")
        end
    end
end
hook.Add( "KeyPress", "KeyPressedUse", KeyPressedUse  )

Первая попытка:

Код:
local jobs = { TEAM_WFYUED,
               TEAM_GYUIO };

function KeyPressedUse (ply, key)
    if key == IN_USE then
        if( !table.HasValue( jobs, _p:Team() ) ) then
            _p:ChatPrint( "Incorrect job" );
            return;
           end
        local t = {}   
        t.start = ply:GetPos()   
        t.endpos = ply:GetShootPos() + ply:GetAimVector() * 100   
        t.filter = ply
        local trace = util.TraceLine(t)          
        if trace.Entity and trace.Entity:IsValid() and (trace.Entity:GetClass() == "func_door" or trace.Entity:GetClass() == "prop_door_rotating" or trace.Entity:GetClass() == "prop_dynamic") then
            trace.Entity:Fire("Open")
        end
    end
end
hook.Add( "KeyPress", "KeyPressedUse", KeyPressedUse  )

Вторая попытка:

Код:
local foo = {
timer.Simple(1, function()
   foo[1] = TEAM_HELIX
   foo[2] = TEAM_CMD_SEC
end)}
local tbl = {
    jobs = ["TEAM_HELIX"] = true,
    doors = {
        ["func_door"] = true,
        ["prop_door_rotating"] = true,
        ["prop_dynamic"] = true
    }
}

-- Jobs does not exist until the gamemode has loaded, so we're gonna do it in here.
hook.Add("InitPostEntity", "insertJobs", function()
    local jobs = {
        [TEAM_HELIX] = true,
    }

    table.Merge(tbl.jobs, jobs);
end);

hook.Add("PlayerUse", "openDoors", function(ply, ent)
    if (not IsValid(ply) or not IsValid(ent)) then return; end

    local tr = util.TraceLine({
        start = ply:GetPos(),
        endpos = ply:GetShootPos() + ply:GetAimVector() * 100,
        filter = ply
    });

    if (IsValid(tr.Entity) and tbl.doors[tr.Entity:GetClass()]) then
        if (tbl.jobs[ply:Team()]) then
            -- If the door is locked then it won't open, uncomment this to make the doors unlock and open
            -- tr.Entity:Fire("unlock");
            tr.Entity:Fire("open", "", .5);
        end
    end
end);

Все, надеюсь на помощь, на русском я хотя бы свободно могу расписать все как есть.
 
@HikkaSurito, пробуй.

Код:
local tblWhiteList = {
    [TEAM_HELIX] = true,
}

function KeyPressedUse(ply, key)
    if key == IN_USE and tblWhiteList[ply:Team()] then
        local t = {}  
        t.start = ply:GetPos()  
        t.endpos = ply:GetShootPos() + ply:GetAimVector() * 100  
        t.filter = ply
        local trace = util.TraceLine(t)
        local tEntity = trace.Entity
        if IsValid(tEntity) and (tEntity:GetClass() == "func_door" or tEntity:GetClass() == "prop_door_rotating" or tEntity:GetClass() == "prop_dynamic") then
            tEntity:Fire("Open")
        end
    end
end
hook.Add("KeyPress", "KeyPressedUse", KeyPressedUse)

В первом случае, неправильный индекс в таблице.
Во втором случае, неправильное применение в таблице. По этому и не работало. Ну я накидал свой вариант, должен работать, но это не точно.
 
@HikkaSurito, пробуй.

Код:
local tblWhiteList = {
    [TEAM_HELIX] = true,
}

function KeyPressedUse(ply, key)
    if key == IN_USE and tblWhiteList[ply:Team()] then
        local t = {}
        t.start = ply:GetPos()
        t.endpos = ply:GetShootPos() + ply:GetAimVector() * 100
        t.filter = ply
        local trace = util.TraceLine(t)     
        if trace.Entity and trace.Entity:IsValid() and (trace.Entity:GetClass() == "func_door" or trace.Entity:GetClass() == "prop_door_rotating" or trace.Entity:GetClass() == "prop_dynamic") then
            trace.Entity:Fire("Open")
        end
    end
end
hook.Add("KeyPress", "KeyPressedUse", KeyPressedUse)

В первом случае, неправильный индекс в таблице.
Во втором случае, неправильное применение в таблице. По этому и не работало. Ну я накидал свой вариант, должен работать, но это не точно.


Сейчас испробую...
Не, не работает
 
Сейчас испробую...
по поводу вайтлиста, тебе нужно чтобы только TEAM_HELIX могли открывать? если да, то должно работать только для TEAM_HELIX ну или тех кто в таблице отмечен.
По поводу индекса TEAM_HELIX, уверен что правильно?
Смотреть в создание работы т.е TEAM_CITIZEN = DarkRP.createJob -- TEAM_CITIZEN это индекс работы.
 
по поводу вайтлиста, тебе нужно чтобы только TEAM_HELIX могли открывать? если да, то должно работать только для TEAM_HELIX ну или тех кто в таблице отмечен.
По поводу индекса TEAM_HELIX, уверен что правильно?
Смотреть в создание работы т.е TEAM_CITIZEN = DarkRP.createJob -- TEAM_CITIZEN это индекс работы.

Так,мне нужно чтобы их открывать могли не только хеликсы, мне нужны разные комбайны.
Хеликса я взял в пример.

TEAM_HELIX = DarkRP.createJob("C24 MPF SU HELIX", {

Первая строчка работы хеликса
 
Так,мне нужно чтобы их открывать могли не только хеликсы, мне нужны разные комбайны.
Хеликса я взял в пример.
добавишь в вайтлист таблицу вручную, вот сюда
Код:
local tblWhiteList = {
    [TEAM_HELIX] = true,
}

пример более лучший
Код:
local tblWhiteList = { -- индексы работ, тип кто может открывать дверь.
    [TEAM_HELIX] = true,
    [TEAM_CITIZEN] = true,
}
 
добавишь в вайтлист таблицу вручную, вот сюда
Код:
local tblWhiteList = {
    [TEAM_HELIX] = true,
}

пример более лучший
Код:
local tblWhiteList = { -- индексы работ, тип кто может открывать дверь.
    [TEAM_HELIX] = true,
    [TEAM_CITIZEN] = true,
}

Ну, сам скрипт не работает, я только что проверил на хеликсе и нифига
 
Ну, сам скрипт не работает, я только что проверил на хеликсе и нифига
Тима хеликс существует?
Скинь сюда как именно ты создаешь эту работу, мб индекс неправильный или что еще.
 
Тима хеликс существует?
Скинь сюда как именно ты создаешь эту работу, мб индекс неправильный или что еще.
Код:
TEAM_HELIX = DarkRP.createJob("C24 MPF SU HELIX", {
color = Color(0, 0, 255, 255),
model = {"models/DPFilms/Metropolice/Playermodels/pm_civil_medic.mdl"},
description = [[Юнит ГО подразделения ХЕЛИКС, медик альянса]],
weapons = {"weapon_medkit",
    "fas2_cweaponry_pmp",
    "weapon_cuff_rope",
    "swep_radiodevice"
    , "stunstick", "battering_ram", "weapon_stunweap"},
command = "HELIX",
max = 2,
salary = 700,
admin = 0,
vote = false,
hasLicense = false,
candemote = false,
category = "SU",
PlayerLoadout = function(ply)
ply:SetHealth(110) -- ХП
ply:SetArmor(75) -- Броня
end,
            type = "SU", --— type of team
requireUnlock = TEAM_01, --— job that need to be unlocked firsy
unlockCost = 75000 --— unlock cost
})

Весь код профы, профа идеально работает
 
lua/autorun/server/combinedoors.lua
Вообщем это все странно, но мой вариант должен работать, я даже и не знаю. Может быть когда-то сделаю другое решение, но пока что нет идей. (кроме абсурдных, которые нагружают сервер)
 
Вообщем это все странно, но мой вариант должен работать, я даже и не знаю. Может быть когда-то сделаю другое решение, но пока что нет идей. (кроме абсурдных, которые нагружают сервер)

Ладно, может кто то еще допишет твой скрипт. Спасибо!
 
Ладно, может кто то еще допишет твой скрипт. Спасибо!

Код:
local tblWhiteList = {
    [TEAM_HELIX] = true,
}

local function KeyPressedUse(ply, key)
    if key == IN_USE then
        print("IN_USE: "..ply:Team())
        local t = {}
        t.start = ply:GetPos()
        t.endpos = ply:GetShootPos() + ply:GetAimVector() * 100
        t.filter = ply
        local trace = util.TraceLine(t)
        local tEntity = trace.Entity
        if (IsValid(tEntity) and (tEntity:GetClass() == "func_door" or tEntity:GetClass() == "prop_door_rotating" or tEntity:GetClass() == "prop_dynamic") and tblWhiteList[ply:Team()]) then
            tEntity:Fire("Open")
        end
    end
end
hook.Add("KeyPress", "KeyPressedUse", KeyPressedUse)

попробуй еще так.
и что тебе будет в консоль сервера писать типо IN_USE: что-то
 
Код:
local tblWhiteList = {
    [TEAM_HELIX] = true,
}

local function KeyPressedUse(ply, key)
    if key == IN_USE then
        print("IN_USE: "..ply:Team())
        local t = {}
        t.start = ply:GetPos()
        t.endpos = ply:GetShootPos() + ply:GetAimVector() * 100
        t.filter = ply
        local trace = util.TraceLine(t)
        local tEntity = trace.Entity
        if (IsValid(tEntity) and (tEntity:GetClass() == "func_door" or tEntity:GetClass() == "prop_door_rotating" or tEntity:GetClass() == "prop_dynamic") and tblWhiteList[ply:Team()]) then
            tEntity:Fire("Open")
        end
    end
end
hook.Add("KeyPress", "KeyPressedUse", KeyPressedUse)

попробуй еще так.
и что тебе будет в консоль сервера писать типо IN_USE: что-то


В консоли ничего не пишет,скрипт не работает.
Сейчас попробую скрипт из треда который мне написал другой парень, секунду.
 
Главная Регистрация
Назад
Сверху