• Уважаемые пользователи!
    За решением проблем с работой плагинов, компиляцией, падением сервера и прочими обращайтесь в раздел Помощи!
    Данная тема предназначена для обсуждения плагина, его функционала, принципа работы и предложений.
Иконка ресурса

Add-on GameCMS_Present Coins Addon 1.1

Нет прав для скачивания
Это отключение презентов, встроенных в основной плагин.


Ручные предметы для того и созданы, чтобы спавнить их самостоятельно минуя ограничения.
Можете в этот плагин добавить проверку
C++:
public OnValidateSpawnPresent(idKey)
{
    if(idKey == 500 /*номер презента*/ && get_players_num() < 4 /*мин. кол-во игроков*/)
        return 0:
   
    return 1;
}

Обновите плагин, проверьте. Логирование лучше установить на "3"

Возможно (да) сделать удаление монет выпавших в предыдущем раунде?
Точнее просто удаление всех в новом раунде
Добавлено:

как можно изменить glow у презентов? или отключить ,они синий по дефолту
 
Последнее редактирование:
как можно изменить glow у презентов? или отключить ,они синий по дефолту
C++:
public OnSpawnPresent(idKey, iEntity)
{
    if(idKey == 500) //если предмет == монетка
        entity_set_int(iEntity, EV_INT_renderfx, kRenderFxNone); //kRenderFxNone - отключить
}
Изменять можно любые параметры-свечения, модели и все, что можно вообще сделать имея "entity id".

Возможно (да) сделать удаление монет выпавших в предыдущем раунде?
Точнее просто удаление всех в новом раунде
Отловить новый раунд и выполнить функцию

CmsRemovePresent(idKey)
где idKey- номер предмета. В вашем случае, монета == 500
Но, для начала, обновить плагин до версии выше 1.6.18.
 
Добрый день. Что бы разрешить подымать монетки всем, нужно только один пункт сменить и все, или дальше в коде все true менять на false
Код:
new bool:g_API;
new Float:fMoney = 0.05;     //сумма денег за монетку (на баланс сайта)
new bool:killerOnly = true    //true- если поднять монету разрешено только киллеру (чтобы не ругались за монеты :))
                            //false- если поднять монету разрешено любому

Вот тут менять нужно или нет true на false
Код:
{
    //добавляем презент "монета"
    //указываем модель монеты "exp2_blue" без .mdl
    coinPresent = CmsAddPresent(500, "монета", -2, -3, 0, "exp2_blue", 0);
    g_API = true;
}

И вот тут менять нужно или нет true на false
Код:
    //презент создаем только для киллера или для всех (зависит от настройки)
    //спавним презент без стандартного уведомления в чат о его появлении (параметр true блокирует уведомление)
    //зададим время до удаления монетки 15.0 сек
    CmsSpawnPresentById(500, origin, true, killerOnly ? killer : 0, 15.0)
}

Заранее спасибо за ответ.
 
Последнее редактирование:
C++:
new bool:killerOnly = false
 
C++:
new bool:killerOnly = false
Добрый день. Подскажите, в какой раздел можно обратиться за помощью?
Когда значение ставлю такое new bool:killerOnly = true, то монетки выпадают и их может подобрать тот кто убил противника,
А когда значение ставлю такое new bool:killerOnly = false, то монетки вообще не выпадают. Логи чистые совсем, ошибок нету. Сервер перезагружал несколько раз, в логах информации так и не появилось. Сам плагин работает: GameCMS_Present Coins 1.1 zhorzh78 presents_coins_ running
 
Последнее редактирование:
А когда значение ставлю такое new bool:killerOnly = false, то монетки вообще не выпадают.
Если плагин из архива и в нем ничего не меняли, кроме этой настройки, то это выглядит сомнительно, такое маловероятно.
Логи чистые совсем, ошибок нету
Если плагины работают и логирование включено, то логи будут всегда в файле gcms_present.lo
cms_present_logs "4"

А без логов гадать нет смысла. Создавайте тему помощи по плагинам.
 
Добрый день. Подскажите, а как сделать, что бы вместо выдачи денег на сайт, выдавалось +20 HP игроку?
 
skripaura, К вашей предыдущей теме можно добавить
C++:
#include <amxmodx>
#include <gamecms5>
#include <gamecms_present>
#include <fakemeta_util>

new cpMaxHealth;

const PresentIdDeathHealth = 10;
new ModelDeathHealthPath[]= "../valve/models/w_medkit.mdl";

public OnPresentCoreStopped()
    pause("d");

public plugin_init()
    set_cvar_num("cms_presents_std", 0);

public plugin_cfg()
{
    cpMaxHealth = get_cvar_pointer("cms_present_maxhealth");
  
    new tmpName[128];
    formatex(tmpName, charsmax(tmpName), "%L", LANG_PLAYER, "CMS_PRESENT_STD_HP");
    CmsAddPresent(4, tmpName, -1, ACCESS_ALL, _, "models/present/syndyk1.mdl");

    if(CmsAddPresent(PresentIdDeathHealth, "монета", -2, 0, 0, /*"exp2_blue"*/ModelDeathHealthPath, 0))
        register_event("DeathMsg", "EventDeathMessage", "a");
}

public EventDeathMessage(killer, victim)
{
    new killer = read_data(1);
    new victim = read_data(2);

    if(killer == victim)
        return;

    new Float:origin[3], sorigin[3]
    get_user_origin(victim, sorigin, 0)

    origin[0] = float(sorigin[0]);
    origin[1] = float(sorigin[1]);
    origin[2] = float(sorigin[2]);

    CmsSpawnPresentById(PresentIdDeathHealth, origin, true, 0, 15.0)
}

public OnTakePresent(id, itemId)
{
    switch(itemId)
    {
        case 4:
        {
            fm_set_user_health(id, min(get_user_health(id) + 40, get_pcvar_num(cpMaxHealth)));
            client_cmd(0, "spk ^"buttons/bell1^"");
            return PLUGIN_HANDLED;
        }
        case PresentIdDeathHealth:
        {
            fm_set_user_health(id, min(get_user_health(id) + 20, get_pcvar_num(cpMaxHealth)));
            client_cmd(0, "spk ^"buttons/bell1^"");
            return TP_GRANTED_STD_MESAGE_RESTRICT;
        }
    }
    return PLUGIN_CONTINUE;
}
 
skripaura, К вашей предыдущей теме можно добавить
C++:
#include <amxmodx>
#include <gamecms5>
#include <gamecms_present>
#include <fakemeta_util>

new cpMaxHealth;

const PresentIdDeathHealth = 10;
new ModelDeathHealthPath[]= "../valve/models/w_medkit.mdl";

public OnPresentCoreStopped()
    pause("d");

public plugin_init()
    set_cvar_num("cms_presents_std", 0);

public plugin_cfg()
{
    cpMaxHealth = get_cvar_pointer("cms_present_maxhealth");
 
    new tmpName[128];
    formatex(tmpName, charsmax(tmpName), "%L", LANG_PLAYER, "CMS_PRESENT_STD_HP");
    CmsAddPresent(4, tmpName, -1, ACCESS_ALL, _, "models/present/syndyk1.mdl");

    if(CmsAddPresent(PresentIdDeathHealth, "монета", -2, 0, 0, /*"exp2_blue"*/ModelDeathHealthPath, 0))
        register_event("DeathMsg", "EventDeathMessage", "a");
}

public EventDeathMessage(killer, victim)
{
    new killer = read_data(1);
    new victim = read_data(2);

    if(killer == victim)
        return;

    new Float:origin[3], sorigin[3]
    get_user_origin(victim, sorigin, 0)

    origin[0] = float(sorigin[0]);
    origin[1] = float(sorigin[1]);
    origin[2] = float(sorigin[2]);

    CmsSpawnPresentById(PresentIdDeathHealth, origin, true, 0, 15.0)
}

public OnTakePresent(id, itemId)
{
    switch(itemId)
    {
        case 4:
        {
            fm_set_user_health(id, min(get_user_health(id) + 40, get_pcvar_num(cpMaxHealth)));
            client_cmd(0, "spk ^"buttons/bell1^"");
            return PLUGIN_HANDLED;
        }
        case PresentIdDeathHealth:
        {
            fm_set_user_health(id, min(get_user_health(id) + 20, get_pcvar_num(cpMaxHealth)));
            client_cmd(0, "spk ^"buttons/bell1^"");
            return TP_GRANTED_STD_MESAGE_RESTRICT;
        }
    }
    return PLUGIN_CONTINUE;
}
Это получает в одном плагине реализовано сразу два плагина? Спавны сундуков (GameCMS Present) и выдача монеток (Present Coins Addon) ?
 
Назад
Сверху