natives get created in plugin_natives() not forwards...
create the forwards in plugin_init()
Using your first
example:
Code:
L 04/10/2009 - 22:11:04: [forward_test_recieve.amxx] Forward1: return 1;
L 04/10/2009 - 22:11:04: [forward_test_send.amxx] Return1 [1 / 5]: 0
L 04/10/2009 - 22:11:04: [forward_test_recieve.amxx] Forward2: return 1;
L 04/10/2009 - 22:11:04: [forward_test_send.amxx] Return2 [1 / 5]: 1
L 04/10/2009 - 22:11:04: [forward_test_recieve.amxx] Forward1: return 2;
L 04/10/2009 - 22:11:04: [forward_test_send.amxx] Return1 [2 / 5]: 0
L 04/10/2009 - 22:11:04: [forward_test_recieve.amxx] Forward2: return 2;
L 04/10/2009 - 22:11:04: [forward_test_send.amxx] Return2 [2 / 5]: 2
L 04/10/2009 - 22:11:04: [forward_test_recieve.amxx] Forward1: return 3;
L 04/10/2009 - 22:11:04: [forward_test_send.amxx] Return1 [3 / 5]: 0
L 04/10/2009 - 22:11:04: [forward_test_recieve.amxx] Forward2: return 3;
L 04/10/2009 - 22:11:04: [forward_test_send.amxx] Return2 [3 / 5]: 3
L 04/10/2009 - 22:11:04: [forward_test_recieve.amxx] Forward1: return 4;
L 04/10/2009 - 22:11:04: [forward_test_send.amxx] Return1 [4 / 5]: 0
L 04/10/2009 - 22:11:04: [forward_test_recieve.amxx] Forward2: return 4;
L 04/10/2009 - 22:11:04: [forward_test_send.amxx] Return2 [4 / 5]: 4
L 04/10/2009 - 22:11:04: [forward_test_recieve.amxx] Forward1: return 5;
L 04/10/2009 - 22:11:04: [forward_test_send.amxx] Return1 [5 / 5]: 0
L 04/10/2009 - 22:11:04: [forward_test_recieve.amxx] Forward2: return 5;
L 04/10/2009 - 22:11:04: [forward_test_send.amxx] Return2 [5 / 5]: 5;
It should have been your clue something was wrong when you never logged anything in the return sma... meaning it wasnt being run.
changed it like this:
Code:
#include <amxmodx>
#include <amxmisc>
new g_forward1;
new g_forward2;
public plugin_init()
{
register_plugin("Forward Test Sender", "0.1", "Exolent");
register_clcmd("say /forward", "CmdForward");
g_forward1 = CreateMultiForward("my_forward1", ET_IGNORE);
g_forward2 = CreateMultiForward("my_forward2", ET_STOP);
}
public plugin_natives()
{
register_library("forward_test");
}
public CmdForward()
{
new ret;
for( new i = 0; i < 5; i++ )
{
ExecuteForward(g_forward1, ret);
log_amx("Return1 [%i / 5]: %i", i + 1, ret);
ExecuteForward(g_forward2, ret);
log_amx("Return2 [%i / 5]: %i", i + 1, ret);
}
}
It should also be noted that callfunc natives are considered deprecated.
-------------
Oh and Emp`, from the man
himself. Basically difference is probably negligible.