Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Бонус система по дням [ALL]

Статус
В этой теме нельзя размещать новые ответы.

yuras0401

Умник
Всем привет. Немного о системе. Сделал её я парился гдето 2-3 дня, идея с приложений ВК, бонус на 5 дней если допустим игрок не зашел один день на сервер то ему прийдеться начинать все с начала.. Что ж приступим..

ко всем new

PHP:
new prower[MAX_PLAYERS];
в enum pInfo

PHP:
pBonusDay,
pPoluchil,
pProigral,
потом в OnPlayerConnect

PHP:
PlayerInfo[playerid][pProigral]=0;
PlayerInfo[playerid][pBonusDay]=0;
PlayerInfo[playerid][pPoluchil]=0;
B OnPlayerLogin

PHP:
                iniGetInt(File,"BonusDay",PlayerInfo[playerid][pBonusDay]);
		iniGetInt(File,"Poluchil",PlayerInfo[playerid][pPoluchil]);
		iniGetInt(File,"Proigral",PlayerInfo[playerid][pProigral]);
потом в OnPlayerRegister

PHP:
                        iniSetInt(File,"BonusDay",PlayerInfo[playerid][pBonusDay]);
			iniSetInt(File,"Poluchil",PlayerInfo[playerid][pPoluchil]);
			iniSetInt(File,"Proigral",PlayerInfo[playerid][pProigral]);
теперь в OnPlayerUpdate

PHP:
iniSetInt(File,"BonusDay",PlayerInfo[playerid][pBonusDay]);
				iniSetInt(File,"Poluchil",PlayerInfo[playerid][pPoluchil]);
				iniSetInt(File,"Proigral",PlayerInfo[playerid][pProigral]);
А теперь приступим к созданию паблика с бонусом

PHP:
forward Bonus(playerid);
public Bonus(playerid)
{
	if(PlayerInfo[playerid][pProigral]==0)
	{
	    if(PlayerInfo[playerid][pPoluchil]==0)
	    {
			if(PlayerInfo[playerid][pBonusDay]==0)
			{
				GivePlayerMoney(playerid,500);//Даём деньги игроку (ставьте своё кол-во)
				SCM(playerid,COLOR_LIGHTGREEN,"Вы получили бонус в виде 500 $. Приходите завтра чтобы получить лучшый бонус.{FFFFFF} День 1/5");
				PlayerInfo[playerid][pBonusDay]=1;
				PlayerInfo[playerid][pPoluchil]=1; // это значит что игрок получил бонус
				new hour,minut,sec;
				gettime(hour,minut,sec);//узнаём время
				new wremya = 23 - hour;//отнимаем 23 от часа который у игрока сейчас 
				SetTimer("Obnul",wremya*60*60*1000,false);//запускаем таймер который обнулит переменную получения бонуса
				new mtr[256];
				format(mtr,256,"Вы сможете получить следующий бонус через {FFFFFF}%d часов",wremya);
				SCM(playerid,COLOR_LIGHTGREEN,mtr);
				return true;
			}
			if(PlayerInfo[playerid][pBonusDay]==1)
			{
				GivePlayerMoney(playerid,1000);//Даём деньги игроку (ставьте своё кол-во)
				SCM(playerid,COLOR_LIGHTGREEN,"Вы получили бонус в виде 1000 $, +1 EXP. Приходите завтра чтобы получить лучшый бонус.{FFFFFF} День 2/5");
				PlayerInfo[playerid][pBonusDay]=2;
				PlayerInfo[playerid][pPoluchil]=1;
				PlayerInfo[playerid][pExp]+=1;//Даём игроку Ехр(ставьте своё кол-во)
				new hour,minut,sec;
				gettime(hour,minut,sec);
				new wremya = 23 - hour;
				SetTimer("Obnul",wremya*60*60*1000,false);
				new mtr[256];
				format(mtr,256,"Вы сможете получить следующий бонус через {FFFFFF}%d часов",wremya);
				SCM(playerid,COLOR_LIGHTGREEN,mtr);
				return true;
			}
			if(PlayerInfo[playerid][pBonusDay]==2)
			{
				GivePlayerMoney(playerid,2000);//Даём деньги игроку (ставьте своё кол-во)
				SCM(playerid,COLOR_LIGHTGREEN,"Вы получили бонус в виде 2000 $. Приходите завтра чтобы получить лучшый бонус.{FFFFFF} День 3/5");
				PlayerInfo[playerid][pBonusDay]=3;
				PlayerInfo[playerid][pPoluchil]=1;
				new hour,minut,sec;
				gettime(hour,minut,sec);
				new wremya = 23 - hour;
				SetTimer("Obnul",wremya*60*60*1000,false);
				new mtr[256];
				format(mtr,256,"Вы сможете получить следующий бонус через {FFFFFF}%d часов",wremya);
				SCM(playerid,COLOR_LIGHTGREEN,mtr);
				return true;
			}
			if(PlayerInfo[playerid][pBonusDay]==3)
			{
				GivePlayerMoney(playerid,4000);//Даём деньги игроку (ставьте своё кол-во)
				SCM(playerid,COLOR_LIGHTGREEN,"Вы получили бонус в виде 4000 $. Приходите завтра чтобы получить лучшый бонус.{FFFFFF} День 4/5");
				PlayerInfo[playerid][pBonusDay]=4;
				PlayerInfo[playerid][pPoluchil]=1;
				new hour,minut,sec;
				gettime(hour,minut,sec);
				new wremya = 23 - hour;
				SetTimer("Obnul",wremya*60*60*1000,false);
				new mtr[256];
				format(mtr,256,"Вы сможете получить следующий бонус через {FFFFFF}%d часов",wremya);
				SCM(playerid,COLOR_LIGHTGREEN,mtr);
				return true;
			}
			if(PlayerInfo[playerid][pBonusDay]==4)
			{
				GivePlayerMoney(playerid,6000);//Даём деньги игроку (ставьте своё кол-во)
				PlayerInfo[playerid][pExp]+=1;//Даём игроку Ехр (ставьте своё кол-во)
				SCM(playerid,COLOR_LIGHTGREEN,"Вы получили бонус в виде 6000 $, +1 EXP. Приходите завтра чтобы получить лучшый бонус.{FFFFFF} День 5/5");
				PlayerInfo[playerid][pBonusDay]=0;
				PlayerInfo[playerid][pPoluchil]=1;
				new hour,minut,sec;
				gettime(hour,minut,sec);
				new wremya = 23 - hour;
				SetTimer("Obnul",wremya*60*60*1000,false);
				new mtr[256];
				format(mtr,256,"Вы сможете получить следующий бонус через {FFFFFF}%d часов",wremya);
				SCM(playerid,COLOR_LIGHTGREEN,mtr);
				return true;
			}
		}
	}
	else
	{
		if(PlayerInfo[playerid][pBonusDay]!=0)
		{
            SCM(playerid,COLOR_LIGHTGREEN,"Чтобы получать бонусы Вы должны играть каждый день. Начинайте с начала.");
            PlayerInfo[playerid][pBonusDay]=0;
            PlayerInfo[playerid][pPoluchil]=0;
            if(PlayerInfo[playerid][pBonusDay]==0)
			{
				GivePlayerMoney(playerid,500);//Даём деньги игроку (ставьте своё кол-во)
				SCM(playerid,COLOR_LIGHTGREEN,"Вы получили бонус в виде 500 $. Приходите завтра чтобы получить лучшый бонус.{FFFFFF} День 1/5");
				PlayerInfo[playerid][pBonusDay]=1;
                                PlayerInfo[playerid][pPoluchil]=1;
				new hour,minut,sec;
				gettime(hour,minut,sec);
				new wremya = 23 - hour;
				SetTimer("Obnul",wremya*60*60*1000,false);
				new mtr[256];
				format(mtr,256,"Вы сможете получить следующий бонус через {FFFFFF}%d часов",wremya);
				SCM(playerid,COLOR_LIGHTGREEN,mtr);
				return true;
			}
		}
	}
	return true;
}
Далее в самое начало OnPlayerSpawn
PHP:
Bonus(playerid);// когда игрок заспавниться то мод запустит паблик с бонусом
Далее паблик обнуления и проверки зашел ли игрок на сервер

PHP:
forward Obnul(i);
public Obnul(i)
{
	PlayerInfo[i][pPoluchil]=0;//обнулили теперь игрок сможет получить бонус!!
	SetTimer("Zawel",1000,true);
	return true;
}

forward Zawel(i);
public Zawel(i)
{
	prower[i]++;переменная которая будет считать кол-во раз загружения паблика
	if(prower[i]==86400)//если игрок не зашел на сервер за это время (это колво секунд = 24 часам)
	{
	    PlayerInfo[i][pProigral]=1; // устанавливаем игроку что он проиграл и ему прийдёться начать все с начала )
	}
	if(IsPlayerConnected(i)) а если подключился
    {
		prower[i]=0; // обнуляем и продолжаем давать бонусы игроку
  	}
	return true;
}


Ну вот и всё.. Кому помог или понравилась система или задумка ставте +. Попрошу модеров и админов не удалять тему.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу