Game Mode - Pig War [Modular]

amxx Game Mode - Pig War [Modular] 1.1.0

Нет прав для скачивания
Установка
  1. Скомпилируйте каждый плагин (инструкция).
  2. Скопируйте файлы '.inc' в директорию: amxmodx/scripting/include/
  3. Скопируйте скомпилированные файлы '.amxx' в директорию: amxmodx/plugins/
  4. Скопируйте файл 'plugins-pigwar.ini' в директорию: amxmodx/configs/
  5. Скопируйте папку хранения данных и настроек 'pigwar' в директорию: amxmodx/configs/
  6. Скопируйте словарь плагина .txt в директорию amxmodx/data/lang/
  7. Скопируйте файлы моделей ентити .mdl в директорию models/pigwar/
  8. Скопируйте папки с файлами моделей игроков .mdl в директорию models/player/
  9. Скопируйте файлы .wav в директорию sound/pigwar/
  10. Скопируйте файл настройки стилей для показа motd окна '.css' в корень своего сайта.
  11. В архиве есть файл sql dump таблиц '.sql', его необходимо импортировать в подготовленную бд.
  12. Настройте все квары плагинов и define (подключение к бд и тп).
  13. Смените карту или перезапустите сервер.
Настройки
В .sma:

C++:
new const ACCESS_MENU_FLAG = ADMIN_RCON; //для доступа (главное меню, создание и тп)

new const PIG_WAR_DIR[] = "pigwar";
new const PIG_WAR_SAVE[] = "pigwar_save";
new const PIG_WAR_SPAWN[] = "pigwar_spawn";
В .sma:

C++:
#define AUTO_CREATE_CONFIG //Авто создание конфигурационного файла настроек

#define ACCESS_BATTLE_MENU_FLAG ADMIN_RCON //Команда по запуску меню для дальнейшей войны свиней (работает только от 2 игроков)

#define ACCESS_MAIN_ADMIN_FLAG ADMIN_RCON //Флаг который есть только у главного админа для выдачи улучшений
#define ACCESS_ADMIN_FLAG ADMIN_BAN //Флаг который есть у админов для выдачи улучшений
#define ACCESS_VIP_FLAG ADMIN_LEVEL_H //Флаг который есть у випов для выдачи улучшений

//#define PRIVILEGED_MODELS //откомментировать если нужен доступ к моделям для главного админа, админов, випов

#define USE_SOUND //Если закомментировано, то музыкальное сопровождение при бое работать не будет, а также файлы .wav не будут скачиваться.

#if defined PRIVILEGED_MODELS
new const PIG_WAR_MAIN_ADMIN_MODEL[] = "pig-main";
new const PIG_WAR_ADMINS_MODEL[] = "pig-admin";
new const PIG_WAR_VIPS_MODEL[] = "pig-vip";
#endif

new const PIG_WAR_STANDART_MODEL[] = "pig-default";

#if defined USE_SOUND
 new const PIG_WAR_SOUND1[] = "pigwar/pigwar1.wav";
 new const PIG_WAR_SOUND2[] = "pigwar/pigwar2.wav";
#endif
В .cfg:

Код:
// Максимальное количество здоровья для меню подготовки (процентное соотношение, если вы укажите 250, то в меню будет доступно 245)
// -
// Default: "260"
pw_max_menu_health "260"

// Максимальное количество скорости для меню подготовки (процентное соотношение, если вы укажите 1000, то в меню будет доступно 900)
// -
// Default: "3100"
pw_max_menu_speed "3100"

// Максимальное количество гравитации для меню подготовки (процентное соотношение, если вы укажите 900, то в меню будет доступно 800)
// -
// Default: "900"
pw_max_menu_gravity "900"

// Максимальное количество дамага для меню подготовки (процентное соотношение, если вы укажите 20, то в меню будет доступно 15)
// -
// Default: "30"
pw_max_menu_damage "30"

// Максимальное количество яркости рендеринга для меню подготовки (процентное соотношение, если вы укажите 100, то в меню будет доступно 95)
// -
// Default: "105"
pw_max_menu_rendering "105"

// Время до начала войны свиней (отображение в HUD)
// -
// Default: "15"
pw_time_battle_hud "15"

// Как вести поиск статистики игроков в базе данных? (0-ник; 1-стим айди; 2-ip)
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "2.000000"
pw_maintaining_stats "0"

// Максимальное количество дополнительных прыжков для улучшения Двойной прыжок
// -
// Default: "50"
pw_double_jump_max "50"

// Режим оружия при бое: 0 - ограничений нет; 1 - остается только нож
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
pw_weapon_mode "1"

// Время до начала действий после рестарта (например полезно, что бы все успели закупиться оружием перед боем (режим веапон 0)
// -
// Default: "5.0"
pw_time_to_start "5.0"

// Использование ботов в сражениях (выкл-0, вкл-1)
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
pw_use_bots_in_battle "1"
В .sma:

C++:
new const PIG_WAR_DIR[] = "pigwar";
new const PIG_WAR_RATING_CFG[] = "pigwar_rating";
В .cfg (квары):

Код:
// Хост где расположена база данных.
// -
// Default: "127.0.0.1"
pw_sql_host "127.0.0.1"

// Пользователь базы данных.
// -
// Default: "user"
pw_sql_user "user"

// Пароль пользователя.
// -
// Default: "12345"
pw_sql_pass "12345"

// Наименование базы данных.
// -
// Default: "pw_stats_db"
pw_sql_db "pw_stats_db"

// Наименование таблицы статистики.
// -
// Default: "pw_table_stats"
pw_sql_table_stats "pw_table_stats"

// Наименование таблицы серверов.
// -
// Default: "pw_table_servers"
pw_sql_table_servers "pw_table_servers"

// Укажите максимальный порог записей в бд, после чего будет сброс. (выкл-0)
// -
// Default: "0"
pw_stats_max_rank "0"

// Использовать рейтинг (ранги в отдельной колонке) при выводе в топе мотд. (выкл-0; вкл-1)
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
pw_rating_names "1"
В .cfg (рейтинг):

Примечание:
1. Здесь создаются соотношения убийств игрока к каждому званию, т.е 1 - 30, 2 - 50 и так далее с новой строчки по формату.
2. Разрешено только 99 званий максимум.
3. По стандарту 8, если создаете больше, соотвественно меняете еще и Lang файл (добавляете новые строки с названием званий, с заменой цифры на 1 больше, сколько в этом cfg, столько должно быть и в lang)

Код:
1 - 5
2 - 10
3 - 15
4 - 25
5 - 30
6 - 35
7 - 40
8 - 45
В .txt (lang):

Примечание:

1. Вы можете менять что хотите по своему усмотрению.
2. Здесь я напишу только о важных строках (и которые влияют на функционал)

Код:
Подключение стилей для motd окна (меняется на свой сайт ссылка):
STATS_STYLE = <link href="https://ваш сайт.ru/pig-war.css" rel=stylesheet type=text/css>

Верхушка в motd:
STATS_PLAYER_TOP = [Pig War] Топ игроков

Настройка званий (наименований):

PIG_WAR_RATING_NAMES_1 = Новый свин
PIG_WAR_RATING_NAMES_2 = Свин бывалый
PIG_WAR_RATING_NAMES_3 = Свин убийца
PIG_WAR_RATING_NAMES_4 = Свин маньяк
PIG_WAR_RATING_NAMES_5 = Свин живодер
PIG_WAR_RATING_NAMES_6 = Свин потрошитель
PIG_WAR_RATING_NAMES_7 = Свин терминатор
PIG_WAR_RATING_NAMES_8 = Свин ганнибал

* - Если добавляем в .cfg файле настроек рейтинга строки, то меняем и здесь, добавляем новые, только меняем название на 1 цифру больше: PIG_WAR_RATING_NAMES_9 и так далее.
API
pigwar-natives:

C:
/*
*
* Game Mode: Pig War
* Natives
*
*/

#if defined _pigwar_natives_included
#endinput
#endif

#define _pigwar_natives_included

/*
* To create a fence from a file
*
* @returns nothing
*
* @recreates the fence from the file according to the stored coordinates.
*/
native pigwar_create_fence_from_file()

/*
* Will Return the number of spawns for terrorists and counter-terrorists from the save file
*
* @param num (tt-'1' Or ct-'2')
*
* @return the number of spawn
*/
native pigwar_check_spawn_num(num)

/*
* Will Return the coordinate of spawns for terrorists and counter-terrorists from the save file
*
* @param coord (x-'1' Or y-'2' Or z-'3')
* @param num (the spawn point on the account min-'0', max-'15')
* @param team (TT-'1' Or CT-'2')
*
* @example (Coordinate TT And CT):
*
* new CoordTT[3], CoordCT[3];
*
* CoordTT[0] = pigwar_check_spawn_coord(0, 1, 1);
* CoordTT[1] = pigwar_check_spawn_coord(1, 1, 1);
* CoordTT[2] = pigwar_check_spawn_coord(2, 1, 1);
*
* CoordCT[0] = pigwar_check_spawn_coord(0, 3, 2);
* CoordCT[1] = pigwar_check_spawn_coord(1, 3, 2);
* CoordCT[2] = pigwar_check_spawn_coord(2, 3, 2);
*
* @return the coordinate of spawn
*/
native pigwar_check_spawn_coord(coord, num, team)

/*
* When necessary, you can remove the fence from the map.
*
* @removes the fence
*/
native pigwar_destroy_fence()

/*
* The opportunity to get a sign of statistics
*
* @return sign stats.
*/
native pigwar_check_sign_stats()

/*
* Request the server ID in the database
*
* @the function returns nothing
*/
native pigwar_check_host_name_id()

/*
* Request the position (id) of the player in the statistics for the number of deaths (sort who has more deaths)
*
* @param line (c which line to watch)
*
* @example (line = 0, it is 1 line (player top 1), if line = 1, it is 2 line (player top 2), and so on.)
*/
native pigwar_find_out_rank_id(line)

/*
* Request for the total number of records from the statistics table, in the server table
*
* @returns the total number of entries
*/
native pigwar_check_rank_total()

/*
* Update the server table with the total number of rows from the statistics table
*
* @the function returns nothing
*/
native pigwar_check_get_stats_num_all()

/*
* Update all the rating in the database (recalculating the formula for the entire database (all records))
*
* @the function returns nothing
*/
native pigwar_update_rating_players()

pigwar-forwards:

C:
/*
*
* Game Mode: Pig War
* Forwards
*
*/

#if defined _pigwar_forwards_included
#endinput
#endif

#define _pigwar_forwards_included

/*
* Called when a death occurred during an active pig war (transmitting information about the attacker)
*
* param id
*
* @sends information about the attacker
*/
forward save_data_attacker(id)

/*
* Called when a death occurred during an active pig war (transmitting information about the victim)
*
* param id
*
* @sends information about the victim
*/
forward save_data_victim(id)

/*
* Called when a death occurred during an active pig war (transmitting information about the survivor)
*
* param id
*
* @sends information about the survivor
*/
forward save_data_survivor(id)

/*
* Called when the result from an sql query is received (works with native pigwar_check_host_name_id (), getting the server id in the server table)
*
* param id
*
* @sends information about the server id in the table
*/
forward get_id_host(id)

/*
* Called when getting the result from an sql query (works with native pigwar_find_out_rank_id(line), getting the player id in the statistics table on request)
*
* param id
*
* sends information about the player id in the table
*/
forward get_id_rank(id)

/*
* Called when getting the result from an sql query (works with native pigwar_check_rank_total (), getting the total number of rows from the server table)
*
* param num
*
* sends information about the total number of rows from the statistics table, in the server table
*/
forward get_total_entries(num)

/*
* Called to intercept sql_tuple initialization data
*
* param Handle:SQL_Tuple (the sql descriptor that you can use to connect, do not release it)
*
* sends information about sql_tuple data initialization
*/
forward sql_initialized(Handle:SQL_Tuple)

/*
* Called to intercept sql table data
*
* param tb_stats
* param tb_servers
*
* sends information about sql table data
*/
forward get_sql_data_table(const tb_stats[], const tb_servers[])

/*
* Called to intercept sql column data
*
* param cl_stats
* param cl_servers
*
* sends information about sql column data
*/
forward get_sql_data_column(const cl_id[], const cl_server[])
Сверху Снизу