Нужна помощь?
Создайте тему в соответствующем разделе
Не нужно писать всё в чат!Загляните на торговую площадку
Там вы можете купить
всё что касается игровых серверовНе хотите бан?
Пожалуйста, ознакомьтесь с нашими правилами
Не нарушайте порядок!Продаёте или покупаете?
Пользуйтесь услугами гаранта
Мы сделаем вашу сделку безопасной
Таблица лидеров
Популярные публикации
Отображаются публикации с наибольшей репутацией на 04/11/19 в Сообщения
-
1 баллВ данной теме мы с вами научимся создавать простой скрипт, который позволит выводить в чат объявления, которые вы захотите сами. Нам понадобится: 1. Сервер DayZ 1.0, сделанный по одному из гайдов: 2. Notepad++ 3. Немножечко трезвого ума Приступим: 1. Открываем Mpmissions - dayzOffline.chernarusplus - init.c 2. В самом начале файла добавляем: #include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\InfoMessages.c" Находим функцию void main() и перед ее закрывающей скобкой "}"добавляем: GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(CustomInformation, TIME_Information_Repeat, true); пример: 3. Помещаем в папку файл InfoMessages.c Либо создаем вручную этот файл с именем "InfoMessages.c" и заполняем его следующим текстом: int TIME_Information_Repeat = 60000; //in ms (60 seconds = 60000) ref TStringArray Messages = {"Welcome to My Server!", "This is server DayZ 1.0 Stable version!", "Our ip adress: ....", "Our site: ....", "Good day and big Loot for all!"}; void CustomInformation() { //GetGame().GetWorld().GetPlayerList(m_Players); array<Man> players = new array<Man>; GetGame().GetPlayers( players ); private int numbOfplayers = players.Count(); if( numbOfplayers > 0 ) { // GetGame().ChatPlayer(0,Messages.GetRandomElement()); foreach(Man player: players) { InfoMessages_SendPersonalMessage(Messages.GetRandomElement(), player); } } } void InfoMessages_SendPersonalMessage(string message, Man player) { if(( player ) && (message != "")) { Param1<string> m_GlobalMessage = new Param1<string>(message); GetGame().RPCSingleParam(player, ERPCs.RPC_USER_ACTION_MESSAGE, m_GlobalMessage, true, player.GetIdentity()); } } 4. Настраиваем файл как нам нужно. Т.е. в строке int TIME_Information_Repeat = 60000; //in ms (60 seconds = 60000) указываем время повтора вывода сообщений в чат (поумолчанию стоит минута) и сами сообщения в переменной ref TStringArray Messages = {"Welcome to My Server!", "This is server DayZ 0.63 Experimental!", "Our ip adress: ....", "Our site: ....", "Good day and big Loot for all!"}; Важно: в конце последней строки обязательно должна быть скобка и точка с запятой, иначе сервер не запустится! P.S. Если сообщения вам не видны, включите их видимость в настройках вашего клиента игры для себя!
-
1 баллНакатал по быстрому для себя и своих ребят от нефиг делать, тк в командировке и дейзить возможности нет, только удаленно ковырять сервер Внутри настройки через переменные путь к базе сервера и инстанс ид берет из конфига сервера (нужно настроить имя файла и путь в файле) Мониторит сервер по названию окна, сохранив pid При вылете в 90% случаев корректно убивает процесс При перезапуске так же При каждом старте с 0 и при перезапусках делает бэкапы баз/настроек/логов в папку !Backup в корне сервера Можно настроть кол-во хранимых бэкпов для базы сервера и логов Вобщем заглянете внутрь и все поймете Вдруг кому пригодится Закрепляю тут краний боевой вариант Что к чему - прочтите всю тему и все станет ясно Сцыл на стрницу темы с крайней версией заточенной на использование с версией 1.04 и параметром -servermod Крайняя версия DayZStart_v42.rar
-
1 баллAntonZavodskih Значица так Все более чем просто Зайду из далека что бы понятней было и в последствии было проще разбираться самому папочка mpmissions\dayzOffline.chernarusplus - это папочка миссии (на нее указывает параметр в конфиге сервера и название можно менять) внутри init.c - файл который читает сервер при инициализации - для чего? суть ниже В нем класс миссии class CustomMission: MissionServer class CustomMission: MissionServer { //Тут функции класса } Этот класс является расширением нативного класса MissionServer (файлы .c с ним запакованы в scripts.pbo в папке dta и сервер его читает оттуда), Функции из MissionServer вызываются движком во время Например при инициализации (запуска) сервера движком вызывается функция OnInit() из класса MissionServer А тк CustomMission расширение класса, мы можем эту функцию переопределить override void OnInit() B теперь вместо функции из класса будет выполняться наша функция из класса миссии небольшое отступление: если нам же нужно вызвать нативный OnInit() из класса MissionServer то внутри нашего OnInit() мы расположим вызов нативной функции super.OnInit(); При создании персонажа для вновь подключившегося игрока вызывается функция CreateCharacter которая возвращает движку персонажа созданного для нового игрока в классе миссии мы ее так же переопределяем и делам там все что нужно нам (нативная функция из MissionServer соответственно выполняться не будет) override PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName) В классе MissionServer есть и другие функции которые выполняются по событиям и тд итп - их все можно переопределять в классе миссии и использовать по своему усмотрению. Можем так же добавлять свои и вызывать их из переопределенных... Что нам нужно для отправки сообщения о подключении А надо нам найти функцию которая обрабатывает именно подключение (любого игрока, а не только нового) Такая функция в классе MissionServer называется InvokeOnConnect мы ее переопределяем в классе миссии (методом добавления кода конечно же) override void InvokeOnConnect(PlayerBase player, PlayerIdentity identity) { super.InvokeOnConnect(player, identity); //Тут мы вызовем нативную функцию что бы не тащить ее код сюда GetGame().ChatPlayer("Игрок " + identity.GetName() + " подключился"); // Отправим сообщение в глобальый чат о подключившемся игроке } Теперь вместо просто нативной функции при подключении игрока движек вызовет нашу переопределенную функцию внутри которой 1 Сначала мы вызовем нативную функцию 2 затем отправим сообщение в глобальный чат с помощью функции ChatPlayer из клсса CGame (это глобальный класс (так же формирующийся движком)) теперь при подключении игрока всем будет прилетать сообщение в чат Про отключение игроков поговорим чуть позже
-
1 баллVIRrusR Object тип относящийся к классу Object, так шта с мой тз монописуально Вот если эта переменная обьявлена в конкретном классе - это переменная класса определенного типа А если не в классе, то переменная определенного типа Вот напрмер тип vector Есть и такой класс В этом классе есть константа Zero (ее значеие 0,0,0) потому если Вам нужно задать позицию обьекту 0,0,0 можно это сделать так object.SetPosition(Vector(0,0,0)); object.SetPosition(vector.Zero); Тк константа не private, то к ней можно получить доступ из другого класса, указав ее класс. Переменных и функций (методов) это то же касается Переменные и константы и обьекты класса, доступны 1 вне класса указанием класса (см выше) 2 в любой функции класса А вот переменные определенные в функции доступны только внутри нее Вообще, имхо, изучение какого-либо языка программирования всегда нужно начинать с изучения переменных и типов, затем простых операций с ними, а затем переходить к структурам
-
1 баллДля начала давай для общего понимания рассмотрим некоторые элементы вышеуказанной картины EntityAI attachment; Мы не переопределяем переменную. Мы ее ОБЬЯВЛЯЕМ. Теперь ей можно пользоваться как переменной которая содержит в себе данные типа EntityAI которые относятся к классу Еntity (или не содержит тогда она = NULL) Далее attachment && attachment.IsItemBase() Если attachment содержит в себе данные (а не NULL) и содержимое attachment относится (не является, а относится - те родственный тип) к типу ItemBase услвоие будет выполнено Далее item у нас какого класса/типа? А attachment? Вот что бы из переменной класса EntityAI данные поместить в переменную класса ItemBase ее "даункастят" Какой из них в данном случае является родительским, а какой дочерним классом я не в курсе Было где-то тут описание наследования классов - но факт в том что они родственные item = Class.Cast(attachment); на самом деле правильней (и об этом уже говорилось) - делать это надо так item = ItemBase.Cast(attachment); Далее с этими данными (переменной item) можно работать используя функции класса ItemBase Вот скажем есть переменная типа PlayerBase - player - содержит в себе ссылку на игрока (персонажа) Нам надо поработать чисто с его телом как собьектом (тип Object) Object object = Object.Cast(player); Далее с object делаем что надо именно как с обьектом Просто у разных классов есть свои присущие только им специфические нативные функции и что бы ими воспользоваться нужно из одного класса даункастить в другой (родственный) Если делать это с неродственными классами результат конечно же будет NULL Например для item которая класса ItemBase можно задать количество ItemBase.SetQuantity(6); Но только если содержимое относится к классу itemBase и сам предмет поддерживает это свойство А если ты например создашь обьект авто Object m_SpawnedObject = GetGame().CreateObject("OffroadHatchback", position); и далее нам надо навесить на нее двери для этого нам надо перегнать ее в переменную типа EntityAI тк только в том классе есть специфические функции позволяющие навешивать аттачменты EntityAI MyCar = EntityAI.Cast(m_SpawnedObject); // перегнали MyCar.GetInventory().CreateAttachment("HatchbackDoors_Driver"); //Создали в инвентаре машинки аттачмент дверь и кстати - проверка MyCar.IsItemBase() вернет false тк машина (ее тип) сама по себе не родственна к классу ItemBase Но она родственна к классу Car например нам надо ее заправить Car f_car = Car.Cast(MyCar); // перегнали и теперь с помощью присущих только классу Car функций f_car.Fill(CarFluid.FUEL, 1000); f_car.Fill(CarFluid.COOLANT, 1000); f_car.Fill(CarFluid.OIL, 1000); f_car.Fill(CarFluid.BRAKE, 1000); Заправили ее всеми жижами Это все грубо конечно, тк я сам в этих классах и тп все еще путаюсь - но суть должна быть ясна вот тут в общих чертах еще https://vk.com/@dayzundergound-chto-zhe-predstavlyaet-iz-sebya-enfusion-scripts-novyi-yazyk
-
1 баллPoc321 первым делом читать форум или пользоваться поиском, а потом по инструкции:
-
1 балл123new я проверял Вроде работает
-
1 баллобновил до актуальной версии архив, не проверял Whitelist.rar
-
Рассылка
