попробуй так, не проверялCoder, сделай чтоб на запрещенных картах писала что на этой карте вип меню пользоваться нельзя а то пишет Только VIP-игрок может пользоваться этой командой!
bool:isAllowToUse(id) {
if(!g_bUserVip[id]) {
client_print_color(id, print_team_default, "%s Только VIP-игрок может пользоваться этой командой!", PREFIX);
return false;
}
if(!is_user_alive(id)) {
client_print_color(id, print_team_default, "%s Для использования данной команды вы должны быть живы!", PREFIX);
return false;
}
if(!g_iRoundCount) {
client_print_color(id, print_team_default, "%s Разминочный раунд. Запрещено пользоваться командой!", PREFIX);
return false;
}
if(g_bUseWeapon[id]) {
client_print_color(id, print_team_default, "%s Вы уже брали оружие в этом раунде!", PREFIX);
return false;
}
if(g_iRoundCount < VIPROUND) {
client_print_color(id, print_team_default, "%s Оружия доступны только с ^3%d ^1раунда!", PREFIX, VIPROUND);
return false;
}
return true;
}
bool:isAllowToUse(id) {
if(g_bBlockBonus) {
client_print_color(id, print_team_default, "%s На этой карте VIP не работает!", PREFIX);
return false;
}
if(!g_bUserVip[id]) {
client_print_color(id, print_team_default, "%s Только VIP-игрок может пользоваться этой командой!", PREFIX);
return false;
}
if(!is_user_alive(id)) {
client_print_color(id, print_team_default, "%s Для использования данной команды вы должны быть живы!", PREFIX);
return false;
}
if(!g_iRoundCount) {
client_print_color(id, print_team_default, "%s Разминочный раунд. Запрещено пользоваться командой!", PREFIX);
return false;
}
if(g_bUseWeapon[id]) {
client_print_color(id, print_team_default, "%s Вы уже брали оружие в этом раунде!", PREFIX);
return false;
}
if(g_iRoundCount < VIPROUND) {
client_print_color(id, print_team_default, "%s Оружия доступны только с ^3%d ^1раунда!", PREFIX, VIPROUND);
return false;
}
return true;
}
#if defined DAMAGER
public CBasePlayer_TakeDamage(victim, inflictor, attacker, Float:damage)
{
if (!g_izSwitchDmg[attacker])
return;
if (is_user_connected(attacker) && IsPlayer(attacker) && get_member(victim, m_iTeam) != get_member(attacker, m_iTeam))
{
static g_Damage;
g_Damage = floatround(damage, floatround_floor);
if (g_Damage > 0)
{
if (IsPlayer(attacker) && is_user_connected(attacker) && is_user_vip(attacker))
{
static iPos;
iPos = ++g_iPlayerPos[attacker];
if (iPos == sizeof(g_flCoords))
iPos = g_iPlayerPos[attacker] = 0;
set_hudmessage(0, 100, 200, Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 2, 0.5, 1.5, 0.02, 0.02, -1);
ShowSyncHudMsg(attacker, g_MsgSyncDmg, "%d^n", g_Damage);
}
}
}
}
#endif
#if defined DAMAGER
public CBasePlayer_TakeDamage(victim, inflictor, attacker, Float:damage)
{
if (
is_user_connected(attacker)
&& IsPlayer(attacker)
&& get_member(victim, m_iTeam) != get_member(attacker, m_iTeam)
&& g_izSwitchDmg[attacker]
) {
static g_Damage;
g_Damage = floatround(damage, floatround_floor);
if (g_Damage > 0)
{
if (IsPlayer(attacker) && is_user_connected(attacker) && is_user_vip(attacker))
{
static iPos;
iPos = ++g_iPlayerPos[attacker];
if (iPos == sizeof(g_flCoords))
iPos = g_iPlayerPos[attacker] = 0;
set_hudmessage(0, 100, 200, Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 2, 0.5, 1.5, 0.02, 0.02, -1);
ShowSyncHudMsg(attacker, g_MsgSyncDmg, "%d^n", g_Damage);
}
}
}
}
#endif
с этим кодом проверь, если не будет ошибок обновлю 1-й пост:Coder, чета ошибка в логах появилосьL 01/20/2018 - 09:51:24: Start of error session.
L 01/20/2018 - 09:51:24: Info (map "de_dust2_2x2_lite2") (file "addons/amxmodx/logs/error_20180120.log")
L 01/20/2018 - 09:51:24: [AMXX] Displaying debug trace (plugin "re_vipka.amxx", version "1.4.0")
L 01/20/2018 - 09:51:24: [AMXX] Run time error 4: index out of bounds
L 01/20/2018 - 09:51:24: [AMXX] [0] re_vipka.sma::CBasePlayer_TakeDamage (line 169)
public CBasePlayer_TakeDamage(pevVictim, inflictor, pevAttacker, Float:damage) {
if(!g_isSwitchDmg[pevAttacker] || !isUserVip(pevAttacker) || pevVictim == pevAttacker || get_member(pevVictim, m_iTeam) == get_member(pevAttacker, m_iTeam)) {
return HC_CONTINUE;
}
if(IsPlayer(pevAttacker) && rg_is_player_can_takedamage(pevVictim, pevAttacker)) {
static g_iDamage;
g_iDamage = floatround(damage, floatround_floor);
if(g_iDamage > 0) {
static iPos;
iPos = ++g_iPlayerPos[pevAttacker];
if(iPos == sizeof(g_fCoords)) {
iPos = g_iPlayerPos[pevAttacker] = 0;
}
set_hudmessage(0, 100, 200, Float:g_fCoords[iPos][0], Float:g_fCoords[iPos][1], 2, 0.5, 1.5, 0.02, 0.02, -1);
ShowSyncHudMsg(pevAttacker, g_iSyncMsgDmg, "%d^n", g_iDamage);
}
}
return HC_CONTINUE;
}
Coder, проверил вроде ошибок пока нет работает и сообщения На этой карте VIP не работает!
Что я не так делаю, плагин почему то не работает?
Скачал файл .sma,
скомпилировал его
файл .sma закинул в .scripting
файл .amxx закинул в .plugins
прописал re_vipka.amxx в plugins.ini
iMap_Prefix[][] = { "awp_", "aim_", "35hp", "fy_" }; допиши префиксCoder, Неплохо бы было добавить отключение на картах $