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

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

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

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

Создание фракций с нуля | Подробно

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

MrJunior

Компетентный
На форуме данного урока не было(начальный поиск не дал результата). Я решил его создать.​

Итак всем вновь привет). Уже какой урок я создаю ну и тут я опять же для новичков сделал. Надеюсь кому-ни-кому пригодится)

Итак зразу начнём.

На уроках в YouTube говорят создавать:
PHP:
 #define TEAM_RED *число фрака*
Это нигде дальше не используется и так делать не надо!

Ну теперь перейдём к созданию самой организации:

1. Добавляем переменные pLeader, pMember, pRang(в enum pInfo). Получается:
PHP:
enum pInfo
{
    // Ваша фигня типа пароля и т.п.
    pLeader,
    pMember,
    pRang,
};
new PlayerInfo[MAX_PLAYERS][pInfo];
Дальше мы сделаем на примере LSPD. Номер фракции пусть будет один.
Сделаем команду /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;
}
Ну команда не полная её дорабатывать и под себя менять. Тем более не берите её, делайте по примеру только лучше. + Лучше скину сделать отдельную переменную в pInfo.

Ну ещё сделать /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;
}
x, y, z - координаты спавна места сотрудников ЛСПД, intid - Если нужно! Ид интерьера(если спавн в здании), worldid - ид виртуального мира(введите любой и запомните его НО если спавн на улице то ставьте 0).

Ещё много нужно сделать типа сделать игроку цветной ник к примеру через 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;
}
Отсюда 4 раза в секунду будет происходить установка правильного цвета.
Но это будет мешать системе масок и подобному.

Ну тут дальше есть что делать. Делаем всё под себя. Пикапы, интерьеры, команды, умения.
Всё в ваших руках.

Автор: Йа (MrJunior).

// Буду пополнять по просьбам.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу