alliedmodders / amxmodx

AMX Mod X - Half-Life 1 Scripting and Administration
http://www.amxmodx.org/
499 stars 203 forks source link

MENU_TIMEOUT not working #839

Closed stefanofabi closed 1 year ago

stefanofabi commented 4 years ago

At the end of the menu time it does not close and executes the controller action but only does so when the user selects a menu option.

Use AMXX 1.9.5229 edit

xLeviNx commented 4 years ago

Why are you using AMXX 1.8.9? Let alone I don't even remember there being one.

Provide more info. There's an outline for it.

stefanofabi commented 4 years ago

Sorry, it's version 1.9.5229. It is on the official page of amxmodx

This is part of my menu code

public show_menu(id) { new menu = menu_create("Prueba", "handler");

menu_additem(menu, "opc 1", "1");
menu_additem(menu, "opc 2", "2");

//menu_setprop( menu, MPROP_EXIT, MEXIT_NEVER );
menu_display(id, menu, 0, 5);

return PLUGIN_HANDLED;

}

public handler(id, menu, item) { if (item == MENU_TIMEOUT) { return PLUGIN_HANDLED; }

}

Clearly after 5 seconds you should close the menu and execute an action and it does not.

Meta list

Currently loaded plugins:

  description stat pend file vers src load unlod

[1] AMX Mod X RUN - amxmodx_mm_i386. v1.9.0.5 ini Start ANY

[2] dproto_EF RUN - dproto_i386.so v0.9.582 ini Start Never

[3] RUN VoiceTranscoder - VoiceTranscoder. v2017RC4 ini ANY ANY

[4] LocalizeBug Fix RUN - localizebugfix_m v2.3 ini Start Never

[5] Ham Sandwich RUN - hamsandwich_amxx v1.9.0.5 pl1 ANY ANY

[6] CSX RUN - csx_amxx_i386.so v1.9.0.5 pl1 ANY ANY

[7] CStrike RUN - cstrike_amxx_i38 v1.9.0.5 pl1 ANY ANY

[8] Engine RUN - engine_amxx_i386 v1.9.0.5 pl1 ANY ANY

[9] FakeMeta RUN - fakemeta_amxx_i3 v1.9.0.5 pl1 ANY ANY

[10] Fun RUN - fun_amxx_i386.so v1.9.0.5 pl1 ANY ANY

10 plugins, 10 running

Currently loaded plugins:

   name version author file status

[1] Admin Base 1.9.0.5263 AMXX Dev Team admin.amxx running

[2] Admin Commands 1.9.0.5263 AMXX Dev Team admincmd.amxx running

[3] Admin Help 1.9.0.5263 AMXX Dev Team adminhelp.amxx running

[4] Slots Reservation 1.9.0.5263 AMXX Dev Team adminslots.amxx running

[5] Multi-Lingual System 1.9.0.5263 AMXX Dev Team multilingual.am running

[6] Menus Front-End 1.9.0.5263 AMXX Dev Team menufront.amxx running

[7] Commands Menu 1.9.0.5263 AMXX Dev Team cmdmenu.amxx running

[8] Players Menu 1.9.0.5263 AMXX Dev Team plmenu.amxx running

[9] Maps Menu 1.9.0.5263 AMXX Dev Team mapsmenu.amxx running

[10] Plugin Menu 1.9.0.5263 AMXX Dev Team pluginmenu.amxx running

[11] Admin Chat 1.9.0.5263 AMXX Dev Team adminchat.amxx running

[12] Anti Flood 1.9.0.5263 AMXX Dev Team antiflood.amxx running

[13] Scrolling Message 1.9.0.5263 AMXX Dev Team scrollmsg.amxx running

[14] Info. Messages 1.9.0.5263 AMXX Dev Team imessage.amxx running

[15] Admin Votes 1.9.0.5263 AMXX Dev Team adminvote.amxx running

[16] NextMap 1.9.0.5263 AMXX Dev Team nextmap.amxx running

[17] Nextmap Chooser 1.9.0.5263 AMXX Dev Team mapchooser.amxx running

[18] TimeLeft 1.9.0.5263 AMXX Dev Team timeleft.amxx running

[19] Pause Plugins 1.9.0.5263 AMXX Dev Team pausecfg.amxx running

[20] Stats Configuration 1.9.0.5263 AMXX Dev Team statscfg.amxx running

[21] StatsX 1.9.0.5263 AMXX Dev Team statsx.amxx running

21 plugins, 21 running

Protocol version 48 Exe version 1.1.2.7/Stdio (cstrike) Exe build: 17:35:12 Jul 5 2017 (7559)

Nextra commented 4 years ago

Clearly after 5 seconds you should close the menu and execute an action and it does not.

No. This is not how the API was designed, and it is documented that this is not how it works.

AMXX does not actively poll the clients to close the menu for you, it just invalidates all further menu actions using the special MENU_TIMEOUT item. You may cancel or destroy the menu to trigger the timeout, using your own task setup.

This is a bit counter-intuitive, but it is not a bug.