Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами Публичной оферты Проекта 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
FACTION.name = "Солдат" -- Это название фракции
FACTION.desc = "Есть такая профессия - родину защищать" -- Описание фракции
FACTION.color = Color(20, 150, 15) -- Цвет фракции в формате RGB
FACTION.isDefault = true -- Является ли фракцией по-умолчанию
FACTION.isPublic = true -- Является ли публичной
FACTION.pay = 1000 -- Зарплата фракции
FACTION.payTime = 700 -- Время, через которую приходит зарплата
FACTION.models = {"models/stalkertnb/bandit1.mdl", "models/stalkertnb/bandit2.mdl"} -- Список моделей фракции
function FACTION:onGetDefaultName(client) -- Хук, вызываемый при выборе профессии. Служит для назначения имени игроку
end
FACTION_SOLDER = FACTION.index -- Обязательно указывать уникальный идентификатор для каждой фракции! В данном случае идентификатор нашей фракции - FACTION_SOLDER
Для создания новой фракции необходимо создать новый файл в папке gamemodes\nutscript\schema\factions с произвольным названием (обычно как идентификатор), например: solder.lua
В файле указывается следующее:
Код:FACTION.name = "Солдат" -- Это название фракции FACTION.desc = "Есть такая профессия - родину защищать" -- Описание фракции FACTION.color = Color(20, 150, 15) -- Цвет фракции в формате RGB FACTION.isDefault = true -- Является ли фракцией по-умолчанию FACTION.isPublic = true -- Является ли публичной FACTION.pay = 1000 -- Зарплата фракции FACTION.payTime = 700 -- Время, через которую приходит зарплата FACTION.models = {"models/stalkertnb/bandit1.mdl", "models/stalkertnb/bandit2.mdl"} -- Список моделей фракции function FACTION:onGetDefaultName(client) -- Хук, вызываемый при выборе профессии. Служит для назначения имени игроку end FACTION_SOLDER = FACTION.index -- Обязательно указывать уникальный идентификатор для каждой фракции! В данном случае идентификатор нашей фракции - FACTION_SOLDER
А, и еще как там сделать ранги?А как же тогда назначать на фракцию игроков и самому перейти на эту профу, если она не для всех?
CLASS.name = "Разведчик" -- Название ранга
CLASS.faction = FACTION_STALKER -- Идентификатор фракции
CLASS.isDefault = true -- Доступна ли по-стандарту
CLASS.loadout = {} -- Выдаваемые оружия
CLASS.business = {} -- Доступные к покупке предметы
function CLASS:OnSet(client) -- Хук, вызываемый при вступлении
end
function CLASS:onCanBe(client) -- Проверка на возможность вступления
end
function CLASS:onLeave(client) -- Проверка на возможность выхода
end
CLASS_SCOUT = CLASS.index -- Уникальный идентификатор ранга
Профессия сделана, назначил себя при помощи команды, но скин остался как у гражданского. Вопрос: Что делать?Ранги создаются в папке gamemodes\nutscript\schema\classes
Код:CLASS.name = "Разведчик" -- Название ранга CLASS.faction = FACTION_STALKER -- Идентификатор фракции CLASS.isDefault = true -- Доступна ли по-стандарту CLASS.loadout = {} -- Выдаваемые оружия CLASS.business = {} -- Доступные к покупке предметы function CLASS:OnSet(client) -- Хук, вызываемый при вступлении end function CLASS:onCanBe(client) -- Проверка на возможность вступления end function CLASS:onLeave(client) -- Проверка на возможность выхода end CLASS_SCOUT = CLASS.index -- Уникальный идентификатор ранга
Команда /charsetmodel "nick name" "model". Чтобы автоматизировать всё это, нужно корректировать файл /nutscript/gamemode/core/libs/sh_character.lua.Профессия сделана, назначил себя при помощи команды, но скин остался как у гражданского. Вопрос: Что делать?
nut.char.registerVar("faction", {
field = "_faction",
default = "Citizen",
onSet = function(character, value)
local client = character:getPlayer()
if (IsValid(client)) then
client:SetTeam(value)
character:setModel(nut.faction.indices[value].models[1]) -- вот, что нужно добавить
end
end,
onGet = function(character, default)
local faction = nut.faction.teams[character.vars.faction]
return faction and faction.index or 0
end,
noDisplay = true,
onValidate = function(value, data, client)
if (value) then
if (client:hasWhitelist(value)) then
return true
end
end
return false
end,
onAdjust = function(client, data, value, newData)
newData.faction = nut.faction.indices[value].uniqueID
end
})
Команда /charsetmodel "nick name" "model". Чтобы автоматизировать всё это, нужно корректировать файл /nutscript/gamemode/core/libs/sh_character.lua.
Можно, например, там, где nut.char.registerVar("faction",{...}) (примерно 339 строка) после client:SetTeam(value) (через 6 строчек) дописать character:setModel(nut.faction.indices[value].models[1]), тогда у игрока установится модель, первой идущая в таблице моделей для данной фракции.
У меня также в базе данных создаётся для персонажа номер той модели, выбранной при его создании, но очень тяжело ориентировать человека по файлу, который он, возможно, никогда не видел, с более чем 700 строчками, тем более наши файлы не совпадают. А вдруг я напишу что-то, а человеку это может быть не нужно.Код:nut.char.registerVar("faction", { field = "_faction", default = "Citizen", onSet = function(character, value) local client = character:getPlayer() if (IsValid(client)) then client:SetTeam(value) character:setModel(nut.faction.indices[value].models[1]) -- вот, что нужно добавить end end, onGet = function(character, default) local faction = nut.faction.teams[character.vars.faction] return faction and faction.index or 0 end, noDisplay = true, onValidate = function(value, data, client) if (value) then if (client:hasWhitelist(value)) then return true end end return false end, onAdjust = function(client, data, value, newData) newData.faction = nut.faction.indices[value].uniqueID end })
plywhitelist <string name> <string faction> - если честно, я не знаю, что она делает, кажется, это команда даёт возможность игроку создать персонажа с заданной фракцией.
plyunwhitelist <string name> <string faction> - обратное действие вышеуказанной команды
beclass <string class> - команда для того чтобы получить "ранг", войти в класс:crazy:(простите меня за мой русский)
plytransfer <string name> <string faction> - я думаю из постов выше, что вы теперь знаете, что делает эта команда
Да я говорил про фракции. Просто недавно перешел с Дарк РП на это, вот и называю до сих пор :З А за ссылки большое спасибо и за помощь в принципеВам нужны чат команды или функции ? А под профессиями Вы имеете в виду фракции?
Все чат команды содержатся в файлах sh_commands.lua, как в самом nutscript, так и в Вашем shema.
Вроде бы это всё, что есть. Не густо, поэтому много надо будет писать самому.Код:plywhitelist <string name> <string faction> - если честно, я не знаю, что она делает, кажется, это команда даёт возможность игроку создать персонажа с заданной фракцией. plyunwhitelist <string name> <string faction> - обратное действие вышеуказанной команды beclass <string class> - команда для того чтобы получить "ранг", войти в класс:crazy:(простите меня за мой русский) plytransfer <string name> <string faction> - я думаю из постов выше, что вы теперь знаете, что делает эта команда
Нужные функции/процедуры для NS 1.1 ищите здесь, а для garrysmod здесь
Ранги создаются в папке gamemodes\nutscript\schema\classes
Код:CLASS.name = "Разведчик" -- Название ранга CLASS.faction = FACTION_STALKER -- Идентификатор фракции CLASS.isDefault = true -- Доступна ли по-стандарту CLASS.loadout = {} -- Выдаваемые оружия CLASS.business = {} -- Доступные к покупке предметы function CLASS:OnSet(client) -- Хук, вызываемый при вступлении end function CLASS:onCanBe(client) -- Проверка на возможность вступления end function CLASS:onLeave(client) -- Проверка на возможность выхода end CLASS_SCOUT = CLASS.index -- Уникальный идентификатор ранга
А засунутым в нужное место LocalPlayer():getClass() разве нельзя ли убрать это меню ? :rofl: Сейчас у меня нет локального сервера, чтобы это проверить, да и всего 200 мб интернета осталось...Я делал так
Т.е. они ничего не может покупать. А меню покупок встроено в сам мод.Код:CLASS.loadout = {} -- Выдаваемые оружия CLASS.business = {} -- Доступные к покупке предметы
А какая команда что бы выдать игроку-ранг?Ранги создаются в папке gamemodes\nutscript\schema\classes
Код:CLASS.name = "Разведчик" -- Название ранга CLASS.faction = FACTION_STALKER -- Идентификатор фракции CLASS.isDefault = true -- Доступна ли по-стандарту CLASS.loadout = {} -- Выдаваемые оружия CLASS.business = {} -- Доступные к покупке предметы function CLASS:OnSet(client) -- Хук, вызываемый при вступлении end function CLASS:onCanBe(client) -- Проверка на возможность вступления end function CLASS:onLeave(client) -- Проверка на возможность выхода end CLASS_SCOUT = CLASS.index -- Уникальный идентификатор ранга