- Автор
- Совместимость с
- Amx Mod X 1.9.0, Amx Mod X 1.10.0 dev
- Мультиязычность
- RU
- Требования
-
ReAPI
База данных MySQL
- Благодарности
Плагин добавит на сервер дополнительную валюту: монеты.
Начисления монет происходит по следующим параметрам:
1. Во время убийства.
– убийство игрока;
– убийство ножом.
– убийство в голову.
– убийство гранатой.
– имеющийся дополнительный привилегированный флаг, указанный в настройках.
2. Победа команды
Для каждого типа начисления присутствует квар настройки количества.
Начисление может суммироваться по нескольким параметрам.
Несколько примеров:
1. Убийство + убийство ножом.
2. Убийство + убийство ножом + убийство в голову.
3. Убийство + флаг для дополнительного начисления монет.
Монеты выпадают с игрока при смерти, имеют визуальную модель, звук при подборе.
Игроки, имеющие указанный привилегированный флаг, имеют возможность притягивать к себе выпавшие монеты (автоматически в указанном радиусе). Если же таких игроков несколько, то притягивать к себе монету будет тот, кто стоит ближе к монете по принципе минимального расстояния.
Начисления монет происходит по следующим параметрам:
1. Во время убийства.
– убийство игрока;
– убийство ножом.
– убийство в голову.
– убийство гранатой.
– имеющийся дополнительный привилегированный флаг, указанный в настройках.
2. Победа команды
Для каждого типа начисления присутствует квар настройки количества.
Начисление может суммироваться по нескольким параметрам.
Несколько примеров:
1. Убийство + убийство ножом.
2. Убийство + убийство ножом + убийство в голову.
3. Убийство + флаг для дополнительного начисления монет.
Монеты выпадают с игрока при смерти, имеют визуальную модель, звук при подборе.
Игроки, имеющие указанный привилегированный флаг, имеют возможность притягивать к себе выпавшие монеты (автоматически в указанном радиусе). Если же таких игроков несколько, то притягивать к себе монету будет тот, кто стоит ближе к монете по принципе минимального расстояния.
В архиве имеется пример использования нативов.
Примеры использования форвардов и недавно введенных нативов (некоторые условия просто для примера):
1. Блокировка пополнения монет для игрока, который имеет монет больше чем условные 9999.
2. Событие получения монет и выведение информации в DHUD:
3. Блокировка поднятия монеты для игрока, который имеет монет больше чем условные 2500.
4. Событие поднятия монеты и выведение информации в DHUD:
5. Блокировка притягивания монет игроком, который имеет более условных 1000 монет
6. Дроп монеты из игрока при попадании по нему, если у него есть монеты:
Примеры использования форвардов и недавно введенных нативов (некоторые условия просто для примера):
1. Блокировка пополнения монет для игрока, который имеет монет больше чем условные 9999.
Код:
#include <amxmodx>
#include <coins_system>
public sc_give_coins_pre(pPlayer, iAddCoins)
{
if(get_user_coins(pPlayer) + iAddCoins > 9999)
{
set_user_coins(pPlayer, 9999);
return SC_HANDLED;
}
return SC_IGNORE;
}
Код:
#include <amxmodx>
#include <coins_system>
public sc_give_coins_post(pPlayer, iAddCoins)
{
set_dhudmessage(0, 255, 0, -1.0, -1.0, .holdtime = 3.0);
show_dhudmessage(pPlayer, "Вы получили: %i монет", iAddCoins);
}
Код:
#include <amxmodx>
#include <coins_system>
public sc_coins_pickup_pre(pPlayer, eEnt)
{
if(get_user_coins(pPlayer) > 2500)
return SC_HANDLED;
return SC_IGNORE;
}
Код:
#include <amxmodx>
#include <coins_system>
public sc_coins_pickup_post(pPlayer, eEnt)
{
set_dhudmessage(0, 255, 0, -1.0, -1.0, .holdtime = 3.0);
show_dhudmessage(pPlayer, "Вы подняли монету");
}
Код:
#include <amxmodx>
#include <coins_system>
public sc_coin_pull(pPlayer, eEnt)
{
if(get_user_coins(pPlayer) > 1000)
return SC_HANDLED;
return SC_IGNORE;
}
Код:
#include <amxmodx>
#include <coins_system>
#include <reapi>
public plugin_init()
{
RegisterHookChain(RG_CBasePlayer_TakeDamage, "@CBasePlayer_TakeDamage_Post", true);
}
@CBasePlayer_TakeDamage_Post(pVictim, pAttacker, iCorpse)
{
if(!is_user_connected(pVictim) || !is_user_connected(pAttacker) || get_member(pVictim, m_iTeam) == get_member(pAttacker, m_iTeam))
return;
user_drop_coins(pVictim, 1, true);
}