• Пожалуйста, создайте название темы отражающее ее смысл
  • Для ускорения решения Вашего вопроса заполните обязательные поля и подробно опишите возникшую проблему

Помощь добавление презентов в Gamecms present

Сделал но не компилирует, пишет ошибку в 51 строке почему то
Код:
#include <amxmodx>
#include <gamecms_present>
#include <fun>
#include <cstrike>
#include <colorchat>

//Если основной плагин презентов не стартанул, останавливаем
public OnPresentCoreStopped()
    pause("d");
    
public plugin_cfg()
{
    CmsAddPresent(300, "Автомат АК-47", -1, 0, 0, "sunduk77");
    CmsAddPresent(301, "Автомат M4A1", -1, 0, 0, "sunduk77");
    CmsAddPresent(302, "Игровые 1000$", -1, 0, 0, "sunduk77");
    CmsAddPresent(303, "Слонобой AWP", -1, 0, 0, "sunduk77");
    CmsAddPresent(304, "Комплект Гранат", -1, 0, 0, "sunduk77");
    //и т.д...
}

//событие попытки поднять презент
public OnTakePresent(id, itemId, iEntity)
{
    switch(itemId)
    {
        case 300:
        {
            if(give_item(id, "weapon_ak47"))
            {
                cs_set_user_bpammo(id, CSW_AK47, 90);
                ColorChat(id, print_chat, "^4[Презент] ^1Вы получили сундук с AK47")
                return 2;
            }
        }
        case 301:
        {
            if(give_item(id, "weapon_m4a1"))
            {
                cs_set_user_bpammo(id, CSW_M4A1, 90);
                ColorChat(id, print_chat, "^4[Презент] ^1Вы получили сундук с M16")
                return 2;
            }
        }
        case 302:
        {
               cs_set_user_money(id, min(cs_get_user_money(id) + 1000, 16000));
               ColorChat(id, print_chat, "^4[Презент] ^1Вы получили сундук с деньгами")
               return 2;
            }
        }
        case 303:
        {
            if(give_item(id, "weapon_awp"))
            {
                cs_set_user_bpammo(id, CSW_AWP, 90);
                ColorChat(id, print_chat, "^4[Презент] ^1Вы получили сундук с AWP")
                return 2;
            }
        }
        case 304:
                cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
                give_item(id, "weapon_hegrenade")
                give_item(id, "weapon_flashbang")
                give_item(id, "weapon_smokegrenade")
                ColorChat(id, print_chat, "^4[Презент] ^1Вы получили сундук с гранатами")
                return 2;
            }
        }

       }
    
    return PLUGIN_CONTINUE;
}
 
Последнее редактирование:
@alan191, Скобки проверяйте. Вопросы компиляции уже пора решать самостоятельно.
Так и не понял, с какой целью заменили стандартное сообщение своим.. (отвечать не нужно)
 
Скобки убираю и еще больше ошибок вылазиет
 
case 304:
{

cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);

give_item(id, "weapon_hegrenade")

give_item(id, "weapon_flashbang")

give_item(id, "weapon_smokegrenade")

//ColorChat(id, print_chat, "^4[Презент] ^1Вы получили сундук с гранатами")

return 2;



}
( BB-коды не работают, стр вылетает )
 
case 304:
{

cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);

give_item(id, "weapon_hegrenade")

give_item(id, "weapon_flashbang")

give_item(id, "weapon_smokegrenade")

//ColorChat(id, print_chat, "^4[Презент] ^1Вы получили сундук с гранатами")

return 2;



}
( BB-коды не работают, стр вылетает )
не помогло
 
Код:
public OnTakePresent(id, itemId, iEntity)
{
    switch(itemId)
    {
        case 300:
        {
            if(give_item(id, "weapon_ak47"))
            {
                cs_set_user_bpammo(id, CSW_AK47, 90);
                ColorChat(id, print_chat, "^1Вы получили AK47")
                return 2;
            }
        }
        case 301:
        {
            if(give_item(id, "weapon_m4a1"))
            {
                cs_set_user_bpammo(id, CSW_M4A1, 90);
               ColorChat(id, print_chat, "^1Вы получили M16")
                return 2;
            }
        }
        case 302:
        {
               cs_set_user_money(id, min(cs_get_user_money(id) + 1000, 16000));
              ColorChat(id, print_chat, "^1Вы получили  деньгами")
               return 2;
        }
        case 303:
        {
            if(give_item(id, "weapon_awp"))
            {
                cs_set_user_bpammo(id, CSW_AWP, 90);
                ColorChat(id, print_chat, "^1Вы получили AWP")
                return 2;
            }
        }
        case 304:
        {
                cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
                give_item(id, "weapon_hegrenade")
                give_item(id, "weapon_flashbang")
                give_item(id, "weapon_smokegrenade")
                ColorChat(id, print_chat, "^1Вы получили гранаты")
                return 2;
        }

    }
   
    return PLUGIN_CONTINUE;
}
 
как сделать что бы только зарегистрированные брали презенты, не пойму куда вписать -3
Код:
#if defined _gamecms_present_included
  #endinput
#endif
#define _gamecms_present_included

/**Добавление презента
*
*    @prUnic - уникальный номер презента.
*        Имеет сквозную нумерацию, не должен повторяться в других плагинах. Начальный номер - 5.
*    @prName- название презента
*    @prLimit- количество презентов за карту
*        -1 - нет лимита
*        -2 - запретить автоматический спавн по таймеру (только для ручного добавления)
*    @prAccess- доступ:
*        0 - всем
*        -1 - только террористам
*        -2 - только контр-террористам
*        -3 - только зарегистрированным
*    @prMinPlayers- мин. количество игроков
*    @prModel - название модели
*    @prSubModel - номер субмодели
*    @flTTL - время "жизни" модели, после которого она будет удалена, секунд
*        0.0 - удалится по общим правилам
*        -1.0 - не удалять, пока не поднимут презент
*    @return - 1- при удачном добавлении
*    Пример: CmsAddPresent(5, "+10 здоровья", 5, -3, 0, "sunduk77");
*/
native CmsAddPresent(prUnic, prName[], prLimit=0, prAccess=0, prMinPlayers=0, prModel[]="sunduk77",    prSubModel=5, Float:flTTL = 0.0)
CmsAddPresent(5, "+10 здоровья", 5, -3, 0, "sunduk77");

/** Получение данных о презенте по его уникальному номеру
*   
*    @idKey - уникальный номер презента
*    @Data - массив с данными о презенте
*        Data[0] - доступ
*        Data[1] - мин. количество игроков для появления презента
*        Data[4] - количество (сколько может выпасть таких презентов)
*    @Name[]    - название презента
*    @Len     - размер буфера для записи названия
*/
native CmsGetPresentInfoByKey(idKey, Data[3], Name[], Len)


/** Спавн презента по его уникальному номеру
*   
*    @idKey - уникальный номер презента (если 0- номер будет выбран рандомно из имеющихся)
*    @origin[3] - координаты для спавна презента (если 0.0- авто-определение из возможных точек)
*    @noanons - оповещение о появлении презента (true- тихий спавн, false- стандартное оповещение)
*    @owner - кому предназначен презент (параметр @prAccess при создании презента)
*    @flTime - время жизни презента (секунд до удаления. 0.0 - не удалять)
*    return - индекс созданного объекта
*/
native CmsSpawnPresentById(idKey, Float:origin[]={0.0, 0.0, 0.0}, bool:noanons = false, owner = 0, Float:flTime = 0.0)


/** Удаление презента из игры по параметрам
*   
*    @idKey - уникальный номер презента
*    @iOwner - владелец презента
*    @instant - удалить из базы презентов
*    @force - удаление всех выпавших презентов БЕЗ исключения
*    return - 1- при успешном удалении из базы
*/
native CmsRemovePresent(idKey = 0, iOwner = 0, bool:instant = false, bool:force = false)


/** Массив с уникальными номерами презентов
*    idKey = ArrayGetCell(Hahdle:array, index)
*    @idKey - уникальный номер презента из ячейки index
*/
native Array:CmsGetPresentsIndexes()

/** Количество зарегистрированных презентов
*    Вернет количество ячеек в массиве уникальных номеров
*/
native CmsGetPresentsCount()

/** Получение режима спавна презентов
*    @return - параметр режима
*        1- по-умолчанию, включен режим автоматического спавна, доступен ручной спавн
*        2- режим автоматического спавна Выключен, доступен Только ручной спавн
*        3- включен режим автоматического спавна по точкам из файла *map.spawns.cfg, доступен ручной спавн
*        0- отключить спавн презентов (по сути- временная приостановка работы плагина)
*/
native CmsPresentGetSpawnMode()

/** Переключение режима спавна презентов
*    @iMode - параметр режима
*        1- по-умолчанию, включен режим автоматического спавна, доступен ручной спавн
*        2- режим автоматического спавна Выключен, доступен Только ручной спавн
*        3- включен режим автоматического спавна по точкам из файла *map.spawns.cfg, доступен ручной спавн
*        0- отключить спавн презентов (по сути- временная приостановка работы плагина)
*/
native CmsPresentSetSpawnMode(iMode)

/** Получение точек спавна презентов из файла
*    @iOrigins - массив для записи координат точки спавна
*    return - 1- при наличии валидной точки спавна
*/
native CmsGetPresentsOriginsFromFile(Float:flOrigins[3])

/** Вызывается при остановке работы плагина GameCMS_Present (ядро)
*/
forward OnPresentCoreStopped()


/** Вызывается при попытке поднять презент, если он создан с параметром @prAccess- доступ: 0 - всем
*    @iClient - индекс игрока, который пытается поднять
*    @idKey - уникальный номер презента
*    @iEntity - индекс entity презента
*    return - возвращаемые значения:
*        0 - презент запрещено поднимать
*        1 - презент будет поднят, будет выведено стандартное сообщение о поднятии презента
*        2 - презент будет поднят, НЕ будет выводиться стандартное сообщение о поднятии презента
*        3 - презент НЕ будет поднят, НЕ будет выводиться сообщение о поднятии презента
*/
forward OnTakePresent(iClient, idKey, iEntity)


/** Вызывается при фактическом поднятии любого презента
*    @iClient - индекс игрока, поднявшего презент
*    @idKey - уникальный номер презента
*    @iEntity - индекс entity презента
*    return - функция ничего не возвращает
*/
forward OnTakePresentSave(iClient, idKey, iEntity)

/** Вызывается перед спавном презента
*    @idKey - уникальный номер презента
*    return - возвращаемые значения:
*        0 - презент не появится, будет вызван спавн следующего презента (если предусмотрено настройкой)
*        1 - презент появится с параметрами, заданными при создании
*/
forward OnValidateSpawnPresent(idKey)
 
@alan191, В свой плагин дополнительных презентов, который будете писать. Стандартные презенты (вшитые в основном плагине) в этой части не изменяются.
 
@zhorzh78, если я вас правильно понял за место каких "0" поставить "-3"
Код:
CmsAddPresent(300, "Автомат АК-47", -1, 0, 0, "sunduk77");
CmsAddPresent(301, "Автомат M4A1", -1, 0, 0, "sunduk77");
 
подскажите как правильно прописать,что бы при поднятии презента,оружие которое в руках выкидывалось
case 26:
{
weapons_give_user_ultimate(id, _, "ultimate_deagle");
return PLUGIN_HANDLED;
 
@borzoy,
Код:
// Выдать оружие созданное в ultimate_weapons.ini
// Достаточно указать один из параметров, либо uid, либо buy_name. Если указать оба, то плагин примет только uid
// replace:
//    0 - оружие добавится к существующему
//    1 - выкинуть существующие
//    2 - уничтожить существующее
//    3 - не выдавать тогда оружие
// Пример:
//    weapons_give_user_ultimate(id, _, "ultimate_ak47");
//    weapons_give_user_ultimate(id, 100);
native weapons_give_user_ultimate(id, uid=-1, buy_name[]="", replace=0);
 
Подскажите пожалуйста, а как замену (а не добавление) оружия сделать в случае с:


Код:
case 303:
        {
            if(give_item(id, "weapon_awp"))
            {
                cs_set_user_bpammo(id, CSW_AWP, 30);
                return PLUGIN_HANDLED;
            }
        }
 
temp, самый простой вариант- с помощью ReAPI
C++:
if(rg_give_item(id, "weapon_awp", GT_REPLACE) != -1)
{
    rg_set_user_bpammo(id, CSW_AWP, 30);
    return PLUGIN_HANDLED;
}
Если же ReAPI нет, поищите в различных випках.
 
Большое спасибо! ReAPI есть, сейчас все переделаю.
 
Чуть пришлось поправить:


Код:
if(rg_give_item(id, "weapon_awp", GT_REPLACE) != -1)
{
    rg_set_user_bpammo(id, WEAPON_AWP, 30);
    return PLUGIN_HANDLED;
}
 
как добавить анев бонусы и exp опыт
от скальпа плагин
ARU и BonusMenu_rbs
 

Вложения

  • odessa.sma
    2.9 KB · Просмотры: 7
Назад
Сверху