// Edited by 77
Dragons of Time Classic - Free Ultima Online Server! 2000-2009 ( i made it look prettier =) )
[DEFNAME admin_strings]
admin_plevel_3 "Seer"
admin_plevel_4 "Game Master"
admin_plevel_5 "Developer"
admin_plevel_6 "Administrator"
admin_plevel_7 "Owner"
[DEFNAME msg_toggles]
gm_one_way 1 //Can players use reply to GM messages? 1 = no 0 = yes
msg_self 1 //players can message themselves? handy for reminders 1= yes 0 = no
list_staff 0 //Do staff show to players on the list? 1=yes 0=no
[plevel 1]
list
reply
private
[FUNCTION list]
ctag.list_numplayers=0
ctag.list_page=1
serv.allclients list_getplayers
ctag.list_numpages=<eval (((<ctag0.list_numplayers>-1) / 10) + 1)> // 10 players per page
dialog d_spherelist
[FUNCTION list_getplayers]
// List players in CTAGs on the caller
IF !(<def.list_staff>)
if ((<account.plevel> > <src.account.plevel>) || ((<tag0.private>) && !(<sRC.isgm>)
return
else
src.ctag0.list_numplayers += 1
try src.ctag.list_p<eval (<src.ctag0.list_numplayers>)>=<uid>
endif
ELSE
if ((<tag0.private>) && !(<sRC.isgm>)
return
else
src.ctag0.list_numplayers += 1
try src.ctag.list_p<eval (<src.ctag0.list_numplayers>)>=<uid>
endif
ENDIF
[FUNCTION list_getplayers_list]
// Function I used to list page system
for x 1 50
try ctag.list_p<eval <local.x>>=01
end
ctag.list_numplayers=50
[DIALOG d_spherelist]
100,100
src.dialogclose d_spherelist
// Let's not break some (perhaps) scripts using OBJ
local.oldobj=<obj>
page 0 // Basic layout
GUMPPIC 10 10 1226 //GUMPPIC 10 10 027 // Background
dtext 75 15 0 <serv.servname>
dtext 32 37 1152 Listed Clients: <eval <ctag0.list_numplayers>> / <serv.clients>
page 1 // Player data
//dtext 32 55 1152 Msg
//dtext 75 55 1152 Character Name
list_renderdialog
obj=<local.oldobj>
if (<ctag0.list_page> > 1)
// Back button
button 28 274 4014 4015 1 0 1
endif
if (<ctag0.list_page> < <ctag0.list_numpages>)
// Forward button
button 184 274 4005 4006 1 0 2
endif
dtext 75 270 1152 Page <eval <ctag0.list_page>> / <eval <ctag0.list_numpages>>
[FUNCTION list_renderdialog]
local.y=55
for x <eval ((<ctag0.list_page> - 1) * 10) + 1> <eval (<ctag0.list_page> * 10)>
if (<local.x> > <ctag0.list_numplayers>)
return
endif
obj=<ctag0.list_p<eval <local.x>>>
local.hue=0480
IF (<OBJ.UID>==<SRC.UID>)
IF (<def.msg_self>)
button 30 <local.y> 4011 4029 1 0 <eval (1000 + <local.x>)>
dtext 75 <local.y> 0779 <QVAL <OBJ.FINDID.i_rune_incognito.UID> ? <OBJ.FINDID.i_rune_incognito.NAME> : <obj.name>>
ELSE
dtext 75 <local.y> 0779 <QVAL <OBJ.FINDID.i_rune_incognito.UID> ? <OBJ.FINDID.i_rune_incognito.NAME> : <obj.name>>
ENDIF
ELSE
IF (<OBJ.ACCOUNT.PLEVEL> > <SRC.ACCOUNT.PLEVEL>)
dtext 75 <local.y> <local.hue> <QVAL <OBJ.FINDID.i_rune_incognito.UID> ? <OBJ.FINDID.i_rune_incognito.NAME> : <obj.name>>
ELSE
button 30 <local.y> 4011 4029 1 0 <eval (1000 + <local.x>)>
dtext 75 <local.y> <local.hue> <QVAL <OBJ.FINDID.i_rune_incognito.UID> ? <OBJ.FINDID.i_rune_incognito.NAME> : <obj.name>>
ENDIF
ENDIF
local.y += 20
end
[DIALOG d_spherelist BUTTON]
on=1 // Back button
ctag.list_page -= 1
if (<ctag0.list_page> < 1)
// Bad! And shouldnt happen
sysmessage Error: list_page value went too low, please report (<ctag0.list_page> / <ctag0.list_numpages>)
ctag.list_page=1
endif
dialog d_spherelist
on=2 // Forward button
ctag.list_page += 1
if (<ctag0.list_page> > <ctag0.list_numpages>)
// Bad! Should also not happen
sysmessage Error: list_page value went too high, please report (<ctag0.list_page> / <ctag0.list_numpages>)
ctag.list_page=<ctag0.list_numpages>
endif
dialog d_spherelist
on=1001,65535 // Player buttons
try uid.<ctag0.list_p<eval <argn> - 1000>>.dialog d_playermsg, 2
[DIALOG d_playermsg]
100,100
SRC.CTAG0.RECEIVER=<UID>
//NOCLOSE
PAGE 0
GUMPPIC 10 10 1226
DTEXT 36 40 0835 Querido <name>:
dtextentry 36 58 175 200 0 0
BUTTON 35 230 4005 4006 1 0 1
DTEXT 70 230 0 Enviar
[DIALOG d_playermsg button]
ON=0
src.ctag0.receiver=
RETURN 1
on=1
obj=<src.ctag0.receiver>
IF (<SRC.TAG0.PRIVATE>)
SRC.TAG.PRIVATE=
SRC.SYSMESSAGE Modo "Private" Desactivado
ENDIF
IF (<isempty <ARGTXT[0]>>)
SYSMESSAGE You didn't enter any text use cancel or right click to cancel sending a message.
dialog d_playermsg
return 1
ENDIF
FOR <SERV.CLIENTS>
IF !(STRCMPI("<OBJ.name>","<name>"))
IF !(<SRC.ISGM>)
IF !(<ISEMPTY <OBJ.CTAG.MESSAGE3>>)
SRC.SYSMESSAGE This person's message queue is currently full
SRC.SYSMESSAGE Please try again later
RETURN 1
ENDIF
IF !(<ISEMPTY <OBJ.CTAG.MESSAGE>>)
IF (<ISEMPTY <OBJ.CTAG.MESSAGE2>>)
OBJ.ctag0.message2 <argtxt[0]>
OBJ.ctag0.reply2 = <src.uid>
SRC.SYSMESSAGE Message queued (2nd)
OBJ.SYSMESSAGE You have 2 messages in your queue
ELSE
OBJ.ctag0.message3 <argtxt[0]>
OBJ.ctag0.reply3 = <src.uid>
SRC.SYSMESSAGE Message queued (3rd)
OBJ.SYSMESSAGE You have 3 messages in your queue
OBJ.SYSMESSAGE You will not receive anymore messages until you clear you queue
ENDIF
ELSE
OBJ.ctag0.message <argtxt[0]>
OBJ.ctag0.reply = <src.uid>
TRYSRC <OBJ> dialog d_pm_notify
SRC.SYSMESSAGE Mensaje enviado!
ENDIF
ELSE
OBJ.ctag0.prefix <def.admin_plevel_<src.account.plevel>>
OBJ.ctag0.gmreply <src.uid>
OBJ.CTAG0.gmmessage <argtxt[0]>
TRYSRC <OBJ> src.dialog d_gmpm_notify
SRC.SYSMESSAGE Mensaje enviado!
ENDIF
RETURN 1
ENDIF
ENDFOR
src.ctag.receiver=
[FUNCTION private]
IF (<tag0.Private>)
tag.private=
SYSMESSAGE Privacidad Activada
else
tag.private=1
SYSMESSAGE Privacidad Desactivada
SYSMESSAGE No puedes enviar ni recibir mensajes en modo Privado.
endif
[DIALOG d_pm_notify]
50,50
//NOCLOSE
PAGE 0
DTEXT 12 0 034 Mensaje Nuevo:
button 20 20 01e 01e 1 0 1
DTEXT 18 41 0835 Abrir
[DIALOG d_pm_notify BUTTON]
ON=1
SRC.DIALOG d_pm
[DIALOG d_pm]
100,100
//NOCLOSE
PAGE 0
GUMPPIC 10 10 1226
DTEXT 36 40 0835 De <uid.<ctag.reply>.name>:
dhtmlgump 36 58 175 200 0 0 <src.ctag0.message>
//button 210 15 4017 4018 1 0 0
BUTTON 35 230 4005 4006 1 0 1
DTEXT 70 230 0 Responder
[DIALOG d_pm BUTTON]
ON=0
f_msg_queue
ON=1
SRC.CTAG.TO=<src.ctag.reply>
SRC.DIALOG d_reply
[DIALOG d_gmpm_notify]
150,50
//NOCLOSE
PAGE 0
DTEXT 12 0 034 NUEVO MENSAJE:
button 20 20 01e 01e 1 0 1
DTEXT 1 21 0835 DEL STAFF
DTEXT 18 41 0835 Abrir
[DIALOG d_gmpm_notify BUTTON]
ON=1
SRC.DIALOG d_gmpm
[DIALOG d_gmpm]
100,100
//NOCLOSE
PAGE 0
GUMPPIC 10 10 1226
DTEXT 36 40 0835 De <uid.<ctag.gmreply>.name>:
if !<def.gm_one_way>
BUTTON 35 230 4005 4006 1 0 1
DTEXT 70 230 0 Responder
ENDIF
dhtmlgump 36 58 175 200 0 0 <src.ctag.gmmessage>
//button 210 15 4017 4018 1 0 0
[DIALOG d_gmpm BUTTON]
ON=0
SRC.CTAG.GMMESSAGE=
ON=1
SRC.CTAG.TO=<SRC.CTAG.GMREPLY>
SRC.DIALOG d_reply
[DIALOG d_reply]
100,100
//NOCLOSE
PAGE 0
GUMPPIC 10 10 1226
DTEXT 36 40 0835 Querido <uid.<ctag.to>.name>:
dtextentry 36 58 175 200 0 0
BUTTON 35 230 4005 4006 1 0 1
DTEXT 70 230 0 Enviar
[DIALOG d_reply BUTTON]
ON=0
SRC.CTAG.TO=
SRC.CTAG0.MESSAGE=
src.ctag.gmmessage=
src.ctag.gmreply=
SRC.f_msg_queue
on=1
IF (<isempty <ARGTXT[0]>>)
SYSMESSAGE No ingresaste ningun texto, haz click en cancelar o clik con el boton derecho.
dialog d_reply
return 1
ENDIF
OBJ=<src.ctag0.to>
IF !(<OBJ.isonline>) || (<OBJ.tag0.private>)
SYSMESSAGE Esta persona no esta mas online, o esta en modo privado
SRC.CTAG.REPLY=
ELSE
IF (<ISGM>)
OBJ.ctag0.gmmessage <argtxt[0]>
OBJ.ctag0.gmreply = <src.uid>
SRC.SYSMESSAGE Message sent!
TRYSRC <OBJ> dialog d_gmpm_notify
SRC.CTAG.TO=
src.ctag.receiver=
src.f_msg_queue
RETURN 1
ELSE
IF !(<ISEMPTY <OBJ.CTAG.MESSAGE3>>)
SRC.SYSMESSAGE Esta persona tiene la casilla de mensajes al maximo.
SRC.SYSMESSAGE Por favor intenta despues.
SRC.CTAG.TO=
IF !(<OBJ.ISGM>)
src.f_msg_queue
ENDIF
RETURN 1
ENDIF
IF !(<ISEMPTY <OBJ.CTAG.MESSAGE>>)
IF (<ISEMPTY <OBJ.CTAG.MESSAGE2>>)
OBJ.ctag0.message2 <argtxt[0]>
OBJ.ctag0.reply2 = <src.uid>
SRC.SYSMESSAGE Mensaje en casilla (2nd)
OBJ.SYSMESSAGE Tienes dos mensajes en tu casilla.
SRC.CTAG.TO=
IF !(<OBJ.ISGM>)
src.f_msg_queue
ENDIF
RETURN 1
ELSE
OBJ.ctag0.message3 <argtxt[0]>
OBJ.ctag0.reply3 = <src.uid>
SRC.SYSMESSAGE Mensaje en casilla (3rd)
OBJ.SYSMESSAGE Tienes tres mensajes en tu casilla.
OBJ.SYSMESSAGE No puedes recibir mas mensajes hasta que no vacies tu casilla.
SRC.CTAG.TO=
IF !(<OBJ.ISGM>)
src.f_msg_queue
ENDIF
RETURN 1
ENDIF
ELSE
OBJ.ctag0.reply = <src.uid>
OBJ.ctag0.message <argtxt[0]>
SRC.SYSMESSAGE Message sent!
TRYSRC <OBJ> dialog d_pm_notify
SRC.CTAG.TO=
IF !(<OBJ.ISGM>)
src.f_msg_queue
ENDIF
RETURN 1
ENDIF
ENDIF
src.ctag.receiver=
src.ctag.gmmessage=
src.ctag.gmreply=
[FUNCTION f_msg_queue]
IF (<ISEMPTY <SRC.CTAG.MESSAGE2>>)
SRC.CTAG.SENDER=
SRC.CTAG.REPLY=
SRC.CTAG.MESSAGE=
ELSE
SRC.CTAG.SENDER=<SRC.CTAG.SENDER2>
SRC.CTAG.REPLY=<SRC.CTAG.REPLY2>
SRC.CTAG.MESSAGE=<SRC.CTAG.MESSAGE2>
SRC.CTAG.SENDER2=
SRC.CTAG.REPLY2=
SRC.CTAG.MESSAGE2=
SRC.DIALOG d_pm_notify
ENDIF
IF !(<ISEMPTY <SRC.CTAG.MESSAGE3>>)
SRC.CTAG.SENDER2=<SRC.CTAG.SENDER3>
SRC.CTAG.REPLY2=<SRC.CTAG.REPLY3>
SRC.CTAG.MESSAGE2=<SRC.CTAG.MESSAGE3>
SRC.CTAG.SENDER3=
SRC.CTAG.REPLY3=
SRC.CTAG.MESSAGE3=
ELSE
SRC.CTAG.SENDER2=
SRC.CTAG.REPLY2=
SRC.CTAG.MESSAGE2=
ENDIF
[EOF]