- Автор темы
- #1
Доброго времени суток. Писал для одного товарища мод и по некоторым обстоятельствам прекратили сотрудничиство.
Мод разбит по инклудам для удобства работы и для приятного вида в основном скрипте
Подключение всех систем сервера к MySQL
Система аккаунтов:
Регистрация
Происходит в диалогах.
Вввод пароля.
Ввод возраста.
Выбор расы.
Далее нас переносит в интерьер для выбора скина.
Выбор скина зависит от расы.
Выбор и подверждение скина происходит на стрелки TextDraw.
Авторизация
Происходит в диалогах.
Система игрока:
Каждому игроку создается отдельный таймер, по которому происходят действия.
Все действия игрока, манипуляции, откаты и ВСЁ, ВСЁ, ВСЁ в этом таймере.
Система сервера:
Создан таймер для действий сервера.
Смена погоды, времени, PayDay и прочих манипуляций.
Система PayDay:
Игрок платит по счетам в казну, а так же получает деньги из казны.
Гос. структуры получаю зп в PayDay.
Игроки не состоящие в организации получаю посопибие по безработице.
Если в казне дифицит денег, выплаты игрокам не выдаются.
Система диалогов:
Создана отдельная функция для открытия диалогов OpenDialog(playerid,dialogid);
Установлена защита от подмены диалогов.
Установлена защита(проверка) на символы, которые могут крашнуть весь сервер с его падением.
Система зон городов:
Карта разбита на 3 зоны LS, SF, LV.
При выезде из LS игрок может погибнуть, если не вернется в игровую зону.
При заезде в SF туман, который убивает игрока.
При заезде в LV песчаная буря, которая убивает игрока.
Система Администрации:
Система разбира на уровни.
Каждая команда Администрации установлена по уровням админки.
Добавлена переменная для Авторизации в админке GetPVarInt(playerid,"p_adm_confirmation");
Данная переменная будет отвечать за авторизация админа(админ пароль или админ капча).
Даже если админ вошел в аккаунт, пока не пройдет проверку не сможет испольтзовать админ возможности.
Через команду /amenu возможно изменять погоду, время и включать PayDay.
Команды для Администраторов:
Сюда буду вписывать все команды и функционал.
Система транспорта:
Создана функция создания транспорта.
Данная функция гибкая и при создание можно установить какой организации, работе, игроку принадлежит ТС.
Сервер отслеживает транспорт, даже если он удален из памяти сервера.
Транспорт нужно запускать нажатием на кнопку CTRL.
Фары в транспорте можно включить нажатием кнопки ALT.
Если транспорт поврежден, он может не запуститься несколько раз.
Командой /win можно открыть окно в наземном транспорте.
Система организаций:
Динамическая система, в пару кликов можно создать новую организацию.
Лидеру доступна панель лидера /lmenu
Лидер организации может менять название рангов, id скинов по рангам и устанавливать ранг заместителя, которому тоже будет доступна /lmenu
В организация возможно принять, уволить и выдать выговор(после 3-х выговоров автоуволнение).
У каждой организации есть склад, в котором хранятся некоторые предметы.
Система ворот:
Добавив в несколько переменных координаты, можно на сервер добавить открытие ворот по пикапам.
Проработанные пикапы для ворот, которые исчезают и появляются так, как это будет указано в моде.
Добавление ворот/дверей происходит в одном месте, дальше код автоматизирован.
Система античита:
Добавлен античит на деньги.
Добавлен античит на хп.
Добавлен античит на телепорт.
Система казны:
Добавлена функция, которая добавляет или отнимает деньги в казне
Добавлен 3D текст отображающих состояние казны.
Казна минимизирует падение экономики на проекте.
Система чата:
Текст игрока виден на определенном расстояние - 10м.
Если игрок в чат пишет смайлик по типу '=)' в чат выводится действие: "Dima_Pupkin улыбается".
В чат нельзя писать, если у игрока мут выданный Администрацией.
При "разговоре" проигрывается анимация.
Если игрок находится в машине, в которой закрыты окна, игроки вне транспорта не слышат, о чем он говорит.
Система гангзон:
На сервер в гетто добавлено 106 зон.
Командой /capture все члены банд могут начать захват зоны.
Зоны больница в гетто и респ банд нельзя захватить.
Нельзя захватить зону, если рядом нет уже захваченной Вашей организацией.
Добавлен TextDraw при войне за зону.
Все игроки сервера видят на карте какую зону в данный момент захватывают.
Члены всех банд видят TextDraw захвата зоны.
Если банда начала захват зоны, всем членам банды приходит уведомление и на карте отмечен GPS где находитсчя эта зона.
Если член банды вошел на сервер после начала захвата зоны, так же получает все уведомления и TextDraw.
Если в данный момент уже идет война за территорию, банды не могут начать новую войну.
Фраги за киллы действуют по всему гетто, а не только в захватываемой зоне.
Система интерьеров:
Для добавления входов в интерьер стоит лишь в одной части кода вставить координаты и все параметры, далее система работает автоматически.
Подключение всех систем сервера к MySQL
Система аккаунтов:
Регистрация
Происходит в диалогах.
Вввод пароля.
Ввод возраста.
Выбор расы.
Далее нас переносит в интерьер для выбора скина.
Выбор скина зависит от расы.
Выбор и подверждение скина происходит на стрелки TextDraw.
Авторизация
Происходит в диалогах.
Система игрока:
Каждому игроку создается отдельный таймер, по которому происходят действия.
Все действия игрока, манипуляции, откаты и ВСЁ, ВСЁ, ВСЁ в этом таймере.
Система сервера:
Создан таймер для действий сервера.
Смена погоды, времени, PayDay и прочих манипуляций.
Система PayDay:
Игрок платит по счетам в казну, а так же получает деньги из казны.
Гос. структуры получаю зп в PayDay.
Игроки не состоящие в организации получаю посопибие по безработице.
Если в казне дифицит денег, выплаты игрокам не выдаются.
Система диалогов:
Создана отдельная функция для открытия диалогов OpenDialog(playerid,dialogid);
Установлена защита от подмены диалогов.
Установлена защита(проверка) на символы, которые могут крашнуть весь сервер с его падением.
Система зон городов:
Карта разбита на 3 зоны LS, SF, LV.
При выезде из LS игрок может погибнуть, если не вернется в игровую зону.
При заезде в SF туман, который убивает игрока.
При заезде в LV песчаная буря, которая убивает игрока.
Система Администрации:
Система разбира на уровни.
Каждая команда Администрации установлена по уровням админки.
Добавлена переменная для Авторизации в админке GetPVarInt(playerid,"p_adm_confirmation");
Данная переменная будет отвечать за авторизация админа(админ пароль или админ капча).
Даже если админ вошел в аккаунт, пока не пройдет проверку не сможет испольтзовать админ возможности.
Через команду /amenu возможно изменять погоду, время и включать PayDay.
Команды для Администраторов:
Сюда буду вписывать все команды и функционал.
Система транспорта:
Создана функция создания транспорта.
Данная функция гибкая и при создание можно установить какой организации, работе, игроку принадлежит ТС.
Сервер отслеживает транспорт, даже если он удален из памяти сервера.
Транспорт нужно запускать нажатием на кнопку CTRL.
Фары в транспорте можно включить нажатием кнопки ALT.
Если транспорт поврежден, он может не запуститься несколько раз.
Командой /win можно открыть окно в наземном транспорте.
Система организаций:
Динамическая система, в пару кликов можно создать новую организацию.
Лидеру доступна панель лидера /lmenu
Лидер организации может менять название рангов, id скинов по рангам и устанавливать ранг заместителя, которому тоже будет доступна /lmenu
В организация возможно принять, уволить и выдать выговор(после 3-х выговоров автоуволнение).
У каждой организации есть склад, в котором хранятся некоторые предметы.
Система ворот:
Добавив в несколько переменных координаты, можно на сервер добавить открытие ворот по пикапам.
Проработанные пикапы для ворот, которые исчезают и появляются так, как это будет указано в моде.
Добавление ворот/дверей происходит в одном месте, дальше код автоматизирован.
Система античита:
Добавлен античит на деньги.
Добавлен античит на хп.
Добавлен античит на телепорт.
Система казны:
Добавлена функция, которая добавляет или отнимает деньги в казне
Добавлен 3D текст отображающих состояние казны.
Казна минимизирует падение экономики на проекте.
Система чата:
Текст игрока виден на определенном расстояние - 10м.
Если игрок в чат пишет смайлик по типу '=)' в чат выводится действие: "Dima_Pupkin улыбается".
В чат нельзя писать, если у игрока мут выданный Администрацией.
При "разговоре" проигрывается анимация.
Если игрок находится в машине, в которой закрыты окна, игроки вне транспорта не слышат, о чем он говорит.
Система гангзон:
На сервер в гетто добавлено 106 зон.
Командой /capture все члены банд могут начать захват зоны.
Зоны больница в гетто и респ банд нельзя захватить.
Нельзя захватить зону, если рядом нет уже захваченной Вашей организацией.
Добавлен TextDraw при войне за зону.
Все игроки сервера видят на карте какую зону в данный момент захватывают.
Члены всех банд видят TextDraw захвата зоны.
Если банда начала захват зоны, всем членам банды приходит уведомление и на карте отмечен GPS где находитсчя эта зона.
Если член банды вошел на сервер после начала захвата зоны, так же получает все уведомления и TextDraw.
Если в данный момент уже идет война за территорию, банды не могут начать новую войну.
Фраги за киллы действуют по всему гетто, а не только в захватываемой зоне.
Система интерьеров:
Для добавления входов в интерьер стоит лишь в одной части кода вставить координаты и все параметры, далее система работает автоматически.
Прошу прощения за тип описания систем. Писал для себя дабы всего не упомнишь, что реализовано в моде.
Pawn:
if(GI[gateid][gOwnerID] != 0 && PI[playerid][pOrg] != GateInfoCoord[gateid][belonging])
{
DEBUG("сработал IF");
SM(playerid,COLOR_GRAD2,"Вы не можете открывать эти ворота");
ReloadPickupGateCar(playerid,gateid,pickupid,false);
SetTimerEx("ReloadPickupGateCar",2000,false,"iiii",playerid,gateid,pickupid,true);
}
else if(!GI[gateid][gGateStatus] && !IsDynamicObjectMoving(GI[gateid][gID]))
{
GI[gateid][gGateStatus] = true;
GI[GateInfoCoord[gateid][gatedobleid]][gGateStatus] = true;
MoveDynamicObject(GI[gateid][gID],GateInfoCoord[gateid][opengate][0],GateInfoCoord[gateid][opengate][1],GateInfoCoord[gateid][opengate][2],4.0);
MoveDynamicObject(GI[GateInfoCoord[gateid][gatedobleid]][gID],GateInfoCoord[GateInfoCoord[gateid][gatedobleid]][opengate][0],GateInfoCoord[GateInfoCoord[gateid][gatedobleid]][opengate][1],GateInfoCoord[GateInfoCoord[gateid][gatedobleid]][opengate][2],4.0);
SetTimerEx("GateClose_Timer",7000,false,"i",gateid),SetTimerEx("GateClose_Timer",7000,false,"i",GateInfoCoord[gateid][gatedobleid]);
ReloadPickupGateCar(playerid,gateid,pickupid,false);
SetTimerEx("ReloadPickupGateCar",9000,false,"iiii",playerid,gateid,pickupid,true);
}