Иконка ресурса

Awp OFF 1.3

Нет прав для скачивания
Сообщения
2,833
Реакции
1,666
Помог
75 раз(а)
N3UR0, на форуме не поддерживается амх 1.8.3 и ниже, поэтому переходи на 1.9.0 и будет тебе помощь.
 

GIT

Сообщения
82
Реакции
6
Помог
2 раз(а)
Неверный раздел форума
Подскажите в чем проблема , лог вот
L 04/21/2020 - 10:11:22: [ReAPI] SetHookChainReturn: trying to set return value with incompatible type, expected 'ATYPE_INTEGER'; got 'ATYPE_BOOL'
L 04/21/2020 - 10:11:22: [AMXX] Displaying debug trace (plugin "awp_off.amxx", version "1.4.3")
L 04/21/2020 - 10:11:22: [AMXX] Run time error 10: native error (native "SetHookChainReturn")
L 04/21/2020 - 10:11:22: [AMXX] [0] awp_off.sma::AddItem (line 303)

В плагине указано вот так
public AddItem(id, pItem){
if(get_member(pItem, m_iId) != WEAPON_AWP || gAwp[id] > AWP_NONE || !is_user_valid(id))
return HC_CONTINUE;

if(check_awp(id)){
gAwp[id] = AWP_PICK_UP;
return HC_CONTINUE;
}

SetHookChainReturn(ATYPE_BOOL, false);
return HC_SUPERCEDE;
}
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
GIT, у Вас указана в ошибку версия 1.4.3 а выложена 1.3
 
Сообщения
1,536
Реакции
2,319
Помог
39 раз(а)
Если люди научатся пользоваться поиском и листать страницы, то им и другим станет жить куда проще.
А пока приходится выдавать варны за их лень.
 

d3m37r4

111111
Сообщения
1,428
Реакции
1,169
Помог
10 раз(а)
Nicket7, не смущает, что всё компилится и на amxx 1.10.0?
 

Ayk

Сообщения
763
Реакции
476
Помог
19 раз(а)
Nicket7, нет, ничего не смущает. Проверил на 1.9.0, там не ошибка, там варнинг, на компиляцию и работоспособность не влияет.
А также:
20-40-54(05,01,21).jpg

Не стоит комментировать такими резкими/агрессивными высказываниями.
 
Сообщения
7
Реакции
-5
Не аргументированная критика
d3m37r4, не смущает, поскольку проверил только что на amx 1.10.0. Подробности неудачной компиляции на фото.
Amxmod 1.10.0 был скачан отсюда, то есть с этого сайта.
 

Вложения

d3m37r4

111111
Сообщения
1,428
Реакции
1,169
Помог
10 раз(а)
Nicket7, у тебя инклудов реапи нет, переведи лог ошибки.
6 Янв 2021
Это для кого?
1609904520278.png
 

RockTheStreet

Саппорт года
Сообщения
1,743
Реакции
346
Помог
40 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Nicket7, Димка, я тебе уже объяснял в чём суть.
Всё нормально компилируется. То, что на скриншоте у меня - это варнинг, который на работу не влияет.
А то, что у тебя на скриншоте - отсутствие инклуда reapi, который идёт в одном архиве с reapi.

Пора научиться слушать людей, особенно которые тебе помогают :)
1609943764575.png
 
Сообщения
14
Реакции
1
Я заметил, что предупреждение при компиляции не влияет на работу плагина, но если купить Авп, то по идее, должно отобразиться в чате или проще сделать в HUD сообщение, что мало игроков и Вам запрещено его покупать, но всё бы ничего, но $'s тратятся и сообщение в чат отображает 2 раза
 
Сообщения
936
Реакции
187
Помог
4 раз(а)
C++:
#include < amxmodx >
#include < reapi >

#if AMXX_VERSION_NUM < 183
    #include < colorchat >
    #define MAX_PLAYERS 32
#endif

#define IsPlayer(%0)            (0 < %0 < 33)

//■■■■■■■■■■■■■■■■■■■■■■■ CONFIG START ■■■■■■■■■■■■■■■■■■■■■■■//
// ^4 - зелёный | ^3 - цвет тимы (КТ - синий | Т - красный | SPEC - серый) | ^1 - жёлтый
#define MSG_PREFIX             "^3[^4AWP^3]"
#define MSG_LOWONLINE         "У вас^4 отобрано^3 AWP. Причина:^4 низкий онлайн."
#define MSG_LIMIT             "У вас^4 отобрано^3 AWP. Причина:^4 превышен лимит."

#define ALLPLAYERS
/*
    Закоментируйте, чтобы для проверки на онлайн брались только КТ и ТТ(ботов, хлтв и спектаров считать не будет).
    
    Пример:
    Допустим на сервере 5 ботов и 2 человека 1 хлтв.
    Дефайн закоментирован: Посчитает, что на сервере 2 из Максимально возможных игроков.
    Дефайн раскоментирован: Посчитает, что на сервере 8 игроков из Максимально возможных игроков (5 ботов + 2 человека + 1 хлтв).
    
    Отбирать авп будет ТОЛЬКО У ЛЮДЕЙ в любом случае.
*/

#define FLAG                 ADMIN_BAN                //Флаг для иммунитета от лимита

#define RETURN_MONEY                                //Возвращать деньги при отборе авп в конце раунда из-за низкого онлайна? (Закоментируйте, если не хотите, чтобы возвращало деньги)
#if defined RETURN_MONEY
    #define MONEY_AWP        4750                    //Сколько денег возвращать?
#endif

#define PERCENT_PLAYERS   
/*
    Разкоменитруйте, если хотите чтобы лимит зависил от процента игроков [I am chetko ob'yasnyat']
    
    Например: Онлайн = 10, Процент в кваре(awp_limit_max) = 20
    10/100*20 = 2 авп на тиму (2 у терров и 2 у кт)
*/
//■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG END ■■■■■■■■■■■■■■■■■■■■■■■■//

enum ECVARS {
    CVAR_ONLINE = 0,
    CVAR_LIMIT_AWP_STATUS,
    CVAR_LIMIT_MAX_AWP,
    CVAR_LIMIT_IMMUN
};

enum {
    AWP_NONE = 0,
    AWP_BUY,
    AWP_PICK_UP
};

new sAwp[TeamName: TEAM_SPECTATOR], gCount, gCvar[ECVARS], gAwp[MAX_PLAYERS + 1], TeamName: gTeam[MAX_PLAYERS + 1];

#if defined PERCENT_PLAYERS
new gLimit;
#endif

public plugin_init(){
    register_plugin("[ReAPI] AWPoff", "1.3", "PAffAEJIkA :3");
    
    new mapname[32];
    get_mapname(mapname, charsmax(mapname));   
    
    new maps[][] = { "awp", "aim", "35hp" };
    for(new i; i < sizeof maps; i++){
        if(containi(mapname, maps[i]) != -1){
            pause("ad");
            return;
        }
    }
    
    RegisterHookChain(RG_CBasePlayer_AddPlayerItem, "AddItem");
    RegisterHookChain(RG_CBasePlayer_HasRestrictItem, "RestrictItem");
    RegisterHookChain(RG_CBasePlayer_RemovePlayerItem, "RemoveItem");
    RegisterHookChain(RG_CBasePlayer_Spawn, "SpawnPlayer", true);
    
    register_logevent("EventRoundEnd", 2, "1=Round_End");
    register_logevent("EventRestartRound", 2, "1&Restart_Round_");
    
    gCvar[CVAR_ONLINE] =             register_cvar("awp_players_low", "14");        //Если онлайн ниже указнного в кваре, в конце раунда у всех отберет авп, и запретит ее. (Что бы отключить поставьте 0) [стандартно: при онлайне меньше 8]
    gCvar[CVAR_LIMIT_AWP_STATUS] =     register_cvar("awp_limit", "1");            //Включить|Выключить лимит авп [Стандартно: включен]
    gCvar[CVAR_LIMIT_MAX_AWP] =        register_cvar("awp_limit_max", "10");        //Сколько АВП разрешено при лимите [Стандартно по 2 авп на команду] | Если раскоментирован PERCENT_PLAYERS, то сюда вписывать нужный процент
    gCvar[CVAR_LIMIT_IMMUN] =         register_cvar("awp_limit_immun", "1");        //Включить|Выключить иммунитет от лимита(Людей с флагом не учитывает вообще) [Стандартно включен]
}

public client_disconnected(id)    if(IsPlayer(id))    minus_awp(id);

public EventRestartRound(){
    sAwp[TEAM_CT] = 0;
    sAwp[TEAM_TERRORIST] = 0;
    arrayset(gAwp, AWP_NONE, sizeof gAwp);
}

public EventRoundEnd(){
    new players[32];
    #if defined ALLPLAYERS
    get_players(players, gCount);
    #else
    new players1[32], gTT, gCT;
    get_players(players, gCT, "che", "CT");
    get_players(players1, gTT, "che", "TERRORIST");
    
    gCount = gTT + gCT;
    #endif
    
    #if defined PERCENT_PLAYERS
    const MAX_PERCENT = 100;
    gLimit = gCount * get_pcvar_num(gCvar[CVAR_LIMIT_MAX_AWP]) / MAX_PERCENT;
    #endif
    
    if(gCount >= get_pcvar_num(gCvar[CVAR_ONLINE]))
        return PLUGIN_CONTINUE;
    
    #if defined ALLPLAYERS
    for(new i = 0, id; i < gCount; i ++){
        id = players[i];
        
        if(!is_user_valid(id))   
            continue;

        return_awp(id);
    }
    #else
    for(new i = 0; i < gTT; i ++)
        return_awp(players1[i]);

    for(new i = 0; i < gCT; i ++)
        return_awp(players[i]);
    #endif
    
    EventRestartRound();
    return PLUGIN_CONTINUE;
}

return_awp(id){   
    if(gAwp[id] == AWP_NONE)
        return;
    
    rg_remove_item(id, "weapon_awp");
    #if defined RETURN_MONEY
    if(gAwp[id] == AWP_BUY)
        rg_add_account(id, MONEY_AWP);
    #endif
    client_print_color(id, false, "%s %s", MSG_PREFIX, MSG_LOWONLINE);
}

public RestrictItem(id, ItemID:item, ItemRestType:type){
    if(item != ITEM_AWP || !is_user_valid(id) || gAwp[id] != AWP_NONE || type != ITEM_TYPE_BUYING)
        return HC_CONTINUE;
    
    /* * * Первая "покупка" при нехватке денег проскакивает >< * * */
    const COST_AWP = 4750;
    new gMoney = get_member(id, m_iAccount);
    if(gMoney < COST_AWP)
        return HC_CONTINUE;
    /* * * Можете удалить этот "чудофикс", если он вам не нравится * * */
    
    gAwp[id] = AWP_BUY;
    
    if(check_awp(id, false))
        return HC_CONTINUE;
    
    gAwp[id] = AWP_NONE;
    
    SetHookChainReturn(ATYPE_BOOL, true);
    return HC_SUPERCEDE;
}

public AddItem(id, pItem){
    if(get_member(pItem, m_iId) != WEAPON_AWP || gAwp[id] != AWP_NONE || !is_user_valid(id))
        return HC_CONTINUE;
    
    if(check_awp(id, false)){
        gAwp[id] = AWP_PICK_UP;
        return HC_CONTINUE;
    }
    
    SetHookChainReturn(ATYPE_INTEGER, false);
    return HC_SUPERCEDE;
}

public SpawnPlayer(id){
    if(!is_user_alive(id))
        return HC_CONTINUE;
    
    gTeam[id] = get_member(id, m_iTeam);
    return HC_CONTINUE;
}

//Native's
public plugin_natives()
    register_native("awpoff_check", "check_native", true);
    
public check_native(id)
    return check_awp(id, true);
//Native's

bool: check_awp(id, check){   
    if(gCount < get_pcvar_num(gCvar[CVAR_ONLINE]))
        client_print_color(id, false, "%s %s", MSG_PREFIX, MSG_LOWONLINE);
    else if(get_pcvar_num(gCvar[CVAR_LIMIT_AWP_STATUS])){
        
        if(get_pcvar_num(gCvar[CVAR_LIMIT_IMMUN]) && get_user_flags(id) & FLAG)
            return true;
        
        #if defined PERCENT_PLAYERS       
        if(sAwp[gTeam[id]] < gLimit)
        #else
        if(sAwp[gTeam[id]] < get_pcvar_num(gCvar[CVAR_LIMIT_MAX_AWP]))
        #endif
        {
            if(!check)
                sAwp[gTeam[id]] ++;
            return true;
        }else
            client_print_color(id, false, "%s %s", MSG_PREFIX, MSG_LIMIT);
    }else
        return true;
    
    return false;
}

public RemoveItem(id, pItem){
    if(get_member(pItem, m_iId) == WEAPON_AWP)
        minus_awp(id);
}

minus_awp(id){   
    if(!is_user_valid(id) || gAwp[id] == AWP_NONE)
        return;
    
    gAwp[id] = AWP_NONE;
    
    if(!get_pcvar_num(gCvar[CVAR_LIMIT_AWP_STATUS]))
        return;
        
    if(get_pcvar_num(gCvar[CVAR_LIMIT_IMMUN]) && get_user_flags(id) & FLAG)
        return;
    
    sAwp[gTeam[id]] --;   
}
    
bool: is_user_valid(id){
    if(is_user_bot(id))        return false;   
    if(is_user_hltv(id))    return false;   
    return true;
}
Исправленная версия, выходила ошибка о ATYPE_BOOL
 

RockTheStreet

Саппорт года
Сообщения
1,743
Реакции
346
Помог
40 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
BiZaJe, Да забудьте вы уже про этот огрызок. Ей богу, как дети.
 
Сообщения
936
Реакции
187
Помог
4 раз(а)
RockTheStreet, Ничего страшного не случилось, если поправили плагин
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу