Как-то давно один "профессионал" спросил меня, мол зачем вся эта чепуха с перехватами, когда всё можно уместить в один #define?
PHP код:
stock my_AddStaticVehicle(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2)
{
print('Функция AddStaticVehicle перехвачена');
return AddStaticVehicle(modelid, spawn_x, spawn_y, spawn_z, angle, color1, color2);
}
#define AddStaticVehicle my_AddStaticVehicle
Так вот,
этот метод в корне неправильный.
Почему? Очень просто, им нельзя сделать больше одного перехвата на одну и ту же функцию.
Не верите? Тогда попробуйте скомпилировать код (выведет ошибку на втором #define AddStaticVehicle):
PHP код:
// 2-й перехватчик для AddStaticVehicle
stock my2_AddStaticVehicle(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2)
{
print('Функция AddStaticVehicle перехвачена ещё раз');
return AddStaticVehicle(modelid, spawn_x, spawn_y, spawn_z, angle, color1, color2);
}
#define AddStaticVehicle my2_AddStaticVehicle
// 1-й перехватчик для AddStaticVehicle
stock my1_AddStaticVehicle(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2)
{
print('Функция AddStaticVehicle перехвачена');
return AddStaticVehicle(modelid, spawn_x, spawn_y, spawn_z, angle, color1, color2);
}
#define AddStaticVehicle my1_AddStaticVehicle
Не получилось? Я предупреждал.
Такой способ подойдёт только если вы используете его в своём моде и только если вы перехватываете функцию один раз (хоть я этого и не рекомендую).
Но если вы используете этот ленивый способ в выкладываемых на Pro-Pawn работах (да, я смотрю на вас, авторы уроков и мануалов), даже не надейтесь, что ваша работа будет одобрена.
Вы явно ошиблись порталом, если думаете, что можно одобрить полурабочий говнокод, который может нарушить совместимость с другими работами.
> Но ведь и так сойдёт! А кому не нравится, пусть сами переделывают!!
Отправляйтесь обратно
н***й на govno-info и постите говнокод там.