HikkaSurito
Пользователь
Ладно, я писал в один тред, но мне кажется тут это больше по теме.
Мне нужен маленький скриптик для дарк рп.
Ну, или скорее корректировка.
Вот на хл2рп есть карты, типа сити 17 и прочее. Там есть слайдер двери, которые нельзя открыть. Сделано это для того, чтобы потом подставить скрипт, дабы их могли открывать только комбайны. Но вот проблема, у меня есть чистый скрипт на открывание этих дверей, но чистый он потому, что в нем нет вайтлиста для комбайнов, их могут открывать все, в т.ч. гражданские.
А вот мне нужен этот самый вайтлист. Когда я пытался обратиться за этим на форум фейспанч, мне попытались помочь. Написали такие скрипты, но они не работали. Комбайны просто не могли открыть эти двери, как и гражданские. То есть, скрипт переставал работать. Так что если тут есть хорошие скриптеры, надеюсь на помощь в починке этих скриптов.
P.S. Да, мне нужен вайтлист на работы, типа эти двери может открывать только team_helix и т.д.
А теперь, сами скрипты:
Чистый:
Первая попытка:
Вторая попытка:
Все, надеюсь на помощь, на русском я хотя бы свободно могу расписать все как есть.
Мне нужен маленький скриптик для дарк рп.
Ну, или скорее корректировка.
Вот на хл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);
Все, надеюсь на помощь, на русском я хотя бы свободно могу расписать все как есть.