Баг с бомбой

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
96
Реакции
120
Помог
1 раз(а)
Основная информация

Проблема: Баг с бомбой

Ошибка:
Демки пока нету...
Подходит Тер на плент Б (даст2). Нажимает 5 (бомба), в 5 слоту показывает что там ничего нету и автоматом перебрасывает на 1 слот с авп.И так всегда, пока он не дропнул всю оружку с 1 слота, при этом дроп был авп и пачки одновременно.
Дополнительная информация

OC: linux

Amx Mod X: ReAMXX

Билд:
Код:
ReHLDS version: 3.3.0.604


ReGamedll:
Код:
5.3.0.222-dev


Список модулей:
PHP:
name version author status
[ 1] ReAimDetector 0.2.0 ReHLDS Team работает
[ 2] Ham Sandwich 1.8.3-Re AMX Mod X Dev Team работает
[ 3] ReParachute 1.1 Beta the_hunter работает
[ 4] unknown unknown unknown не работает (aimespfix отключил)
[ 5] CStrike 1.8.3-Re AMX Mod X Dev Team работает
[ 6] Engine 1.8.3-Re AMX Mod X Dev Team работает
[ 7] nVault 1.8.3-Re AMX Mod X Dev Team работает
[ 8] MySQL 1.8.3-Re AMX Mod X Dev Team работает
[ 9] ReAPI 5.2.0.136- Asmodai & s1lent работает
[10] FakeMeta 1.8.3-Re AMX Mod X Dev Team работает
[11] CSX 1.8.3-Re AMX Mod X Dev Team работает
[12] Sockets 1.8.3-Re HLSW Dev Team работает


Список плагинов:
HTML:
[ 1] Admin Loader 2.9 Neygomon admin_loader.am работает
[ 2] FreshBans 1.3.7b kanagava fresh_bans_137b работает
[ 3] CSStatsX SQL 0.7.4 serfreeman1337 csstatsx_sql.am работает
[ 4] ReAimDetector API 0.2.0 ReHLDS Team reaimdetector.a работает
[ 5] Maps Menu 1.4.1 neugomon mapsmenu.amxx работает
[ 6] Map Manager 2.5.61 Mistrick mapmanager.amxx работает
[ 7] Map Manager: Sub Plugi 0.1 Mistrick mapmanager_subp работает
[ 8] [ReAPI]Admin Commands 1.5 F@nt0M admincmd_reapi. работает
[ 9] Lite Admin ESP 1.0 Safety1st admin_esp.amxx работает
[ 10] [ReAPI]Advanced Gag 1.9.0 Neygomon amx_gag_reapi.a работает
[ 11] [ReAPI]No Team Flash 0.0.2 Vaqtincha no_team_flash_r работает
[ 12] Server Menu 1.5.0 F@nt0M server_menu.amx работает
[ 13] [ReAPI]Adminfreelook 1.0 h1k3 adminfreelook_r работает
[ 14] [ReAPI]Round Balancer 1.1 Neygomon round_balancer_ работает
[ 15] [ReAPI]AFK Control 1.4.1 [Rnd Neygomon afk_control_rea работает
[ 16] Ping Control 1.31 Neygomon ping_control.am работает
[ 17] Advanced Damager 2.0.0 iPlague damager_iplague работает
[ 18] [ReAPI]Items Restrict 1.0 s1lent items_restrict_ работает
[ 19] Random Weapons WarmUP 2.4.1 neugomon warmup_reapi.am работает
[ 20] Custom Knife Model 0.1 Safety1st custom_knife.am работает
[ 21] [ReAPI]AWPoff 1.2 PAffAEJIkA :3 awp_off_reapi.a работает
[ 22] ScreenMaker 1.1 Neygomon screen_maker.am работает
[ 23] Pause Plugins 1.8.3-dev+ AMXX Dev Team pausecfg.amxx работает
[ 24] Rock to Ban 2.12ff Safety1st rock2ban.amxx работает
[ 25] DHUD_Adverts_Deads 1.3.1 pUzzlik dhud_message_de работает
[ 26] [ReAPI]Resetscore 1.0 Phantom resetscore_reap работает
[ 27] Hud_info 2.1 h1k3 hud_info.amxx работает
[ 28] [ReAPI]Killer ScreenFa 0.0.5 Vaqtincha killer_screenfa работает
[ 29] [ReAPI]Nice_killer_rea 0.2 F@nt0M nice_killer_rea работает
[ 30] Advanced Kill Assists 0.9 Spection next21_kill_ass работает
[ 31] Say /me and /hp 1.33 Neygomon sayme.amxx работает
[ 32] Stats Configuration 1.8.3-dev+ AMXX Dev Team statscfg.amxx работает
[ 33] [ReAPI]Block Advert 1.4 Neygomon block_advert_re работает
[ 34] Night VIP 0.1 F@nt0M night_vip.amxx работает
[ 35] [ReAPI]Admin Models 0.0.2 Vaqtincha admin_models_re работает
[ 36] Lite Translit 2.8 Neygomon lite_translit.a работает
[ 37] [ReVIP]System Core 2.5 full pUzzlik re_vip_core.amx работает
[ 38] [ReVIP]Menu 2.5 full pUzzlik re_vip_menu.amx работает
[ 39] [ReVIP]Connected Info 2.5 full pUzzlik re_vip_connect_ работает
[ 40] [ReVIP]Tab Info 2.5 full pUzzlik re_vip_tab_info работает
[ 41] [ReVIP]Add HP 2.5 full pUzzlik re_vip_hp_add.a работает
[ 42] Advanced Experience Sy 0.5.4 Vega serfreeman1337/s aes_main.amxx работает
[ 43] AES: CStrike Addon 0.5.4 Vega serfreeman1337/s aes_exp_cstrike работает
[ 44] AES: Informer 0.5.4 Vega serfreeman1337/s aes_informer.am работает
[ 45] AES: Admin Tools 0.5.4 Vega serfreeman1337/s aes_exp_editor. работает
[ 46] AES: Bonus System 0.5.4 Vega serfreeman1337/s aes_bonus_syste работает
[ 47] AES: Bonus CSTRIKE 0.5.4 Vega serfreeman1337/s aes_bonus_cstri работает
[ 48] AES: StatsX 0.5.4 Vega serfreeman1337/s aes_statsx_cstr работает


Список метамодулей:
PHP:
[ 1] AMX Mod X RUN - amxmodx_mm_i386. v1.8.3-R ini Start ANY
[ 2] Reunion RUN - reunion_mm_i386. v0.1.75 ini Start Never
[ 3] ReAuthCheck RUN - reauthcheck_mm_i v0.1.6 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] ReSRDetector RUN - resrdetector_mm_ v0.1.0 ini Chlvl ANY
[ 7] WHBlocker RUN - whblocker_mm_i38 v1.5.692 ini Chlvl ANY
[ 8] VoiceTranscoder RUN - VoiceTranscoder. v2017RC3 ini ANY ANY
[ 9] ReAimDetector RUN - reaimdetector_am v0.2.0 pl1 ANY Never
[10] Ham Sandwich RUN - hamsandwich_amxx v1.8.3-R pl1 ANY ANY
[11] ReParachute RUN - parachute_amxx_i v1.1 Bet pl1 ANY ANY
[12] CStrike RUN - cstrike_amxx_i38 v1.8.3-R pl1 ANY ANY
[13] Engine RUN - engine_amxx_i386 v1.8.3-R pl1 ANY ANY
[14] MySQL RUN - mysql_amxx_i386. v1.8.3-R pl1 ANY ANY
[15] ReAPI RUN - reapi_amxx_i386. v5.2.0.1 pl1 ANY Never
[16] FakeMeta RUN - fakemeta_amxx_i3 v1.8.3-R pl1 ANY ANY
[17] CSX RUN - csx_amxx_i386.so v1.8.3-R pl1 ANY ANY



Комментарий:
Код:
#include < amxmodx >
#include < reapi >

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

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

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

//#define ALLPLAYERS
/*
Закоментируйте, чтобы для проверки на онлайн брались только люди(ботов и хлтв считать не будет).

Пример:
Допустим на сервере 5 ботов и 2 человека 1 хлтв.
Дефайн закоментирован: Посчитает, что на сервере 2 из Максимально возможных игроков.
Дефайн раскоментирован: Посчитает, что на сервере 8 игроков из Максимально возможных игроков (5 ботов + 2 человека + 1 хлтв).

Отбирать авп будет ТОЛЬКО У ЛЮДЕЙ в любом случае.
*/

#define FLAG (get_user_flags(id) & 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 у кт)
*/

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.2", "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");

register_logevent("EventRoundEnd", 2, "1=Round_End");
register_logevent("EventRestartRound", 2, "1&Restart_Round_");

gCvar[CVAR_ONLINE] = register_cvar("awp_players_low", "8"); //Если онлайн ниже указнного в кваре, в конце раунда у всех отберет авп, и запретит ее. (Что бы отключить поставьте 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_disconnect(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
get_players(players, gCount, "ch");
#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]) || !sAwp[TEAM_CT] && !sAwp[TEAM_TERRORIST])
return PLUGIN_CONTINUE;

for(new i = 0, id; i < gCount; i ++){
id = players;

#if defined ALLPLAYERS
if(!is_user_valid(id))
continue;
#endif

if(gAwp[id] == AWP_NONE)
continue;

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);
}
EventRestartRound();
return PLUGIN_CONTINUE;
}

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]) && 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(!get_pcvar_num(gCvar[CVAR_LIMIT_AWP_STATUS]))
return;

if(!is_user_valid(id) || gAwp[id] == AWP_NONE)
return;

gAwp[id] = AWP_NONE;

if(get_pcvar_num(gCvar[CVAR_LIMIT_IMMUN]) && 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;
}



Код:
#include <amxmodx>
#include <reapi>

// uncomment that you need to restrict these item's.
new const ItemID:g_rRestrictWeapons[] =
{
ITEM_SHIELDGUN,
// ITEM_P228,
// ITEM_GLOCK,
// ITEM_SCOUT,
// ITEM_HEGRENADE,
// ITEM_XM1014,
// ITEM_C4,
// ITEM_MAC10,
// ITEM_AUG,
// ITEM_SMOKEGRENADE,
// ITEM_ELITE,
// ITEM_FIVESEVEN,
// ITEM_UMP45,
ITEM_SG550,
// ITEM_GALIL,
// ITEM_FAMAS,
// ITEM_USP,
// ITEM_GLOCK18,
// ITEM_AWP,
// ITEM_MP5N,
// ITEM_M249,
// ITEM_M3,
// ITEM_M4A1,
// ITEM_TMP,
ITEM_G3SG1,
// ITEM_FLASHBANG,
// ITEM_DEAGLE,
// ITEM_SG552,
// ITEM_AK47,
// ITEM_KNIFE,
// ITEM_P90,

// don't touch it!!
ITEM_NONE
};

new const ItemID:g_rRestrictItems[] =
{
// ITEM_NVG,
// ITEM_DEFUSEKIT,
// ITEM_KEVLAR,
// ITEM_ASSAULT,
// ITEM_LONGJUMP,
// ITEM_HEALTHKIT,
// ITEM_ANTIDOTE,
// ITEM_SECURITY,
// ITEM_BATTERY,
// ITEM_SUIT,

// don't touch it!!
ITEM_NONE
};

enum SectionBits
{
SECTION_WEAPONS = 0,
SECTION_ITEMS
};

new g_bitsRestrict[SectionBits] = {};

public plugin_init()
{
register_plugin("[ReAPI]Items Restrict", "1.0", "s1lent");

if (g_rRestrictWeapons[0] == ITEM_NONE && g_rRestrictItems[0] == ITEM_NONE) {
set_fail_state("Arrays g_rRestrictWeapons and g_rRestrictItems are empty!");
return;
}

new i;
for (i = 0; g_rRestrictWeapons != ITEM_NONE; i++)
g_bitsRestrict[SECTION_WEAPONS] |= (1 << any:g_rRestrictWeapons);

for (i = 0; g_rRestrictItems != ITEM_NONE; i++)
g_bitsRestrict[SECTION_ITEMS] |= (1 << any:(g_rRestrictItems % ITEM_NVG));

RegisterHookChain(RG_CBasePlayer_HasRestrictItem, "CBasePlayer_HasRestrictItem");
}

public CBasePlayer_HasRestrictItem(const id, const ItemID:item, const ItemRestType:type)
{
if ((item < ITEM_NVG) ? g_bitsRestrict[SECTION_WEAPONS] & (1 << any:item) :
g_bitsRestrict[SECTION_ITEMS] & (1 << any:(item % ITEM_NVG)))
{
if (type == ITEM_TYPE_BUYING) {
client_print(id, print_center, "Это оружие запрещено");
}

// return 1, let's restrict up this item
SetHookChainReturn(ATYPE_INTEGER, 1);
return HC_SUPERCEDE;
}

return HC_CONTINUE;
}



Код:
#include <amxmodx>
#include <amxmisc>
#include <reapi>
#include <vip_system>

#pragma semicolon 1
enum _:cvars { FLAG_GIRL, FLAG_DEF, FLAG, VIPMENU, BLOCKBONUS };
new pCvar[cvars], g_Flags[cvars], g_iMenuRnd, g_iBonusRnd;

enum _:fwd { FWD_SPAWN, FWD_RESTART };
new g_fwdFunction[fwd];
new g_iRound;

new HookChain:HookSpawn;

public plugin_natives() {
register_library(VIP_SYSTEM_VERSION);
register_native("get_flag_access_girl", "native_flag_access_girl", 1);
register_native("get_flag_access_def", "native_flag_access_def", 1);
register_native("get_flag_access", "native_flag_access", 1);
register_native("get_round_num", "native_round_num", 1);
register_native("get_block_maps", "native_block_maps", 1);
register_native("core_is_bonus_spawn", "native_bonus_spawn", 1);
register_native("core_is_allow_use", "native_allow_use", 1);
}

public native_flag_access_girl(id){
if(is_user_connected(id) && get_user_flags(id) & g_Flags[FLAG_GIRL]) return true;
return false;
}

public native_flag_access_def(id){
if(is_user_connected(id) && get_user_flags(id) & g_Flags[FLAG_DEF]) return true;
return false;
}

public native_flag_access(id){
if(is_user_connected(id) && get_user_flags(id) & g_Flags[FLAG]) return true;
return false;
}

public native_round_num()
return g_iRound;

public native_block_maps() {
new szDisabledFile[64];
get_configsdir(szDisabledFile, charsmax(szDisabledFile));
formatex(szDisabledFile, charsmax(szDisabledFile), "%s/vip_disabled_maps.cfg", szDisabledFile);

if(file_exists(szDisabledFile)) {
new iLineNum, szData[64], iTextLen;
new szMapName[64]; rh_get_mapname(szMapName, charsmax(szMapName));

while(read_file(szDisabledFile, iLineNum, szData, charsmax(szData), iTextLen)) {
if(containi(szMapName, szData) != -1) return true;
iLineNum++;
}
}
return false;
}

public native_bonus_spawn(id) {
if(!is_user_alive(id)) return false;
if(get_block_maps()) return false;
if(!get_flag_access_girl(id) && !get_flag_access_def(id)) return false;
return true;
}

public native_allow_use(id) {
if(!is_user_alive(id)) {
client_print_color(id, -2, "%L %L", LANG_SERVER, "CHAT_TAG", LANG_SERVER, "VIP_ALIVE");
return false;
}
if(get_block_maps()) {
client_print_color(id, -2, "%L %L", LANG_SERVER, "CHAT_TAG", LANG_SERVER, "BLOCK_MAPS");
return false;
}
if(!get_flag_access_girl(id) && !get_flag_access_def(id)) {
client_print_color(id, -2, "%L %L", LANG_SERVER, "CHAT_TAG", LANG_SERVER, "ONLY_VIP_GIRL");
return false;
}
if(g_iMenuRnd > g_iRound) {
client_print_color(id, -2, "%L %L", LANG_SERVER, "CHAT_TAG", LANG_SERVER, "WARMUP_ROUND");
return false;
}
return true;
}

public plugin_init() {
register_plugin("[ReVIP]System Core", VIP_SYSTEM_VERSION, "pUzzlik");
register_dictionary("vip_system.txt");

// flag access girl. s
pCvar[FLAG_GIRL] = register_cvar("access_flag_girl", "s");
// flag access def. t
pCvar[FLAG_DEF] = register_cvar("access_flag_vip", "t");
// flag access (def. g)
pCvar[FLAG] = register_cvar("other_access_flag", "m");
// with round displayed vip menu
pCvar[VIPMENU] = register_cvar("display_menu_rnd", "2");
// with round enable forward spawn player
pCvar[BLOCKBONUS] = register_cvar("spawn_player_block", "2");

g_fwdFunction[FWD_RESTART] = CreateMultiForward("vip_core_restart_round", ET_IGNORE, FP_CELL);
g_fwdFunction[FWD_SPAWN] = CreateMultiForward("vip_core_player_spawn", ET_IGNORE, FP_CELL);

RegisterHookChain(RG_RoundEnd, "RoundEnd", true);
RegisterHookChain(RG_CSGameRules_RestartRound, "CSGameRules_RestartRound_Pre");
DisableHookChain(HookSpawn = RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn", true));

new szFileCfg[64];
get_configsdir(szFileCfg, charsmax(szFileCfg));
formatex(szFileCfg, charsmax(szFileCfg), "%s/vip_system.cfg", szFileCfg);
if(file_exists(szFileCfg)) server_cmd("exec %s", szFileCfg);
}

public plugin_cfg() {
new sFlagGirl[10]; get_pcvar_string(pCvar[FLAG_GIRL], sFlagGirl, charsmax(sFlagGirl));
new sFlagDef[10]; get_pcvar_string(pCvar[FLAG_DEF], sFlagDef, charsmax(sFlagDef));
new sFlag[10]; get_pcvar_string(pCvar[FLAG], sFlag, charsmax(sFlag));
g_Flags[FLAG_GIRL] = read_flags(sFlagGirl);
g_Flags[FLAG_DEF] = read_flags(sFlagDef);
g_Flags[FLAG] = read_flags(sFlag);
g_iMenuRnd = get_pcvar_num(pCvar[VIPMENU]);
g_iBonusRnd = get_pcvar_num(pCvar[BLOCKBONUS]);
}

public RoundEnd(WinStatus:status, ScenarioEventEndRound:event) {
if(event == ROUND_GAME_COMMENCE || event == ROUND_GAME_RESTART) {
g_iRound = 0;
DisableHookChain(HookSpawn);
}
}

public CSGameRules_RestartRound_Pre() {
g_iRound++;

new Result;
ExecuteForward(g_fwdFunction[FWD_RESTART], Result, g_iRound);
if(g_iRound == g_iBonusRnd) EnableHookChain(HookSpawn);
}

public CBasePlayer_Spawn(const id) {
new Result;
ExecuteForward(g_fwdFunction[FWD_SPAWN], Result, id);
}

Код:
#include <amxmodx>
#include <reapi>
#include <vip_system>

#define ADMIN_LOADER // Compatible with Admin Loader from neugomon (https://www.neugomon.ru/threads/486/)
//#define GAMECMS_API // Выводить срок до конца админки с GAMECMS_API

#pragma semicolon 1
new const MenuKey = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<9);

enum _:cvars {
AUTO_MENU,
GIVE_ITEMS,
WEAPONSRND,
AWPRND,
SHOP,
SHOP_RND
};

new iPistol[MAX_CLIENTS+1], bool:g_bUsePistol, bool:g_bUseWeapon[MAX_CLIENTS+1];

static sItems[10];
new pCvar[cvars], pCvarCfg[cvars];
new g_iRound;
#if defined GAMECMS_API
native days_left_info (id, szDate[], iLen);
#endif

public plugin_init() {
register_plugin("[ReVIP]Menu", VIP_SYSTEM_VERSION, "pUzzlik");
register_dictionary("vip_system.txt");

// auto open vip menu 1 - on, 0 - off
pCvar[AUTO_MENU] = register_cvar("open_menu_spawn", "0");
/*
flags items
a - armor
d - defuse
f - flashbang
h - hegranade
p - pistol
s - smoke
*/
pCvar[GIVE_ITEMS] = register_cvar("give_items", "adfhp");
// which is available with a round primary weapons
pCvar[WEAPONSRND] = register_cvar("primary_weapons_rnd", "2");
// which is available with a round primary weapons
pCvar[AWPRND] = register_cvar("heavy_weapons_rnd", "4");
// if you want to use a custom shop, (1 - enable)
pCvar[SHOP] = register_cvar("use_custom_shop", "1");
// with round displayed shop menu
pCvar[SHOP_RND] = register_cvar("custom_shop_block_rnd", "2");

register_clcmd("vipmenu", "ShowMenu");
register_clcmd("say /vipmenu", "ShowMenu");
register_clcmd("say_team /vipmenu", "ShowMenu");

register_clcmd("say", "hook_say");
register_clcmd("say_team", "hook_say");

register_menucmd(register_menuid("Vip Menu"), MenuKey, "MenuHandler");
}

public plugin_cfg() {
get_pcvar_string(pCvar[GIVE_ITEMS],sItems,charsmax(sItems)); trim(sItems);
pCvarCfg[WEAPONSRND] = get_pcvar_num(pCvar[WEAPONSRND]);
pCvarCfg[AWPRND] = get_pcvar_num(pCvar[AWPRND]);
pCvarCfg[AUTO_MENU] = get_pcvar_num(pCvar[AUTO_MENU]);
pCvarCfg[SHOP] = get_pcvar_num(pCvar[SHOP]);
pCvarCfg[SHOP_RND] = get_pcvar_num(pCvar[SHOP_RND]);
}

public vip_core_restart_round(round) {
arrayset(g_bUseWeapon, false, sizeof(g_bUseWeapon));
g_iRound = round;
}

public vip_core_player_spawn(const id) {
if(core_is_bonus_spawn(id)) {
for(new i, str_len = strlen(sItems); i < str_len ; i++) {
switch(sItems){
case 'a': rg_set_user_armor(id, 100, ARMOR_VESTHELM);
case 'd': {
new TeamName:team = get_member(id, m_iTeam);
if(team == TEAM_CT) rg_give_defusekit (id, true);
}
case 'f': {
rg_give_item(id, "weapon_flashbang", GT_APPEND);
rg_give_item(id, "weapon_flashbang", GT_APPEND);
}
case 'h': rg_give_item(id, "weapon_hegrenade", GT_APPEND);
case 'p': {
switch(iPistol[id]) {
case 0: { rg_give_item(id, "weapon_deagle", GT_REPLACE); rg_set_user_bpammo(id, WEAPON_DEAGLE, 35); }
case 1: { rg_give_item(id, "weapon_usp", GT_REPLACE); rg_set_user_bpammo(id, WEAPON_USP, 100); }
case 2: { rg_give_item(id, "weapon_glock18", GT_REPLACE); rg_set_user_bpammo(id, WEAPON_GLOCK18, 120); }
}
g_bUsePistol = true;
}
case 's': rg_give_item(id, "weapon_smokegrenade", GT_APPEND);
}
}

if(pCvarCfg[AUTO_MENU] && g_iRound >= pCvarCfg[WEAPONSRND]) ShowMenu(id);
}
}

public hook_say(id) {
static szMsg[32]; read_args(szMsg, charsmax(szMsg)); remove_quotes(szMsg);
static const szChoosedWP[][] = { "/ak47", "/m4a1", "/famas", "/awp" };

for(new a; a < sizeof szChoosedWP; a++) {
if(!strcmp(szMsg, szChoosedWP[a])) {
if(!core_is_allow_use(id)) break;
return MenuHandler(id, a);
}
}
return PLUGIN_CONTINUE;
}

public ShowMenu(id) {
if(!core_is_allow_use(id)) return PLUGIN_HANDLED;

new szMenu[512], key; key = MENU_KEY_0;
new iLen, szName[16]; get_entvar(id, var_netname, szName, charsmax(szName));

iLen = formatex(szMenu, charsmax(szMenu), "\r%L \w[\d%L\w]^n\w%L^n", LANG_SERVER, "MENU_NAME", LANG_SERVER, "NAME_SERVER", LANG_SERVER, "WELCOME", szName);

#if defined ADMIN_LOADER
new exp = admin_expired(id);
if(exp > 0) {
new sys = get_systime();
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L^n^n", LANG_SERVER, "VIP_EXPIRED", LANG_SERVER, ((exp - sys) / 86400 > 0) ? "VIP_DAYS" : "VIP_DAY", (exp - sys) / 86400);
} else if(exp == 0) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L^n^n", LANG_SERVER, "VIP_EXPIRED_PRMANENT");
#elseif defined GAMECMS_API
new szDate[11], exp = days_left_info(id, szDate, charsmax(szDate));

if(exp > 0) {
new sys = get_systime();
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L^n^n", LANG_SERVER, "VIP_EXPIRED", LANG_SERVER, ((exp - sys) / 86400 > 0) ? "VIP_DAYS" : "VIP_DAY", (exp - sys) / 86400);
} else if(exp == 0) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%L^n^n", LANG_SERVER, "VIP_EXPIRED_PRMANENT");
#else
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n");
#endif

new szUseWpn[2]; formatex(szUseWpn, charsmax(szUseWpn), "%s", g_bUseWeapon[id] ? "d" : "w");

if(g_iRound < pCvarCfg[WEAPONSRND])
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r1. \d%L \r%L^n\r2. \d%L \r%L^n\r3. \d%L \r%L^n", LANG_SERVER, "AK47", LANG_SERVER, "ROUND", pCvarCfg[WEAPONSRND], LANG_SERVER, "M4A1", LANG_SERVER, "ROUND", pCvarCfg[WEAPONSRND], LANG_SERVER, "FAMAS", LANG_SERVER, "ROUND", pCvarCfg[WEAPONSRND]);
else {
key |= MENU_KEY_1|MENU_KEY_2|MENU_KEY_3;
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r1. \%s%L^n\r2. \%s%L^n\r3. \%s%L^n", szUseWpn, LANG_SERVER, "AK47", szUseWpn, LANG_SERVER, "M4A1", szUseWpn, LANG_SERVER, "FAMAS");
}

if(g_iRound < pCvarCfg[AWPRND])
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r4. \d%L \r%L^n^n", LANG_SERVER, "AWP", LANG_SERVER, "ROUND", pCvarCfg[AWPRND]);
else {
key |= MENU_KEY_4;
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r4. \%s%L^n^n", szUseWpn, LANG_SERVER, "AWP");
}

if(g_bUsePistol) {
key |= MENU_KEY_5;
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r5. %L \r[\w%s\r]^n", LANG_SERVER, "PISTOL", iPistol[id] == 0 ? "Deagle" : iPistol[id] == 1 ? "USP" : "Glock");
}
formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\r0. %L", LANG_SERVER, "EXIT");

set_member(id, m_iMenu, Menu_OFF);
return show_menu(id, key, szMenu, -1, "Vip Menu");
}

public MenuHandler(id, key) {
if(key <= 3) {
/*** Защита от дурака ***/
if(g_iRound < pCvarCfg[WEAPONSRND]) return client_print_color(id, 0, "%L %L", LANG_SERVER, "CHAT_TAG", LANG_SERVER, "PISTOLS_ROUND");
/*** End ***/
if(g_bUseWeapon[id]) return client_print_color(id, 0, "%L %L", LANG_SERVER, "CHAT_TAG", LANG_SERVER, "ALREDY_WEAPON_RND");
g_bUseWeapon[id] = true;

static const szChoosedBP[] = { 90, 90, 90, 30 };
static const szChoosedWP[][] = { "weapon_ak47", "weapon_m4a1", "weapon_famas", "weapon_awp" };

return rg_give_items(id, szChoosedWP[key], szChoosedBP[key]);
}
else if (key == 4) GivePistol(id);
return PLUGIN_HANDLED;
}

public GivePistol(id) {
iPistol[id] >= 2 ? (iPistol[id] = 0) : iPistol[id]++;
ShowMenu(id);
return PLUGIN_HANDLED;
}

stock rg_give_items(id, currWeaponName[], ammoAmount) {
rg_drop_items_by_slot(id, PRIMARY_WEAPON_SLOT);

rg_give_item(id, currWeaponName, GT_APPEND);
rg_set_user_bpammo(id, rg_get_weapon_info(currWeaponName, WI_ID), ammoAmount);

engclient_cmd(id, currWeaponName);
return PLUGIN_HANDLED;
}



Код:
#include <amxmodx>
#include <vip_system>

#pragma semicolon 1
new Msg_ScoreAttrib;

public plugin_init() {
register_plugin("[ReVIP]Tab Info", VIP_SYSTEM_VERSION, "pUzzlik");
Msg_ScoreAttrib = get_user_msgid("ScoreAttrib");
}

public vip_core_player_spawn(const id) {
if(get_flag_access_def(id)) {
message_begin(MSG_BROADCAST, Msg_ScoreAttrib);
write_byte(id);
write_byte(4);
message_end();
}
}

Демки пока нету...
Подходит Тер на плент Б (даст2). Нажимает 5 (бомба), в 5 слоту показывает что там ничего нету и автоматом перебрасывает на 1 слот с авп.И так всегда, пока он не дропнул всю оружку с 1 слота, при этом дроп был авп и пачки одновременно.
 
В этой теме было размещено решение! Перейти к решению.

Вложения

Последнее редактирование:
Сообщения
216
Реакции
1,274
Помог
5 раз(а)
h1k3, баг токо с авп? пробуйте тогда отключать по одному плагину на день и проверять пока не найдется виновник.
 
Сообщения
96
Реакции
120
Помог
1 раз(а)
Adidasman, пока заметил только с авп, трудно задетектить баг. Хорошо
 
Последнее редактирование:
Сообщения
216
Реакции
1,274
Помог
5 раз(а)
h1k3, перепробовал разные варианты выдачи оружия через плагин так и через покупку, баг так и не заметил, редкое проявление.
 
Сообщения
96
Реакции
120
Помог
1 раз(а)
Adidasman,
из слов игрока

KPoJIuK: слот 5 заменен на слот1
ᅚᅚᅚᅚᅚᅚᅚᅚᅚᅚ: чего аххаха
ᅚᅚᅚᅚᅚᅚᅚᅚᅚᅚ: такого нету на серве
KPoJIuK: вот такая *****. не мог поставить пачу потому что авп бралось вместо бомбы

выходит только с авп такое
awp_off попробую отключить и посмотрим
У кого такая же проблема awp_off_reapi установлен?
 
Сообщения
342
Реакции
65
Помог
6 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Да, есть такое, установлен
 
Сообщения
2,491
Реакции
2,790
Помог
61 раз(а)
h1k3, отключи времено awp_off и посмотри будет ли такое продолжаться
 
  • Нравится
Реакции: h1k3
Сообщения
2,288
Реакции
1,737
Помог
31 раз(а)
fantom, подверждаю.жаловались только игроки у которых было авп.плагина awp_off не установлено.
 
Сообщения
96
Реакции
120
Помог
1 раз(а)
Pokemoshka, можно список плагинов?
баг не постоянный. Бегал минут 30-40 с авп и бомбой, бага не замечен
 
Сообщения
2,288
Реакции
1,737
Помог
31 раз(а)
h1k3, только когда дома буду.тоже буду тестировать.тут надо смотреть только у вип игроков данный баг или нет.приложи еще tabinfo исход.
 
Сообщения
2,491
Реакции
2,790
Помог
61 раз(а)
h1k3, ip сменился? Вечером мб попробуем разом
 
Сообщения
2,288
Реакции
1,737
Помог
31 раз(а)
Воспроизвести данный баг не удалось.Пробовались разные варианты:
1. Вип игрок с покупкой обычной авп
2. Вип игрок с подобранной обычной авп
3. Вип игрок с купленной голд авп
4. Вип игрок с подобранной голд авп
5. Обычный игрок с покупкой обычной авп
6. Обычный игрок с подобранной обычной авп
7. Обычный игрок с подобранной голд авп
 
Сообщения
264
Реакции
79
Помог
1 раз(а)
del
 
Последнее редактирование:
Сообщения
2,491
Реакции
2,790
Помог
61 раз(а)
REVO, перезалейте на другой источник плз
 
Сообщения
342
Реакции
65
Помог
6 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Ща баг заметил, вместо 1 awp, у меня 2 оказалось каким-то боком, ну и бомба как раз у меня
 

Вложения

Сообщения
342
Реакции
65
Помог
6 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Pokemoshka, в лс
7 Ноя 2017
лс открой
 
Сообщения
2,288
Реакции
1,737
Помог
31 раз(а)
ops244,
Открыл, странно почему она вообще закрыта стала :-/
 
Статус
В этой теме нельзя размещать новые ответы.

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

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