Хочу, например, сделать машину только для VIP'ов или Premium'ов и выше, чтобы игроки не могли спавнить такую машину (Группы на основе ULX). Подскажите, пожайлуста, код.
Можно использовать вот этот код: hook.Add( "PlayerSpawnVehicle", "NoVehicles", function() return false end ) И этот: if player:IsUserGroup("admin") || player:IsUserGroup("superadmin") || player:IsUserGroup("vip") || player:IsUserGroup("premium") then end
Hds46 (11.01.2014, 16:34) писал:Можно использовать вот этот код: hook.Add( "PlayerSpawnVehicle", "NoVehicles", function() return false end ) И этот: if player:IsUserGroup("admin") || player:IsUserGroup("superadmin") || player:IsUserGroup("vip") || player:IsUserGroup("premium") then end
У меня как обычно ничего не работает. выдаёт лишь море ошибок, видать, код как-то криво вставил. (вставлял в аддон BF3 Scars в lua, в entities в папку с танком и в shared.lua)
Этот BF3 Scars использует Scars Slim.Я нашел функцию спавна машины в Scars Slim.Называется local function CCSpawnSCar( Player, command, arguments ). Попробуй добавить туда в if SCarGetFastConvar["scar_scarspawnadminonly"] == 1 and Player:IsAdmin() == false then вот это: if SCarGetFastConvar["scar_scarspawnadminonly"] == 1 and Player:IsAdmin() == false or !Player:IsUserGroup("vip") or !Player:IsUserGroup("premium") or !Player:IsUserGroup("admin") or !Player:IsUserGroup("superadmin") then Player:PrintMessage( HUD_PRINTTALK, "Only admins,Vips and premiums are allowed to spawn SCars") return false end Директория кода: Scars Slim\lua\autorun\server\s_scarconsole.lua И не забудь включить консольную команду scar_scarspawnadminonly 1. Работает только на мультиплеере. У меня работает,проверил на юзергруппе vip.Когда я спавнил машину в мультиплеере у меня выходила надпись только для админов.Я поставил чтобы только на випа спавнилась тачка,а юзергруппа вип у меня не поставлен.
Hds46 (12.01.2014, 14:53) писал:Этот BF3 Scars использует Scars Slim.Я нашел функцию спавна машины в Scars Slim.Называется local function CCSpawnSCar( Player, command, arguments ). Попробуй добавить туда в if SCarGetFastConvar["scar_scarspawnadminonly"] == 1 and Player:IsAdmin() == false then вот это: if SCarGetFastConvar["scar_scarspawnadminonly"] == 1 and Player:IsAdmin() == false or !Player:IsUserGroup("vip") or !Player:IsUserGroup("premium") or !Player:IsUserGroup("admin") or !Player:IsUserGroup("superadmin") then Player:PrintMessage( HUD_PRINTTALK, "Only admins,Vips and premiums are allowed to spawn SCars") return false end Директория кода: Scars Slim\lua\autorun\server\s_scarconsole.lua И не забудь включить консольную команду scar_scarspawnadminonly 1. Работает только на мультиплеере. У меня работает,проверил на юзергруппе vip.Когда я спавнил машину в мультиплеере у меня выходила надпись только для админов.Я поставил чтобы только на випа спавнилась тачка,а юзергруппа вип у меня не поставлен.
Hds46 (12.01.2014, 14:53) писал:Этот BF3 Scars использует Scars Slim.Я нашел функцию спавна машины в Scars Slim.Называется local function CCSpawnSCar( Player, command, arguments ). Попробуй добавить туда в if SCarGetFastConvar["scar_scarspawnadminonly"] == 1 and Player:IsAdmin() == false then вот это: if SCarGetFastConvar["scar_scarspawnadminonly"] == 1 and Player:IsAdmin() == false or !Player:IsUserGroup("vip") or !Player:IsUserGroup("premium") or !Player:IsUserGroup("admin") or !Player:IsUserGroup("superadmin") then Player:PrintMessage( HUD_PRINTTALK, "Only admins,Vips and premiums are allowed to spawn SCars") return false end Директория кода: Scars Slim\lua\autorun\server\s_scarconsole.lua И не забудь включить консольную команду scar_scarspawnadminonly 1. Работает только на мультиплеере. У меня работает,проверил на юзергруппе vip.Когда я спавнил машину в мультиплеере у меня выходила надпись только для админов.Я поставил чтобы только на випа спавнилась тачка,а юзергруппа вип у меня не поставлен.
Проблема в том, что мне нужно запретить конкрентный транспорт (Например, танк из пака машин, а всё остальное - для юзеров) и только конкретным группам танк можно спавнить (vip, premium и т.д.)
Тогда найди в этом же луа файле функцию local function MakeVehicle( Player, Pos, Ang, Model, Class, VName, VTable ) и впиши туда после: if !game.SinglePlayer() and nrOfCars >= MaxCarsAllowed - 1 then Player:PrintMessage( HUD_PRINTTALK, "You have reached SCar spawn limit") return false end
Вот это:
if (Class == "sent_sakarias_car_junker1" and !Player:IsUserGroup("vip") and !Player:IsUserGroup("premium") and !Player:IsAdmin() ) then Player:PrintMessage( HUD_PRINTTALK, "You are normal user and you don't have permission for this") return false end Этот код запрещает спавнить машины людям, у которых нет админки,Випа и премиума. Скопируй этот код, и вставь несколько раз, заменив там название машины.Там где написано в кавычках "sent_sakarias_car_junker1" вписывай свою энтитю из BF 3 Scars. Название машин можно узнать по папкам в BF 3 Scars,например - m1a1_abrams.
Hds46 (22.01.2014, 15:41) писал:Тогда найди в этом же луа файле функцию local function MakeVehicle( Player, Pos, Ang, Model, Class, VName, VTable ) и впиши туда после: if !game.SinglePlayer() and nrOfCars >= MaxCarsAllowed - 1 then Player:PrintMessage( HUD_PRINTTALK, "You have reached SCar spawn limit") return false end
Вот это:
if (Class == "sent_sakarias_car_junker1" and !Player:IsUserGroup("vip") and !Player:IsUserGroup("premium") and !Player:IsAdmin() ) then Player:PrintMessage( HUD_PRINTTALK, "You are normal user and you don't have permission for this") return false end Этот код запрещает спавнить машины людям, у которых нет админки,Випа и премиума. Скопируй этот код, и вставь несколько раз, заменив там название машины.Там где написано в кавычках "sent_sakarias_car_junker1" вписывай свою энтитю из BF 3 Scars. Название машин можно узнать по папкам в BF 3 Scars,например - m1a1_abrams.
Спасибо огромное, всё заработало, только вот код потерял, как сделать оружие для определённой группы? Помню только SWEP.AllowedGroups= true и SWEP.Groups { "vip", "premium", "admin", "superdamin" } ну или что-то типо того.
Ищи в коде оружия вот это: function SWEP:Think() если его нет то создай. Затем вписывай в него это: if SERVER then local p = self.Owner if !p:IsUserGroup("vip") and !p:IsUserGroup("premium") and !p:IsAdmin() then self:Remove() end end Этот код запрещает использовать оружие для обычных юзеров.
Hds46 (25.01.2014, 08:51) писал:Ищи в коде оружия вот это: function SWEP:Think() если его нет то создай. Затем вписывай в него это: if SERVER then local p = self.Owner if !p:IsUserGroup("vip") and !p:IsUserGroup("premium") and !p:IsAdmin() then self:Remove() end end
Этот код запрещает использовать оружие для обычных юзеров.
Спасибо,всё работает! Наверное я тебя уже задолбал, но ты случайно не знаешь, как руссифицировать плагин для чата Chatbox? Просто столкнулся с проблемой, что не воспринимает при вводе русские символы (а при выводе всё окей). Я менял кодировку, в строке llocal _,__h = surface.GetTextSize("A,B,C и т.д.") менял буквы и всё равно счетно...
Hds46 (27.01.2014, 05:31) писал:Странно,у меня все работает.
А ты какой сервер запускал? Может, просто у меня на Dedicated server какие-то аддоны стоят, которые могут конфликтовать с чатом? Например, Player Chat Tags или Custom Chat Colors, не?
Может быть.У меня до HatsChat никаких аддонов для чата не было. У тебя Dedicated Server русский?Может надо русскую кириллицу установит на гмод или в консоли gmod_language ru прописать.
Hds46 (28.01.2014, 06:35) писал:Может быть.У меня до HatsChat никаких аддонов для чата не было. У тебя Dedicated Server русский?Может надо русскую кириллицу установит на гмод или в консоли gmod_language ru прописать.
Проверил на чистом выделенном сервере, всё равно не работает. Всё же видать нужно руссифицировать сервер, но как скачал со steamcmd сервер, так ничего в переводе не менял. И опять тупой вопрос: где же скачать руссификатор? Для gmod 9,10 видел, а на 13 и не нашёл вроде как.