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

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

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

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

Система PayDay

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

Sanek_Matvienko

Компетентный
Всем привет, вот решил выложить из своего мода систему PayDay для new.pwn

Ко всем define
PHP:
#define publics:%0(%1) 				forward %0(%1); public %0(%1)
Ко всем new:
PHP:
new Text3D:carom[MAX_VEHICLES];
Идем в public OnGameModeInit()
Добавляем туда:
PHP:
SetTimer("update",1000*60,true);
Далее в конце мода создаем вот это:
PHP:
publics: update()
{
	new hour,minute,second;
	gettime(hour,minute,second);
	if(minute == 0)
	{
		PayDay();
	}
	return true;
}
PHP:
stock UpdateLevel()
{
	new UID;
	for(new i=0; i<MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i))
		{
			UID = Player[i][pLevel];
			SetPlayerScore(i, UID);
		}
	}
	return true;
}
PHP:
publics: PayDay()
{
	for(new i = GetMaxPlayers() - 1; i != -1; i--)
	{
		if(IsPlayerConnected(i))
		{
			new exp = Player[i][pExp];
			new nxtlevel = Player[i][pLevel]+1;
			new expamount = nxtlevel*levelexp;
			Player[i][pExp] ++;
			if(exp == expamount)
			{
				Player[i][pLevel] += 1;
				Player[i][pExp] = 0;
				SendClientMessage(i,COLOR_BLUE,"Поздравляем! Ваш уровень повысился.");
				UpdateLevel();
				return true;
			}
			new string[256];
			new workpay = 10000 + (250+random(50) + Player[i][pLevel]*50)*10;
			GivePlayerMoney(i, workpay);
			new str[50];
			new hour,minute,second;
			gettime(hour,minute,second);
			format(str,sizeof(str),"{FFFFFF}Текущее время: {42aaff}%s%d:%s%d", (hour < 10) ? ("0") : (""), hour, (minute < 10) ? ("0") : (""), minute, (second < 10) ? ("0") : (""), second);
			SendClientMessage(i, COLOR_WHITE,str);
			SendClientMessage(i, COLOR_WHITE," БАНКОВСКИЙ ЧЕК");
			SendClientMessage(i, COLOR_WHITE,"_____________________________");
			format(str,sizeof(str),"{ffffff}Зарплата: {33aa33}$%d{ffffff}",workpay);
			SendClientMessage(i, COLOR_WHITE,str);
			SendClientMessage(i, COLOR_WHITE,"_____________________________");
			Delete3DTextLabel(carom[i]);
			format(string, sizeof(string), "~w~PayDay");
			GameTextForPlayer(i, string, 5000, 1);
		}
	}
	return true;
}
Далее идем в SavePlayer, OnPlayerSpawn, OnPlayerRegister и добавляем туда это:
PHP:
UpdateLevel();
Далее идем в pInfo и добавляем туда это:
PHP:
pExp,
pLevel,
После в public OnPlayerConnect(playerid)
Вставляем:
PHP:
PlayerInfo[playerid][pLevel] = 0;
PlayerInfo[playerid][pExp] = 0;
Добавляем в stock OnPlayerRegister(playerid, password[])
PHP:
ini_setInteger(File,"Level",PlayerInfo[playerid][pLevel]);
ini_setInteger(File,"Exp",PlayerInfo[playerid][pExp]);
После идем в public OnPlayerLogin(playerid,password[])
PHP:
ini_getInteger(File,"Level",PlayerInfo[playerid][pLevel]);
ini_getInteger(File,"Exp",PlayerInfo[playerid][pExp]);
Потом идем в stock SavePlayer(playerid) // Отвечает за сохранение аккаунта у вас она может по другому называться
PHP:
ini_setInteger(File,"Level",PlayerInfo[playerid][pLevel]);
ini_setInteger(File,"Exp",PlayerInfo[playerid][pExp]);

Идем в pInfo и добавляем туда:
PHP:
pLevel,
pExp,
Теперь в publics: LoginCallback(playerid, password[]) Отвечает за авторизацию у вас может называться по другому
PHP:
Player[playerid][pExp] = cache_get_field_content_int(0,"exp");
PHP:
Player[playerid][pLevel] = cache_get_field_content_int(0,"level");
Далее в stock SavePlayer(playerid) Отвечает за сохранение аккаунта, у вас может называться по другому
PHP:
Player[playerid][pLevel]
Player[playerid][pExp]

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