Перейти к содержанию
NikityshkaMedvedev

warning 215.

Рекомендуемые сообщения

NikityshkaMedvedev
stock show_dialog ( playerid, dialogid, style, caption [ ], info [ ], button1 [ ], button2 [ ] )
{
	p_t_info [ playerid ] [ p_dialog ] = dialogid ;
	return ShowPlayerDialog ( playerid, dialogid, style, caption, info, button1, button2 ) ;
}
C:\Users\Ðàìçåñ\Desktop\Anspire\gamemodes\Thr.pwn(56596) : warning 215: expression has no effect
C:\Users\Ðàìçåñ\Desktop\Anspire\gamemodes\Thr.pwn(56596) : error 001: expected token: ";", but found "["
C:\Users\Ðàìçåñ\Desktop\Anspire\gamemodes\Thr.pwn(56596) : error 029: invalid expression, assumed zero
C:\Users\Ðàìçåñ\Desktop\Anspire\gamemodes\Thr.pwn(56596) : warning 215: expression has no effect
C:\Users\Ðàìçåñ\Desktop\Anspire\gamemodes\Thr.pwn(56596) : error 001: expected token: ";", but found "]"
C:\Users\Ðàìçåñ\Desktop\Anspire\gamemodes\Thr.pwn(56596) : fatal error 107: too many error messages on one line
Ошибки.

p_t_info [ playerid ] [ p_dialog ] = dialogid ;   тут ошибки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Shao

Как я понял Ты хочешь сделать некое подобие кастомной функции? В таком случаи лучше использовать перехватчики.

Код:

 

stock ac_show_dialog ( playerid, dialogid, style, caption [ ], info [ ], button1 [ ], button2 [ ] )
{
	[ p_dialog ] { playerid } = dialogid;
	return ShowPlayerDialog ( playerid, dialogid, style, caption, info, button1, button2 );
}

#if defined _ALS_ShowPlayerDialog
    #undef    ShowPlayerDialog
#else
    #define _ALS_ShowPlayerDialog
#endif
#define ShowPlayerDialog    ac_show_dialog

Ко всем new:

new p_dialog [ MAX_PLAYERS char ];

P.S отступы в коде - хорошая вещь, сам использую, но перед ; отступать не стоит.

Изменено пользователем Shao
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows

Скорее всего, p_t_info не массив или массив одномерный.

P.S.

12 часов назад, Shao сказал:

#if defined _ALS_ShowPlayerDialog    #undef    ShowPlayerDialog #else    #define _ALS_ShowPlayerDialog #endif #define ShowPlayerDialog    ac_show_dialog

Это не перехват. Вы просто даёте препроцессору макрос на замену ShowPlayerDialog на ac_show_dialog. То же самое, что и вручную заменить все ShowPlayerDialog на ac_show_dialog. Перехват (хуки) на pawn реализовать невозможно без внешних средств (да и с ними не факт, что возможно).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Shao
3 часа назад, 16Shadows сказал:

Скорее всего, p_t_info не массив или массив одномерный.

P.S.

Это не перехват. Вы просто даёте препроцессору макрос на замену ShowPlayerDialog на ac_show_dialog. То же самое, что и вручную заменить все ShowPlayerDialog на ac_show_dialog. Перехват (хуки) на pawn реализовать невозможно без внешних средств (да и с ними не факт, что возможно).

То, что p_t_info массив было понятно ещё сначала(но согласись, зачем создавать енумератор, в котором хранить одно значение, а потом создавать массив для его получения, оптимальным вариантом есть - создание переменной), по поводу перехватов - согласен, основная часть в них использует директивы препроцессора. Можно было вообще перехватить этот RPC через Raknet, и не париться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.