Пользователь
- Сообщения
- 182
- Реакции
- 4
- Ошибка
-
L 02/06/2020 - 18:07:41: [ReAPI] SetHookChainReturn: trying to set return value with incompatible type, expected 'ATYPE_INTEGER'; got 'ATYPE_BOOL'
L 02/06/2020 - 18:07:41: [AMXX] Displaying debug trace (plugin "awp_limit.amxx", version "1.3")
L 02/06/2020 - 18:07:41: [AMXX] Run time error 10: native error (native "SetHookChainReturn")
L 02/06/2020 - 18:07:41: [AMXX] [0] awp_limit.sma::AddItem (line 181)
- ОС
- Linux
- Amx Mod X
-
5249
- Билд
-
3.7.0.692-dev-mpatch
- ReGamedll
-
5.13.0.447-dev+m
- Версия Metamod
-
v1.3.0.128
- Список метамодулей
-
[ 1] Reunion RUN - reunion_mm_i386.so v0.1.0.92c ini Start Never
[ 2] Revoice RUN - revoice_mm_i386.so v0.1.0.32 ini Start Never
[ 3] AMX Mod X RUN - amxmodx_mm_i386.so v1.9.0.5249 ini Start ANY
[ 4] Rechecker RUN - rechecker_mm_i386.so v2.5 ini Chlvl ANY
[ 5] ReSemiclip RUN - resemiclip_mm_i386.so v2.3.9 ini Chlvl ANY
[ 6] ReAuthCheck RUN - reauthcheck_mm_i386.so v0.1.6 ini Start Never
[ 7] ReSRDetector RUN - resrdetector_mm_i386.so v0.1.0 ini Chlvl ANY
[ 8] WHBlocker RUN - whblocker_mm_i386.so v1.5.696 ini Chlvl ANY
[ 9] FakeMeta RUN - fakemeta_amxx_i386.so v1.9.0.5249 pl3 ANY ANY
[10] MySQL RUN - mysql_amxx_i386.so v1.9.0.5249 pl3 ANY ANY
[11] ReAPI RUN - reapi_amxx_i386.so v5.12.0.192-dev pl3 ANY Never
[12] ReAimDetector RUN - reaimdetector_amxx_i386.so v0.2.2 pl3 ANY Never
[13] GeoIP RUN - geoip_amxx_i386.so v1.9.0.5249 pl3 ANY ANY
[14] AuthEmu RUN - authemu_amxx_i386.so v4.2.12.311-dev+m pl3 ANY Never
[15] CStrike RUN - cstrike_amxx_i386.so v1.9.0.5249 pl3 ANY ANY
[16] CSX RUN - csx_amxx_i386.so v1.9.0.5249 pl3 ANY ANY
[17] Engine RUN - engine_amxx_i386.so v1.9.0.5249 pl3 ANY ANY
[18] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.9.0.5249 pl3 ANY ANY
[19] Fun RUN - fun_amxx_i386.so v1.9.0.5249 pl3 ANY ANY
19 plugins, 19 running
- Список плагинов
-
[ 1] FreshBans 1.4.2b kanagava fresh_bans.amxx running
[ 2] Admin Loader 3.5 neygomon admin_load.amxx running
[ 3] Admin Commands 1.9.0.5249 AMXX Dev Team admincmd.amxx running
[ 4] Slots Reservation 1.9.0.5249 AMXX Dev Team adminslots.amxx running
[ 5] AdminMenu 1.0 Slove. menufront.amxx running
[ 6] Players Menu 1.7 neugomon plmenu.amxx running
[ 7] Commands Menu 1.9.0.5249 AMXX Dev Team cmdmenu.amxx running
[ 8] Maps Menu 1.4.1 neugomon mapsmenu.amxx running
[ 9] Stats Configuration 1.9.0.5249 AMXX Dev Team statscfg.amxx running
[ 10] New Kick Menu 0.9.4 Radius kickmenu.amxx running
[ 11] ReAimDetector API 0.2.2 ReHLDS Team reaimdetector.a running
[ 12] Bypass Guard 1.0.1 mx?! bypass_guard.am running
[ 13] [BG] Provider: GeoIP 0.2 mx?! bg_provider_geo running
[ 14] ReAntiNick 0.9.3 gyxoBka reantinick.amxx running
[ 15] AntiSpam FlashLight 1.3 Leo_[BH] flashlight_no_s running
[ 16] AuthEmu API 1.0 Dev-MS Team authemu.amxx running
[ 17] StatsX Colored TOP15 1.9.0.5249 AMXX Dev Team statsx.amxx running
[ 18] Lite Rank System 1.5 AcE re_lrs_csstats. running
[ 19] TOP VIP 1.0a Leo_[BH] top_vip.amxx running
[ 20] RE ResetScore 1.0 AcE resetscore.amxx running
[ 21] Parachute for ALL [ReA 3.0 Leo_[BH] parachute.amxx running
[ 22] [ReAPI] No Team Flash 0.0.2 Vaqtincha no_team_flash.a running
[ 23] [ReAPI] AWPoff 1.3 PAffAEJIkA :3 awp_off.amxx debug
[ 24] BEST PLAYER PRIVATE 1.6 DUKKHAZ0R niceplayerbonus running
[ 25] Lite Kill Assist 1.17 neygomon lite_kill_assis running
[ 26] [ReAPI] Nades Limit 0.0.3a steelzorrr nades_limit.amx running
[ 27] WeaponKill 1.01 Slove. weaponkill.amxx running
[ 28] Weapon Icon 1.2 hoboman313/Zenix weaponicon.amxx running
[ 29] GoldMenu 1.0 Slove. goldmenu.amxx running
[ 30] VIP Menu 1.1 Slove. vipmenu.amxx running
[ 31] Lite Vampire+Fade 1.0 AcE & Slove. lite_vampire.am running
[ 32] Lite Admin ESP 1.1 neygomon, AcE admin_esp.amxx running
[ 33] Gold Ak-47 1.0 KR4KEN & Slove. gold_ak47.amxx running
[ 34] Gold M4A1 1.0 KR4KEN & Slove. gold_m4a1.amxx running
[ 35] Mega HE 1.0 Slove. gold_he.amxx running
[ 36] Advanced Gag 1.4.1 neygomon lite_gag.amxx running
[ 37] Lite VoteBan 1.4 neygomon lite_voteban.am running
[ 38] Demorecorder 1.0 neygomon & Slove demorecorder.am running
[ 39] AFK Control 1.4.1 [Rnd neygomon afk_control.amx running
[ 40] Ping Control 1.31 neygomon hpkicker.amxx running
[ 41] Unprecacher CSR 1.0 Leo_[BH] unprecacher.amx running
[ 42] Multiple GNames 1.0 mforce game_name.amxx running
[ 43] ReClientBonus 1.0 xFit & Slove. client_bonus.am running
[ 44] Weapon Restrict 2.1 s1lent & neugomo weaponrest.amxx running
[ 45] Night VIP 1.0 SerGrib night_vip.amxx stopped
[ 46] adminckeck 1.0 Slove. admincheck.amxx running
[ 47] Privileges Models 1.6.1 neugomon privillegesmode running
[ 48] Weapons Skins Manager 0.0.1 Vaqtincha privillegesweap running
[ 49] Back Weapons 1.87 hoboman313/cheap backweapons.amx running
[ 50] PublicMenu 1.0 Slove. servermenu.amxx running
[ 51] Giveprivilleges 1.2 Slove. giveprivilleges running
[ 52] Winter Hats 1.0 Slove. winterhats.amxx running
[ 53] Winter Music 1.0 Slove. wintermusic.amx running
[ 54] Winter Time 1.0 Slove. wintertime.amxx running
[ 55] Lite MapChooser 2.6 neygomon lite_mapchooser running
[ 56] Map Spawns Editor 1.0.16 iG_os map_spawns.amxx running
[ 57] Adverts 1.0 pUzzlik advertisments.a running
[ 58] Block TextMsg 1.0 Slove. & AcE block_msg.amxx running
[ 59] Lite Chat 1.1 Slove. lite_chat.amxx running
59 plugins, 58 running
- Автор плагина
- PAffAEJIkA :3
- Версия плагина
- 1.3
- Исходный код
-
#include < amxmodx >
#include < reapi >
#if AMXX_VERSION_NUM < 183
#include < colorchat >
#define MAX_PLAYERS 32
#endif
#define IsPlayer(%0) (0 < %0 < 33)
#define MSG_LOWONLINE "^1У вас отобрано^4 AWP^1. Причина:^4 низкий онлайн."
#define MSG_LIMIT "^1У вас отобрано^4 AWP^1. Причина:^4 превышен лимит."
#define ALLPLAYERS
/*
Закоментируйте, чтобы для проверки на онлайн брались только КТ и ТТ(ботов, хлтв и спектаров считать не будет).
Пример:
Допустим на сервере 5 ботов и 2 человека 1 хлтв.
Дефайн закоментирован: Посчитает, что на сервере 2 из Максимально возможных игроков.
Дефайн раскоментирован: Посчитает, что на сервере 8 игроков из Максимально возможных игроков (5 ботов + 2 человека + 1 хлтв).
Отбирать авп будет ТОЛЬКО У ЛЮДЕЙ в любом случае.
*/
#define FLAG ADMIN_RCON //Флаг для иммунитета от лимита
#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", "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", "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", 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_BOOL, 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", 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", 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;
}
Помогите пожалуйста доделать плагин.
Вот что заметил:
1. Плагин выдаёт ошибки при любой версии ReAPI.
2. Менял сто раз ATYPE_INTEGER на ATYPE_BOOL в разных комбинациях(те кто будут советовать это, строго идите гуляйте).
3. Версия 1.4 тоже с такой же дичью.
*Кто хочет помочь - поможет.
P.S.: Я даже в VIP меню добавил что-то такого:
if(players <= 10)
{
chat_print(id,"^1Нельзя взять ^4AWP^1. Причина:^4 низкий онлайн.")
return PLUGIN_HANDLED
}
Вот что заметил:
1. Плагин выдаёт ошибки при любой версии ReAPI.
2. Менял сто раз ATYPE_INTEGER на ATYPE_BOOL в разных комбинациях(те кто будут советовать это, строго идите гуляйте).
3. Версия 1.4 тоже с такой же дичью.
*Кто хочет помочь - поможет.
P.S.: Я даже в VIP меню добавил что-то такого:
if(players <= 10)
{
chat_print(id,"^1Нельзя взять ^4AWP^1. Причина:^4 низкий онлайн.")
return PLUGIN_HANDLED
}
В этой теме было размещено решение! Перейти к решению.