SphereCommunity
[CORE][FIX] GMPageDelete - Missing Catch for Clients without Chars - Printable Version

+- SphereCommunity (https://forum.spherecommunity.net)
+-- Forum: Sphere 0.56d (/Forum-Sphere-0-56d)
+--- Forum: Script Submissions (/Forum-Script-Submissions)
+--- Thread: [CORE][FIX] GMPageDelete - Missing Catch for Clients without Chars (/Thread-CORE-FIX-GMPageDelete-Missing-Catch-for-Clients-without-Chars)



[CORE][FIX] GMPageDelete - Missing Catch for Clients without Chars - Sir.Nicklas - 11-05-2019 01:09 AM

Hey,
I don't know if this is the correct place but i want to share a Fix, which was missed after <SERV.CLIENT.x> behavior was updated. After "Page" function gained a
revised version, there is a subroutine called "[FUNCTION GMPageDelete]". While walking trough the online clients, it will now try to find the uid clients like telnet logins. It cant, of course. So there is a small fix to be added, and no forther errors will show up.

ORIGINAL:

Code:
[FUNCTION GMPageDelete]
SERV.GMPAGE.<ARGS>.DELETE
CTAG.Dialog.GMPage.Selected=

IF (<SERV.CLIENTS>)

FOR 0 <eval <SERV.CLIENTS>-1>

  REF1=<SERV.CLIENT.<LOCAL._FOR>.UID>
  IF !(<isempty <REF1.CTAG.Dialog.GMPage.Selected>>)
   IF (<REF1.CTAG0.Dialog.GMPage.Selected> > <ARGS>)
    REF1.CTAG0.Dialog.GMPage.Selected --
   ELIF (<REF1.CTAG0.Dialog.GMPage.Selected> == <ARGS>)
    REF1.SYSMESSAGE @035 GM page cleared from queue
    REF1.CTAG.Dialog.GMPage.Selected=
    REF1.SDIALOG d_gmpage_queue
   ENDIF
  ELIF (<REF1.ISDIALOGOPEN.d_gmpage_queue>)
   REF1.DIALOGCLOSE d_gmpage_queue
   REF1.SDIALOG d_gmpage_queue
  ENDIF

ENDFOR

ENDIF


FIXED:
Code:
[FUNCTION GMPageDelete]
SERV.GMPAGE.<ARGS>.DELETE
CTAG.Dialog.GMPage.Selected=

IF (<SERV.CLIENTS>)

FOR 0 <eval <SERV.CLIENTS>-1>

IF (<SERV.CLIENT.<LOCAL._FOR>>)

  REF1=<SERV.CLIENT.<LOCAL._FOR>.UID>
  IF !(<isempty <REF1.CTAG.Dialog.GMPage.Selected>>)
   IF (<REF1.CTAG0.Dialog.GMPage.Selected> > <ARGS>)
    REF1.CTAG0.Dialog.GMPage.Selected --
   ELIF (<REF1.CTAG0.Dialog.GMPage.Selected> == <ARGS>)
    REF1.SYSMESSAGE @035 GM page cleared from queue
    REF1.CTAG.Dialog.GMPage.Selected=
    REF1.SDIALOG d_gmpage_queue
   ENDIF
  ELIF (<REF1.ISDIALOGOPEN.d_gmpage_queue>)
   REF1.DIALOGCLOSE d_gmpage_queue
   REF1.SDIALOG d_gmpage_queue
  ENDIF
  
  ENDIF
  
ENDFOR

ENDIF



RE: [CORE][FIX] GMPageDelete - Missing Catch for Clients without Chars - Jhobean - 11-12-2019 12:17 AM

It's this file?

https://github.com/Sphereserver/Scripts/blob/12bc08b65bc1fa64af9c658f1f36846192ae712a/sphere_dialog.scp#L1162

But where the correction exactly? I don't see difference. And what was the bug?


RE: [CORE][FIX] GMPageDelete - Missing Catch for Clients without Chars - Coruja - 11-21-2019 05:59 PM

Thx for sharing, I will merge this fix into the script pack on next update

Anyway, you can also report these bugs directly on the script pack page on github, you just need to click on "GitHub" button here on forum header and then Scripts > Issues > New issue