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
Вобщем тема такая
1я задачка была такая
Нужно получить координату на плоскости под углом на расстоянии от текущей координаты
Задачку решил тут
Код в итоге таков:
например выведем в лог координаты точки на плоскости на расстоянии 2м и под углом 90 град (справа) от игрока (вызвав функцию PrintCoords, передав ей в качестве параметра переменную содержащую ссылку на перса игрока)
void PrintCoords(PlayerBase player) { float distance = 2; float anglerotation = 90; Print("Coordinates on the plane at distance " + distance + " and at an angle relative to the player: " + anglerotation + ": " + GetCoords(player, distance, anglerotation).ToString()); } vector GetGoords(PlayerBase player, float distance, float anglerotation) { return GetPosFromDistAndAngle(player.GetPosition(), distance, player.GetOrientation()[0] + anglerotation); } vector GetPosFromDistAndAngle(vector pos, float dist, float angle) { angle = Math.NormalizeAngle(angle) * Math.DEG2RAD; pos[0] = pos[0] + (double)(Math.Sin(angle) * dist); //offset X pos[2] = pos[2] + (double)(Math.Cos(angle) * dist); //offset Y return pos; }
Это была задачка 1 и она была решена!
далее надо решить более сложную задачу - она будет номер 2
Надо вычислить координату не на плоскости, а вообще в пространстве, взяв в качестве поправок значения pitch и roll (наклон по поперечной и продольной осям) которые получаются из функции обьект.GetOrientation() - первое значение масива типа вектор которое возвращает функция - угол на плоскости, второе угол в поперечной оси, третье в продольной (вроде так)
те если игрок, да не важно, просто обьект, имеет наклон в поперечной оси 45 градусов (от так как этот слэш /), то точка под углом на плоскости относительно игрока 90град и расстоянии 2м "справа для него будет 'ниже', чем слева"
врбщем - нам надо получить координату под улом 90град на плоскости, 45град по вертикали и расстоянии 2м от него слева
воот
и тут у меня мозг взорвался (и почему-то захотелось вискаря)
я понимаю что в данном случае нужно отталкиваться от поперечной вертикальной плоскости... но чет не догоняю как........
-
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
Чет затупил нещадно
Делал как-то еще на 063 но куда-то дел код
Получаем в цикле что на игроке и пытаемся получить что в вещах
AttCount = player.GetInventory().AttachmentCount();
for ( int i = 0; i < AttCount; i++ )
{
attachment = player.GetInventory().GetAttachmentFromIndex(i);
if ( attachment.IsItemBase() )
{
SubAttCount = attachment.GetInventory().AttachmentCount();
for ( int a = 0; a < SubAttCount; a++ )
{
subattachment = attachment.GetInventory().GetAttachmentFromIndex(a);
}
}
}
Если находится akm, то attachment.GetInventory().AttachmentCount(); и далее работает
Если например куртка или штаны - то нет, чет запамятовал, как получить содержимое в случае курки, рюкзака???
...
Спасибо!
-
By
ZigoFrend
Сервер крашится с вот такой ошибкой
---------------------------
DayZ
---------------------------
Out of memory.
Your swap file is too small, only 3 MB of free space left.
Increase your swap file size or delete some files from your hard disk
---------------------------
ОК
---------------------------
что в переводе
--------------------------- DayZ --------------------------- Недостаточно памяти. Ваш файл подкачки слишком мал, осталось только 3 МБ свободного места. Увеличьте размер файла подкачки или удалите некоторые файлы с жесткого диска --------------------------- ОК ---------------------------
Что подскажите просто не хватает оперативы ??
-
By
KING324
Всем привет,хотелось бы узнать как можно получить кол-во нар в верталёте.
написал такой код,но работает почему то не на всей технике
_array = []; for "_i" from -1 to 3 do { _weapons = _vehicle weaponsTurret [_i]; if((count _weapons) > 0) then { { _weapon = _weapons select _forEachIndex ; _ammo = _vehicle ammo _weapon; _array set [count _array,[_i,[_weapon,_ammo]]]; } forEach _weapons; }; }; hint format["%1 ",_array]; copyToClipboard str _array;
-
-
Our picks
Доброго времени суток! Недавно столкнулся с проблемой, что игроки не получают урона при падениях с любой высоты, как это можно исправить и какой файл за это отвечает?
Какой ещё файл, за исключением player_death выдаёт игроку хуманити?
P.s. fn_damageHandler я уже правил и ничего не помогло. подключал его тоже правильно.
Надеюсь на вашу помощь
Edited by overkill (see edit history)Share this post
Link to post
Share on other sites