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

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

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

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

sizeof или charsmax, ошибка синтекса

[РЕШЕНО]
OverGame
сообщение 9.6.2015, 17:41
Сообщение #1
Стаж: 11 лет

Сообщений: 384
Благодарностей: 217
Полезность: 348

Никогда не пробовал вывести массив из массива..
Да, ранее создавал вопрос как сделать массив в массиве, как в PHP.
Так вот, теперь проблема, не могу получить количество слов в массиве (который в массиве).

Код:
sizeof ( answers [ UserData [ id ][ issue ] ] )

Код:
new const answers [ ][ ] =
{
{"Да","Нет"},


Прикрепленное изображение


Отредактировал: OverGame, - 9.6.2015, 17:57
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя neygomon
сообщение 9.6.2015, 17:54
Сообщение #2


Стаж: 14 лет

Сообщений: 1644
Благодарностей: 515
Полезность: 363

OverGame,
sizeof answers - в массиве answers
sizeof answers[i] - в массиве answers[i]

Отредактировал: neygomon, - 9.6.2015, 17:55
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
OverGame
сообщение 9.6.2015, 17:56
Сообщение #3
Стаж: 11 лет

Сообщений: 384
Благодарностей: 217
Полезность: 348

Цитата(neygomon @ 9.6.2015, 18:54) *
OverGame,
sizeof answers - в массиве answers
sizeof answers[i] - в массиве answers[i]

Эм, нет.
Мне нужно получить количество слов из answers [ 0 ]
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя neygomon
сообщение 9.6.2015, 17:59
Сообщение #4


Стаж: 14 лет

Сообщений: 1644
Благодарностей: 515
Полезность: 363

OverGame, ну и?
второй вариант для тебя подходит.
new num = charsmax(answers[0])

ps.gif Дай нормально код -_-
огрызки не интересно ковырять

Отредактировал: neygomon, - 9.6.2015, 18:00
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
OverGame
сообщение 9.6.2015, 18:00
Сообщение #5
Стаж: 11 лет

Сообщений: 384
Благодарностей: 217
Полезность: 348

Цитата(neygomon @ 9.6.2015, 18:59) *
OverGame, ну и?
второй вариант для тебя подходит.
new num = charsmax(answers[0])

ps.gif Дай нормально код -_-
огрызки не интересно ковырять

Ты сам для начала проверь
new num = charsmax(answers[0])

Для теста держи:
Код:
#include < amxmodx >
new const answers [ ][ ] =
{
{"Да","Нет"}
}

public plugin_init ( )
{
register_plugin ( "test", "0.0", "test" )
register_clcmd ( "say /test", "func_test" )
}

public func_test ( id )
{
for ( new i; i < sizeof ( answers [ 0 ] ); i++ )
client_print(id,print_chat,"%s",answers [0][i])
}


Отредактировал: OverGame, - 9.6.2015, 18:06
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя neygomon
сообщение 9.6.2015, 18:16
Сообщение #6


Стаж: 14 лет

Сообщений: 1644
Благодарностей: 515
Полезность: 363

OverGame, а ты хочешь везде разное кол-во?

ps.gif Попахивает очередным плагинов вопросов/ответов :D
ps.gif ps.gif Как вы все бесите после скобок и перед ними пробелы ставить -_-

Отредактировал: neygomon, - 9.6.2015, 18:17
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
OverGame
сообщение 9.6.2015, 18:17
Сообщение #7
Стаж: 11 лет

Сообщений: 384
Благодарностей: 217
Полезность: 348

Цитата(neygomon @ 9.6.2015, 19:16) *
OverGame, а ты хочешь везде разное кол-во?

ps.gif Попахивает очередным плагинов вопросов/ответов :D


В каждой категории будет определенное кол-во вопросов, я делаю тест для джайла (для кт).

ps.gif точнее сделал, но вот проблема одна осталась.

Отредактировал: OverGame, - 9.6.2015, 18:22
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя neygomon
сообщение 9.6.2015, 18:25
Сообщение #8


Стаж: 14 лет

Сообщений: 1644
Благодарностей: 515
Полезность: 363

OverGame, коряво, но считай циклом тогда варианты.
ЗЫ нагрузки это не добавит однозначно.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
OverGame
сообщение 9.6.2015, 18:32
Сообщение #9
Стаж: 11 лет

Сообщений: 384
Благодарностей: 217
Полезность: 348

Цитата(neygomon @ 9.6.2015, 18:25) *
OverGame, коряво, но считай циклом тогда варианты.
ЗЫ нагрузки это не добавит однозначно.

эм, что?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Nixon
сообщение 9.6.2015, 18:47
Сообщение #10


Стаж: 12 лет

Сообщений: 399
Благодарностей: 192
Полезность: 589

Цитата(OverGame @ 9.6.2015, 20:00) *
Ты сам для начала проверь
new num = charsmax(answers[0])

Для теста держи:
Код:
#include < amxmodx >
new const answers [ ][ ] =
{
{"Да","Нет"}
}

public plugin_init ( )
{
register_plugin ( "test", "0.0", "test" )
register_clcmd ( "say /test", "func_test" )
}

public func_test ( id )
{
for ( new i; i < sizeof ( answers [ 0 ] ); i++ )
client_print(id,print_chat,"%s",answers [0][i])
}


Если правильно понял
Код:

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[]));
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
OverGame
сообщение 9.6.2015, 18:50
Сообщение #11
Стаж: 11 лет

Сообщений: 384
Благодарностей: 217
Полезность: 348

Цитата(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
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: