Need help?
Create a topic in the appropriate section
Don't write everything in the chat!Take a look at the marketplace
There you can buy
everything related to game serversDon't want a ban?
Please read our rules
Don't disturb the order!Sell or buy?
Use services of the guarantor
We will make your deal safe



- 0
-
Similar Content
-
By BorizzK
Пишу мод для стримеров и сериальщиков (наши оч попросили и пара ютьюберов)
Управление камерой с регулированием fov и тп включая углы итп
Все почти отлично
Столкнулись с проблемой
С фрикамеры когда крупным планом беседу снимаешь не видно (нет анимации) движения губ. Жестикуляция и голос есть, а движения губ нет, только если перса оператора прям рядом поставить, тогда есть, но он в кадр в некоторых моментах попадает, а этого не нужно. Если удалить обьект перса оператора, то норм, но иногда сервак с ума сходит.
А когда операторов 2 - 3, то ваще фигня иногда начинается вплоть до краша...
Может кто в курсе, где расстояние, радиус синхры настроить можно?
-
By 123new
В данной теме мы с вами научимся создавать простой скрипт, который позволит выводить в чат объявления о присоединении и отсоединении игроков, а также логировать их данные.
Нам понадобится:
1. Сервер DayZ 1.0, сделанный по одному из гайдов:
2. Notepad++
3. Немножечко трезвого ума
Приступим:
1. Открываем Mpmissions - dayzOffline.chernarusplus - init.c
2. В самом начале файла добавляем:
#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\ConnectDisconnectMessagesInChat.c" Обратите внимание, имя папки с активной mpmissions сервера у вас может отличаться от стандартного названия dayzOffline.chernarusplus - в таком случае в ссылке выше имя этой папки также надо заменить (это актуально в основном для серверов аренды)
3. Помещаем в папку файл
Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
Либо создаем вручную этот файл с именем " "ConnectDisconnectMessagesInChat.c" и заполняем его следующим текстом:
modded class CustomMission { void SendGlobalChatMessage(string message) { private array<Man> players = new array<Man>; GetGame().GetPlayers( players ); int numbOfplayers = players.Count(); if( numbOfplayers > 0 ) { foreach(Man player: players) { SendPersonalMessage(message, player); } //GetGame().ChatPlayer(message); } } void 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()); } } override void InvokeOnDisconnect( PlayerBase player ) { private PlayerIdentity identity = NULL; identity = player.GetIdentity(); if (player && identity) { private string Name_P = identity.GetName(); private string UID_P = identity.GetPlainId(); private string message = "[Информация] Игрок " + Name_P + " отключился от сервера."; private string log_message = "[Disconnect] Player " + Name_P + " with Steam64ID: " + UID_P + " disconnected from server."; //GetGame().ChatPlayer(message); SendGlobalChatMessage(message); Print(log_message); } super.InvokeOnDisconnect( player ); } override void InvokeOnConnect(PlayerBase player, PlayerIdentity identity) { super.InvokeOnConnect(player, identity); private string Name_P = identity.GetName(); private string UID_P = identity.GetPlainId(); private string message = "[Информация] Игрок " + Name_P + " Зашёл на сервер."; private string log_message = "[Connect] Player " + Name_P + " with Steam64ID: " + UID_P + "connected to server."; //GetGame().ChatPlayer(message); SendGlobalChatMessage(message); Print(log_message); } } 4. Настраиваем текст как нам нужно. Т.е. в строках для чата
private string message = "[Информация] Игрок " + Name_P + " отключился от сервера."; и
private string message = "[Информация] Игрок " + Name_P + " Зашёл на сервер."; а также для логов
private string log_message = "[Disconnect] Player " + Name_P + " with Steam64ID: " + UID_P + " disconnected from server."; и
private string log_message = "[Connect] Player " + Name_P + " with Steam64ID: " + UID_P + "connected to server."; P.S. Если сообщения вам не видны, включите их видимость в настройках вашего клиента игры для себя!
-
By BorizzK
Есть игрок
Есть его координаты X и Y
Нужно получить координаты точки X1 и X2 на расстоянии 2м слева от игрока
...
Угол (из GetOrientation()) мы знаем
Те банально надо получить координаты точки на окружности зная угол, радиус и координаты центра окружности
мне видится следующее решение
float dist = 2;
float A = player.GetOrientation()[0] - 45;
float x1 = dist * Math.Cos(A);
float y1 = dist * Math.Sin(A);
vector finpos = Vector(player.GetPosition()[0] + x1, player.GetPosition()[1], player.GetPosition()[2] + y1);
или я не прав?
может в Math enscript'а есть готовая функция?
Спасибо!
-
By 123new
Нам понадобится:
1. Сервер DayZ Standalone (см. тему вот эту)
2. Notepad++: бесплатно на оф. сайте
3. Немного времени и настойчивости (обычно бывает в комплекте и так)
И так, начинаем:
1. Открываем блокнотом mpmissions\dayzOffline.chernarusplus\init.c
P.S. Имя папки dayzOffline.chernarusplus у вас может отличаться, будьте внимательны
2. В начале файла добавляем:
static int time_repeat_info_players = 10; //in seconds static string file_name_info_players = "$profile:PlayersLogFile.txt"; static void WriteFile(string file_name, string text) { private FileHandle fhandle; if ( !FileExist(file_name) ) { fhandle = OpenFile(file_name, FileMode.WRITE); } else { fhandle = OpenFile(file_name, FileMode.APPEND); } if ( fhandle == 0 ) { Print("[#Запись_в_файл]: Не удалось открыть файл для записи: " + file_name); Print("[#Запись_в_файл]: [Запись]: " + text); return; } FPrintln(fhandle, text); CloseFile(fhandle); } static void WritePlayersInfo() { array<Man> players = new array<Man>; Man player; Man player_test; GetGame().GetPlayers( players ); if (players.Count() > 0) { if ( FileExist(file_name_info_players) ) { DeleteFile(file_name_info_players); } for ( int i = 0; i < players.Count(); ++i ) { player_test = players.Get(i); if( player_test ) { PlayerIdentity p_identity = player_test.GetIdentity(); private string coord_pl = player_test.GetPosition().ToString(); private string Name_P = p_identity.GetName(); private string UID_P = p_identity.GetPlainId(); WriteFile(file_name_info_players, "User name: " + Name_P + " UID: " + UID_P + " Coords: " + coord_pl); } } } else { if ( FileExist(file_name_info_players) ) { DeleteFile(file_name_info_players); } } } Где 'PlayersLogFile.txt' меняем на нужное вам имя файла, а в 'time_repeat_info_players' настраиваем время повтора проверки списка игроков для перезаписи файла
3. Находим в файле блок 'void main()' и в его конце перед закрывающей '}', поумолчанию это строка
weather.SetWindFunctionParams(0.1, 0.3, 50); добавляем ниже строку:
GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(WritePlayersInfo, (time_repeat_info_players * 1000), true); 4. Готово, если не допустили ошибок, при наличии хотя бы 1 игрока на сервере ваш файл с данными по игрокам будет присутствовать и заполняться информацией, а в случае их отсутствия удаляться.
-
By BorizzK
Нашел где и как она задается
Файл MissionServer.c
Функция
void OnPreloadEvent(PlayerIdentity identity, out bool useDB, out vector pos, out float yaw, out int queueTime)
Вызывается по эвенту PreloadEventTypeID: - при подключении игрока и постановке его в очередь
Она возвращает queueTime в которой и будут те самые 15 сек
Тк он возвращается пустой, сервер использует значение по умолчанию
Если внутри функции изменить значение
queueTime = 5;
то будет нужное Вам время
Соответственно переопределяем эту функцию в init.c или Вашем файле миссии в моде (или нет)
override void OnPreloadEvent(PlayerIdentity identity, out bool useDB, out vector pos, out float yaw, out int queueTime) { if (GetHive()) { // Preload data on client by character from database useDB = true; queueTime = 1; //Делаем 1 сек } else { // Preload data on client without database //Вот это я не понял зачем useDB = false; pos = "1189.3 0.0 5392.48"; yaw = 0; queueTime = 1; //Делаем 1 сек } } Делаем 1 сек
Вуаля...
-
-
Our picks
Вообщем есть такая проблемка, игроки могут дойти до ГЕРОЯ или БАНДИТА за несколько убийств. Как сделать получение хумки меньше?
Share this post
Link to post
Share on other sites