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 DrTauren
Что нам понадобится:
1) Архив
2) Notepad
Инструкция:
1) Качаем архив и копируем из него папку custom в вашу папку с миссией
2) Открываем init.sqf и ищем такие строки:
if (!isDedicated) then { 0 fadeSound 0; waitUntil {!isNil "dayz_loadScreenMsg"}; dayz_loadScreenMsg = (localize "STR_AUTHENTICATING"); _id = player addEventHandler ["Respawn", {_id = [] spawn player_death;}]; }; 3) Перед закрывающей скобкой }; прописываем это:
_nil = [] execVM "custom\JAEM\EvacChopper_init.sqf"; 4) Выбираем одно из двух, выполняем действия указанные ниже:
Если у вас нет своего variables.sqf в папке с миссией:
Если у вас есть свой variables.sqf в папке с миссией:
5) Копируем файлы remoteexec.txt, waypointcondition.txt, waypointstatement.txt в вашу папку с фильтрами BattlEye (\instance_11_Chernarus\BattlEye)
Настройка параметров:
Открываем файл EvacChopper_init.sqf (custom\JAEM\EvacChopper_init.sqf), находим нужную строку, редактируем по своему усмотрению:
evac_chopperPrice = 3; Цена вашего спасения евреями. По умолчанию 3 Брифкейса
evac_needRadio = 0; Обязательно ли радио для того, что бы вызвать хапуг? (0-не нужно, 1-таки извольте)
evac_zoneMarker = 0; Дымовая граната на месте эвакуации (0-не надо, 1-таки не увидим мы без дыма)
evac_minDistance = 500; Дословно: минимальное расстояние, что бы вызвать евреев. Меньше 500 не ставить!
-
By Alex39
Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
Установка:
1)Качаем архив по ссылке : https://yadi.sk/d/5KIm6cly3HsJVj 2)Кидаем папку addons в корень миссий 3)Открываем init.sqf и прописываем: После:
dayz_fullMoonNights = true;
Данные коды:
//Выброс ns_blowout = true; // true / false ns_blowout_dayz = true;// true / false ns_blow_delaymod = 0.50; //blowout delay ns_blow_itemapsi = "ItemRadio"; //ItemAPSI replacement ns_blow_playerdamage = 9000; // damage players without ns_blow_itemapsi can get per blowout ns_blow_emp = false; //Namalsk Only
Так же в init.sqf после:
#include "\z\addons\dayz_code\system\BIS_Effects\init.sqf"
Прописываем:
if (isServer) then { _bul = [ns_blow_emp] execVM "addons\blowout\module\blowout_server.sqf"; }; if (!isDedicated) then { _bul = [] execVM "addons\blowout\module\blowout_client.sqf"; };
Добавляем коды для description.ext Звуки: И второй код надо прописать в descripton.ext в самый низ командой
#include "addons\blowout\code.hpp"
Настройка раз в сколько будет выброс отвечает данное строчка
ns_blow_delaymod = 0.50;
которая будет в init.sqf (0.50 = раз в 50 почти 60 минут ) P.S. Что бы знать о приближающем выбросе надо в инвентарь радио кинуть, так же оно и спасает от радиации во время выброса, и некоторые здания, хотя в настройках можно что угодно указать, на видео я раньше включил, так как я точно не могу сказать когда будет, хоть и поставил на 10 минут
-
By DrTauren
Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
Нам понадобится:
1) Navicat
Инструкция:
1) Заходим в вашу базу данных через Navicat, открываем таблицу traders_data.
2) Добавляем в таблицу новую строку и редактируем её.
3) Редактируемые параметры:
Первая колонка - ID вашего товара. Не трогать, т.к. присваивается автоматически. Вторая колонка - Класс товара. Например HandChemRed.
Число после класса - Количество этого товара, отдаваемое игроку за одну сделку. Третья колонка - Количество анимаций для успешного завершения покупки. Четвёртая колонка - Цена покупки (вы получаете). Число - количество слитков. За тем идёт класс товара. Пятая колонка - Цена продажи (вы отдаёте). Заполняется по аналогии с четвёртой коолонкой. Шестая колонка - оставляете значение, равное нулю. Седьмая колонка - ID торговца, у которого должен появиться товар. Что бы понять какой ID вам нужен, просто ищите товар из этой же категории (например сметана и молоко = молочные продукты), смотрите ID торговца, у которого он продаётся и ставите нужное знаение в свою новую строку. Восьмая колонка - ID категории товара. Что бы понять какой ID вам нужен, просто ищите товар из этой же категории (например сметана и молоко = молочные продукты), смотрите ID его категории и ставите нужное знаение в свою новую строку. 4) Сохраняем нашу базу данных, перезапускаем сервер, отправляемся к торговцу и чекаем новый товар ^_^
P.S. Я, например, добавлял себе на локалку KA137_PMC
-
By DrTauren
Собственно этот гайд поможет вам добавлять ботам монеты. То есть убиваете бота - подбираете монеты, которые поступают на ваш счёт.
Что нам понадобится:
Установленные DZMS
Инструкция:
Открываем DZMSAISpawn.sqf (Server.pbo > DZMS > Scripts), ищем эти строки:
//Add the behaviour _unit enableAI "TARGET"; _unit enableAI "AUTOTARGET"; _unit enableAI "MOVE"; _unit enableAI "ANIM"; _unit enableAI "FSM"; _unit setCombatMode "YELLOW"; _unit setBehaviour "COMBAT"; и добавляем после последней строки это:
//Zupa Currency _unit setVariable["headShots",20,true]; где 20 это кол-во монет у каждого бота
Информация:
Гайд по установке единой банковской системы
-
By СЕРГЕЙ
Примеры, по использованию DLL, в своих скриптах. Для примера, взята DLL от NoNameUltima, которая работает с ini файлами. *API, примеры работы и т.п., Вы можете посмотреть на сайте автора. Ссылка дана в конце статьи. Что же мы будем делать? - Мы рассмотрим, как можно без базы данных, хранить и использовать какие то данные. А конкретнее - напишем свою валюту. Примеры будут простыми, с пояснениями, я их разбил на несколько частей. Необходимые файлы: Сама DLL - размещаем в папке с игрой. Клиентские скрипты. Создание переменной для хранения баланса. Создание публичных событий. Запрос баланса с помощью публичных событий. Пополнение баланса, за убийство зомби. Серверные скрипты. Подключение DLL. Создание публичных событий. Чтение из ini с помощью DLL Запись в ini с помощью DLL Отображение баланса у игроков. Начнем с клиентской части: Создадим файл в нашей миссии, и назовем его: ultima_balance.sqf Откроем файл init.sqf, в Вашей миссии, и допишем в самый низ:
[] ExecVM "ultima_balance.sqf";
Код данного файла с пояснениями:
// Если это НЕ сервер if !(isServer) then { // Добавляем игроку, переменную ini_money, в ней будет баланс игрока. player setVariable ["ini_money", -1]; // Регистрация публичных событий - Что делать при приходе с сервера пакета Balance_Client "Balance_Client" addPublicVariableEventHandler { Private ["_packet_type"]; // Получаем первую переменную - она говорит нам, что необходимо сделать. _packet_type = (_this select 1) select 0; // Разбираемся, что нам необходимо сделать switch (_packet_type) do // Если ноль, - нам пришел баланс. Сам баланс, во второй переменной. Кладем его в ini_money {case "0" : {player setVariable ["ini_money", (_this select 1) select 1];};}; }; // Запрос на сервер о балансе, при подключении // Ждем пока игрок не прогрузится. disableSerialization; waituntil {!isnull (finddisplay 46)}; // Отправляем пакет на сервер, с запросом о балансе. т.к. сервер мог не успеть прогрузить файл с балансами, будем отправлять данный пакет, пока не прийдет ответ, с интервалом в 5 секунд. while ( (player getVariable ["ini_money", -1]) == -1) do { // Кладем в переменную Balance_Server, наш идентификатор - player, и второй переменной отправляем ноль. На сервере, будем смотреть - если пришел ноль, то игрок запросил баланс Balance_Server = [player, "0"]; // Отправляем Balance_Server на сервер publicVariableServer "Balance_Server"; // Ждем 5 секунд. sleep 5; }; };
Открываем файл: local_eventKill.sqf Перед последней скобочкой - }; , внизу файла, добавляем:
// Если убийца - игрок if (_killer == player) then { // Кладем в переменную Balance_Server, наш идентификатор - player, второй переменной отправляем - 1(говорим серверу, что надо пополнить баланс за убийство ЗМ.) третьей переменной - на сколько пополнить баланс. Balance_Server = [player, "1", 1]; // Отправляем Balance_Server на сервер publicVariableServer "Balance_Server"; };
На этом все, с клиентскими скриптами. Серверные скрипты: Создаем файл на сервере, в папке Вашей миссии, с названием - ultima_balance.sqf Код файла с пояснениями:
// Чтение балансов пользователей, и составление массива, при старте сервера. // Создаем глобальный массив пользователей, в котором будут UID'ы игроков и их балансы. Users_Balance = []; Private ["_section_count","_i","_playerUID","_balance"]; // Создаем глобальную переменную, в которой будет имя DLL Ultima_ini = "ultima_ini"; // Инициализируем DLL - см. API для работы с DLL в статье Ultima_ini callExtension "0|test.ini|1"; // Получаем кол-во секций в ini файле. - см. API для работы с DLL в статье _section_count = parseNumber(Ultima_ini callExtension "1"); // Цикл - от 0 и до кол-ва полученых секций for "_i" from 0 to _section_count do { // Читаем в ini секции, и получаем ее имя. - см. API для работы с DLL в статье _playerUID = Ultima_ini callExtension format["3|%1",_i]; // По имени секции, читаем в ini ключ с именем balance, и получаем его значение. - см. API для работы с DLL в статье _balance = Ultima_ini callExtension format["10|%1|balance",_playerUID]; // Кладем в массив, полученные - UID и баланс. Users_Balance set [count Users_Balance, [_playerUID, _balance]]; }; // Функция для поиска баланса игрока в массиве, если не найден, - нет в файле - добавим в массив, и в файл. ini_Get_Balance = { Private ["_playerUID","_result"]; _result = -1; // Получаем UID игрока, запросившего баланс. _playerUID = _this select 0; // Перебираем игроков которые есть в массиве. { // Если игрок найден, кладем в ответ баланс и выходим. if ( (_x select 0) == _playerUID) exitWith {_result = (_x select 1)}; } forEach Users_Balance; // Если игрок не был найден(новый игрок, и его нет ни в массиве, ни в файле) if (_result == -1) then { // Добавим в массив, запись о балансе игрока. - Баланс естественно у нового игрока 0. Users_Balance = set [count Users_Balance, [_playerUID, balance]]; // Добавим в ini файл, игрока и его баланс. - см. API для работы с DLL в статье Ultima_ini callExtension format["8|%1|balance|0",_playerUID]; _result = 0; }; _result }; // Процедура для обновления баланса игрока ini_Update_Balance = { Private ["_playerUID","_inc_balance","_i"]; // Получаем UID игрока, баланс которого надо обновить. _playerUID = _this select 0; // Получаем число, на которое надо увеличить баланс. _inc_balance = _this select 1; // Перебираем игроков, которые есть в массиве. _i = 0; { // Если игрок найден, кладем в ответ баланс и выходим.(Игрок 100% должен быть в массиве, т.к. при коннекте его должны были добавить в него, если он там отсутствовал). if ( (_x select 0) == _playerUID) exitWith { // Изменяем текущий баланс(Прибавляем к текущему, значение на которое надо увеличить баланс). _balance = (_x select 1) + _inc_balance; // Изменяем данные в массиве. Users_Balance set [_i,[_playerUID, _balance]]; // Изменяем данные в файле. - см. API для работы с DLL в статье Ultima_ini callExtension format["8|%1|balance|%2",_playerUID,_balance]; }; _i = _i + 1; } forEach Users_Balance; }; // Создание пубичного события для сервера. (т.е. будем тут принимать от клиента его запросы, и отвечать, на них - запрос о балансе - при коннекте, убийстве зм)... "Balance_Server" addPublicVariableEventHandler { Private ["_packet","_playerUID","_client"]; _packet = (_this select 1); _client = owner (_packet select 0); switch (_packet) do { case "0" : // Игрок соединился, и запросил баланс. { Private ["_balance","_client"]; _player_UID = getPlayerUID(_packet select 0); // Получаем UID игрока. _balance = [_playerUID] call ini_Get_Balance; // Получаем баланс игрока. Balance_Client = ["0", _balance]; // Составляем ответ для игрока. _client publicVariableClient "Balance_Client"; // Отправляем игроку данные. }; case "1" : // Если надо пополнить баланс. { Private ["_inc_balance"]; _player_UID = getPlayerUID(_packet select 0); // Получаем UID игрока. _inc_balance = ((_this select 1) select 2); // Получаем число, на которое надо увеличить баланс. [_playerUID,_inc_balance] call ini_Update_Balance; // Заменяем баланс игрока, в массиве, и в файле ini. }; }; };
Добавление отображения баланса в дебаг монитор: Если у Вас инфистар: Откройте файл AH.sqf Найдите такую строку:
hintSilent parseText format [""
Выше вставьте:
_ultima_balance = player getVariable ['ini_money', -1]; Найдите строки:
"", _txt,
Выше вставьте:
<t size='1' font='Bitstream' align='Center' color='#CC0000'>%12</t>
Найдите строки:
(player getVariable['humanKills', 0]), (player getVariable['banditKills', 0])
Поставьте в конце данных строку, запятую, и ниже вставьте:
_ultima_balance
На всякий, случай - полный код дебаг монитора из инфистар, с добавлением:
fnc_debugX = { admin_debug_run = false; _BottomDebug = "+(str _BottomDebug)+"; while {debugMonitorX} do { _pic = (gettext (configFile >> 'CfgVehicles' >> (typeof vehicle player) >> 'picture')); if (player == vehicle player) then {_pic = (gettext (configFile >> 'cfgWeapons' >> (currentWeapon player) >> 'picture')); }else{_pic = (gettext (configFile >> 'CfgVehicles' >> (typeof vehicle player) >> 'picture'));}; _txt = ''; _txt = (gettext (configFile >> 'CfgVehicles' >> (typeof vehicle player) >> 'displayName')); _stime = 0; if(serverTime > 36000)then{_stime = time;}else{_stime = serverTime;}; _hours = (_stime/60/60); _hours = toArray (str _hours); _hours resize 1; _hours = toString _hours; _hours = compile _hours; _hours = call _hours; _minutes = floor(_stime/60); _minutes2 = _minutes - (_hours*60); _ultima_balance = player getVariable ['ini_money', -1]; hintSilent parseText format ["" <t size='1' font='Bitstream' align='Center' >[%1]</t><br/> <img size='4.75' image='%4'/><br/> <t size='1' font='Bitstream' align='left' color='#CC0000'>Blood: </t><t size='1' font='Bitstream' align='right'>%2</t><br/> <t size='1' font='Bitstream' align='left' color='#0066CC'>Humanity: </t><t size='1' font='Bitstream' align='right'>%3</t><br/> <br/> <t size='1' font='Bitstream' align='left' color='#FFBF00'>Zombie Kills: </t><t size='1' font='Bitstream' align='right'>%9</t><br/> <t size='1' font='Bitstream' align='left' color='#FFBF00'>Murders: </t><t size='1' font='Bitstream' align='right'>%10</t><br/> <t size='1' font='Bitstream' align='left' color='#FFBF00'>Bandits Killed: </t><t size='1' font='Bitstream' align='right'>%11</t><br/> <br/> <t size='1' font='Bitstream' align='left' color='#FFBF00'>UPTIME: </t><t size='1' font='Bitstream' align='right'>%5h %6min</t><br/> <t size='1' font='Bitstream' align='left' color='#FFBF00'>FPS: </t><t size='1' font='Bitstream' align='right'>%8</t><br/> <t size='1' font='Bitstream' align='Center' color='#CC0000'>%7</t> <t size='1' font='Bitstream' align='Center' color='#CC0000'>%12</t> "", _txt, (r_player_blood), round (player getVariable['humanity', 0]), _pic, _hours, _minutes2, _BottomDebug, (round diag_fps), (player getVariable['zombieKills', 0]), (player getVariable['humanKills', 0]), (player getVariable['banditKills', 0]), _ultima_balance ]; sleep 1; }; };
Это всего лишь пример, применения и работы с DLL в ARMA2, и в частности с эпохой. Как добавить обменник голды, на вашу валюту, как поставить предмет за валюту вместо голды и т.п. - Это уже другая тема. Однако, ничего сложного в этом нет. Вы так же можете добавить, свои рейтинги, и другие значения в ini файл(ы), и работать с ними. Разнообразьте свой сервер)) Ссылка на API с офф сайта: http://rnrportal.ru/forum/index.php?/topic/6-dll-%D0%B4%D0%BB%D1%8F-%D1%81%D0%B2%D1%8F%D0%B7%D0%BA%D0%B8-%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2-arma-2-%D0%B8-ini-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2/
-
-
Our picks
Парни подскажите темку по созданию (объеденению модов) или же может кто поделится сборкой. Просто поиграл на таком сервере и понравилось , куча новых стволов , новые звуки , новый транспорт. Хочу открыть еще один сервер. Буду признателен кто поделится сборкой.
Edited by smirnov-ivan1983 (see edit history)Share this post
Link to post
Share on other sites