I'm Cobra
Специалист
Здравствуйте пользователи pawno-info.ru.
Не было времени доделать урок, но вот сейчас он готов.
В этом уроке мы создадим простую систему PayDay и LvL Exp.
Ну начнём.
Действие первое. Создание системы Pay-Day:
1) Ко всем #define:
2) Ко всем forward'aм:
3) Ко всем new:
4) В enum pInfo, после pAdmin вставляем:
5) Вставляем в public OnPlayerConnect, после:
Вставляем:
6) В public OnPlayerCommandText вставляем:
7) В public OnPlayerRegister, после:
Вставляем:
8) В public OnPlayerLogin, после:
Вставляем:
9) В конец мода вставляем:
10) В public OnGameModeInit вставляем:
Действие второе. Создание ТекстДрава LvL и Exp:
1) Ко всем forward'ам:
2) В enum pInfo после pAdmin, вставляем:
3) В public OnPlayerConnect, после:
Вставляем:
4) В public OnPlayerDisconnect вставляем:
5) В конец мода вставляем:
Вот что получится:
Вот и всё. Основа системa PayDay и ТекстДрав LvL и Exp сделанны.
Думаю этот урок был полезен.
Автор урока: I'm Cobra
Полезные ссылки:
Первый урок
Второй урок
Не было времени доделать урок, но вот сейчас он готов.
В этом уроке мы создадим простую систему PayDay и LvL Exp.
Ну начнём.
Действие первое. Создание системы Pay-Day:
1) Ко всем #define:
PHP:
#define COLOR_RED 0xFFD9D991// Бело-Розывый (запрещающий)
#define COLOR_ISPOLZUY 0x7FB151FF// цвет для '*используйте:'
#pragma tabsize 0// От Варнингов 217
2) Ко всем forward'aм:
PHP:
forward PayDay();
forward SyncTime();
forward GameModeExitFunc();
forward SyncUp();
PHP:
new synctimer;
PHP:
pPayDay,// Зарплата
pPayDayHad,// Зарплата
PHP:
if(fexist(string))// Проверка на файл, если он есть то выполняется следующее действие.
{
PAccount[playerid] = 1;// Аккаунт есть
}
else// Если файла с именем нет, то выполняется это действие.
{
PAccount[playerid] = 0;// Аккаунта нет
}
PHP:
PlayerInfo[playerid][pPayDay] = 0;
PlayerInfo[playerid][pPayDayHad] = 0;
PHP:
if(strcmp(cmd, "/payday", true) == 0)
{
if (PlayerInfo[playerid][pAdmin] >= 1338)
{
PayDay();
}
else
{
SendClientMessage(playerid, COLOR_RED, "** У Вас недостаточно прав для того, чтобы использовать эту команду!");
}
return 1;
}
PHP:
ini_setString(iniFile,"Pass",PlayerInfo[playerid][pPass]);// Записываем пароль игрока в файл
PHP:
ini_setInteger(iniFile, "PayDay", PlayerInfo[playerid][pPayDay]);
ini_setInteger(iniFile, "PayDayHad", PlayerInfo[playerid][pPayDayHad]);
PHP:
ini_getInteger(iniFile,"Admin",PlayerInfo[playerid][pAdmin]);// Загружаем уровень админа
PHP:
ini_getInteger(iniFile, "PayDay", PlayerInfo[playerid][pPayDay]);
ini_getInteger(iniFile, "PayDayHad", PlayerInfo[playerid][pPayDayHad]);
PHP:
public SyncTime()
{
PayDay();// Выдача зарплаты каждый час
return 1;
}
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;
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;
}
public SyncUp()
{
SyncTime();
return 1;
}
public GameModeExitFunc()
{
KillTimer(synctimer);
GameModeExit();
}
PHP:
synctimer = SetTimer("SyncUp", 60000, 1);
1) Ко всем forward'ам:
PHP:
forward OtherTimer();
PHP:
pLevel,// Уровень игрока
pExp,// Респекты
PHP:
GetPlayerName(playerid,playername,sizeof(playername));// Узнаем имя игрока
PHP:
levelexp[playerid] = TextDrawCreate(500.000000,3.500000,"_");
TextDrawAlignment(levelexp[playerid],0);
TextDrawBackgroundColor(levelexp[playerid],0x000000ff);
TextDrawFont(levelexp[playerid],1);
TextDrawLetterSize(levelexp[playerid],0.38,2.000000);
TextDrawColor(levelexp[playerid],0xffffffff);
TextDrawSetOutline(levelexp[playerid],0);
TextDrawSetProportional(levelexp[playerid],2);
TextDrawSetShadow(levelexp[playerid],2);
TextDrawShowForPlayer(playerid, levelexp[playerid]);
PHP:
TextDrawDestroy(levelexp[playerid]);
PHP:
public OtherTimer()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
new string[256];
new exp = PlayerInfo[i][pExp];
new nxtlevel = PlayerInfo[i][pLevel]+1;
new sled = nxtlevel;
format(string,sizeof(string),"~w~LvL: ~g~%d ~w~Exp: ~g~%d~w~/~g~%d",PlayerInfo[i][pLevel],exp,sled);
TextDrawSetString(levelexp[i], string);
}
}
}
Вот и всё. Основа системa PayDay и ТекстДрав LvL и Exp сделанны.
Думаю этот урок был полезен.
Автор урока: I'm Cobra
Полезные ссылки:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Первый урок
Второй урок
Специально для PAWNO-INFO.RU
