Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
karim0714

[LRS]Система денежных вознаграждений игроков

Рекомендованные сообщения

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

 

Система денежных вознаграждений игроков.

Работает это так: Игрокам, находящимся на сервере выдается денежное вознаграждение через определенный промежуток времени.

 

Приступим к установке:

 

1) В папке с миссией создаем папку Scripts, в этой папке создаем файл fn_rewardLoyalty.sqf и в него вставляем следующий код:

multiPlyWith = 1;
_i=0;

while {_i < 7} do
{
	if ( _i == 1) then 
	{
		_reward = (10000 * multiPlyWith); //Здесь выставляем сумму выплат
		player setVariable ["cashMoney", ((player getVariable ["cashMoney", 0]) + _reward), true];
		_msg = parseText format ["<t align='center' color='#FFFFFF' shadow='2' size='1.75'>Выплата пособия! </t><br/><t align='center' color='#17FF41'>------------------------------</t><br/><t align='center' color='#FFFFFF'>%1, Вам была произведена выплата по безработице!</t><t align='center' color='#40FF00'>$%2</t>", name player, _reward];
		hint _msg;
		cutText ["Вам была произведена выплата по безработице!","PLAIN DOWN",2];
		multiPlyWith = multiPlyWith + 1;
		_i = 0;
	};
	sleep 3600; //Здесь выставляем промежуток времени между выплатами в секундах. (3600 с. = 60 мин. = 1ч.)
	_i = _i + 1;
};

2) В конце файла init.sqf вставляем это:

execVM "Scripts\fn_rewardLoyalty.sqf"

3) Сохраняем, запускаем сервер и радуемся.

 

P.S. Выплаты работают только с установленными денежными системами SC 2.0, SC 3.0.

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


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

Для рп подошёл бы, а так и играть не нужно, в АФК стал и все))

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


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

Для рп подошёл бы, а так и играть не нужно, в АФК стал и все))

Персонажу кушать то тоже нужно, а то умрёт с голоду :D 

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


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

Скрипт интересный, но почему-то сильно нагружает сервер.

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


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

Скрипт интересный, но почему-то сильно нагружает сервер.

А как это выражается? Я просто еще на основной сервер этот скрипт не заливал. А на тестовом вроде все норм.

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


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

А как это выражается? Я просто еще на основной сервер этот скрипт не заливал. А на тестовом вроде все норм.

 

Проявляется в виде кратковременного падения фпс, фризов, долгого отклика базы данных (долго открывается техника, долго спавнится и т.д.).

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


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

Более идиотско написанного скрипта я еще не видел.

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


Ссылка на сообщение
Поделиться на других сайтах
  • multiPlyWith = 1;
  • _i=0;
  •  
  • while {_i < 7} do

По условию скрипта - _i изначально 0, затем всегда равен 1. т.е. цикл бесконечный. - нахера писать такую проверку?

  • {
  •     if ( _i == 1) then

 

Бред сивой кобылы - _i, как написал выше -  всегда равен 1, по условию скрипта.

 

  •     {
  •         _reward = (10000 * multiPlyWith); //Здесь выставляем сумму выплат
  •         player setVariable ["cashMoney", ((player getVariable ["cashMoney", 0]) + _reward), true];
  •         _msg = parseText format ["<t align='center' color='#FFFFFF' shadow='2' size='1.75'>Выплата пособия! </t><br/><t align='center' color='#17FF41'>------------------------------</t><br/><t align='center' color='#FFFFFF'>%1, Вам была произведена выплата по безработице!</t><t align='center' color='#40FF00'>$%2</t>", name player, _reward];
  •         hint _msg;
  •         cutText ["Вам была произведена выплата по безработице!","PLAIN DOWN",2];
  •         multiPlyWith = multiPlyWith + 1;
  •         _i = 0;
  •     };
  •     sleep 3600; //Здесь выставляем промежуток времени между выплатами в секундах. (3600 с. = 60 мин. = 1ч.)
  •     _i = _i + 1;
  • };

 

Весь этот бред, можно заменить на:

 

 

Private ["_pay", "_incHours", "_pause", "_i", "_value", "_msg"];
_pay       =    10000; // Сколько выплачивать за каждый XX секунд онлайна
_incHours  =    true;  // Увеличивать выплату каждые XX секунд множителем?
_pause     =    3600;  // Кол-во секунд после которых происходит выплата

_i         =    0;
_value     =    _pay;
while {true} do
    {
        uiSleep _pause;
        if (_incHours) then
            {
                _i        =    _i + 1;
                _value    =    _pay * _i;
            };
        player setVariable ["cashMoney", ((player getVariable ["cashMoney", 0]) + _value), true];
        _msg = parseText format ["<t align='center' color='#FFFFFF' shadow='2' size='1.75'>Выплата пособия! </t><br/><t align='center' color='#17FF41'>------------------------------</t><br/><t align='center' color='#FFFFFF'>%1, Вам была произведена выплата по безработице!</t><t align='center' color='#40FF00'>$%2</t>", name player, _value];
        hint _msg;
        cutText ["Вам была произведена выплата по безработице!","PLAIN DOWN",2];
    };
 

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


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

 

  • multiPlyWith = 1;
  • _i=0;
  •  
  • while {_i < 7} do

По условию скрипта - _i изначально 0, затем всегда равен 1. т.е. цикл бесконечный. - нахера писать такую проверку?

  • {
  •     if ( _i == 1) then

 

Бред сивой кобылы - _i, как написал выше -  всегда равен 1, по условию скрипта.

 

  •     {
  •         _reward = (10000 * multiPlyWith); //Здесь выставляем сумму выплат
  •         player setVariable ["cashMoney", ((player getVariable ["cashMoney", 0]) + _reward), true];
  •         _msg = parseText format ["<t align='center' color='#FFFFFF' shadow='2' size='1.75'>Выплата пособия! </t><br/><t align='center' color='#17FF41'>------------------------------</t><br/><t align='center' color='#FFFFFF'>%1, Вам была произведена выплата по безработице!</t><t align='center' color='#40FF00'>$%2</t>", name player, _reward];
  •         hint _msg;
  •         cutText ["Вам была произведена выплата по безработице!","PLAIN DOWN",2];
  •         multiPlyWith = multiPlyWith + 1;
  •         _i = 0;
  •     };
  •     sleep 3600; //Здесь выставляем промежуток времени между выплатами в секундах. (3600 с. = 60 мин. = 1ч.)
  •     _i = _i + 1;
  • };

 

Весь этот бред, можно заменить на:

 

 

Private ["_pay", "_incHours", "_pause", "_i", "_value", "_msg"];
_pay       =    10000; // Сколько выплачивать за каждый XX секунд онлайна
_incHours  =    true;  // Увеличивать выплату каждые XX секунд множителем?
_pause     =    3600;  // Кол-во секунд после которых происходит выплата

_i         =    0;
_value     =    _pay;
while {true} do
    {
        uiSleep _pause;
        if (_incHours) then
            {
                _i        =    _i + 1;
                _value    =    _pay * _i;
            };
        player setVariable ["cashMoney", ((player getVariable ["cashMoney", 0]) + _value), true];
        _msg = parseText format ["<t align='center' color='#FFFFFF' shadow='2' size='1.75'>Выплата пособия! </t><br/><t align='center' color='#17FF41'>------------------------------</t><br/><t align='center' color='#FFFFFF'>%1, Вам была произведена выплата по безработице!</t><t align='center' color='#40FF00'>$%2</t>", name player, _value];
        hint _msg;
        cutText ["Вам была произведена выплата по безработице!","PLAIN DOWN",2];
    };
 

 

Люблю, когда Ультима вот такое делает.

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


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

Без сомнений вариант Ультимы компактнее и лучше  :good:

Для тех у кого система банка на хедшотах нужно поправить строчку:

 player setVariable ["cashMoney", ((player getVariable ["cashMoney", 0]) + _value), true];

Заменить значения "cashMoney" на "headshots"

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


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

а что если консы сохраняются не в хедшотах и не в кешмоней? у меня SC 3.0 и в конце инвентаря сохраняет деньги [["m8_SAW","ItemGPS","ItemKeyYellow870"],["100Rnd_556x45_BetaCMag"],494856]

Изменено пользователем liteart2011@ya.ru (история изменений)

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


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

Замените переменную в скрипте на вашу и все.
 

 

player setVariable ["Ваша переменная", ((player getVariable ["Ваша переменная", 0]) + _value), true];
 

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


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

а что если консы сохраняются не в хедшотах и не в кешмоней? у меня SC 3.0 и в конце инвентаря сохраняет деньги [["m8_SAW","ItemGPS","ItemKeyYellow870"],["100Rnd_556x45_BetaCMag"],494856]

Так может переменная "cashMoney" и хранит значения типа 494856 ?

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


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

а что если консы сохраняются не в хедшотах и не в кешмоней? у меня SC 3.0 и в конце инвентаря сохраняет деньги [["m8_SAW","ItemGPS","ItemKeyYellow870"],["100Rnd_556x45_BetaCMag"],494856]

у вас параметр cashMoney, он пишет количество денег в инвентаре, эта красная цифра - количество денег у вашего персонажа

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


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

 

Private ["_pay", "_incHours", "_pause", "_i", "_value", "_msg"];
_pay       =    10000; // Сколько выплачивать за каждый XX секунд онлайна
_incHours  =    true;  // Увеличивать выплату каждые XX секунд множителем?
_pause     =    3600;  // Кол-во секунд после которых происходит выплата

_i         =    0;
_value     =    _pay;
while {true} do
    {
        uiSleep _pause;
        if (_incHours) then
            {
                _i        =    _i + 1;
                _value    =    _pay * _i;
            };
        player setVariable ["cashMoney", ((player getVariable ["cashMoney", 0]) + _value), true];
        _msg = parseText format ["<t align='center' color='#FFFFFF' shadow='2' size='1.75'>Выплата пособия! </t><br/><t align='center' color='#17FF41'>------------------------------</t><br/><t align='center' color='#FFFFFF'>%1, Вам была произведена выплата по безработице!</t><t align='center' color='#40FF00'>$%2</t>", name player, _value];
        hint _msg;
        cutText ["Вам была произведена выплата по безработице!","PLAIN DOWN",2];
    };
 

NONAMEULTIMA, Спасибо большое за облегченную версию, помогите пожалуйста убрать цикл, дабы выдача производилась 1 раз, заранее благодарен

Все, разобрался сам, подскажите пожалуйста как привязать проверку UID, заранее благодарен

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

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


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

NONAMEULTIMA, Спасибо большое за облегченную версию, помогите пожалуйста убрать цикл, дабы выдача производилась 1 раз, заранее благодарен

Все, разобрался сам, подскажите пожалуйста как привязать проверку UID, заранее благодарен

Посмотри как в скрипте стартового инвентаря.

 

если юид есть в списке ххх тогда

запуск скрипта выплат

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


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

Посмотри как в скрипте стартового инвентаря.

 

если юид есть в списке ххх тогда

запуск скрипта выплат

Чуть переделал ваш получилось следующее:

 

 

Private ["_value", "_pause"];

_value = 100000;

_pause = 5;

 

uiSleep _pause;

player setVariable ["cashMoney", ((player getVariable ["cashMoney", 0]) + _value), true];

 

 

Получается выдается каждый раз при входе, в инит-е сделал подгрузку скрипта по UID.

 

 

Посмотри как в скрипте стартового инвентаря.

Т.е. мне получается в инит-е нужно дописать следующее? (дело в том что стоит ESS 2) 

 

 

DefaultMagazines = [""];

DefaultWeapons = [""];
DefaultBackpack = "";
DefaultBackpackWeapon = "";
player setVariable ["cashMoney", 100000, true];

 

 

Не дает ничего, все разобрался

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

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


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

А можно чтобы в инвентарь голды падали ? 

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: Makliion
      Всем добрый вечер..
      У меня такой вопрос где найти или заказать скрипт для обыска зомбей & игроков 
      что-бы каждую вещь снимать через действие а не тупо через таб
      Шлем отдельно
      Рюкзак отдельно
      ну и на все остальные слоты
      искал долго не нашёл ничего
      есть мод на обыск но он просто открывает  инвентарь и все 
       
    • Автор: Troy1
      Всем привет. Подскжите ну или помогите пожалуйста решить вопрос.
      Вопрос звучит так. На сервере есть трейдер зоны и базы игроков. 
      Если в течение определённого времени, на пример 1 - 2 часа с машиной не кто не взаимодействует и машина не находится в зоне трейдера или на теретории базы, то машина отлетает в гараж или на штраф стоянку.
      На сервере используется TraderPlus.
       
      Есть такие решения у кого?
      За ранние благодарю.
    • Автор: Troy1
      Всем привет. Подскжите ну или помогите пожалуйста решить вопрос.
      Вопрос звучит так. Нужно сделать так, что бы на всей карте был запрет на строительство. 
      Если нужно построить например базу с палатками, то нужно установить верстак или флаг, который установит зону для строительства с радиусом примерно 20-25 метров от центра и желательно что бы зона была квадратной.
      Есть такие решения у кого?
      За ранние благодарю.
    • Автор: BR0wi
      Подскажите где найти людей, которые делаю моды на заказ. К кому вообще обращаться? Или что бы реализовать свои идеи нужно самому "год" сидеть и изучать все механики модинга?
    • Автор: CubeIn
      Приветствую господа, хочу создать новый проект, уникальный, но для этого нужен маппер.
      Я оставлю здесь свой дискрод, напишите в лс, кто готов взяться за крупный проект.
      4me#4542
  • Наш выбор

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.

Поддержка