Ok this is what happens with the example below. When you start up the server with this. It will print out only one message on Round_Start. Then if you change map. It will print two of the same message out. Then change map again it will print 3 of the same message out and so on and so on. I have include a log
Code:
#include <amxmodx>
#include <fakemeta>
public plugin_init()
{
register_plugin("", "", "")
register_forward(FM_AlertMessage, "fn_alertmessage", 0)
}
public fn_alertmessage(at_type, const message[])
{
log_amx("AlertMessage %i", at_type)
log_amx("AlertMessage %s", message)
return FMRES_IGNORED
}
Quote:
L 02/04/2006 - 19:12:08: -------- Mapchange to cs_office --------
L 02/04/2006 - 19:12:18: [fakemeta_register_foward.amxx] AlertMessage 5
L 02/04/2006 - 19:12:18: [fakemeta_register_foward.amxx] AlertMessage World triggered "Round_Start"
L 02/04/2006 - 19:12:59: [admincmd.amxx] Cmd: "Counter-Strike 1.6 Server<0><><>" changelevel "cs_office"
L 02/04/2006 - 19:13:02: -------- Mapchange to cs_office --------
L 02/04/2006 - 19:13:10: [fakemeta_register_foward.amxx] AlertMessage 5
L 02/04/2006 - 19:13:10: [fakemeta_register_foward.amxx] AlertMessage World triggered "Round_Start"
L 02/04/2006 - 19:13:10: [fakemeta_register_foward.amxx] AlertMessage 5
L 02/04/2006 - 19:13:10: [fakemeta_register_foward.amxx] AlertMessage World triggered "Round_Start"
L 02/04/2006 - 19:13:28: [admincmd.amxx] Cmd: "Counter-Strike 1.6 Server<0><><>" changelevel "de_dust"
L 02/04/2006 - 19:131: -------- Mapchange to de_dust --------
L 02/04/2006 - 19:13:40: [fakemeta_register_foward.amxx] AlertMessage 5
L 02/04/2006 - 19:13:40: [fakemeta_register_foward.amxx] AlertMessage World triggered "Round_Start"
L 02/04/2006 - 19:13:40: [fakemeta_register_foward.amxx] AlertMessage 5
L 02/04/2006 - 19:13:40: [fakemeta_register_foward.amxx] AlertMessage World triggered "Round_Start"
L 02/04/2006 - 19:13:40: [fakemeta_register_foward.amxx] AlertMessage 5
L 02/04/2006 - 19:13:40: [fakemeta_register_foward.amxx] AlertMessage World triggered "Round_Start"
|
I think this is an another bug below. This one is that when you register both non-post and post it uses the same public function even though you have register each register_forward to it own public function.
Code:
#include <amxmodx>
#include <fakemeta>
public plugin_init()
{
register_plugin("", "", "")
register_forward(FM_AlertMessage, "fn_alertmessage", 0)
register_forward(FM_AlertMessage, "fn_alertmessage_post", 1)
register_logevent("NewRound", 2, "0=World triggered", "1=Round_Start")
}
public NewRound()
{
log_amx("New Round")
}
public fn_alertmessage(at_type, const message[])
{
log_amx("AlertMessage_Post %i", at_type)
log_amx("AlertMessage_Post %s", message)
}
public fn_alertmessage_post(at_type, const message[])
{
log_amx("AlertMessage_Post %i", at_type)
log_amx("AlertMessage_Post %s", message)
}
L 02/04/2006 - 22:17
7: [fakemeta_register_foward.amxx] AlertMessage_Post 5
L 02/04/2006 - 22:17
7: [fakemeta_register_foward.amxx] AlertMessage_Post World triggered "Round_Start"
L 02/04/2006 - 22:17
7: [fakemeta_register_foward.amxx] New Round
L 02/04/2006 - 22:17
7: [fakemeta_register_foward.amxx] AlertMessage_Post 5
L 02/04/2006 - 22:17
7: [fakemeta_register_foward.amxx] AlertMessage_Post World triggered "Round_Start"
This is another one bug below I believe. register_forward(FM_AlertMessage Post will not be called without having to register_foward(FM_AlertMessage Non-Post.
Code:
#include <amxmodx>
#include <fakemeta>
public plugin_init()
{
register_plugin("", "", "")
register_forward(FM_AlertMessage, "fn_alertmessage_post", 1)
register_logevent("NewRound", 2, "0=World triggered", "1=Round_Start")
}
public NewRound()
{
log_amx("New Round")
}
public fn_alertmessage_post(at_type, const message[])
{
log_amx("AlertMessage_Post %i", at_type)
log_amx("AlertMessage_Post %s", message)
}
I have tried using fakemeta 1.60 and fakemeta 1.65 in the cvs with the same result. I also tried using another forward's sand they do not do this.
__________________