- Код: Выделить всё
Не рекомендую использовать EngFunc_AllocString в такой конструкции, получите утечку. Сохраняйте значение в константу и вызывайте лишь единожды, если константа равна нулю. Или вовсе используйте Engine. Название макроса также вводит в заблуждение:
- Код: Выделить всё
native create_entity(const szClassname[]);
Не используйте хардкод:
- Код: Выделить всё
get_msg_arg_string(2, szIcon, 7)
>>
- Код: Выделить всё
get_msg_arg_string(2, szIcon, charsmax(szIcon))
А также записи в одну строку:
- Код: Выделить всё
public fm_PlayerPostThinkPost(id) if(is_user_alive(id)) dllfunc(DLLFunc_Touch, g_BuyZone, id)
- Код: Выделить всё
if(equal(szIcon, "buyzone"))
return 1; return 0
Это плохо читаемый код.
В этом макросе
- Код: Выделить всё
не вижу необходимости. Конструкции подобного плана используются для удобства, чтобы не дублировать один и тот же код. У вас код не повторяется, макрос не нужен.
Добавлено спустя 10 минут 42 секунды:П.с.: кстати, да. Небольшое уточнение. Утечки в вашем коде не будет, т.к. AllocString вызовется единожды. Извиняюсь, что не уточнил сразу.