- Регистрация
- 5 Авг 2018
- Сообщения
- 143
- Симпатии
- 0
- Предупреждения
- 260
- OS
- Linux
- Amx Mod X
- AMXX 1.9.0
- Билд
- Protocol version 48 Exe version 1.1.2.7/Stdio (cstrike) ReHLDS version: 3.7.0.695-dev Build date: 14:15:13 Apr 6 2020 (2186)
- ReGamedll
- ReGameDLL version: 5.15.0.458-dev Build date: 11:28:46 Apr 2 2020
- Metamod
- Metamod v1.21p37 2013/05/30 (5:13) by Will Day http://www.metamod.org/ Patch: Metamod-P (mm-p) v37 by Jussi Kivilinna http://metamod-p.sourceforge.net/
- Meta модули
-
Код:[ 1] AMX Mod X RUN - amxmodx_mm_i386. v1.9.0.5 ini Start ANY
[ 2] Reunion RUN - reunion_mm_i386. v0.1.75 ini Start Never
[ 3] Revoice RUN - revoice_mm_i386. v0.1.0.3 ini Start Never
[ 4] Rechecker RUN - rechecker_mm_i38 v2.5 ini Chlvl ANY
[ 5] ReSemiclip RUN - resemiclip_mm_i3 v2.3.9 ini Chlvl ANY
[ 6] MySQL RUN - mysql_amxx_i386. v1.9.0.5 pl1 ANY ANY
[ 7] FakeMeta RUN - fakemeta_amxx_i3 v1.9.0.5 pl1 ANY ANY
[ 8] GeoIP RUN - geoip_amxx_i386. v1.9.0.5 pl1 ANY ANY
[9] Engine RUN - engine_amxx_i386 v1.9.0.5 pl1 ANY ANY
[10] CSX RUN - csx_amxx_i386.so v1.9.0.5 pl1 ANY ANY
[11] CStrike RUN - cstrike_amxx_i38 v1.9.0.5 pl1 ANY ANY
[12] Fun RUN - fun_amxx_i386.so v1.9.0.5 pl1 ANY ANY
[13] ReAPI RUN - reapi_amxx_i386. v5.12.0. pl1 ANY Never
[14] Ham Sandwich RUN - hamsandwich_amxx v1.9.0.5 pl1 ANY ANY
- Плагины
-
Код:[ 1] AMXBans: Core 1.9.0 MA: 1.6.12 Larte Team amxbans_core.am running
[ 2] AMXBans: Main 1.9.0 MA: 1.6.12 Larte Team amxbans_main.am running
[ 3] Center Msg Fix 0.4 mx?! CenterMsgFix.am running
[ 4] Players Menu 15.04.08 AMXX Dev Team & admincmd_rbs.am running
[ 5] Slots Reservation 1.9.0.5262 AMXX Dev Team adminslots.amxx running
[ 6] Commands Menu 1.9.0.5262 AMXX Dev Team cmdmenu.amxx running
[ 7] Maps Menu 1.9.0.5262 AMXX Dev Team mapsmenu.amxx running
[ 8] Admin Chat 1.9.0.5262 AMXX Dev Team adminchat.amxx running
[ 9] Anti Flood 1.9.0.5262 AMXX Dev Team antiflood.amxx running
[ 10] [190] NextMap 18.09.25 SKAJIbnEJIb & AM nextmap.amxx running
[ 11] [190] TimeLeft 18.09.25 SKAJIbnEJIb & AM timeleft.amxx running
[ 12] Pause Plugins 1.9.0.5262 AMXX Dev Team pausecfg.amxx running
[ 13] Stats Configuration 18.05.15 SKAJIbnEJIb & AM statscfg_rbs.am running
[ 14] [183] StatsX RBS 19.08.28 SKAJIbnEJIb & AM statsx_rbs.amxx running
[ 15] [183] Kill Assist RBS 19.11.14 SKAJIbnEJIb & Di killassist_rbs. running
[ 16] Nice Killer 1.6 Got Milk? / HoHo nice_killer.amx running
[ 17] [190] VIP RBS 19.12.09 SKAJIbnEJIb vip_rbs.amxx running
[ 18] [ReAPI] AWPoff 1.4.2 PAffAEJIkA :3 awp_off_t.amxx running
[ 19] [183] Ad From Server 19.08.29 SKAJIbnEJIb ad_from_server. running
[ 20] [183] Ultimate Flags 19.10.30 SKAJIbnEJIb ultimate_flags. running
- Amxx Модули
-
Код:# 1 MySQL 1.9.0.5262 AMX Mod X Dev running
# 2 FakeMeta 1.9.0.5262 AMX Mod X Dev running
# 3 GeoIP 1.9.0.5262 AMX Mod X Dev running
# 4 Engine 1.9.0.5262 AMX Mod X Dev running
# 5 CSX 1.9.0.5262 AMX Mod X Dev running
# 6 CStrike 1.9.0.5262 AMX Mod X Dev running
# 7 Fun 1.9.0.5262 AMX Mod X Dev running
# 8 ReAPI 5.12.0.192-dev Asmodai & s1le running
# 9 Ham Sandwich 1.9.0.5262 AMX Mod X Dev running
# 10 nVault 1.9.0.5262 AMX Mod X Dev running
# 11 Sockets 1.9.0.5262 AMX Mod X Dev running
- Ошибка
-
Код:не берет awp
- Исходник
-
Код:#include < amxmodx >
#include <center_msg_fix>
#include < reapi >
#if AMXX_VERSION_NUM < 183
#include < colorchat >
#define client_disconnected client_disconnect
#define MAX_PLAYERS 32
#endif
#define IsPlayer(%0) (0 < %0 < 33)
//■■■■■■■■■■■■■■■■■■■■■■■ CONFIG START ■■■■■■■■■■■■■■■■■■■■■■■//
// ^4 - зелёный | ^3 - цвет тимы (КТ - синий | Т - красный | SPEC - серый) | ^1 - жёлтый
#define MSG_PREFIX "[AWP]"
#define MSG_LOWONLINE "Покупка AWP запрещена, низкий онлайн."
#define MSG_LIMIT "Покупка запрещена, превышен лимит AWP за команду."
#define MSG_ROUND "%s У вас отобрано AWP. Причина: подождите %d %s"
#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 у кт)
*/
//#define NOEND //Если разкоментировано, то не будет отбирать АВП в конце раунда из-за низкого онлайна. [Если онлайн ниже чем указан в кваре и человек сам дропнет авп или потеряет ее, то подобрать заного не сможет]
//■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG END ■■■■■■■■■■■■■■■■■■■■■■■■//
enum ECVARS {
CVAR_ONLINE = 0,
CVAR_LIMIT_AWP_STATUS,
CVAR_LIMIT_MAX_AWP,
CVAR_LIMIT_IMMUN,
CVAR_ROUNDS_LIMIT
};
enum EBLOCKS {
BL_RND = 0,
BL_LIMIT,
BL_ONLINE
};
enum {
AWP_DROP = 0,
AWP_NONE,
AWP_BUY,
AWP_PICK_UP
};
new gCount, gRound, gCvar[ECVARS], sAwp[TeamName: TEAM_SPECTATOR], COST_AWP;
new gAwp[MAX_PLAYERS + 1], TeamName: gTeam[MAX_PLAYERS + 1], gBlock[MAX_PLAYERS + 1];
#if defined PERCENT_PLAYERS
new gLimit;
#endif
public plugin_precache(){
register_plugin("[ReAPI] AWPoff", "1.4.2", "PAffAEJIkA :3");
gCvar[CVAR_ONLINE] = register_cvar("awp_players_low", "10"); //Если онлайн ниже указнного в кваре, в конце раунда у всех отберет авп, и запретит ее. (Что бы отключить поставьте 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", "0"); //Иммунитет для админов. [0 - Выкл | 1 - Иммунитет от лимита кол-ва АВП | 2 - Иммунитет от блока АВП по раундам | 3 - Имумунитет от 1 и 2]
gCvar[CVAR_ROUNDS_LIMIT] = register_cvar("awp_limit_round", "1"); //На сколько раундов блочить?
}
public plugin_init(){
new mapname[32];
get_mapname(mapname, charsmax(mapname));
static maps[][] = { "awp", "aim", "35hp" };
for(new i; i < sizeof maps; i++){
if(containi(mapname, maps) != -1){
pause("ad");
return;
}
}
COST_AWP = rg_get_weapon_info(WEAPON_AWP, WI_COST);
RegisterHookChain(RG_CBasePlayer_AddPlayerItem, "AddItem");
RegisterHookChain(RG_BuyWeaponByWeaponID, "BuyWeaponByWeaponID");
RegisterHookChain(RG_CBasePlayer_RemovePlayerItem, "RemoveItem");
register_event("HLTV", "EventRoundStart", "a", "1=0", "2=0");
register_logevent("EventRestartRound", 2, "1&Restart_Round_");
#if !defined NOEND
register_logevent("EventRoundEnd", 2, "1=Round_End");
#endif
}
#if AMXX_VERSION_NUM < 183
public plugin_cfg()
server_exec();
#endif
public client_disconnected(id) if(IsPlayer(id)) minus_awp(id);
public EventRoundStart(){
gRound ++;
gCount = 0;
new pl[32];
get_pl(pl, gCount);
#if defined PERCENT_PLAYERS
const MAX_PERCENT = 100;
gLimit = gCount * get_pcvar_num(gCvar[CVAR_LIMIT_MAX_AWP]) / MAX_PERCENT;
#endif
sAwp[TEAM_CT] = 0;
sAwp[TEAM_TERRORIST] = 0;
for(new i,id; i < gCount; i ++){
id = pl;
gTeam[id] = get_member(id, m_iTeam);
#if defined ALLPLAYERS
if(!(TEAM_UNASSIGNED < gTeam[id] < TEAM_SPECTATOR) || !is_user_valid(id))
continue;
#endif
switch(gAwp[id]){
case AWP_NONE: continue;
case AWP_DROP:{
gAwp[id] = AWP_NONE;
gBlock[id] = gRound + get_pcvar_num(gCvar[CVAR_ROUNDS_LIMIT]);
}
default: sAwp[gTeam[id]] ++;
}
}
}
public EventRestartRound(){
sAwp[TEAM_CT] = 0;
sAwp[TEAM_TERRORIST] = 0;
gRound = 0;
arrayset(gBlock, false, sizeof gBlock);
arrayset(gAwp, AWP_NONE, sizeof gAwp);
}
#if !defined NOEND
public EventRoundEnd(){
new players[32], count;
get_pl(players, count);
if(count >= get_pcvar_num(gCvar[CVAR_ONLINE]))
return PLUGIN_CONTINUE;
for(new i = 0; i < count; i ++){
#if defined ALLPLAYERS
if(!is_user_valid(players))
continue;
#endif
return_awp(players);
}
EventRestartRound();
return PLUGIN_CONTINUE;
}
#endif
stock get_pl(players[32], &count){
#if defined ALLPLAYERS
get_players(players, count);
#else
get_players(players, count, "ch");
new players1[32], cnt = 0;
for(new i; i < count; i ++){
if(TEAM_UNASSIGNED < get_member(players, m_iTeam) < TEAM_SPECTATOR)
players1[cnt ++] = players;
}
players = players1;
count = cnt;
#endif
}
stock 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(id, print_center, "%s %s", MSG_PREFIX, MSG_LOWONLINE);
}
public BuyWeaponByWeaponID(id, WeaponIdType:weaponID){
if(weaponID != WEAPON_AWP || !is_user_valid(id) || gAwp[id] > AWP_NONE)
return HC_CONTINUE;
new gMoney = get_member(id, m_iAccount);
if(gMoney < COST_AWP)
return HC_CONTINUE;
gAwp[id] = AWP_BUY;
if(check_awp(id))
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)){
gAwp[id] = AWP_PICK_UP;
return HC_CONTINUE;
}
SetHookChainReturn(ATYPE_INTEGER, false);
return HC_SUPERCEDE;
}
//Native's
public plugin_natives()
register_native("awpoff_check", "check_native", true);
public check_native(id, chat)
return check_awp(id, true, chat);
//Native's
bool: check_awp(id, check = false, chat = true){
new EBLOCKS:block;
if(gBlock[id] > gRound)
block = BL_RND;
else if(gCount < get_pcvar_num(gCvar[CVAR_ONLINE]))
block = BL_ONLINE;
else if(get_pcvar_num(gCvar[CVAR_LIMIT_AWP_STATUS])){
new cvar = get_pcvar_num(gCvar[CVAR_LIMIT_IMMUN]);
if(cvar && cvar != 2 && 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
block = BL_LIMIT;
}else
return true;
if(chat){ //Слишком туп, чтобы придумать какой нибудь другой вариант с чатом.
switch(block){
case BL_RND:{
new c = gBlock[id] - gRound;
client_print(id, print_center, MSG_ROUND, MSG_PREFIX, c, get_text(c));
}
case BL_ONLINE: client_print(id, print_center, "%s %s", MSG_PREFIX, MSG_LOWONLINE);
case BL_LIMIT: client_print(id, print_center, "%s %s", MSG_PREFIX, MSG_LIMIT);
}
}
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;
new flag = get_user_flags(id) & FLAG, cvar = get_pcvar_num(gCvar[CVAR_LIMIT_IMMUN]);
gAwp[id] = (flag && cvar > 1) ? AWP_NONE : AWP_DROP;
if(!get_pcvar_num(gCvar[CVAR_LIMIT_AWP_STATUS]))
return;
if(cvar && cvar != 2 && 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;
}
get_text(tm){
new ost = tm % 10, ost2 = tm % 100, buff[16];
if(ost2 >= 5 && ost2 <= 20)
format(buff, charsmax(buff), "раундов");
else{
switch(ost){
case 1: format(buff, charsmax(buff), "раунд");
case 2..4: format(buff, charsmax(buff), "раунда");
case 0, 5..9: format(buff, charsmax(buff), "раундов");
}
}
return buff;
}
Здравствуйте! стоит плагин awp_off_t
выставил значение при онлайне ниже 10 запрет awp, но когда выше онлайн всё равно не берет awp, пишет превышен лимит покупка запрещена, хотя ни у кого нет этого оружие
что не так то
выставил значение при онлайне ниже 10 запрет awp, но когда выше онлайн всё равно не берет awp, пишет превышен лимит покупка запрещена, хотя ни у кого нет этого оружие
что не так то