ReHLDS/ReAPI AWPoff

Денис

Пользователь
Регистрация
16 Июн 2017
Сообщения
1
Симпатии
0
Пол
Мужской
#21
Если я поставлю этот плагин, то игроки не смогут с vipmenu и weaponmenu брать awp если онлайн будет меньше допустимого ?
 

GrafkO

Пользователь
Регистрация
9 Июн 2017
Сообщения
71
Симпатии
6
Пол
Мужской
#23
@paffgame,баг с возвратом денег за авп так и остался сейчас проверил.
То есть покупаешь авп в чат оповещает,что лимит у Вас отобрано авп,но деньги не возвращает настройки в спойлере
#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_IMMUNITY //Флаг для иммунитета от лимита

#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) != -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", "2"); //Сколько АВП разрешено при лимите [Стандартно по 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;

if(!is_user_valid(id))
continue;

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

for(new i = 0; i < gCT; i ++)
return_awp(players);
#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_INTEGER, 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;
}
 

paffgame

GovnoCoder
Разработчик
Регистрация
9 Июн 2017
Сообщения
123
Симпатии
71
Пол
Мужской
Telegram
@paffgame
#25
GrafkO, покупка авп через что осуществляется?
Дефолт кс бай меню?
 

suspectcs

Пользователь
Регистрация
11 Июл 2017
Сообщения
132
Симпатии
7
Пол
Мужской
#26
Не у кого нет проблем с автозакупкой? На F1
Жалуются что после установки данного плагина не покупается оружие.
HLDS
 

paffgame

GovnoCoder
Разработчик
Регистрация
9 Июн 2017
Сообщения
123
Симпатии
71
Пол
Мужской
Telegram
@paffgame
#27
suspectcs, тема для хлдс плагина другая, и сделана была чтобы я не путал баг репорты. Она есть в шапке темы, прошу писать туда.(естессно если у Вас реапи версия то писать в эту тему)

Теперь по баг репорту.
Можно по подробней?
Что пишет в этот момент?
Или безо всяких текстов в чат просто не покупается оружие?
 

GrafkO

Пользователь
Регистрация
9 Июн 2017
Сообщения
71
Симпатии
6
Пол
Мужской
#28
suspectcs, тема для хлдс плагина другая, и сделана была чтобы я не путал баг репорты. Она есть в шапке темы, прошу писать туда.(естессно если у Вас реапи версия то писать в эту тему)

Теперь по баг репорту.
Можно по подробней?
Что пишет в этот момент?
Или безо всяких текстов в чат просто не покупается оружие?
Да , уже разобрался. спасибо ))) плагин вип мню обновил недавно - все чётко стало.
 

Kobalt

Пользователь
Регистрация
9 Июн 2017
Сообщения
151
Симпатии
22
Пол
Мужской
#29
paffgame,
L 07/30/2017 - 14:06:43: [AMXX] Run time error 4 (plugin "awp_online.amxx") - debug not enabled!
L 07/30/2017 - 14:06:43: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 07/30/2017 - 14:06:43: [awp_online.amxx] AddItem : Can't suppress original function call without new return value set
 

izzatillo

Пользователь
Регистрация
8 Июн 2017
Сообщения
247
Симпатии
83
Пол
Мужской
VKcom
musoxonov
Telegram
@musaxonov
#30
Kobalt, в plugins.ini после плагина пропишите debug
awp_online.amxx debug
 

ade888

Пользователь
Регистрация
9 Июн 2017
Сообщения
184
Симпатии
24
Пол
Мужской
#31
Установил этот плагин... Работает хорошо, но столкнулся c такой темой. Что когда хочешь купить калаш b 4 2 то не покупаеться, а когда просто покупаешь на F1 то закупаеться в чем может быть проблема? Думал что cfg слетел, да нет.
 

Евгений

Пользователь
Регистрация
9 Июн 2017
Сообщения
274
Симпатии
55
Пол
Мужской
#33
Плагин работал стабильно, но недавно столкнулся с проблемой: на сервере никто не мог купить авп(пишет якобы низкий онлайн), хотя и народа было много и лимита не было. Проблему решил только переустановкой плагина.
 

wareznik

Заблокированные
Пользователь
Регистрация
12 Июн 2017
Сообщения
52
Симпатии
11
Пол
Мужской
#34
Плагин работал стабильно, но недавно столкнулся с проблемой: на сервере никто не мог купить авп(пишет якобы низкий онлайн), хотя и народа было много и лимита не было. Проблему решил только переустановкой плагина.
тоже такое было, его надо в самый низ ставить, тогда стабильно работает
 

REVO

Пользователь
Регистрация
9 Июн 2017
Сообщения
273
Симпатии
75
Пол
Мужской
VKcom
isss67wtf
#35
Код:
#define FLAG                 ADMIN_IMMUNITY                //Флаг для иммунитета от лимита
Код:
"acdefjnu" "ce"
авп не купить!
 

Sant1

Пользователь
Регистрация
30 Июн 2017
Сообщения
26
Симпатии
2
Пол
Мужской
#36
Ошибка компиляции:

Welcome to the AMX Mod X 1.8.2 Compiler.
Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team

awp_off.sma(170) : error 027: invalid character constant
awp_off.sma(170) : error 027: invalid character constant
awp_off.sma(226) : error 027: invalid character constant

3 Errors.
Could not locate output file awp_off.amx (compile failed).
 

AngelOfFear

Пользователь
Регистрация
11 Июн 2017
Сообщения
196
Симпатии
15
Пол
Мужской
#38
У меня на сервере иногда проявляется странный баг. Не знаю из-за этого плагина или нет. Но замечен баг пока только у вип игроков (у троих). В общем игрок прибегает к точке закладки бомбы, пытается достать бомбу, чтобы поставить, а бомба не достаётся - переключается на авп. Игроку приходится выкинуть всё оружие, чтобы можно было поставить бомбу. Судя по видео, которое прислал один из игроков, вместо бомбы в слотах показывается якобы второе авп. Если это не из-за этого плагина, то какие могут быть идеи?
5 Ноя 2017
Извиняюсь. Кажется это из-за строчки
Код:
rg_give_item(id, currWeaponName, GT_DROP_AND_REPLACE);
в плагине vip
 

Вложения

  • 51,3 KB 48

Kobalt

Пользователь
Регистрация
9 Июн 2017
Сообщения
151
Симпатии
22
Пол
Мужской
#40
AngelOfFear, у меня такой случай был вчера, и игрок был как раз с авп. Он кричал что бомба не ставится. Вип у меня от скальпеля, и в самом меню нету бесплатного авп все покупают как обычно. Данный плагин у меня присутствует.

Думаю что из за этого плагина.