anap

Лотерея на сервер

Вопрос

Уважаемые форумчане, я по такому вопросу. Как-то я увидел на зарубежном сервере систему "Лотереи", в чём она заключается. Стоять торговцы при наводи на них появляется список ставок(1, 2 и 3 gold), и с каким-то шансом вам может выпасть рандомный лут(техника или даже животное, да и такое бывает:-)) или вообще не выпасть(также есть джекпот). Сколько я не искал данный скрипт, найти не могу. Помогите может кто-то знает где можно взять данный скрипт или тому подобное.

Изменено пользователем anap (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

6 ответов на этот вопрос

Ладно тема закрыта. Спасибо всем за внимание!

Изменено пользователем anap (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Забронировать это рекламное место


Что то вроде этого? Сам блин ищу)))Бред конечно,но весело)))

 

 

Изменено пользователем inG (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Будем все искать) Я в принципе могу слить с сервера, но дайте сервер с этим скриптом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Будем все искать) Я в принципе могу слить с сервера, но дайте сервер с этим скриптом?

Я не думаю, что личные серверные скрипты кто-то будет в миссию закидывать. Там далеко не дураки сидят, просто так не сольешь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я не думаю, что личные серверные скрипты кто-то будет в миссию закидывать. Там далеко не дураки сидят, просто так не сольешь.

Уже был момент когда данный скрипт я вытягивал из миссии, просто он был утерян(из-за моей не осторожности)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Похожие публикации

    • Автор: 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 минут  
    • Автор: DrTauren

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
       
      Нам понадобится:
      1) Navicat
       
      Инструкция:
      1) Заходим в вашу базу данных через Navicat, открываем таблицу traders_data.
      2) Добавляем в таблицу новую строку и редактируем её.
      3) Редактируемые параметры:
      Первая колонка - ID вашего товара. Не трогать, т.к. присваивается автоматически. Вторая колонка - Класс товара. Например HandChemRed.
      Число после класса - Количество этого товара, отдаваемое игроку за одну сделку. Третья колонка - Количество анимаций для успешного завершения покупки. Четвёртая колонка - Цена покупки (вы получаете). Число - количество слитков.  За тем идёт класс товара. Пятая колонка - Цена продажи (вы отдаёте). Заполняется по аналогии с четвёртой коолонкой. Шестая колонка - оставляете значение, равное нулю. Седьмая колонка - ID торговца, у которого должен появиться товар. Что бы понять какой ID вам нужен, просто ищите товар из этой же категории (например сметана и молоко = молочные продукты), смотрите ID торговца, у которого он продаётся и ставите нужное знаение в свою новую строку. Восьмая колонка - ID категории товара. Что бы понять какой ID вам нужен, просто ищите товар из этой же категории (например сметана и молоко = молочные продукты), смотрите ID его категории и ставите нужное знаение в свою новую строку. 4) Сохраняем нашу базу данных, перезапускаем сервер, отправляемся к торговцу и чекаем новый товар ^_^

      P.S. Я, например, добавлял себе на локалку KA137_PMC
    • Автор: 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 это кол-во монет у каждого бота

      Информация:
      Гайд по установке единой банковской системы
    • Автор: СЕРГЕЙ
      Примеры, по использованию 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/         
    • Автор: DrTauren
      Всем привет!
      Гайдов давно не было, так что сегодня научу вас одной премудрости, которую нашёл недавно. А именно выбор спавна как в @DayZ 1.8.0.3 (скрин внизу).

      Что нам понадобится:
      1) Notepad
      2) Архив для DayZ EPOCH 1.0.4.2 (обновлено)
      3) Если версия вашего сервера EPOCH 1.0.5.2, то используйте архив выше, но замените файл player_monitor.sqf этим (обновлено)

      Инструкция:
      1) Качаем архив и копируем папку dayz_code в папку с вашей миссией
      2) Файл server_playerSetup.sqf вставляем с заменой по пути: @DayZ_Epoch_Server\addons\dayz_server\compile (сначала нужно распаковать dayz_server.pbo, естественно)
      3) В самый низ description.ext добавляем:
      #include "dayz_code\config\RscDisplaySpawnSelecter.hpp" 4) В init.sqf под строками
      spawnShoremode = 1; // Default = 1 (on shore) spawnArea= 1500; // Default = 1500 Добавляем вот это:
      dayz_spawnselection = 1; // DayZ Spawnselection / 1 = enabled // 0 = disabled, No current spawn limits. 5) В init.sqf заменяем эту строку:
      _playerMonitor =     [] execVM "\z\addons\dayz_code\system\player_monitor.sqf"; Вот этой:
      _playerMonitor =     [] execVM "dayz_code\system\player_monitor.sqf"; 6) Заходим в mission.sqm, находим раздел класса "Markers" и заменяем весь блок на это:
       
       

      Понравился гайд? Ставь +
      P.S. Копипастеры горят в аду :happy:

      АРХИВ ПЕРЕЗАЛИТ, ГАЙД ДОРАБОТАН

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.