You can log in to our site only via STEAM. If you don’t have a STEAM account, please register a free one on the official site steamcommunity.com, then click the button below to log in. Logged-in users have access to many features that make browsing our store more convenient. To purchase plugins, change your IP, or recover a key, logging in is not required.
By logging in to our website, you agree to the terms of our Privacy Policy
This plugin adds the ability to transfer to other players money, /anew points, Army Ranks Ultimate experience, and GameCMS site balance. But it works differently from other similar plugins—it’s more realistic. The player drops an item on the ground as a nice model, and another player picks it up (just like weapon drops normally work).
How does it work?
Type /transfer in chat (or use the console command transfer_menu), select, for example, experience, and choose the amount to drop. The item is then dropped on the ground, notifications appear, logs are written, sounds are played, etc. As usual, the plugin has extensive functionality and flexible configuration.
4 built-in drop types. As mentioned above: $, /anew points, XP, and GameCMS currency. But you can add many more 😀 details below.
Simple API. Using natives and forwards, you can add any other drop type. The include file explains everything in detail and has a fully working example of adding a "health" drop. The plugin for that is just 50 lines. Fun to run around dropping your own health, but it wasn’t included in the main plugin—you can easily add it if you want.
Logs. Very important—logs record exactly who dropped or picked up what, and how much they had before and after. This helps in case of disputes.
Menu. You can flexibly configure behavior, for example enable or disable a confirmation menu, or make the menu close after dropping an item.
Protection from exploiters. Some players might try to abuse site registration bonuses (e.g., 30 rubles) by repeatedly dropping them to one person. Not possible! Each drop type has its own settings to prevent abuse. For example, you cannot drop rubles if your balance would fall below 50. Check the config to adjust this for your server.
Models. Very lightweight, look beautiful and realistic. You can replace them with your own.
VIP-only access. You can restrict drop access by flags, GameCMS services, or allow everyone.
Glow effect. You can highlight dropped items with a color to make them more visible. Disabled by default—just uncomment the corresponding cvar.
Sounds. Can also be changed. Default sounds are standard game sounds, so clients don’t need to download extra files.
25.01.26BETA - обновить .amxx - исправлено чтение lang файла (баг прошлой версии) 24.10.10BETA - обновить ВСЕ ФАЙЛЫ - обновлено ядро плагина - добавлена полная мультиязычность, даже в конфигах (серверная команда fg_lang) 22.12.08BETA - обновить .amxx - обновлено ядро - добавлено уведомление, когда игрок не зареген на сайте и пытается взять деньги
This plugin has a discount on your second purchase.
If you have already bought this plugin before, you will get it for less for the second and any additional server!
// Лицензионный ключ вводить в файл amxmodx/data/fg_keys.ini (если файла нет, он создастся сам при рестарте/смены карты сервера)
// Включить запись логов?
// Будут записаны все действия от плагина(кто скинул, кто подобрал) в файл amxmodx/logs/transfer_rbs/TRANSFERYYYYMMDD.log
transfer_logs "1"
// Звук при дропе
// Можно использовать только .wav файлы
// Закомментируйте квар для отключения
// Полный путь до звука:
// cstrike/sound/папка/звук.wav - звук будет закачан клиенту
// valve/sound/папка/звук.wav - стандартные звуки, есть у всех клиентов, поэтому закачиваться не будет
transfer_sound_drop "valve/sound/items/weapondrop1.wav"
// Тоже самое, только при взятии
transfer_sound_pickup "valve/sound/items/gunpickup2.wav"
// Какие сообщения писать при дропе?
// "a" - в чате
// "b" - по центру экрана
// "c" - HUD
transfer_msg_drop "bc"
// Тоже самое, только при взятии
transfer_msg_pickup "bc"
// Поведение меню при дропе
// "a" - вернется на главный экран
// "b" - останется на текущем экране
// "c" - закроется
// "d" - показывать меню подтверждения дропа?
transfer_menu_type "bd"
// Настройка худа
// r g b x y time dhud
// r g b - цвет
// x y - координаты
// time - как долго будет исчезать сообщение
// type - тип худа
// 0 - отключить худ
// 1 - hud (обычный)
// 2 - DHUD (жирный текст)
transfer_hud "0 255 0 -1.0 0.25 6.0 1"
// Запретить весь /transfer, чье звание меньше этого (требуется Army Ranks Ultimate)
// "0" - разрешить с любого звания
// "1" - разрешить со звания курсант
// "2" - разрешить со звания рядовой и т.д.
transfer_army "0"
// Запретить весь /transfer, если общее кол-во фрагов в стате игрока меньше этого
// "0" - разрешить всем
transfer_frags "0"
/////////////////////////
// ОБЫЧНЫЕ ДЕНЬГИ В КС //
/////////////////////////
// Значения для дропа (будут отображаться в меню)
// Закомментируйте для отключения этого типа дропа
transfer_money_items "500 1000 5000 10000 16000"
// Флаг игрока, который может скидывать деньги
// "0" - можно всем.
// "gamecms:_transfer_money" - по услуги в gamecms
transfer_money_access "0"
// Время в секундах, в течении которого нельзя скидывать повторный дроп (чтоб не спамили)
// "0" - без ограничений
transfer_money_block "0"
// Сколько минимум единиц должно остаться у игрока после после дропа?
// "0" - не меньше нуля
transfer_money_min "0"
// Сколько максимум единиц можно дропнуть за карту
// "0" - без ограничений
transfer_money_max "50000"
// Свечение объекта в формате RGB
// Закомментировать для отключения
//transfer_money_glow "255 255 255"
// Путь до модели
transfer_money_model "models/transfer_rbs/money.mdl"
/////////////////////////////////////////////////////////////////
// ОПЫТ (требуется плагин Army Ranks Ultimate и CsStats MySQL) //
/////////////////////////////////////////////////////////////////
// Значения для дропа (будут отображаться в меню)
// Закомментируйте для отключения этого типа дропа
transfer_xp_items "10 20 50 100 200"
// Флаг игрока, который может скидывать опыт
// "0" - можно всем.
// "gamecms:_transfer_xp" - по услуги в gamecms
transfer_xp_access "t"
// Время в секундах, в течении которого нельзя скидывать повторный дроп (чтоб не спамили)
// "0" - без ограничений
transfer_xp_block "1"
// Сколько минимум единиц должно остаться у игрока после после дропа?
// В данном кваре имеется ввиду, какой номер уровня игрока должен быть, чтобы можно было скидывать опыт
// В любом случае, не получится скинуть столько опыта, чтобы звание скинулось на предыдущее
// "0" - любое звание
// "1" - курсант
// "2" - рядовой и т.д.
transfer_xp_min "5"
// Сколько максимум единиц можно дропнуть за карту
// "0" - без ограничений
transfer_xp_max "500"
// Свечение объекта в формате RGB
// Закомментировать для отключения
//transfer_xp_glow "255 255 255"
// Путь до модели
transfer_xp_model "models/transfer_rbs/xp.mdl"
////////////////////////////////////////////////////////////////////
// ПОИНТЫ /anew (требуется Army Ranks Ultimate или BonusMenu RBS) //
////////////////////////////////////////////////////////////////////
// Значения для дропа (будут отображаться в меню)
// Закомментируйте для отключения этого типа дропа
transfer_anew_items "1 2 5 10 15"
// Флаг игрока, который может скидывать поинты
// "0" - можно всем.
// "gamecms:_transfer_anew" - по услуги в gamecms
transfer_anew_access "0"
// Время в секундах, в течении которого нельзя скидывать повторный дроп (чтоб не спамили)
// "0" - без ограничений
transfer_anew_block "0"
// Сколько минимум единиц должно остаться у игрока после после дропа?
// "0" - не меньше нуля
transfer_anew_min "10"
// Сколько максимум единиц можно дропнуть за карту
// "0" - без ограничений
transfer_anew_max "50"
// Свечение объекта в формате RGB
// Закомментировать для отключения
//transfer_anew_glow "255 255 255"
// Путь до модели
transfer_anew_model "models/transfer_rbs/anew.mdl"
////////////////////////////////////////////////////////////////////////////
// Деньги с баланса юзера на сайте gamecms (требуется плагин GameCMS API) //
////////////////////////////////////////////////////////////////////////////
// Значения для дропа (будут отображаться в меню)
// Закомментируйте для отключения этого типа дропа
//transfer_balance_items "1 2 5 10 15"
// Флаг игрока, который может скидывать поинты
// "0" - можно всем.
// "gamecms:_transfer_balance" - по услуги в gamecms
transfer_balance_access "0"
// Время в секундах, в течении которого нельзя скидывать повторный дроп (чтоб не спамили)
// "0" - без ограничений
transfer_balance_block "30"
// Сколько минимум единиц должно остаться у игрока после после дропа?
// "0" - не меньше нуля
transfer_balance_min "50"
// Сколько максимум единиц можно дропнуть за карту
// "0" - без ограничений
transfer_balance_max "100"
// Свечение объекта в формате RGB
// Закомментировать для отключения
//transfer_balance_glow "255 255 255"
// Путь до модели
transfer_balance_model "models/transfer_rbs/balance.mdl"
// При включенном кваре, плагин будет записывать в личный кабинет юзера на сайте GameCMS информацию об изменении баланса
// При первом запуске сервера, он добавит в таблицу `money__actions_types` необходимые строки, изменить их можно в ланг файле TRANSFER_GAMECMS_*
// ВНИМАНИЕ! При включении этого лога, обязательно установите ограничение в квар transfer_balance_block, чтобы сократить кол-во запросов к БД
transfer_gamecms_logs "0"
//////////////////////////////////////////////////////////////
// С помощью нативов, можно добавить другие дропы //
// Например опыт в каком ни будь стороннем плагине //
// Более подробно расписано в инклуде transfer_rbs.inc //
//////////////////////////////////////////////////////////////
[ru]
TRANSFER_TAG = !n[!gTRANSFER!n]
TRANSFER_ALIVE = !tДоступно только для живых!
TRANSFER_ACCESS = Недостаточно прав!
TRANSFER_ARMY = Требуется минимум звание %s!
TRANSFER_FRAGS = Требуется набрать минимум %d фрагов!
TRANSFER_BLOCK = Разрешено через %d сек...
TRANSFER_MAX = За карту нельзя скидывать больше %L
TRANSFER_MAIN_TITLE = \r[\yTRANSFER\r]\w Что Вы хотите скинуть?
TRANSFER_MAIN_ITEM = %L
TRANSFER_MAIN_EXIT = Выход
TRANSFER_SUB_TITLE = \r[\yTRANSFER\r]\w Скинуть \r%L
TRANSFER_SUB_BACK = Назад
TRANSFER_CONFIRM_TITLE = \r[\yTRANSFER\r]\w Уверены, что хотите скинуть \r%L\w?
TRANSFER_CONFIRM_INFO = \wБыло:\r%L \d| \wСтанет:\r%L
TRANSFER_CONFIRM_YES = Да, скинуть
TRANSFER_GAMECMS_DROP = Дропнул
TRANSFER_GAMECMS_PICKUP = Подобрал
TRANSFER_DROP_CHAT = !n[!gTRANSFER!n] Вы скинули %L
TRANSFER_DROP_CENTER = Вы скинули %L
TRANSFER_DROP_HUD = Вы скинули %L
TRANSFER_PICKUP_CHAT = !n[!gTRANSFER!n] Вы подобрали %L
TRANSFER_PICKUP_CENTER = Вы подобрали %L
TRANSFER_PICKUP_HUD = Вы подобрали %L
TRANSFER_NAME_MONEY = Деньги
TRANSFER_LACK_MONEY = Недостаточно денег! Должно остаться минимум %d$!
TRANSFER_MENU_MONEY = %d\y$
TRANSFER_CHAT_MONEY = !g%d!n$
TRANSFER_NAME_XP = Опыт
TRANSFER_LACK_XP = У Вас недостаточно опыта!
TRANSFER_LOSS_XP = Вы потеряете звание, если поставите столько опыта!
TRANSFER_ACCE_XP = Разрешено только со звания %s!
TRANSFER_MENU_XP = %d\yXP
TRANSFER_CHAT_XP = !g%d!nXP
TRANSFER_NAME_ANEW = Поинты
TRANSFER_LACK_ANEW = Недостаточно поинтов! Должно остаться минимум %danew!
TRANSFER_MENU_ANEW = %d\yanew
TRANSFER_CHAT_ANEW = !g%d!nanew
TRANSFER_NAME_BALANCE = Баланс на сайте
TRANSFER_LOSS_BALANCE = Вы не зарегистрированы на сайте!
TRANSFER_LACK_BALANCE = Недостаточно денег на балансе! Должно остаться минимум %dруб!
TRANSFER_MENU_BALANCE = %d\yруб
TRANSFER_CHAT_BALANCE = !g%d!nруб
/* Transfer RBS Functions
*
* by SKAJIbnEJIb
*
* This file is provided as is (no warranties).
*/
#if defined _transfer_rbs_included
#endinput
#endif
#define _transfer_rbs_included
#define TRANSFER_MONEY 0 // обычные деньги в кс
#define TRANSFER_XP 1 // опыт арми ранкс
#define TRANSFER_ANEW 2 // поинты /anew
#define TRANSFER_BALANCE 3 // баланс GameCMS
#define TRANSFER_DEFAULT 4 // кол-во стандартных дропов
#define TRANSFER_MAX 9 // максимальное кол-во дропов не должно превышать 9-ти!
#define TRANSFER_ERROR_SUCCESS 0 // если все нормально
#define TRANSFER_ERROR_LACK 1 // если не хватает средств(основной плагин напишет сообщение в чат)
#define TRANSFER_ERROR_OTHER -1 // другая ошибка, сами напишите свое сообщение в чат, дроп при этом не сделается
#if defined TRANSFER_RECURSION
#undef _transfer_rbs_included
#endinput
#endif
// Вызывается перед проверками на дроп
// id - айди игрока
// type - тип дропа (константы TRANSFER_* или добавленный тип нативом transfer_custom_add)
// value - значение
// post - до или после события
// res - если проверки прошли успешно, то вернет 1
// В этом форварде можно делает собственные проверки, и в случае необходимости заблочить дроп return PLUGIN_HANDLED
forward transfer_player_check(id, type, value, post=0, res);
// Вызывается перед списанием средств
// id - айди игрока
// type - тип дропа (константы TRANSFER_* или добавленный тип нативом transfer_custom_add)
// value - значение
// post - до или после события
// res - вернет 1 если все успешно списалось
// В этом форварде можно делает собственные проверки, и в случае необходимости заблочить дроп return PLUGIN_HANDLED
forward transfer_player_set(id, type, value, post=0, res);
// Вызывается после всех проверок и списаний средств, прямо перед дропом
// id - айди игрока
// type - тип дропа (константы TRANSFER_* или добавленный тип нативом transfer_custom_add)
// value - значение
// post - до или после события
forward transfer_player_drop(id, type, value, post=0);
// Вызывается при взятии дропа
// id - айди игрока
// type - тип дропа (константы TRANSFER_* или добавленный тип нативом transfer_custom_add)
// value - значение
// post - до или после события
forward transfer_player_pickup(id, type, value, post=0);
// Добавляет новый тип дропа
// cvar_ident - идентификатор для кваров(потом в transfer_rbs.cfg вписать квары transfer_идентификатор_* для добавления значений)
// lang_name - идентификатор для ланг файла TRANSFER_NAME_*
// lang_lack - идентификатор для ланг файла TRANSFER_LACK_*
// lang_menu - идентификатор для ланг файла TRANSFER_MENU_*
// lang_chat - идентификатор для ланг файла TRANSFER_CHAT_*
// идентификаторы для ланг файла потом нужно будет вписать в transfer_rbs.txt, аналогично тем что там уже есть
// вызывать натив нужно в plugin_precache, при этом, плагин использующий этот натив, должен стоять выше transfer_rbs.amxx в plugins.ini
//
// Возвращаемые значения
// type - вернет айди нового типа
// -1 - ошибка (превышено кол-во типов, максимум 9 можно включая стандартные)
// -2 - ошибка (выполняется натив слишком поздно, нужно основной плагин transfer_rbs.amxx поставить ниже в plugins.ini)
native transfer_custom_add(cvar_ident[], lang_name[], lang_lack[], lang_menu[], lang_chat[]);
// Вызывается когда игрок дропнул не стандартный тип (добавленный нативом transfer_custom_add)
// Соответственно в этом событии нужно производить функцию отнятия value
// id - айди игрока, что сделал дроп
// type - тип дропа (получили его нативом transfer_custom_add)
// value - значение дропа
// data[2] - нужно для логов
// [0] - в эту ячейку записать сколько было
// [1] - в эту ячейку записать сколько стало
// это нужно для логов, например игрок дропнул опыт AES, в [0] надо записать сколько опыта у него было,
// а в [1] записать сколько стало после отнятия value
// post
// 0 - во время проверок
// 1 - после успешных проверок, непосредственно перед дропом
// Возвращать TRANSFER_ERROR_*
forward transfer_custom_drop(id, type, value, data[2], post);
// Вызывается когда игрок поднял не стандартный тип дропа (только для типов добавленных через transfer_custom_add)
// Соответственно тут нужно будет добавить игроку value
// id - айди игрока, кто поднял дроп
// owner - айди игрока, что скинул этот дроп
// type - тип дропа (получили его нативом transfer_custom_add)
// value - значение дропа
// data[2] - нужно для логов
// [0] - в эту ячейку записать сколько было
// [1] - в эту ячейку записать сколько стало
// это нужно для логов, например игрок поднял опыт AES, в [0] надо записать сколько опыта у него было,
// а в [1] записать сколько стало после прибавления value
// Что возвращать в return
// PLUGIN_HANDLED если хотите заблокировать запись в лог
forward transfer_custom_pickup(id, owner, type, value, data[2]);
// Вызовется как только плагин прочитает квары
// items - кол-во значений для дропа
// access - значение квара transfer_*_access
// glow - значение квара transfer_*_glow
// block - значение квара transfer_*_block
// min - значение квара transfer_*_min
// max - значение квара transfer_*_max
// model - значение квара transfer_*_model
forward transfer_custom_cvars(type, items[9], access[], glow[3], block, min, max, model[]);
// Пример плагина для добавления кастомных дропов
/*
#include <amxmodx>
#include <fakemeta>
#include "include/transfer_rbs.inc"
new g_TypeHealth, g_MinHealth;
public plugin_init()
{
register_plugin("Transfer Addons", "1.0", "SKAJIbnEJIb")
}
public plugin_precache()
{
g_TypeHealth = transfer_custom_add("health", "TRANSFER_NAME_HEALTH", "TRANSFER_LACK_HEALTH", "TRANSFER_MENU_HEALTH", "TRANSFER_CHAT_HEALTH");
// Добавляем в конфиг transfer_rbs.cfg новые квары:
// transfer_health_items "5 10 20 40"
// transfer_health_access "0"
// transfer_health_block "0"
// transfer_health_min "0"
// transfer_health_max "0"
// transfer_health_glow "255 255 255"
// transfer_health_model "models/chick.mdl"
// Добавляем новые идентификаторы в ланг файл
// TRANSFER_NAME_HEALTH = Жизни
// TRANSFER_LACK_HEALTH = У Вас недостаточно жизней!
// TRANSFER_MENU_HEALTH = %d\yHP
// TRANSFER_CHAT_HEALTH = !g%d!nHP
}
public transfer_custom_cvars(type, items[9], access[], glow[3], block, min, max, model[])
{
if (type==g_TypeHealth) { g_MinHealth=min; } // узнаем значение transfer_health_min, если вызывается тип дропа жизни
}
public transfer_custom_drop(id, type, value, data[2], post) // Игрок делает дроп
{
if (type==g_TypeHealth) // если вызывается тип дропа жизни
{
data[0]=fm_get_user_health(id); // было жизней
data[1]=data[0]-value; // станет жизней
if (data[1] <= g_MinHealth) { return TRANSFER_ERROR_LACK; } // не хватает жизней для дропа, возвращаем TRANSFER_ERROR_LACK, чтоб основной плагин уведомил игрока об этом
if (post) // если вызывается пост событие, значит предыдущие проверки проверки успешно, нужно отнять жизни
{
fm_set_user_health(id, data[1]); // отняли у игрока жизни
}
}
return TRANSFER_ERROR_SUCCESS;
}
public transfer_custom_pickup(id, owner, type, value, data[2]) // Игрок поднял дроп
{
if (type==g_TypeHealth) // если вызывается тип жизни
{
data[0]=fm_get_user_health(id); // было жизней
data[1]=data[0]+value; // станет жизней
fm_set_user_health(id, data[1]); // прибавили жизни игроку
}
}
stock fm_set_user_health(index, health) { health > 0 ? set_pev(index, pev_health, float(health)) : dllfunc(DLLFunc_ClientKill, index); return 1; }
stock fm_get_user_health(id) { return pev(id, pev_health); }
*/