Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Formatted Dialog ASM by BJIADOKC, Daniel_Cortez, O.K.Style™
- forward ASM_Hook(arg_0[], arg_1, Float:arg_2);
- public ASM_Hook(arg_0[], arg_1, Float:arg_2)
- {
- #emit STACK 20
- #emit ZERO.pri
- #emit ZERO.alt
- format(arg_0, 1, "%s%d%f", arg_0, arg_1, arg_2);
- ShowPlayerDialog(-1, -1, -1, "", arg_0, "", "");
- #emit RETN
- return 1;
- }
- stock ShowPlayerFormattedDialog(playerid, dialogid, style, caption[], button1[], button2[], content[], {Float, _}:...)
- {
- new argc = (numargs() - 7) << 2;
- if(argc == 0)
- {
- #emit PUSH.S button2
- #emit PUSH.S button1
- #emit PUSH.S content
- #emit PUSH.S caption
- #emit PUSH.S dialogid
- #emit PUSH.S style
- #emit PUSH.S playerid
- #emit PUSH.C 24
- #emit SYSREQ.C ShowPlayerDialog
- #emit STACK 32
- }
- else
- {
- new output[2048], arg_start, arg_end;
- #emit CONST.alt content
- #emit LCTRL 5
- #emit ADD
- #emit STOR.S.pri arg_start
- #emit LOAD.S.alt argc
- #emit ADD
- #emit STOR.S.pri arg_end
- do
- {
- #emit LOAD.I
- #emit PUSH.pri
- arg_end -= 4;
- #emit LOAD.S.pri arg_end
- }
- while(arg_end > arg_start);
- #emit PUSH.S content
- #emit PUSH.C 2048
- #emit PUSH.ADR output
- argc += 12;
- #emit PUSH.S argc
- #emit SYSREQ.C format
- argc += 4;
- #emit LCTRL 4
- #emit LOAD.S.alt argc
- #emit ADD
- #emit SCTRL 4
- #emit PUSH.S button2
- #emit PUSH.S button1
- #emit PUSH.ADR output
- #emit PUSH.S caption
- #emit PUSH.S dialogid
- #emit PUSH.S style
- #emit PUSH.S playerid
- #emit PUSH.C 28
- #emit SYSREQ.C ShowPlayerDialog
- #emit STACK 32
- }
- #emit RETN
- return 1;
- }
- stock ShowFormattedDialogForAll(dialogid, style, caption[], button1[], button2[], content[], {Float, _}:...)
- {
- new argc = (numargs() - 7) << 2, all_pls_dlg = GetMaxPlayers();
- if(argc == 0)
- {
- #emit PUSH.S button2
- #emit PUSH.S button1
- #emit PUSH.S content
- #emit PUSH.S caption
- #emit PUSH.S dialogid
- #emit PUSH.S style
- do
- {
- all_pls_dlg--;
- #emit PUSH.S all_pls_dlg
- #emit PUSH.C 28
- #emit SYSREQ.C ShowPlayerDialog
- #emit stack 8
- }
- while(all_pls_dlg != 0);
- #emit STACK 24
- }
- else
- {
- new output[2048], arg_start, arg_end;
- #emit CONST.alt content
- #emit LCTRL 5
- #emit ADD
- #emit STOR.S.pri arg_start
- #emit LOAD.S.alt argc
- #emit ADD
- #emit STOR.S.pri arg_end
- do
- {
- #emit LOAD.I
- #emit PUSH.pri
- arg_end -= 4;
- #emit LOAD.S.pri arg_end
- }
- while(arg_end > arg_start);
- #emit PUSH.S content
- #emit PUSH.C 2048
- #emit PUSH.ADR output
- argc += 12;
- #emit PUSH.S argc
- #emit SYSREQ.C format
- argc += 4;
- #emit LCTRL 4
- #emit LOAD.S.alt argc
- #emit ADD
- #emit SCTRL 4
- #emit PUSH.S button2
- #emit PUSH.S button1
- #emit PUSH.ADR output
- #emit PUSH.S caption
- #emit PUSH.S dialogid
- #emit PUSH.S style
- do
- {
- all_pls_dlg--;
- #emit PUSH.S all_pls_dlg
- #emit PUSH.C 28
- #emit SYSREQ.C ShowPlayerDialog
- #emit stack 8
- }
- while(all_pls_dlg != 0);
- #emit STACK 24
- }
- #emit RETN
- return 1;
- }
- #define ShowPlayerDialog(%0,%1,%2,%3,%4,%5,%6) ShowPlayerFormattedDialog(%0, %1, %2, %3, %5, %6, %4)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement