Перейти к содержимому


Фотография

Ошибка плагина VIPMENU

vipmenu ошибка cs_get_user_buyzone

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 o460sa

o460sa

    Новичок

  • Пользователь
  • Pip
  • 7 сообщений

Отправлено 17 Январь 2014 - 15:03

Всем доброго времени суток форумчане,ошибка появляется не часто,просьба помочь ее исправить.

 

Ошибка:

L 01/17/2014 - 15:03:41: Start of error session.
L 01/17/2014 - 15:03:41: Info (map "de_dust2x2_mirror") (file "addons/amxmodx/logs/error_20140117.log")
L 01/17/2014 - 15:03:41: [CSTRIKE] Invalid player 22
L 01/17/2014 - 15:03:41: [AMXX] Displaying debug trace (plugin "vipmenu.amxx")
L 01/17/2014 - 15:03:41: [AMXX] Run time error 10: native error (native "cs_get_user_buyzone")
L 01/17/2014 - 15:03:41: [AMXX]    [0] textzBNPGD.sma::VIPMenu_Handler (line 100)

Сам плагин:

#include < amxmodx >
#include < fun >
#include < cstrike >
#include < colorchat >
 
#define ADMIN_LEVEL_E 65536 //Flag "q", custom

new g_iCurrentRound;

new g_msgSayText;

new bool:g_bMenuUsed[ 33 ];

public plugin_init()
{
register_plugin( "Vip", "1.0", "?" );

register_clcmd( "say /vip","CmdVIPMenu" );
register_clcmd( "vip", "CmdVIPMenu" );

register_clcmd( "say /vips", "CmdShowVIP" );

register_logevent( "Event_RoundEnd", 2, "1=Round_End" );

g_msgSayText = get_user_msgid( "SayText" );
}

public Event_RoundEnd()
{
g_iCurrentRound++;

for( new i = 0; i < sizeof g_bMenuUsed; i++ )
g_bMenuUsed[ i ] = false;

new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );

new iPlayer, szName[ 32 ];

for( new i = 0; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];

if( get_user_flags( iPlayer ) & ADMIN_LEVEL_E )
{
get_user_name( iPlayer, szName, charsmax( szName ) );

server_cmd( "wc3_givexp %s 500", szName );
cs_set_user_money(iPlayer, 16000)
}
}
}

public client_connect( id )
{
g_bMenuUsed[ id ] = false;
}

public CmdVIPMenu( id )
{ 
new hMenu = menu_create( "WAR3FT Меню (VIP):", "VIPMenu_Handler" );

if( get_user_flags( id ) & ADMIN_LEVEL_E )
menu_additem( hMenu, "Эксклюзивный набор оружия (VIP)", "0" );
else
menu_additem( hMenu, "Эксклюзивный набор оружия (VIP)", "0" );

menu_additem( hMenu, "Возможности Админки и VIP-Статуса", "1" );

menu_additem( hMenu, "Стоимость Админки и VIP-Статуса", "2" );

menu_display( id, hMenu, 0 );

return PLUGIN_HANDLED;
}

public VIPMenu_Handler( id, hMenu, iItem )
{
new szData[ 6 ], szName[ 64 ];
new iAccess, hCallback;

menu_item_getinfo( hMenu, iItem, iAccess, szData, charsmax( szData ), szName, charsmax( szName ), hCallback );

switch( str_to_num( szData ) )
{
case 0:
{
if( !( get_user_flags( id ) & ADMIN_LEVEL_E ) )
{
client_print( id, print_chat, "У вас нет VIP-Статуса!" );
return PLUGIN_HANDLED;
}

else if( g_iCurrentRound < 2 )
{
client_print( id, print_chat, "Взять оружие возможно только после первого раунда." );
return PLUGIN_HANDLED;
}

else if( !cs_get_user_buyzone( id ) )
{
client_print( id, print_chat, "Взять оружие можно ТОЛЬКО на своей базе." );
return PLUGIN_HANDLED;
}

else WeaponMenu( id );
}

case 1: show_motd( id, "vip.txt", "Возможности Админки и VIP-Статуса" );
case 2: show_motd( id, "money.txt", "Стоимость Админки и VIP-Статуса" );
}

menu_destroy( hMenu );
return PLUGIN_HANDLED;
}

public WeaponMenu( id )
{
new hMenu = menu_create( "Эксклюзивные наборы оружий (VIP):", "WeaponMenu_Handler" );
menu_additem( hMenu, "M4A1 + Deagle + HE + Frost", "1");
menu_additem( hMenu, "AK47 + Deagle + HE + Frost", "2");
menu_additem( hMenu, "AWP + Deagle + HE + Frost", "3");

menu_setprop( hMenu, MPROP_EXIT, MEXIT_ALL );

menu_display( id, hMenu, 0 );
}

public WeaponMenu_Handler( id, hMenu, iItem )
{

if( iItem == MENU_EXIT )
{
menu_destroy( hMenu );
return PLUGIN_HANDLED;
}

new szData[ 6 ], szName[ 64 ];
new iAccess, hCallback;

menu_item_getinfo( hMenu, iItem, iAccess, szData, charsmax( szData ), szName, charsmax( szName ), hCallback );

strip_user_weapons( id );

switch( str_to_num( szData ) )
{
case 1: 
{
give_item( id, "weapon_m4a1" );
cs_set_user_bpammo( id, CSW_M4A1, 90 );

give_item( id, "weapon_deagle" );
cs_set_user_bpammo( id, CSW_DEAGLE, 35 );


}

case 2:
{
give_item( id, "weapon_ak47" );
cs_set_user_bpammo( id, CSW_AK47, 90 );

give_item( id, "weapon_deagle" );
cs_set_user_bpammo( id, CSW_DEAGLE, 35 );


}
case 3:
{
give_item(id,"weapon_awp")
cs_set_user_bpammo( id, CSW_AWP, 30 );

give_item( id, "weapon_deagle" );
cs_set_user_bpammo( id, CSW_DEAGLE, 35 );


}
}

give_item( id, "weapon_knife" );

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

give_item( id, "item_assaultsuit" );
give_item( id, "item_thighpack" );

g_bMenuUsed[ id ] = true;

menu_destroy( hMenu );
return PLUGIN_HANDLED;

}

public CmdShowVIP( id ) // Taken from AMX_SUPER
{
new szMessage[ 256 ];

new szVIPNames[ 33 ][ 32 ];
new iCount, x, iLen;

new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );

new iPlayer;

for( new i = 0; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];

if( get_user_flags( iPlayer ) & ADMIN_LEVEL_E )
{
get_user_name( iPlayer, szVIPNames[ iCount++ ], 31 );
}
}

iLen = format( szMessage, charsmax( szMessage ), "^x04 Онлайн VIP Игроки : " );

if( iCount > 0 ) 
{
for( x = 0 ; x < iCount ; x++ ) 
{
iLen += format( szMessage[iLen], charsmax( szMessage ) - iLen, "%s%s ", szVIPNames[ x ], x < ( iCount - 1 ) ? ", " : "" );
if( iLen > 96 ) 
{

iLen = format( szMessage, 255, "^x04" );
}
}


}

else 
{
iLen += format( szMessage[ iLen ], charsmax( szMessage ) - iLen, "Сейчас нет VIP Игроков на сервере" );

}
}

print_message( id, msg[] ) 
{
message_begin( MSG_ONE, g_msgSayText, { 0, 0, 0 }, id );
write_byte( id );
write_string( msg );
message_end();
}



#2 ProxY

ProxY

    Пользователь

  • Пользователь
  • PipPipPip
  • 367 сообщений

Отправлено 17 Январь 2014 - 15:54

[CSTRIKE] Invalid player 22

Не видит игрока с id 22, обычно такая ошибка вызвана отсутствием проверки на наличие игрока на Сервере (is_user_alive или is_user_connected).

Блок куда нужно добавить очевиден (ищите по строке, указанной в ошибке).


  • o460sa это нравится

#3 BaHeK

BaHeK

    Пользователь

  • Модератор
  • 324 сообщений

Отправлено 17 Январь 2014 - 15:55

В VIPMenu_Handler добавь проверку на подключение игрока
if(!is_user_connected(id)) return PLUGIN_HANDLED

  • o460sa это нравится

#4 o460sa

o460sa

    Новичок

  • Пользователь
  • Pip
  • 7 сообщений

Отправлено 17 Январь 2014 - 20:50

Спасибо ребят.



#5 ProxY

ProxY

    Пользователь

  • Пользователь
  • PipPipPip
  • 367 сообщений

Отправлено 17 Январь 2014 - 23:12

Спасибо ребят.

Тема можно закрывать?



#6 softick64

softick64

    Новичок

  • Пользователь
  • Pip
  • 24 сообщений

Отправлено 18 Январь 2014 - 0:17

Удали этот плагин.Могу тебе скинуть который сам делал в начале каждого раунда игрокам дается Deagle,все гранаты,броня,патроны ко всем оружиям,и когда игрок появляется то при выдаче deagle первое выбрасывается автоматически. Если надо пиши в ЛС скину



#7 Kasper55

Kasper55

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 2 715 сообщений

Отправлено 18 Январь 2014 - 0:39

народ используйте спойлер 





Темы с аналогичным тегами vipmenu, ошибка, cs_get_user_buyzone

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных