Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • 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 servers
  • Don'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'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Main category
    • S-Platoon
    • Private section
    • Marketplace
    • Chatter
  • DayZ Standalone
    • Instructions
    • Help
    • Other
    • English section
  • General section
    • ARMA 3
    • DayZ mod
    • ARMA 2
    • CS: Global offensive
    • ARK: Survival Evolved
    • Minecraft
    • Rust
  • Product support topics

Categories

  • DayZ
    • Ready servers
    • Scripts, mods, files etc.
    • Vehicles
    • Weapons, tools, items
    • Map add-ons
    • Models
    • Software
    • Other
  • Arma 3
    • Ready servers
    • Scripts, mods, files etc.
    • Vehicles
    • Models
    • Software
    • Other

Product Groups

  • Privileges on the forum
  • Advertising on the site

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


VK Social


Steam


ICQ


Skype


City


Web-site


Interests

Found 8 results

  1. В этом гайде мы разберёмся как настроить стартовый лут на сервере 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 тут:
  2. Предлагаю все возможные гайды по enscript/моддингу публиковать в этой теме Ссылка на предыдущею версию темы по enscript версии 0.62 - там можно прочитать в общих чертах про этот язык
  3. Здравствуйте, дорогие друзья и посетители сайта. В данной теме я распишу как создать свой "чистый" сервер на основе первых официальных серверных файлов игры, доступных каждому в 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/ Вот и все, приятной игры на сервере!
  4. 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(); }
  5. Нам понадобится: 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 игрока на сервере ваш файл с данными по игрокам будет присутствовать и заполняться информацией, а в случае их отсутствия удаляться.
  6. Автор скрипта: 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!
  7. Автор скрипта: 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));
  8. Официальные серверные файлы 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 файл.
×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.