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



Search the Community
Showing results for tags '0.63'.
Found 8 results
-
В этом гайде мы разберёмся как настроить стартовый лут на сервере DayZ Standalone. Наверняка многие знают как это сделать, но, думаю, не все Инструкция: 1) Открываем файл init.c, который находится в папке mpmissions вашего сервера и ищем такие строки: EntityAI itemEnt; ItemBase itemBs; Сразу после них находится блок примерно такого вида: itemEnt = player.GetInventory().CreateInInventory("Rag"); itemBs = ItemBase.Cast(itemEnt); itemBs.SetQuantity(4); SetRandomHealth(itemEnt); itemEnt = player.GetInventory().CreateInInventory("RoadFlare"); itemBs = ItemBase.Cast(itemEnt); Именно здесь и задаётся стартовый лут персонажа. Видим что в стартовом луте прописан фаер и четыре бинта. itemEnt = player.GetInventory().CreateInInventory("Rag"); - Rag это класснейм предмета (бинта) itemBs.SetQuantity(4); - количество бинтов и т.д. в пачке, коробке и т.д. Эти два блока нам и нужно удалить и заменить на свои. 2) Открываем файл types.xml. В этом файле прописаны класснеймы предметов, имеющихся в игре. Находим нужные и оформляем файл init.c под себя. Добавим, например, рюкзак, бобы, каску, куртку, штаны и колу: // рюкзак itemEnt = player.GetInventory().CreateInInventory("AliceBag_Black"); itemBs = ItemBase.Cast(itemEnt); // бобы itemEnt = player.GetInventory().CreateInInventory("BakedBeansCan"); itemBs = ItemBase.Cast(itemEnt); // каска itemEnt = player.GetInventory().CreateInInventory("BallisticHelmet_Black"); itemBs = ItemBase.Cast(itemEnt); // куртка itemEnt = player.GetInventory().CreateInInventory("BomberJacket_Grey"); itemBs = ItemBase.Cast(itemEnt); // штаны itemEnt = player.GetInventory().CreateInInventory("CargoPants_Black"); itemBs = ItemBase.Cast(itemEnt); // кола itemEnt = player.GetInventory().CreateInInventory("SodaCan_Cola"); itemBs = ItemBase.Cast(itemEnt); Таким образом, весь файл init.c должен выглядеть примерно так: Подробности о том как заспавнить оружие с магазинами, машины, предметы и тому подобное написаны в разделе init.c тут:
-
Предлагаю все возможные гайды по enscript/моддингу публиковать в этой теме Ссылка на предыдущею версию темы по enscript версии 0.62 - там можно прочитать в общих чертах про этот язык
-
Здравствуйте, дорогие друзья и посетители сайта. В данной теме я распишу как создать свой "чистый" сервер на основе первых официальных серверных файлов игры, доступных каждому в steam для тех, кто приобрел эту замечательную игру. Для тех, кто не приобретал ее, не расстраивайтесь, добавлю зеркала на файлы. И так, приступим. Нам понадобятся: 1. Официальные серверные файлы игры со steam ссылки на файлы имеются в теме: Копия от меня на момент публикации статьи (alpha-версия сервера игры): https://mega.nz/#!uLpzwITA!03yaBH8rvkf44G61lrjwzWKU1dsRwF0iCLwFbgQnT4w Скачать можно и через SteamCMD: 2. Официальный клиент игры из steam: https://store.steampowered.com/app/221100/DayZ/ Зеркало на alpha-версию клиента игры на момент публикации: https://mega.nz/#!6S4CWKbS!LrdlMk_mhpQl3rO40VcvnDg5LMal8prBaOxqvf6wee0 Торрент-файл: Cleared Steam-client with 0.63 Experimental #4.torrent Тот же торрент-файл отдельно: https://www1.zippyshare.com/v/tLSBdudL/file.html 3. "Конфиг Battleye серверной части игры" и батник для старта сервера: DayZServer_config.rar 4. Notepad++ https://notepad-plus-plus.org/download P.S. После первого релиза серверных файлов игры на Experimental-ветке игры в Steam выходили обновления, как клиента игры, так и сервера. Прикладываю их ниже для тех, кто еще не скачал их. Выложеннная выше версия клиента игры индексируется как #4 в сообществах игры, от нее и отталкиваемся! Ссылки:: И так, приступим. 1. Распаковываем скачанные серверные файлы игры в отдельную папку (если пиратка, и выходили обновления, распаковываем их поверху игры в порядке очередности) 2. Распаковываем архив с "серверным конфигом battleye" в папке с серверными файлами Получим что-то типа такого Если вам необходимо, настраиваем его сами как вам необходимо, информация по его настройке есть в теме во 2 ее сообщении где 12345678 - rcon-пароль сервера 400 - максимальный пинг, разрешенный battleye на сервере игры (не уверен, что работает) RestrictRCon 1 - подключение с rcon-клиентов(например, dart и bec)(0 - разрешено, 1 - запрещено) 3. Перемещаем файл serverDZ.cfg с папки сервера в папку Instance_1 и называем его server.cfg Если такого файла нет (в последних обновлениях от steam его вырезали), не расстраивайтесь вот вам этот файлик server.cfg Настраиваем, если необходимо: 6. Запускаем !!!Start_server.bat и наш сервер запустится 7. Запускаем клиент игры со steam, находим наш сервер вручную по ip и порту (на момент публикации статьи свои сервера пока не видны в официальном серверном листе, сказали это исправят). Если сервер запущен на том же компьютере, где и игра, и на стандартном порту 2302, то поумолчанию поиск выполняется по 127.0.0.1:2302 Если сервер запущен на другом компьютере, то вместо 127.0.0.1 будет ip адрес компьютера, где запущен сервер, или его доменное имя. Например, myserver.com:2302 или 178.123.22.12:2302 ВАЖНО: если сервер запущен на другом компьютере, отличном от компьютера где запущена игра, то для доступа на сервер игроков необходимо иметь "внешний" выделенный ip-адрес и открытый порт сервера! Для совсем "ленивых" запаковал уже настроенный сервер в архив с alpha-версией игры: https://mega.nz/#!iXgQEKCI!fDeFm_pETCpRXJfGMUrfyAKdHrtaQJVpEa4nCN9knCk Для совсем "ленивых" запаковал уже настроенный сервер в архив с beta-версией игры 0.63.149386: https://mega.nz/#!wh1RwADK!InigFhMS5P2GOdVCPP9PRpM2C3_PqjSVnTJpBilcE0s Настраивайте лишь config сервера, battleye и bat-файл запуска сервера, и можете играть. Crack SmartSteamEmu v. 1.4.3 данной версии клиента игры и сервера: Скачать с Zippyshare.com: https://www64.zippyshare.com/v/mHmPweqg/file.html Скачать с Mega.nz: https://mega.nz/#!rnZBXK4b!KRrJm6obcJjUlzMpEPNQ3R8sy2z0pP-0Myb_ao4TVhg Скачать с yandex.disk: https://yadi.sk/d/4xSF1dSt6XN41g Инструкция по установке есть в архиве, дублирую: Для работы Battleye используйте ip-адрес и порт сервера, и любой rcon-клиент с паролем из BEServer_x64.cfg База данных (storage) теперь хранится по пути: mpmissions\dayzOffline.chernarusplus\storage_{номер instance с cfg сервера} В базе данных также хранится файл с сохранениями игроков на сервере с именем players.db Готовую сборку PVP сервера можно скачать тут: http://s-platoon.ru/topic/7027-gotovaya-sborka-pvp-servera-dayz-063/ Вот и все, приятной игры на сервере!
-
Credits - @i_kolobov - Documentation and Code snippets @Arkensor - Code snippets @FIDOv - Documentation @Revelin - Code snippets https://www.reddit.com/r/dayz/comments/9l1rny/mod_airdrop/ Github - https://github.com/mov3ax/airdrop Topic with teaser - https://www.reddit.com/r/dayz/comments/9k545v/teaser_airdrop/ Код class CustomMission: MissionServer { /* DayZ 0.63 AirDrop plugin by mov3ax / mov3ax.pro */ /* ### ### ### ### ### ### ### ### */ float TimesliceMultiplyier = 0.01; // Timeslice multiplyier, default value is 0.01 (60 FPS) float AirPlaneSpeed = 0.25; // Airplane fly speed float AirPlaneHeight = 500; // Airplane fly height float AirDropFallSpeed = 0.2; // Airdrop fall speed // 600 Seconds = 10 Minutes float TicksTimerFromStart = 600 / TimesliceMultiplyier; // How much time will pass from the server start to first airdrop bool PrintInformationMessages = true; // Show in chat when airplane flew out and when airdrop is landed bool PrintInformationCoordinates = true; // Show in chat coordinates where airdrop is landed // 36000 Seconds = 1 Hour float RemoveTime = 36000 / TimesliceMultiplyier; // After how much time airplane and loot will be removed and new airplane will be spawned bool PrintDebugMessages = false; // Show debug messages (Debug) bool DropOnStart = false; // Drop airdrop instantly after airplane (Debug) bool TeleportDebug = false; // Teleport to airplane and airdrop during flight (Debug) bool RayReady = true; // Raycast for airdrop container fall math Object m_AirPlane; // Global airplane object Object m_AirDrop; // Glbal airdrop container object EntityAI m_AirDropLoot; // Airdrop container body ItemBase m_AirDropBase; // Airdrop container base Particle DropEffect; // Airdrop land particle effect float RandomRot = 0; // Default random rotation variable // 100 Seconds float RandomTime = 100; // Default random drop variable float Delay = 0; // Local variable for security int AirDropTime = 0; // Local variable int AirTimer = 0; // Local variable int RemoveTimer = 0; // Local variable bool TimerPassed = false; // Local variable bool AirPassed = false; // Local variable bool RemovePased = false; // Local variable bool DropTime = false; // Local variable bool PassTime = false; // Local variable vector RandomRotOrientation; // Local variable void SendMessage(string message) // Send message in global chat { ref array<Man> players = new array<Man>; GetGame().GetPlayers( players ); for ( int i = 0; i < players.Count(); i++ ) { PlayerBase player1; Class.CastTo(player1, players.Get(i)); Param1<string> m_AirTimer = new Param1<string>(message); GetGame().RPCSingleParam(player1, ERPCs.RPC_USER_ACTION_MESSAGE, m_AirTimer, true, player1.GetIdentity()); } } void SendPos(vector pos) // Teleport all players to position, debug { ref array<Man> players = new array<Man>; GetGame().GetPlayers( players ); for ( int i = 0; i < players.Count(); i++ ) { PlayerBase player1; Class.CastTo(player1, players.Get(i)); player1.SetPosition(pos); } } string GetRandomLoot() // Random Loot Presets { string loot; switch (Math.RandomInt(0, 6)) { case 0: loot = "LandMineTrap"; break; case 1: loot = "TTSKOPants"; break; case 2: loot = "TacticalBaconCan"; break; case 3: loot = "M4A1"; break; case 4: loot = "PlateCarrierComplete"; break; case 5: loot = "BakedBeansCan"; break; case 6: loot = "WaterBottle"; break; } return loot; } // Generating random airdrop position from list // You can get coordinates using debug monitor or this map https://dayz.ginfo.gg/ vector GetAirPlanePos() { protected vector airplane_yaw; // Local variable airplane_yaw[1] = AirPlaneHeight; // Airplane fly height switch (Math.RandomInt(0, 2)) { case 0: airplane_yaw[0] = 5500; airplane_yaw[2] = 500; break; case 1: airplane_yaw[0] = 2700; airplane_yaw[2] = 700; break; case 2: airplane_yaw[0] = 10000; airplane_yaw[2] = 1000; break; } return airplane_yaw; } void SpawnAirPlaneAndTeleportPlayer_DEBUG() { // Seconds devide on value of TimesliceMultiplyier (By default it is 0.01) RandomTime = Math.RandomFloat(75 / TimesliceMultiplyier, 180 / TimesliceMultiplyier); // Random drop bounds RandomRot = Math.RandomFloat(130, 190); // Random rot bounds if (PrintDebugMessages) SendMessage("Debug - RandomRot " + RandomRot); // Dynamic movement forward float rotationYaw = RandomRot; float f = rotationYaw * 0.017453292; float motionX = (double)(Math.Sin(f) * 7.5); // 7.5 is airdrop container motion speed float motionZ = (double)(Math.Cos(f) * 7.5); // 7.5 is airdrop container motion speed // Fixed position, if we dont multiply value to -1 it will move backwards protected vector m_AirPlaneFixedPosition; m_AirPlaneFixedPosition[0] = motionX * -1; m_AirPlaneFixedPosition[1] = 10; m_AirPlaneFixedPosition[2] = motionZ * -1; RandomRotOrientation[0] = RandomRot; m_AirPlane = GetGame().CreateObject( "Land_Wreck_C130J", GetAirPlanePos(), false, true ); // Create airplane model m_AirPlane.SetOrientation(RandomRotOrientation); // Rotate it to random angles in yaw //FIXME: Broken sound raduis GetGame().CreateSoundOnObject(m_AirPlane, "powerGeneratorLoop", 10000, true, false); // Attach airplane sound to itself if (PrintInformationMessages) SendMessage("Airplane flew out!"); protected vector m_AirPlanePos = m_AirPlane.GetPosition(); protected vector m_NewAirPlanePos = m_AirPlanePos - "0 0 0"; m_AirPlane.SetPosition(m_NewAirPlanePos); protected vector m_AirPlanePosDYN = m_AirPlane.GetPosition(); protected vector m_NewAirPlanePosDYN = (m_AirPlanePos) - m_AirPlaneFixedPosition; protected vector m_DropPos = m_NewAirPlanePosDYN; if (DropOnStart) // For debug puproses only { RayReady = false; m_AirDrop = GetGame().CreateObject( "Land_Container_1Bo", m_DropPos, false, true ); // Create airdrop model, in this case it is red container if (PrintInformationMessages) SendMessage("Airdrop dropped!"); // Reset it to default values RemoveTimer = 0; RemovePased = false; } if (PrintDebugMessages) { if (PrintInformationMessages) SendMessage("Airdrop dropped!"); if (TeleportDebug) SendPos(m_AirPlane.GetPosition()); } } void SpawnAirPlaneAndMove_DEBUG() { // Dynamic movement forward float rotationYaw = RandomRot; float f = rotationYaw * 0.017453292; float motionX = (double)(Math.Sin(f) * AirPlaneSpeed); // Airplane speed float motionZ = (double)(Math.Cos(f) * AirPlaneSpeed); // Airplane speed // Fixed position, if we dont multiply value to -1 it will move backwards protected vector m_AirPlaneFixedPosition; m_AirPlaneFixedPosition[0] = motionX * -1; m_AirPlaneFixedPosition[1] = 0; m_AirPlaneFixedPosition[2] = motionZ * -1; protected vector m_AirPlanePos = m_AirPlane.GetPosition(); protected vector m_NewAirPlanePos = m_AirPlanePos + m_AirPlaneFixedPosition; m_AirPlane.SetPosition(m_NewAirPlanePos); protected vector m_AirDropFallSpeed; m_AirDropFallSpeed[0] = 0; m_AirDropFallSpeed[1] = AirDropFallSpeed; m_AirDropFallSpeed[2] = 0; protected vector m_OldAirDropPos = m_AirDrop.GetPosition(); protected vector m_NewAirDropPos = m_OldAirDropPos - m_AirDropFallSpeed; // Raycast, check if airdrop is on ground vector rayStart = m_AirDrop.GetPosition() - "0 1.1 0"; vector rayEnd = m_NewAirDropPos; vector hitPos; vector hitNormal; int hitComponentIndex; protected vector m_AirPlanePosDYN = m_AirPlane.GetPosition(); protected vector m_NewAirPlanePosDYN = m_AirPlanePos - "0 10 0"; protected vector m_DropPos = m_NewAirPlanePosDYN; if (!RayReady) { if (DayZPhysics.RaycastRV(rayStart, rayEnd, hitPos, hitNormal, hitComponentIndex, NULL, NULL, m_AirDrop)) { m_AirDrop.SetPosition(hitPos + "0 1.1 0"); m_AirDrop.SetOrientation(hitNormal); // Create airdrop lootable container, in this case it is sea chest m_AirDropLoot = EntityAI.Cast(GetGame().CreateObject( "SeaChest", m_AirDrop.GetPosition(), false, true )); // We can't add barrel because it have to be opened // You can extend items count inside airdrop container or make it random m_AirDropLoot.GetInventory().CreateInInventory(GetRandomLoot()); m_AirDropLoot.GetInventory().CreateInInventory(GetRandomLoot()); m_AirDropLoot.GetInventory().CreateInInventory(GetRandomLoot()); m_AirDropLoot.GetInventory().CreateInInventory(GetRandomLoot()); m_AirDropLoot.GetInventory().CreateInInventory(GetRandomLoot()); m_AirDropLoot.GetInventory().CreateInInventory(GetRandomLoot()); m_AirDropBase = ItemBase.Cast(m_AirDropLoot); // Cast items to airdrop container // Play particle when airdrop container, in this case it is red container DropEffect = Particle.Play( ParticleList.EXPLOSION_LANDMINE, m_AirDrop.GetPosition() ); if (PrintInformationMessages && !PrintInformationCoordinates) SendMessage("Airdrop landed!"); else if (PrintInformationMessages && PrintInformationCoordinates) SendMessage("Airdrop landed at " + m_AirDrop.GetPosition() + "!"); // Reset it to default values RayReady = true; } else { m_AirDrop.SetPosition(m_NewAirDropPos); } } if (DropTime && !DropOnStart) { RayReady = false; m_AirDrop = GetGame().CreateObject( "Land_Container_1Bo", m_DropPos, false, true ); // Create airdrop model, in this case it is red container // Reset it to default values RemoveTimer = 0; RemovePased = false; DropTime = false; } } void CreateAirDrop() { // Remove timer if (RemoveTimer <= RemoveTime) { RemoveTimer++; } else { // Removing all objects when remove timer is passed if (!RemovePased) { m_AirDrop.SetPosition(vector.Zero); GetGame().ObjectDelete( m_AirDrop ); m_AirDrop = NULL; m_AirPlane.SetPosition(vector.Zero); GetGame().ObjectDelete( m_AirPlane ); m_AirPlane = NULL; m_AirDropBase.SetPosition(vector.Zero); GetGame().ObjectDelete( m_AirDropBase ); m_AirDropBase = NULL; m_AirDropLoot.SetPosition(vector.Zero); GetGame().ObjectDelete( m_AirDropLoot ); m_AirDropLoot = NULL; // Reset it to default values AirPassed = false; TimerPassed = false; AirDropTime = 0; AirTimer = 0; DropTime = false; RemovePased = true; } } // After how much time after restart need to wait before airplane spawn if (AirTimer <= TicksTimerFromStart) { AirTimer++; if (PrintDebugMessages) SendMessage("Debug - " + AirTimer); } else { // Reset it to default values TimerPassed = true; } if (TimerPassed && !AirPassed) { if (PrintDebugMessages) SendMessage("Debug - Ticks Passed!"); SpawnAirPlaneAndTeleportPlayer_DEBUG(); if (PrintDebugMessages) SendMessage("Debug - Test! Spawned via timer"); // Reset it to default values AirPassed = true; } if (AirPassed) { if (m_AirPlane) { SpawnAirPlaneAndMove_DEBUG(); } } if (AirDropTime <= RandomTime) { AirDropTime++; if (PrintDebugMessages) { if (TeleportDebug) SendPos(m_AirPlane.GetPosition()); SendMessage("Debug Time - " + AirDropTime); SendMessage("Random Time - " + RandomTime); } } else { if (Delay <= 1000) { Delay++; } else { if (!RayReady) { if (TeleportDebug) SendPos(m_AirDrop.GetPosition()); } if (!PassTime) { // Reset it to default values DropTime = true; PassTime = true; } } } } /* ### ### ### ### ### ### ### ### */ float TimerSlice; override void OnUpdate( float timeslice ) { super.OnUpdate( timeslice ); // FPS Fix TimerSlice += timeslice; if (TimerSlice >= TimesliceMultiplyier) { CreateAirDrop(); TimerSlice = 0; } } }; Mission CreateCustomMission(string path) { return new CustomMission(); }
-
Нам понадобится: 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 игрока на сервере ваш файл с данными по игрокам будет присутствовать и заполняться информацией, а в случае их отсутствия удаляться.
-
Автор скрипта: http://s-platoon.ru/profile/48-nonameultima/ Все благодарности за этот скрипт непосредственно автору скрипта, не мне! В данной теме, расскажу как сделать зараженные газом области на карте. Автор: NoNameUltima 1. Открываем на сервере файл: missionServer.c 2. После строки: GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(this.UpdatePlayersStats, 30000, true); Добавляем: GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(this.GAS_ZONE_TRIGGER, 10000, true); *10000 - Время в мс(10 секунд). С такой частотой будет наноситься урон в данной области. После строки: GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).Remove(this.UpdatePlayersStats); Добавляем: GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).Remove(this.GAS_ZONE_TRIGGER); Ищем строку: void UpdatePlayersStats() Вставляем ВЫШЕ нее, следующий код: void GAS_ZONE_TRIGGER() { /* GAS_ZONE_TRIGGER Автор: NoNameUltima skype: hf-trade */ // Зараженные зоны TVectorArray gas_points = {"13249 0 3962", "6389 0 2683", "6612 0 2561"}; // Массив намордников TStringArray gas_masks = {"GasMask", "GP5GasMask"}; // Радиус зон int radius = 350; // Наносимый урон float damage_value = 10; ref array<Man> players = new array<Man>; GetGame().GetPlayers( players ); PlayerBase player; vector position_player; int x; bool isGasMask; int attCount; int attIdx; EntityAI attachment; ItemBase item; string className; float damage_player; for (int i = 0; i < players.Count(); i++) { Class.CastTo(player, players.Get(i)); position_player = player.GetPosition(); for (x = 0; x < gas_points.Count(); x++) { if ( (vector.Distance(position_player, gas_points.Get(x))) < radius ) { isGasMask = false; attCount = player.GetInventory().AttachmentCount(); for (attIdx = 0; attIdx < attCount; attIdx++) { attachment = player.GetInventory().GetAttachmentFromIndex(attIdx); if ( attachment.IsItemBase() ) { item = Class.Cast(attachment); className = item.GetType(); if ( gas_masks.Find(className) >= 0 ) { //Print ("Намордник найден!"); isGasMask = true; break; } } } if (isGasMask == false) { //Print ("Намордник не найден!"); damage_player = player.GetHealth("GlobalHealth", "Health"); player.SetHealth("GlobalHealth", "Health", damage_player - damage_value); } } } } } P.S. 1. Так же можно изменить формат массива, и сделать зоны с разным радиусом 2. Можно при желании добавить вывод оповещения, в зараженных зонах. *Скрипт предоставлен мной, в обрезанном виде намерено - остальное на Ваш вкус и цвет Изменено 4 октября пользователем NoNameUltima Добавлено от 123new: Файл missionServer.c располагается в {папка сервера}\scripts\5_Mission\MissionServer\missionServer.c Если у вас нет папки scripts в папке с сервером игры, откройте папку dta, распакуйте папку scripts из pbo-файла scripts.pbo и переместите в папку с сервером. Чтобы папка считывалась сервером, необходимо добавить параметр запуска сервера '-FilePatching'. P.S. Гайд не проверялся на актуальной версии серверной части игры со steam!
- 13 replies
-
- dayz
- standalone
-
(and 3 more)
Tagged with:
-
Автор скрипта: http://s-platoon.ru/profile/48-nonameultima/ Все благодарности за этот скрипт непосредственно автору скрипта, не мне! Процедурка для получения дистанции между двумя точками, без учета высоты. Class Ultima_Functions { static float Distance2D(vector v_PointA, vector v_PointB) {return Math.Sqrt( Math.Pow((v_PointA[0] - v_PointB[0]), 2) + Math.Pow((v_PointA[2] - v_PointB[2]), 2) );} } Пример использования: vector v_A = "0 0 0"; vector v_B = "100 100 100"; float v_Distance2D; v_Distance2D = Ultima_Functions.Distance2D(v_A, v_B); Print(string.Format("Дистанция между точками: %1м", v_Distance2D));
- 2 replies
-
- dayz
- standalone
-
(and 8 more)
Tagged with:
-
Официальные файлы сервера DayZ 0.63 / Фикс проблем с запуском
STORMWAY posted a topic in Версия 0.63
Официальные серверные файлы DayZ Standalone 0.63. Официальная документация от Bohemia (на английском): https://forums.dayz.com/topic/239635-dayz-server-files-documentation/ Перевод (на русском): Скачать из Mega.Nz: https://mega.nz/#!VcUE2SDI!KzqEh791T_E-Iwaort4eVwkN5bbvaCwzjluhP0ZWZxw Скачать из Steam: https://store.steampowered.com/app/223350/DayZ_Server/ Запуск сервера (У некоторых с этим проблемы) У некоторых пользователей, сразу возникли проблемы с запуском, а именно: Ошибка подобного содержания. Вот вам решение проблемы: Вам нужно, создать .bat файл в директории сервера, с этим содержанием: «start "" "DayZServer_x64.exe" -port=2302 -config=!ServerSettings\serverDZ.cfg -profiles=!ServerSettings -user=!ServerSettings -name=Server -freezecheck -autoinit» Поясняю: -port=2302 — Указать ваш открытый порт. -!ServerSettings — Папка с файлами конфигурации, базой данных игроков, настройками BattleEye и файлами логов сервера. P.S. Если нужно, дописываем в конце «-adminlog» для создания дополнительного файла с логами сервера формата .ADM Далее, создаем папку в корне сервера «!ServerSettings» про ! не забываем! И в эту папку переносим файл serverDZ.cfg Все, запускать сервер через созданный нами BAT файл.