Newell
Участник
- Сообщения
- 6
- Реакции
- 0
- Баллы
- 1
Помогите сделать в плагине presents_coins_on_death.1.1 выдачу не денег на сайт а опыта Army Ranks Ultimate
ну или хотя-бы пример - чтобы можно было что-то самому намудрить там.
ну или хотя-бы пример - чтобы можно было что-то самому намудрить там.
- Исходный код
- C++:
#include <amxmodx> #include <gamecms5> #include <gamecms_present> #include <reapi> #define PLUGIN "GameCMS_Present Coins Addon" #define VERSION "1.1" #define AUTHOR "zhorzh78" #if AMXX_VERSION_NUM < 183 #include <colorchat> #endif new Float:fMoney = 0.05; //сумма денег за монетку (на баланс сайта) new const g_szSound[] = "money.wav"; //звук при поднятии из папки sound/ new bool:g_API; new coinPresentT, coinPresentCT; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_event("DeathMsg", "EventDeathMessage", "a"); } public plugin_precache() { precache_sound(g_szSound); } //Если основной плагин презентов не стартанул, останавливаем public OnPresentCoreStopped() pause("d"); //Проверяем, загружен ли API для выдачи денег public OnAPIPluginLoaded(Handle:sqlTuple) { //добавляем презент "монета" //указываем модель монеты "exp2_blue" без .mdl coinPresentCT = CmsAddPresent(500, "монета", -1, -3, 0, "exp2_blue", 0); // выпадает у кт , подбирает тт coinPresentT = CmsAddPresent(501, "монета", -1, -3, 0, "exp2_red", 0); // выпадает у тт , подбирает кт g_API = true; } //Событие смерти игрока public EventDeathMessage(killer, victim) { new killer = read_data(1); new victim = read_data(2); //если умер сам, не спавним монету if(killer == victim) return; new Floatrigin[3], sorigin[3] get_user_origin(victim, sorigin, 0) origin[0] = float(sorigin[0]); origin[1] = float(sorigin[1]); origin[2] = float(sorigin[2]); //презент создаем только для киллера или для всех (зависит от настройки) //спавним презент без стандартного уведомления в чат о его появлении (параметр true блокирует уведомление) //зададим время до удаления монетки 15.0 сек new iTeam = get_user_team(killer); if(iTeam == 1 && coinPresentCT) CmsSpawnPresentById(500, origin, true, -1, 15.0) else if(iTeam == 2 && coinPresentT) CmsSpawnPresentById(501, origin, true, -2, 15.0) } //событие попытки поднять презент public OnTakePresent(id, itemId, iEntity) { //если API загружен и игрок- владелец монеты (киллер) (проверку игрока проверяет Core) if(g_API) { if(itemId == 500 || itemId == 501) { rh_emit_sound2(iEntity, id, CHAN_AUTO, g_szSound); if(cmsapi_add_user_money(id, fMoney)) { client_print_color(id, 0, "%L Ты получил награду %.2f рублей", LANG_SERVER, "CMS_PRESENT_PREFIX_CHAT", fMoney); //вернем "2" для разрешения поднять монетку и блокировки стандартного сообщения о поднятии //т.к. задали свое сообщение return 2; } } } return 0; } public client_disconnected(id) CmsRemovePresent(0, id)