Иконка ресурса

amxx reapi RuneMod: Reloaded 3.7.11

Нет прав для скачивания
Установка
  1. Скомпилируйте базовый плагин и нужные руны/предметы (инструкция)
  2. Скопируйте скомпилированные .amxx плагины в папку /amxmodx/plugins/
  3. Скопируйте plugins-RunemodReloaded.ini в папку /amxmodx/configs/
  4. Отключите ненужные руны и предметы в plugins-RunemodReloaded.ini
  5. Скопируйте содержимое папки your_mod_dir на сервер в папку с модом с заменой
  6. Сделайте необходимые настройки (см. ниже)
  7. Сделайте рестарт или смените карту
Настройки
Квары: (amxmodx\configs\plugins\runemod.cfg)

Код:
// Префикс RUNEMOD
runemod_prefix "[RUNEMOD]"

// Возможность включить или отключить появление новых предметов.
// можете изменять этот квар через плагины или конфиги для отключения!
runemod_active 1

// Активирует режим: Только предметы. 
// В этом режиме на карте будут появляться только предметы.
// Этот режим рекомендуется использовать для установки на PUBLIC серверах.
runemod_only_items 0

// С какого раунда начинают появляться предметы
// Поставьте 0 если у вас бесконечные раунды.
// ВНИМАНИЕ! Установите номер раунда к примеру 2, если у вас есть плагин разминки который удаляет все объекты с карты.
runemod_start_round 0

// Удалять все после окончания раунда
runemod_restart_cleanup 0

// Через сколько секунд создавать следующий предмет/руну.
// (в секундах. Уменьшите это значение если предметы появляются редко)
runemod_spawntime 1

// Сколько предметов и рун разрешено создавать за один раз
runemod_perspawn 1

// Сколько рун может быть на карте одновременно
runemod_max_runes 30

// Сколько предметов может быть на карте одновременно
runemod_max_items 30

// Сколько максимум спавн точек для предметов на карте
runemod_spawncount 50

// Как далеко создавать предметы от места появления игроков
// Уменьшите это значение если на карте очень много спавн точек ( сервера CSDM )
runemod_respawn_distance 175

// На каком расстоянии от игроков будут появляться предметы 
// Уменьшите это значение если карта очень маленькая
runemod_player_distance 175

// Минимальное расстояние между спавн точками рун
// Уменьшите это значение если карта очень маленькая
runemod_spawn_distance 225

// Минимальное количество игроков для добавления новых предметов
runemod_min_players 0

// Максимальное количество игроков для добавления новых предметов
runemod_max_players 32

// Активировать свечение модели игрока
runemod_player_highlight 1

// Активировать подсветку экрана игрока
runemod_screen_highlight 0

// На каких картах мод не будет работать. 
// Через пробел. 
// Например "de_ $2000$ fy_" или "inferno nuke dust2"
runemod_ignore_prefix_list ""

// Только зарегистрированные на GAMECMS пользователи могут поднять предметы.
runemod_only_gamecms 0

// Режим "Случайный предмет" 
// Отключает кастомные модели (все предметы будут с моделью runemod_default_model_path)
// Отключает описание предметов, и свечение. 
// Симуляция "Сундуков" (Повторяет в точности работу плагина Presents от GameCMS).
runemod_random_mode 0

// Забрать предметы на следующий раунд. Если хотите что бы предметы и руны оставались после окончания раунда, установите 0. 
runemod_newround_remove 1

// Включить runeshop.
// (Магазин предметов и рун, используйте игровые деньги что бы купить их!)
runemod_rune_shop 0

// Время работы мода в часах.
// Например "00 10" означает что мод будет работать с 00:00 до 10:00!
runemod_time ""

// Путь к стандартной модели предмета
runemod_default_model_path "models/w_weaponbox.mdl"

// Путь к стандартному звуку поднятия предмета
runemod_default_pickup_path "sound/rm_reloaded/pickup.wav"

// Оповещать других игроков о том что была поднята руна или предмет
// (Например: Игрок [USERNAME] поднял предмет [ITEMNAME])
runemod_notify_players 0

// Оповещать других игроков о том что игрок потерял руну или предмет.
// (Например: У игрока [USERNAME] заврешилось действие [ITEMNAME])
runemod_notify_players_drop 0

// Оповещать игроков о том что на карте появилась новая руна или предмет
runemod_notify_spawns 1

// Создавать предметы и руны только когда игрок не смотрит :) 
// Увеличивает нагрузку на сервер.
// Может улучшить геймплей.
runemod_spawn_nolook 1

// Время через которое одна точка появления будет обновлена в секундах.
// Используется что бы время от времени обновлять спавны. 
// Увеличивает нагрузку на сервер.
// Может улучшить геймплей.
runemod_spawn_lifetime 60

// Могут ли боты поднимать руны и предметы
runemod_bot_pickup 1
Квары (amxmodx\configs\plugins\runemod_extended.ini.ini)
Код:
; DELAY_BETWEEN_NEXT_SPAWN - это время между появлением следующей руны или предмета данного типа в секундах
; модель , звук, стоимость и другие параметры
[rm_speed_rune_name]
model = models/rm_reloaded/rune_skyblue.mdl
sound = sound/rm_reloaded/speedup.wav
COST_MONEY = 9000
SPEED = 800.00
MAX_COUNT_ON_MAP = 10
DELAY_BETWEEN_NEXT_SPAWN = 0

[rm_invis_rune_name]
model = models/rm_reloaded/rune_sky.mdl
sound = sound/rm_reloaded/invis.wav
COST_MONEY = 8500
MAX_COUNT_ON_MAP = 10
DELAY_BETWEEN_NEXT_SPAWN = 0

[rm_regen_rune_name]
model = models/rm_reloaded/rune_pink.mdl
sound = sound/rm_reloaded/regen.wav
COST_MONEY = 5200
REGEN_IN_SECOND = 20.00
MAX_COUNT_ON_MAP = 10
DELAY_BETWEEN_NEXT_SPAWN = 0

[rm_protect_rune_name]
model = models/rm_reloaded/rune_red.mdl
sound = sound/rm_reloaded/protect.wav
COST_MONEY = 6600
MAX_COUNT_ON_MAP = 10
DELAY_BETWEEN_NEXT_SPAWN = 0

[rm_teleport_rune_name]
model = models/rm_reloaded/rune_green.mdl
sound = sound/rm_reloaded/teleport.wav
teleport_sprite = sprites/steam1.spr
COST_MONEY = 7500
COOLDOWN = 1.00
MAX_COUNT_ON_MAP = 10
DELAY_BETWEEN_NEXT_SPAWN = 0

[rm_phantom_rune_name]
model = models/rm_reloaded/rune_magenta.mdl
sound = sound/rm_reloaded/phantom.wav
COST_MONEY = 7700
MAX_COUNT_ON_MAP = 10
NOCLIP_SPEED = 500.00
NOCLIP_DISTANCE = 1300.00
DELAY_BETWEEN_NEXT_SPAWN = 0

[rm_medkit_item_name]
model = models/rm_reloaded/w_medkit.mdl
COST_MONEY = 3500
MAX_COUNT_ON_MAP = 10
DELAY_BETWEEN_NEXT_SPAWN = 0

[rm_money_item_name]
model = models/rm_reloaded/w_dollar.mdl
MIN_MONEY = 5000
MAX_MONEY = 5000
MAX_COUNT_ON_MAP = 10
DELAY_BETWEEN_NEXT_SPAWN = 0

[rm_fill_ammo_item_name]
model = models/w_weaponbox.mdl
COST_MONEY = 1100
MAX_COUNT_ON_MAP = 10
DELAY_BETWEEN_NEXT_SPAWN = 0

[rm_longjump_item_name]
model = models/w_longjump.mdl
COST_MONEY = 900
MAX_COUNT_ON_MAP = 10
DELAY_BETWEEN_NEXT_SPAWN = 0

[rm_silentstep_item_name]
model = models/rm_reloaded/w_botinok_2.mdl
COST_MONEY = 1000
ACTIVE_SECONDS = 20.00
MAX_COUNT_ON_MAP = 10
DELAY_BETWEEN_NEXT_SPAWN = 0

[rm_vip_item_name]
model = models/rm_reloaded/w_vip.mdl
VIP_FLAGS = ab
MAX_COUNT_ON_MAP = 1
DELAY_BETWEEN_NEXT_SPAWN = 0

[rm_re_portal_item_name]
model = models/portal_gun/w_portalgun.mdl
sound = sound/portal_gun/portal_b.wav
COST_MONEY = 8500
MAX_COUNT_ON_MAP = 10

[GENERAL]
MAXIMUM_HP = 150.00
HP_REGEN = 50.00

[rm_portal_item_name]
model = models/next_portalgun/w_portalgun.mdl
sound = sound/rm_reloaded/portal_gun.wav
COST_MONEY = 4800
MAX_COUNT_ON_MAP = 10
DELAY_BETWEEN_NEXT_SPAWN = 0

[rm_gamecms_money_item_name]
model = models/rm_reloaded/w_rubel.mdl
COST_MONEY = 0
MIN_MONEY = 5.00
MAX_MONEY = 5.00
MAX_COUNT_ON_MAP = 1
DELAY_BETWEEN_NEXT_SPAWN = 0

[rm_mjolnir_item_name]
model = models/rm_reloaded/w_mjolnir.mdl
COST_MONEY = 7100
COOLDOWN = 3.00
MAX_COUNT_ON_MAP = 10
DELAY_BETWEEN_NEXT_SPAWN = 0

[rm_multijump_item_name]
model = models/rm_reloaded/w_multijump.mdl
COST_MONEY = 4300
JUMPS = 10
MAX_COUNT_ON_MAP = 10
DELAY_BETWEEN_NEXT_SPAWN = 0

[rm_alcohol_bad_item_name]
model = models/rm_reloaded/w_butilka_vodki.mdl
COST_MONEY = 500
ACTIVE_SECONDS = 30.00
MAX_COUNT_ON_MAP = 1
DELAY_BETWEEN_NEXT_SPAWN = 0

[rm_random_rune]
MAX_COUNT_ON_MAP = 10
DELAY_BETWEEN_NEXT_SPAWN = 0

[rm_random_item]
MAX_COUNT_ON_MAP = 10
DELAY_BETWEEN_NEXT_SPAWN = 0
API
Функции доступные для вызова из rm_api
Код:
/*
* Регистрации нового предмета или руны
*
* @param RuneName        Название руны
* @param RuneDesc        Описание руны
* @param RuneColor        Цвет руны(подсветка игрока, экрана и модели)
* @param rModel            Путь к модели, иначе используется стандартная
* @param rSound            Путь к звуку, иначе используется стандартный
* @param rModelID        Номер модели из прекеша (только если указана rModel)
* @param RuneGiveName    Название руны для выдачи или покупки
*
* @return Номер руны или -1 если количество превышено допустимое количество рун (MAX_REGISTER_RUNES)
*/
stock rm_register_rune(RuneName[], RuneDesc[], Float:RuneColor[3], rModel[] = "", rSound[] = "", rModelID = -1,RuneGiveName[] = "")
/* Конфигурация */
stock rm_read_cfg_str(RuneName[], RuneParam[], DefaultValue[], out[], outlen)
stock rm_read_cfg_int(RuneName[], RuneParam[], DefaultValue, &out)
stock rm_read_cfg_flt(RuneName[], RuneParam[], Float:DefaultValue, &Float:out)
// Регистрации нового ланг файла (словарь)
public rm_register_dictionary(const dictname[])
// Вызывается когда игрок поднимает предмет или руну/предмет
stock bool:rm_give_rune_callback(OwnIndex, id, ent, rune_id)
// Вызывается когда предмет или руна появляется на карте
stock bool:rm_spawn_rune_callback(OwnIndex, ent, rune_id)
// Вызывается когда предмет или руна удаляется с карты
stock rm_remove_rune_callback(OwnIndex, ent)
// Вызывается когда игрок теряет руну/предмет
stock rm_drop_rune_callback(OwnIndex, id, rune_id)
// Выбросить руну/предмет
stock rm_base_drop_rune(id)
// Прервано дейтсвие предмета
stock rm_base_drop_item_notice(id)
// Прервано дейтсвие предмета по номеру предмета (руны)
stock rm_base_drop_item_by_rune_id_notice(rune_id,id)
// Указать класс текущей руны : предмет
stock rm_base_use_rune_as_item( )
// Активировать свечение модели игрока
stock rm_base_highlight_player(id)
// Активировать подсветку экрана игрока
stock rm_base_highlight_screen(id, hpower = RUNEMODE_DEFAULT_HIGHLIGHT_POWER)
// Сбросить подсветку игрока
stock rm_base_disable_highlight(id)
// Заблокировать игрок возможность поднимать руны и предметы
stock rm_base_lock_pickup(id, iBlock)
// Заменить лежащую на земле руну/предмет другой
stock rm_base_swap_rune_id(ent, new_rune_id)
// Есть ли у игрока активная руна?
stock bool:rm_base_player_has_rune(id)
// Какая у игрока активная руна?
stock rm_base_player_get_rune(id)
// Предупредить игрока о необходимости зарегистрироваться на сайте для поднятия текущей руны
stock rm_print_need_register(id)
// Запрет поднятия руны незарегистрированному в GAMECMS игроку текущей руны
stock rm_need_gamecms_register()
// Ограничить количество рун текущего типа
stock rm_base_set_max_count(num)
// Добавить в магазин рун текущую руну/предмет
stock rm_base_set_rune_cost(imoney)
// Добавить в магазин рун по номеру руны
stock rm_base_set_rune_cost_by_rune_id(rune_id, imoney)
// Дать руну/предмет игроку из внешнего плагина
stock bool:rm_give_rune_to_player(player_id, rune_id)
// Узнать по номеру руны что это, руна или предмет
stock bool:rm_is_rune_item(rune_id)
// Получить количество всех зарегистрированных рун и предметов
stock rm_get_runes_count()
// Выключить появление руны на карте принудительно
stock rm_disable_rune(rune_id)
// Получить номер руны по названию руны. 
stock rm_get_rune_by_name(rune_name[])
// Купить руну/предмет за игровые деньги по названию
stock rm_buy_rune_by_name(id,rune_name[])
// Принудительно забрать руну/предмет у игрока.
stock rm_force_drop_rune(id)
// Принудительно забрать все предметы у игрока.
stock rm_force_drop_items(id)
// Функция проверяет не находится ли игрок на земле
stock bool:is_user_onground( id )
// Фyнкция coxpaняeт ид pyны в руну/предмет
public rm_set_rune_runeid( id, rune_id )
// Фyнкция вoзвpaщaeт ид pyны из руны
public rm_get_rune_runeid( id )
// Фyнкция вoзвpaщaeт число из руны
public rm_get_rune_num( id )
// Фyнкция coxpaняeт ид спавна в руну/предмет
public rm_set_rune_spawnid( id, spawn_id )
// Фyнкция вoзвpaщaeт ид спавна из руны
public rm_get_rune_spawnid( id )
stock rg_set_rendering(const pEntity, const fx = kRenderFxNone, mode = kRenderNormal, const Float:flColor[] = {0.0, 0.0, 0.0}, const Float:iAmount = 0.0)
stock bool:rm_is_hull_vacant(id, Float:origin[3], iHull, g_pCommonTr)
stock bool:rm_unstuck_player(id)
stock rm_base_plugin_id()
stock rm_current_plugin_id()
FORWARD'ы для добавления в код (создаете public функцию с данным названием в свой плагин руны/предмета, и она будет вызвана с указанными параметрами)
Код:
// Событие происходит когда игрок хочет поднять руну, в аргументах передается ID игрока, ID сущности руны (или 0), а так же номер руны(опционально). В ответе принимает PICKUP_SUCCESS если игрок может поднять руну и PICKUP_ERROR если по каким-то причинам ему нельзя дать эту руну.
forward rm_give_rune(id,ent,rune)
// Событие происходит когда игрок теряет руну. В аргументах передается номер игрока и номер руны (опционально)
forward rm_drop_rune(id)
// Событие происходит когда руна должна появится на карте, ent это сущность руны, а rune это номер руны(опционально)
forward rm_spawn_rune(ent,rune). В ответе принимает SPAWN_SUCCESS если разрешено создать руну или же SPAWN_ERROR если по каким-то причинам руну нельзя создавать в данный момент.
// Событие происходит когда сущность руны должна быть удалена из карты. ent - сущность которая будет удалена.
forward rm_remove_rune(ent)
То есть в коде можно использовать так:
Код:
public rm_give_rune(id)
{
// Игрок получает руну, или предмет, теперь установите тут эффект от руны/предмета, который вам придет в голову
}


public rm_drop_rune(id)
{
   // Игрок теряет руну, отключите для него действия, обрабатываются все сценарии, игрок умер или же вышел из игры. 
}

и так далее
Сверху Снизу