MrJunior
Компетентный
На форуме данного урока не было(начальный поиск не дал результата). Я решил его создать.
Итак всем вновь привет). Уже какой урок я создаю ну и тут я опять же для новичков сделал. Надеюсь кому-ни-кому пригодится)
Итак зразу начнём.
На уроках в YouTube говорят создавать:
PHP:
#define TEAM_RED *число фрака*
Ну теперь перейдём к созданию самой организации:
1. Добавляем переменные pLeader, pMember, pRang(в enum pInfo). Получается:
PHP:
enum pInfo
{
// Ваша фигня типа пароля и т.п.
pLeader,
pMember,
pRang,
};
new PlayerInfo[MAX_PLAYERS][pInfo];
Сделаем команду /makeleader где мы сделаем игрока лидером:
PHP:
else if(strcmp(cmdtext, "/makeleader", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] < 5) return SendClientMessage(playerid, -1, "Вы не администратор 5+ уровня!"); // Ваша проверка на адм. Тут 5+
tmp = strtok(cmdtext, idx);
new id, name[24], nname[24], frakid, string[150]; // Создаем переменные
id = ReturnUser(tmp); // id нового лидера
tmp = strtok(cmdtext, idx), frakid = strval(tmp); // ид фракции
if(!IsPlayerConnected(id)) return 1; // Проверка подключен ли новый лидер
if(!strlen(tmp)) return SendClientMessage(playerid, -1, "Введите: /makeleader [id] [frakid](Только 1)"); // Проверка на указание id и fraid.
if(frakid != 1) return SendClientMessage(playerid, -1, "ID фракции на данный момент только 1!"); // Проверка на указанное число если фракций 2+ то: if(frakid > 2 && frakid < 1)
PlayerInfo[id][pLeader] = frakid; // Делаем лидером
PlayerInfo[id][pMember] = frakid; // Делаем участником фракции
PlayerInfo[id][pRang] = 10; // ранг игрока 10.
SetPlayerSkin(playerid, 288); // Делаем скин игроку
GetPlayerName(playerid, name, 24), GetPlayerName(id, nname, 24); // Узнаём ники игроков
format(string, 150, "Вы назначили %s лидером фракции номер %d", nname, frakid), SendClientMessage(playerid, -1, string); // форматируем и отправляем сообщение лидеру
format(string, 150, "Администратор %s назначил вас лидером фракции номер %d", name, frakid), SendClientMessage(id, -1, string); // форматируем и отправляем сообщение админу
return 1;
}
Ну ещё сделать /invite | /uninvite | /giverank | /gov и т.п. Ну это не сложно будет включая то что я создавал урок по написанию команд.
Далее сделать спавн игроку в OnPlayerSpawn:
PHP:
public OnPlayerSpawn(playerid)
{
if(PlayerInfo[playerid][pMember] == 1) SetPlayerPos(playerid, x, y, z), SetPlayerInterior(playerid, intid), SetPlayerVirtualWorld(playerid, worldid);
return 1;
}
Ещё много нужно сделать типа сделать игроку цветной ник к примеру через SetPlayerColor(playerid, 0x2641FEAA);
Ну и я всё распишу:
PHP:
stock SetPlayerToTeamColor(playerid)
{
switch(PlayerInfo[playerid][pMember])
{
case 1: SetPlayerColor(playerid, 0x2651FEAA); // Синий цвет
// И так далее
}
return 1;
}
PHP:
public OnPlayerUpdate(playerid)
{
SetPlayerToTeamColor(playerid);
return 1;
}
Но это будет мешать системе масок и подобному.
Ну тут дальше есть что делать. Делаем всё под себя. Пикапы, интерьеры, команды, умения.
Всё в ваших руках.
Автор: Йа (MrJunior).
// Буду пополнять по просьбам.
