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

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

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

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

[Мануал]Система Payday c Lvl и Exp

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

Serg_Brain

Мастер
Пользователь
Регистрация
15 Янв 2012
Сообщения
3,975
Лучшие ответы
7
Репутация
595
Награды
5
Добавляешь в начале мода ко всем форвордам:
PHP:
forward PayDay();
forward SyncTime();
forward GameModeExitFunc();
forward SyncUp();
ко всем new:
PHP:
new Payday = 1;
new levelexp = 4;
new synctimer; //таймер
добавляешь в:
PHP:
enum pInfo
PHP:
pLevel,
pExp,
pPayDay,
pPayDayHad
создаёшь
PHP:
public SyncTime()
{
    PayDay();
    return 1;
}
PHP:
public SyncUp()
    {
        SyncTime();
        return 1;
    }
PHP:
public GameModeExitFunc()
    {
        KillTimer(synctimer);
        GameModeExit();
    }
PHP:
public PayDay()
{
					new string[128];
					new sendername[MAX_PLAYER_NAME];
					for(new i = 0; i < MAX_PLAYERS; i++)
					{
					if(IsPlayerConnected(i))
					{
				    if(PlayerInfo[i][pLevel] > 0)
				    {
					new playername2[MAX_PLAYER_NAME];
					GetPlayerName(i, playername2, sizeof(playername2));
				    new exp = PlayerInfo[i][pExp];
                    new nxtlevel = PlayerInfo[i][pLevel]+1;
                    new expamount = nxtlevel*levelexp;
					if(exp == expamount)
	                {
	                    PlayerInfo[i][pLevel] += 1;
	                    PlayerInfo[i][pExp] = 0;
	                }
 					PlayerInfo[i][pExp]++;
  					format(string, sizeof(string), "~w~PayDay");
					GameTextForPlayer(i, string, 5000, 1);
						}
 					}
					if(PlayerInfo[i][pLevel] >= 2 && PlayerInfo[i][pExp] == 0)
					{
     					    SendClientMessage(i, COLOR_ISPOLZUY, "Поздравляем, Ваш lvl повысился!");
					}
					if(PlayerInfo[i][pLevel] == 3 && PlayerInfo[i][pExp] == 0)
					{
						GetPlayerName(i, sendername, sizeof(sendername));
						format(string, sizeof(string), "/players/%s.ini",sendername);
						new file = ini_openFile(string);
						if(file < 0) print("нету файла");
						else
						{
						   format(string, sizeof(string), "/players/%s.ini",string);
						   new file2 = ini_openFile(string);
						   ini_setInteger(file2,"Text",3);
						   ini_closeFile(file2);//не забываем закрывать файлы кстати
						   ini_closeFile(file);//не забываем закрывать файлы кстати
						}
					}
				 	PlayerInfo[i][pPayDayHad] += 1;
					PlayerInfo[i][pPayDay]++;
					}
					return true;
		}
добавляем сам таймер в
PHP:
public OnGameModeInit
PHP:
synctimer = SetTimer("SyncUp", 60000, 1);
после в
PHP:
public OnPlayerConnect(playerid)
вставляете
PHP:
PlayerInfo[playerid][pLevel] = 0;
PlayerInfo[playerid][pPayDay] = 0;
PlayerInfo[playerid][pExp] = 0;
PlayerInfo[playerid][pPayDayHad] = 0;
добавляешь в
PHP:
stock OnPlayerRegister(playerid, password[])
это:
PHP:
ini_setInteger(File,"Level",PlayerInfo[playerid][pLevel]);
ini_setInteger(File,"Exp",PlayerInfo[playerid][pExp]);
ini_setInteger(File,"PayDay",PlayerInfo[playerid][pPayDay]);
ini_setInteger(File,"PayDayHad",PlayerInfo[playerid][pPayDayHad]);
потом в
PHP:
public OnPlayerLogin(playerid,password[])
это:
PHP:
ini_getInteger(File,"Level",PlayerInfo[playerid][pLevel]);
ini_getInteger(File,"Exp",PlayerInfo[playerid][pExp]);
ini_getInteger(File,"PayDay",PlayerInfo[playerid][pPayDay]);
ini_getInteger(File,"PayDayHad",PlayerInfo[playerid][pPayDayHad]);
потом в:
PHP:
stock OnPlayerUpdate(playerid)
PHP:
ini_setInteger(File,"Level",PlayerInfo[playerid][pLevel]);
ini_setInteger(File,"Exp",PlayerInfo[playerid][pExp]);
ini_setInteger(File,"PayDay",PlayerInfo[playerid][pPayDay]);
ini_setInteger(File,"PayDayHad",PlayerInfo[playerid][pPayDayHad]);
Вот и система готова :)
Урок написан мной Serg_Brain :)
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу