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
karim0714

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

Recommended Posts

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

 

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

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

 

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

 

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.

Share this post


Link to post
Share on other sites



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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
  • 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];
    };
 

Share this post


Link to post
Share on other sites

 

  • 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];
    };
 

 

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

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

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

Edited by liteart2011@ya.ru (see edit history)

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

 

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, заранее благодарен

Edited by hekut144 (see edit history)

Share this post


Link to post
Share on other sites

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

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

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

 

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

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

Share this post


Link to post
Share on other sites

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

 

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

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

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

 

 

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];

 

 

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

Edited by hekut144 (see edit history)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

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

×
×
  • 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.