Добрый день (а может и вечер). Задался вопросом, а можно ли вернуть через вызов форварда строку, ну и решил сделать небольшой плагин.
Сервер ReHLDS на AMX Mod X Compiler 1.9.0.5294 с единственным плагином:
Вывод в консоли:
Вопрос: Подскажите, почему получаются подобные результаты?
Сервер ReHLDS на AMX Mod X Compiler 1.9.0.5294 с единственным плагином:
C++:
#include <amxmodx>
public plugin_init()
{
new iPluginId = register_plugin("test callfunc_begin", "N/A", "TouchMe");
new sString1[64];
new sString2[64];
new sString3[64];
setc(sString3, 63, ' '); // hack ??
callfunc_begin_i(get_func_id("MyMync", iPluginId), iPluginId);
callfunc_push_str(sString1, true); // <-- here "y"
callfunc_push_str(sString2, false); // <-- here "M"
callfunc_push_str(sString3); // <-- here "My string3"
callfunc_end();
log_amx("^n>> String1 = (%s)^n>> String2 = (%s)^n>> String2 = (%s)", sString1, sString2, sString3)
}
public MyMync(sString1[], sString2[], sString3[])
{
format(sString1, 63, "My string1");
format(sString2, 63, "My string2");
format(sString3, 63, "My string3");
}
Код:
>> String1 = (y)
>> String2 = (M)
>> String2 = (My string3)