Cannon Modular - Core

amxx Cannon Modular - Core 0.0.1

Нет прав для скачивания
Установка
  1. Скомпилируйте плагин (инструкция).
  2. Скопируйте скомпилированный файл .amxx в директорию: amxmodx/plugins/
  3. Пропишите .amxx в файле amxmodx/configs/plugins.ini
  4. Скопируйте словарь плагина .txt в директорию amxmodx/data/lang/
  5. Скопируйте файлы .mdl в директорию models/cannon/
  6. Скопируйте файлы .inc в директорию amxmodx/scripting/include (без этого плагин не скомпилируется)
  7. Смените карту или перезапустите сервер.
Настройки
В .sma:

C++:
#define AUTO_CONFIG //Авто-создание конфига

new const CN_READ_ACCESS_MAKE = ADMIN_BAN; //для доступа к главному меню.
new const RGB_DEFAULT_COLOR[] = "0 0 255" //Стандартный цвет свечения для настройки (цвет свечения в меню создания)

new const CN_DIR[] = "cannon"; //главная папка плагина.
new const CN_SAVE[] = "cannon_save"; //папка сохранений координат ентити и настроек. (будет в главной папке)

new const CN_MDL[] = "models/cannon/cannon.mdl";

new const CN_DEF_COLOR[] = "0 0 0"; //вводимое стандартное сообщение для сброса на дефолт цвет (messagemod ВЫБОР ЦВЕТА СВЕЧЕНИЯ К ПУШКЕ)
new const CN_DEF_ACCESS[] = "all"; //вводимое стандартное сообщение для сброса на доступ ВСЕМ (messagemod ВЫБОР ДОСТУПА К ПУШКЕ)

ВНИМАНИЕ!

Необходимо в cannon_native.inc указать количество в двух define:

// Максимальное значение уникальных идентификаторов (также длинной для массива, т. е. 1 пушка равна 1 uniq id; зависит от количества пушек)
UNIQUE_ID_COUNT

// Номер для подстановки при формировании уникального идентификатора для каждой созданной пушки.
UNIQUE_ID_ENT


В .cfg:

Код:
// This file was auto-generated by AMX Mod X (v1.9.0.5232)
// Cvars for plugin "cannon_core" by "wellasgood" (cannon_core.amxx, v0.0.1)


// Разрешить расставлять более 1 пушки на карту? (нет-0 | да-1)
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "1.000000"
cn_entity_count "0"

// Значение для функции перемещения пушки.
// -
// Default: "10.0"
cn_move_count "10.0"

// Максимальное значение для скорости выстрела из пушки.
// -
// Default: "3000"
cn_max_speed "3000"

// Максимальное значение для высоты выстрела из пушки.
// -
// Default: "500"
cn_max_up "500"

// Максимальное значение для повторов выстрела из пушки
// -
// Default: "10"
cn_max_replay "10"

// Максимальное значение для времени до выстрела из пушки.
// -
// Default: "10"
cn_max_time "10"
API
C:
/*
*
* Cannon
* Natives
*
*/

#if defined _cannon_natives_included
#endinput
#endif

#define _cannon_natives_included

#if !defined MAX_MAPNAME_LENGTH
#define MAX_MAPNAME_LENGTH 64
#endif

#define MULTI_DESC(%0) fmt("%L", LANG_SERVER, %0)

#define pev_cannon pev_iuser2

//The max value of uniq IDs (also long for the array, i.e. 1 gun is equal to 1 uniq id; depends on the number of guns)
#define UNIQUE_ID_COUNT 500

//A number for substitution in the formation of a unique ID for each created gun.
#define UNIQUE_ID_ENT 200

enum _:FLOAT_COORD_DATA
{
    Float:X,
    Float:Y,
    Float:Z
};

enum _:INTEGER_COORD_DATA
{
    CD_X,
    CD_Y,
    CD_Z
};

/*
* Getting global count Entity
*
* @returns (count) value
*
* @Data acquisition count Entity
*/
native get_global_count();

/*
* Obtaining information about the integer settings of the gun
*
* @returns (speed, up, replay, time, render) int value
*
* @Data acquisition settings
*/
native get_saved_integer_data(uid, const data[], len);

/*
* Getting information about floating gun settings
*
* @returns (Origin, Angles) string with coordinates
*
* @Getting data for parsing coordinates
*/
native get_saved_float_data(uid, const data[], len);

/*
* Getting string access data
*
* @returns (default access Or access flags) value
*
* @Data acquisition access
*/
native get_saved_access_data(uid, check, const data[], len);

stock SendAudio(id, const audio[], pitch)
{
    static MsgSendAudio;

    if(!MsgSendAudio)
    {
        MsgSendAudio = get_user_msgid("SendAudio");
    }

    message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, MsgSendAudio, _, id);

    write_byte(id);
    write_string(audio);
    write_short(pitch);

    message_end();
}

stock ProcessingColorStrings(const Str[], Color[3])
{
    new R[4], G[4], B[4];
    parse(Str, R, charsmax(R), G, charsmax(G), B, charsmax(B));

    Color[0] = str_to_num(R);
    Color[1] = str_to_num(G);
    Color[2] = str_to_num(B);
}

stock ScreenShake(id, Amplitude, Duration, Frequency, Reliable = 0)
{
    message_begin(Reliable ? MSG_ONE : MSG_ONE_UNRELIABLE, 97, { 0.0, 0.0, 0.0 }, id);

    write_short(Amplitude);
    write_short(Duration);
    write_short(Frequency);

    message_end();
}
Сверху Снизу