dc_garages.inc - система гаражей
Всем доброго времени суток.
Хочу поделиться с вами простой системой гаражей, которую я начал делать ещё в 2013 году.
И пусть вас не пугает эта цифра, с того момента код системы был несколько раз пересмотрен и улучшен.
В частности, сделано несколько макросов, благодаря которым систему гаражей можно подстроить практически под любой мод.
Также данные обо всех гаражах записаны в файле garages.cfg (см. в архиве вместе с инклудом). Всего этих гаражей 12 - именно столько свободных мест под гаражи я смог найти на карте Сан-Андреаса (и все они в Лос-Сантосе), но вы можете с помощью маппинга добавить ещё.
Скриншоты:
Открыть/закрыть
Пример использования:
PHP код:
#define GARAGES_FILE "Properties/garages.cfg"
#define MAX_GARAGES 12
#define GARAGES_PINFO PlayerInfo
#define GARAGES_PINFO_GARAGEKEY pGarageKey
#define GARAGES_PINFO_MONEY pMoney
#include "../include/dc_garages.inc"
Требования для работы:- sscanf2/3
- DC_CMD
- Streamer (опционально)
Список макросов для настройки:
Открыть/закрыть
Обязательные настройки:
- GARAGES_FILE - название файла для хранения.
- MAX_GARAGES - кол-во гаражей в файле, указанном в GARAGES_FILE.
- GARAGES_PINFO - название массива с информацией обо всех игроках.
- GARAGES_PINFO_GARAGEKEY - название свойства в структуре свойств игрока (обычно это pInfo), в котором будет храниться ID гаража, купленного игроком.
Внимание: вам придётся самостоятельно добавлять это свойство в pInfo.
- GARAGES_PINFO_MONEY - название свойства, в котором хранятся деньги игрока.
Необязательные настройки:
- GARAGES_OPEN_RADIUS - радиус, с которого можно открыть гараж командой /garage (по умолчанию 10.0).
- GARAGES_MSG_COLOR_ERROR - цвет для сообщений об ошибках (по умолчанию серый).
- GARAGES_MSG_COLOR_INFO - цвет для обычных сообщений (по умолчанию белый).
- GARAGES_UNOCCUPIED_PICKUP_MDL - модель пикапа для продающихся гаражей (по умолчанию взята модель синей дискеты).
- GARAGES_OCCUPIED_PICKUP_MDL - модель для пикапов купленных гаражей (по умолчанию та же, что и у продающихся гаражей).
Функции:
Открыть/закрыть - LoadGarages() - загружает информацию о гаражах из файла.
- SaveGarages() - сохраняет информацию о гаражах в файл.
- SellGarage(garageid, sellerid) - продаёт гараж garageid, принадлежащий игроку sellerid. Если вместо ID игрока указать INVALID_PLAYER_ID, гараж будет продан без участия владельца - это может пригодиться, если вы захотите написать админскую команду для продажи гаража (что-то вроде /asellgarage).
Команды:
Открыть/закрыть - /buygarage - купить свободный гараж.
- /sellgarage - продать гараж по рыночной стоимости.
- /garage - открыть/закрыть гараж.
Скачать:
Автор: Daniel_Cortez
Копирование данной статьи на других ресурсах без разрешения автора запрещено!