Цитата(Nixon @ 9.6.2015, 18:47)

Если правильно понял
Код:
thx ALIK
new g_szBuffer[][][]= {
{"1", "2", "3", "4", "5"},
{"1", "2", "3", "4", "5"},
{"1", "2", "3", "4", "5"},
{"1", "2", "3", "4", "5"}
}
public plugin_init ( ) {
log_amx("*** Buf Num = %d", sizeof(g_szBuffer[]));
}
Эм, нет, не правильно понял.
Код:
#include < amxmodx >
#include < amxmisc >
#include < fakemeta >
#include < hamsandwich >
enum _:udata
{
active, issue, points
}
new UserData [ 33 ][ udata ]
new const questions [ ][ ] =
{
"Вам больше 16 лет?",
"Первое правило саймона",
"В каком случае можно^nубить заключенного? (Вы охранник)",
"Если саймона нет, CT имеет^nправо убивать заключенных?",
"Что делать, если у вас^nфанит микрофон?",
"В какой день, можно устраивать игры?",
"У вас есть микрофон?"
}
new const answers [ ][ ] =
{
{"Да","Нет"},
{"Саймон никого не слушает","Поздороваться","Его нету"},
{"Если он прыгает","Если он подал признак жизни","Невыполнение приказа","Нападение на охрану"},
{"Конечно","Только буйных","Нет не могут"},
{"Перейти за заключенных","Играть дальше","Играть в охране","Настроить микрофон"},
{"В любой день","Когда захочет саймон","Когда захочет админ","Когда надо, тогда и играем","Перед выходными"},
{"Есть","Нету"}
}
new correct_answers [ ] =
{
0, 1, 3, 1, 0, 4, 0
}
public plugin_init ( )
{
register_plugin ( "Question CT", "1.0", "OverGame" )
RegisterHam ( Ham_Spawn, "player", "ham_player_spawn" )
RegisterHam ( Ham_Killed, "player", "ham_player_kill" )
set_task ( 1.0, "verify_test", _, _, _, "b" )
}
public client_putinserver ( id )
{
if ( get_user_flags ( id ) & ADMIN_LEVEL_H )
UserData [ id ][ active ] = false
else
UserData [ id ][ active ] = true
UserData [ id ][ issue ] = 0
UserData [ id ][ points ] = 0
}
public ham_player_kill ( victim, attacker, corpse )
{
set_user_frozen ( victim, 0 )
}
public ham_player_spawn ( id )
{
set_task ( 0.4, "verify_player", id )
}
public verify_test ( )
{
for ( new id = 1; id <= get_maxplayers ( ); id++ )
{
if ( !is_user_bot ( id ) && is_user_connected ( id ) )
{
verify_player ( id )
}
}
return PLUGIN_CONTINUE
}
public verify_player ( id )
{
if ( is_user_bot ( id ) || !is_user_alive ( id ) )
return PLUGIN_HANDLED
switch ( get_user_team ( id ) )
{
case 1:
{
set_user_frozen ( id, 0 )
}
case 2:
{
if ( UserData [ id ][ active ] && UserData [ id ][ points ] < sizeof ( questions ) - 3 )
{
open_menu ( id )
set_user_frozen ( id, 1 )
}
}
}
return PLUGIN_CONTINUE
}
public open_menu ( id )
{
new szCaption [ 255 ], szTemp [ 10 ], menu
format ( szCaption, charsmax ( szCaption ), "\d[ WwW.WCRYE.Ru ]^n\rТест охраны \d[ %d / %d ]^n\y%s", UserData [ id ][ issue ], sizeof ( questions ) - 1, questions [ UserData [ id ][ issue ] ] )
menu = menu_create ( szCaption, "func_omenu" )
for ( new i; i < sizeof ( answers [ UserData [ id ][ issue ] ] ); i++ )
{
num_to_str ( i, szTemp, charsmax ( szTemp ) )
menu_additem ( menu, answers [ UserData [ id ][ issue ] ][ i ], szTemp, 0 )
}
menu_display ( id, menu, 0 )
return PLUGIN_HANDLED
}
public func_omenu ( id, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy ( menu )
return PLUGIN_HANDLED
}
new s_Data [ 6 ], s_Name [ 64 ], i_Access, i_Callback
menu_item_getinfo ( menu, item, i_Access, s_Data, charsmax ( s_Data ), s_Name, charsmax ( s_Name ), i_Callback )
new key = str_to_num ( s_Data )
if ( key == correct_answers [ UserData [ id ][ issue ] ] )
UserData [ id ][ points ]++
if ( UserData [ id ][ issue ] == sizeof ( questions ) - 1 )
{
UserData [ id ][ issue ]++
UserData [ id ][ active ] = false
} else {
UserData [ id ][ issue ]++
open_menu ( id )
}
return PLUGIN_HANDLED
}
stock set_user_frozen ( id, type )
{
switch ( type )
{
case 0:
{
set_pev ( id, pev_flags, pev ( id, pev_flags ) & ~FL_FROZEN )
}
case 1:
{
set_pev ( id, pev_flags, pev ( id, pev_flags ) | FL_FROZEN )
}
}
}
Отредактировал: OverGame, - 9.6.2015, 19:02