Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> .ADMIN (Sphere 56b)
d`ArcZeal
сообщение 21.4.2018, 21:52
Сообщение #1


**********

Elder
Сообщений: 2.962
Регистрация: 27.11.2005
Группа: Пользователи
Наличность: 7868
Пользователь №: 4.522
Возраст: 34



Sphere 56b.
Измененный диалог стандартной команды .admin

Из ключевых изменений:
Если игрок рыбачит/копает/рубит, цвет никнейма изменяется.
Если игрок мертв, преступник, цвет никнейма изменяется.
Позволяет видеть, если игрок используется ассист (инжект, орион и тд.)
Руссификация

Код

[FUNCTION ADMIN]
ctag.ADMIN_numplayers=0
ctag.ADMIN_PAGE=1
serv.allclients ADMIN_getplayers
ctag.ADMIN_numPAGEs=<eval (((<ctag0.ADMIN_numplayers>-1) / 20) + 1)> // 15 players per PAGE
DIALOG D_SPHEREADMIN

[FUNCTION ADMIN_getplayers]
IF ((<ACCOUNT.PLEVEL> > <SRC.ACCOUNT.PLEVEL>) && (<FLAGS> & STATF_insubstantial) && (<DEF0.ADMIN_HIDEhighpriv>))
RETURN 1
ELSE
SRC.ctag0.ADMIN_numplayers += 1
TRY SRC.ctag.ADMIN_p<eval (<SRC.ctag0.ADMIN_numplayers>)>=<UID>
ENDIF

[FUNCTION ADMIN_getplayers_test]
FOR x 1 50
TRY ctag.ADMIN_p<eval <LOCAL.x>>=01
endFOR
ctag.ADMIN_numplayers=50

[DIALOG D_SPHEREADMIN]
0,30
SRC.DIALOGCLOSE D_SPHEREADMIN
LOCAL.oldOBJ=<OBJ>
PAGE 0
RESIZEPIC 0 0 9260 655 510

DTEXT 20 7 0487 Online: <serv.clients>
BUTTON 615 5 4017 4018 1 0 0

PAGE 1
DTEXT 45 35 025 Account
DTEXT 140 35 025 Name
DTEXT 270 35 025 IP adress
DTEXT 390 35 025 Coordinates
DTEXT 530 35 025 Client version

ADMIN_renderDIALOG
OBJ=<LOCAL.oldOBJ>

IF (<ctag0.ADMIN_PAGE> > 1)
BUTTON 20 460 4014 4015 1 0 1
ENDIF

IF (<ctag0.ADMIN_PAGE> < <ctag0.ADMIN_numPAGEs>)
BUTTON 600 460 4005 4006 1 0 2
ENDIF

DTEXT 275 460 0c1 PAGE <eval <ctag0.ADMIN_PAGE>> / <eval <ctag0.ADMIN_numPAGEs>>

[FUNCTION ADMIN_renderDIALOG]
LOCAL.y=55
FOR x <eval ((<ctag0.ADMIN_PAGE> - 1) * 20) + 1> <eval (<ctag0.ADMIN_PAGE> * 20)>
IF (<LOCAL.x> > <ctag0.ADMIN_numplayers>)
RETURN 1
ENDIF

OBJ=<ctag0.ADMIN_p<eval <LOCAL.x>>>

IF (<OBJ.FLAGS> & STATF_insubstantial)
LOCAL.hue=0450
ELSE
LOCAL.hue=0480
ENDIF

BUTTON 10 <LOCAL.y> 4005 4006 1 0 <eval (1000 + <LOCAL.x>)>

//Скрыть IP от канцлеров
IF (<EVAL <SRC.ACCOUNT.PLEVEL>>==6) || (<EVAL <SRC.ACCOUNT.PLEVEL>>==7)
DTEXT 45 <LOCAL.y> <LOCAL.hue> <QVAL <OBJ.ACCOUNT.PLEVEL>==0?(-):<QVAL <OBJ.ACCOUNT.PLEVEL>==1?:(+)>> <OBJ.ACCOUNT>
ELSE
DTEXT 45 <LOCAL.Y> 0480 x.x.x.x
ENDIF

//Отображение активности игрока путем изменения цвета никнейма
IF (<OBJ.ACTION>==SKILL_MINING)
DTEXT 140 <LOCAL.y> 443 <QVAL <OBJ.FINDID.I_RUNE_INCOGNITO.UID> ? <OBJ.FINDID.I_RUNE_INCOGNITO.NAME> : <OBJ.name>>
ELIF (<OBJ.ACTION>==SKILL_LUMBERJACK)
DTEXT 140 <LOCAL.y> 1401 <QVAL <OBJ.FINDID.I_RUNE_INCOGNITO.UID> ? <OBJ.FINDID.I_RUNE_INCOGNITO.NAME> : <OBJ.name>>
ELIF (<OBJ.ACTION>==SKILL_FISHING)
DTEXT 140 <LOCAL.y> 1301 <QVAL <OBJ.FINDID.I_RUNE_INCOGNITO.UID> ? <OBJ.FINDID.I_RUNE_INCOGNITO.NAME> : <OBJ.name>>
ELIF (<OBJ.KILLS> > 5) || (<OBJ.KARMA> < -8000)
DTEXT 140 <LOCAL.y> 0026 <QVAL <OBJ.FINDID.I_RUNE_INCOGNITO.UID> ? <OBJ.FINDID.I_RUNE_INCOGNITO.NAME> : <OBJ.name>>
ELSE
DTEXT 140 <LOCAL.y> <LOCAL.hue> <QVAL <OBJ.FINDID.I_RUNE_INCOGNITO.UID> ? <OBJ.FINDID.I_RUNE_INCOGNITO.NAME> : <OBJ.name>>
ENDIF

//IP Адресс
IF (<OBJ.UID> != <UID>) && (<DEF0.ADMIN_HIDEips>) && !(<EVAL <SRC.ACCOUNT.PLEVEL>> > 5)
DTEXT 270 <LOCAL.Y> 0480 x.x.x.x
ELIF (<EVAL <SRC.ACCOUNT.PLEVEL>>==6) || (<EVAL <SRC.ACCOUNT.PLEVEL>>==7)
DTEXT 270 <LOCAL.Y> 0480 <OBJ.ACCOUNT.LASTIP>
ENDIF

//Координаты
DTEXT 390 <LOCAL.Y> 0480 <OBJ.p.x>,<OBJ.p.y>,<OBJ.p.z>,<OBJ.p.m>

//Клиент
IF (<OBJ.clientversion>=0.0.0)
DTEXT 530 <LOCAL.Y> 802 assist
ELSE
DTEXT 530 <LOCAL.Y> 0480 <OBJ.clientversion>
ENDIF

LOCAL.y += 20
ENDFOR

[DIALOG D_SPHEREADMIN BUTTON]
ON=1
ctag.ADMIN_PAGE -= 1
IF (<ctag0.ADMIN_PAGE> < 1)
sysmessage Error: ADMIN_PAGE value went too low, please report (<ctag0.ADMIN_PAGE> / <ctag0.ADMIN_numPAGEs>)
ctag.ADMIN_PAGE=1
ENDIF
DIALOG D_SPHEREADMIN

ON=2
ctag.ADMIN_PAGE += 1
IF (<ctag0.ADMIN_PAGE> > <ctag0.ADMIN_numPAGEs>)
sysmessage Error: ADMIN_PAGE value went too high, please report (<ctag0.ADMIN_PAGE> / <ctag0.ADMIN_numPAGEs>)
ctag.ADMIN_PAGE=<ctag0.ADMIN_numPAGEs>
ENDIF
DIALOG D_SPHEREADMIN

ON=1001,65535
TRY UID.<ctag.ADMIN_p<eval <argn> - 1000>>.DIALOG D_SPHEREplayertweak, 2

[DIALOG D_SPHEREplayertweak]
0,30
SRC.DIALOGCLOSE D_SPHEREplayertweak

PAGE 0
RESIZEPIC 0 0 83 650 397
GUMPPICtiled 5 5 640 385 2604

DTEXT 20 7 0487 Онлайн: <serv.clients>
BUTTON 615 5 4017 4018 1 0 0
BUTTON 585 5 4008 4009 1 0 1

BUTTON 5 35 4005 4006 0 1 0
DTEXT 40 37 0480 Инфо игрока
BUTTON 5 55 4005 4006 0 2 0
DTEXT 40 57 0480 Команды

BUTTON 5 117 4005 4006 0 4 0
DTEXT 40 117 0480 Статы
BUTTON 5 137 4005 4006 0 3 0
DTEXT 40 137 0480 Флаги

PAGE 1
DTEXT 160 35 0c1 Имя:
DTEXT 300 35 0480 <name>
DTEXT 460 35 0c1 UID:
DTEXT 500 35 0480 <UID>

IF (<EVAL <SRC.ACCOUNT.PLEVEL>> >= 6)
DTEXT 160 55 0c1 Аккаунт:
DTEXT 300 55 0480 <ACCOUNT.name>
ENDIF

DTEXT 160 75 0c1 Титул:
DTEXT 300 75 0480 <title>
DTEXT 160 95 0c1 Плевел:
DTEXT 300 95 0480 <ACCOUNT.PLEVEL> (<DEF0.ADMIN.PLEVEL_<eval <ACCOUNT.PLEVEL>>>)

DTEXT 160 135 0c1 Версия клиента:
DTEXT 300 135 0480 <clientversion> / <reportedcliver>
DTEXT 160 155 0c1 Resdisp:
DTEXT 300 155 0480 <ACCOUNT.resdisp> (<DEF0.ADMIN_resdisp_<eval <ACCOUNT.resdisp>>>)

IF (<EVAL <SRC.ACCOUNT.PLEVEL>> >= 6)
DTEXT 160 195 0c1 First login:
DTEXT 300 195 0480 <account.firstconnectdate> from <QVAL ((<SRC.account.plevel> <= <account.plevel>) && (<def0.ADMIN_HIDEips>) && (<SRC.account.plevel> != 7) ? "x.x.x.x" : <account.firstip>>

DTEXT 160 215 0c1 Last login:
DTEXT 300 215 0480 <account.lastconnectdate> from <QVAL ((<SRC.account.plevel> <= <account.plevel>) && (<def0.ADMIN_HIDEips>) && (<SRC.account.plevel> != 7) ? "x.x.x.x" : <account.lastip>>
ENDIF

DTEXT 160 255 0c1 Позиция:
DTEXT 300 255 0480 <p.x>,<p.y>,<p.z>,<p.m>

DTEXT 160 295 0c1 Убийств:
DTEXT 300 295 0480 <kills>
DTEXT 360 295 0c1 Смертей:
DTEXT 540 295 0480 <deaths>
DTEXT 160 315 0c1 Уровень еды:
DTEXT 300 315 0480 <food>

PAGE 2
BUTTON 160 40 4005 4006 1 0 21
DTEXT 200 40 0480 Отправиться к игроку.
BUTTON 160 60 4005 4006 1 0 22
DTEXT 200 60 0480 Отправиться к игроку будучи невидимым.
BUTTON 160 80 4005 4006 1 0 23
DTEXT 200 80 0480 Вызвать игрока к себе.

IF (<EVAL <SRC.ACCOUNT.PLEVEL>> >= 6)
BUTTON 160 100 4005 4006 1 0 29
DTEXT 200 100 0480 Вызвать игрока к себе в клетке.
ENDIF

BUTTON 160 120 4005 4006 1 0 24
DTEXT 200 120 0480 Следовать за игроком.
BUTTON 160 140 4005 4006 1 0 25
DTEXT 200 140 0480 <QVAL (<ACCOUNT.JAIL>) ? Простить:Посадить> этого игрока.
BUTTON 160 160 4005 4006 1 0 26
DTEXT 200 160 0480 <QVAL (<FLAGS> & STATF_DEAD)?Воскресить:Убить> этого игрока.

BUTTON 160 180 4005 4006 1 0 27
DTEXT 200 180 0480 Дисконнект игрока.

IF (<EVAL <SRC.ACCOUNT.PLEVEL>> >= 6)
BUTTON 160 200 4005 4006 1 0 28
DTEXT 200 200 025 Кикнуть и забанить игрока.
ENDIF

PAGE 3
LOCAL.flag=01
LOCAL.ox=160
LOCAL.oy=40
FOR x 0 31
checkbox <eval <LOCAL.ox>> <eval <LOCAL.oy>> 210 211 <hval (<FLAGS> & <LOCAL.flag>)> <eval 300 + <LOCAL.x>>
DTEXT <eval <LOCAL.ox> + 40> <eval <LOCAL.oy>> 0480 <DEF0.ADMIN_FLAG_<eval <LOCAL.x> + 1>>

LOCAL.flag="<LOCAL.flag> << 1"
LOCAL.flag=<hval <LOCAL.flag>>

LOCAL.oy += 20

IF (<LOCAL.oy> > 360)
LOCAL.ox += 200
LOCAL.oy = 40
ENDIF

endFOR
BUTTON 360 360 4005 4006 1 0 31
DTEXT 400 360 0c1 Set FLAGS

PAGE 4
DTEXT 160 35 0c1 Name:
DTEXT 300 35 0480 <NAME>
DTEXT 460 35 0c1 UID:
DTEXT 500 35 0480 <UID>
DTEXT 160 55 0c1 Title:
DTEXT 300 55 0480 <TITLE>

DTEXT 160 95 0c1 Strength:
DTEXT 300 95 0480 <STR>
DTEXT 360 95 0c1 Hitpoints:
DTEXT 540 95 0480 <HITS>/<maxHITS>
DTEXT 160 115 0c1 Dexterity:
DTEXT 300 115 0480 <DEX>
DTEXT 360 115 0c1 Stamina:
DTEXT 540 115 0480 <stam>/<maxstam>
DTEXT 160 135 0c1 Intelligence:
DTEXT 300 135 0480 <int>
DTEXT 360 135 0c1 Mana:
DTEXT 540 135 0480 <mana>/<maxmana>
DTEXT 160 155 0c1 Karma:
DTEXT 300 155 0480 <karma>
DTEXT 360 155 0c1 Fame:
DTEXT 540 155 0480 <FAME>

[DIALOG D_SPHEREplayertweak BUTTON]
ON=0 1
SRC.DIALOG D_SPHEREADMIN

ON=21
SRC.GO=<P>

ON=22
SERV.LOG <SRC.NAME> TELEPORT A <NAME> [FROM: <SRC.P>  TO: <P>]
SRC.INVIS 1
SRC.GO=<P>

ON=23
SERV.LOG WARNING!!! <SRC.NAME> TELEPORT A <NAME> [TO: <SRC.P>  FROM: <P>]
GO <SRC.P>

ON=24
IF (<SRC.UID> != <UID>)
SRC.FOLLOW <UID>
ENDIF

ON=25
IF (<ACCOUNT.JAIL>)
FORGIVE
ELSE
JAIL
ENDIF

ON=26
IF (<FLAGS> & STATF_DEAD)
resurrect
ELSE
HITS=0
ENDIF

ON=27
disconnect

ON=28
KICK

ON=29
summoncage

ON=31
LOCAL.flag=01
FOR x 0 31

IF (<argchk[<eval 300 + <LOCAL.x>>]>)
FLAGS |= <LOCAL.flag>
ELSE
FLAGS &= ~<LOCAL.flag>
ENDIF

LOCAL.flag="<LOCAL.flag> << 1"
LOCAL.flag=<hval <LOCAL.flag>>
endFOR
SRC.SYSMESSAGE @0486 [GM] FLAGS modified!

[EOF]


(IMG:https://image.ibb.co/h8QWzH/Screenshot_4.png)

(IMG:https://image.ibb.co/javLtc/Screenshot_3.png)

(IMG:https://image.ibb.co/g95Ltc/Screenshot_5.png)


--------------------
Olmer online administrator
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kklej
сообщение 22.4.2018, 17:22
Сообщение #2


******

Группа: Пользователи
Наличность: 14775
Пользователь №: 13.346



Спс! Утащил в берлогу. Слух Дарк, а у тебя нету скрипта, чтобы title вообще не показывал?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Juzzver
сообщение 23.4.2018, 9:23
Сообщение #3


**********

Модератор RunUO
Сообщений: 3.425
Регистрация: 1.11.2008
Группа: Супермодераторы
Наличность: 22565
Из: Северная Корея
Пользователь №: 11.273



Идея отличная, если делать вывод списка всех игроков для админа.


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sirocco
сообщение 23.4.2018, 17:47
Сообщение #4


******

Expert
Сообщений: 809
Регистрация: 2.2.2012
Группа: Пользователи
Наличность: 15408
Пользователь №: 14.566
Возраст: 30



А где тут идея? я слепой.

В руссификации?? Ну да... она бы не помешала с таким перлами

Код

sysmessage Error: ADMIN_PAGE value went too high, please report (<ctag0.ADMIN_PAGE> / <ctag0.ADMIN_numPAGEs>)

SRC.sysmessage Нельзя добавлять нотесы плевелу выше чем вы.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Aimed
сообщение 23.4.2018, 18:45
Сообщение #5


*********

Grandmaster
Сообщений: 2.250
Регистрация: 29.12.2012
Группа: Пользователи
Наличность: 8846
Пользователь №: 15.607



Цитата(d`ArcZeal @ 21.4.2018, 20:52) *

Sphere 56b.
Измененный диалог стандартной команды .admin

Из ключевых изменений:
Если игрок рыбачит/копает/рубит, цвет никнейма изменяется.
Если игрок мертв, преступник, цвет никнейма изменяется.
Позволяет видеть, если игрок используется ассист (инжект, орион и тд.)
Руссификация


Интересно каким же это образом ты собрался определять использует ли игрок какой-нибудь асист или вобще совершенно другой клиент.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Jose Cuervo
сообщение 23.4.2018, 21:02
Сообщение #6


********

UO Antares
Сообщений: 1.555
Регистрация: 12.2.2005
Группа: Пользователи
Наличность: 6139
Из: Санкт-Петербург
Пользователь №: 3.061
Возраст: 45



Цитата(Aimed @ 23.4.2018, 18:45) *

Интересно каким же это образом ты собрался определять использует ли игрок какой-нибудь асист или вобще совершенно другой клиент.


Записывать в "нотесы", например.)


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sirocco
сообщение 23.4.2018, 21:19
Сообщение #7


******

Expert
Сообщений: 809
Регистрация: 2.2.2012
Группа: Пользователи
Наличность: 15408
Пользователь №: 14.566
Возраст: 30



ну вот как-то так... еще одно новое английское слово в тексте.

IF (<OBJ.clientversion>=0.0.0)
DTEXT 530 <LOCAL.Y> 802 asist
ELSE
DTEXT 530 <LOCAL.Y> 0480 <OBJ.clientversion>
ENDIF
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Juzzver
сообщение 24.4.2018, 13:04
Сообщение #8


**********

Модератор RunUO
Сообщений: 3.425
Регистрация: 1.11.2008
Группа: Супермодераторы
Наличность: 22565
Из: Северная Корея
Пользователь №: 11.273



Цитата
А где тут идея? я слепой.

На рануо есть команда [who, по которой выводится многостраничный список игроков, и при большом онлайне навигация становится несколько неудобной, поскольку есть схожие имена, часть имён ты не знаешь или не помнишь, а интересоваться делами на сервере - надо. Такой цветовой фильтр экономил бы время администрации при выборе интересующих их игроков. К примеру там новые персонажи - одним цветом выделялись бы, харвестеры/фармеры/пвпшеры - другими и т.д.
Мне эта идея понравилась.


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sirocco
сообщение 3.5.2018, 7:55
Сообщение #9


******

Expert
Сообщений: 809
Регистрация: 2.2.2012
Группа: Пользователи
Наличность: 15408
Пользователь №: 14.566
Возраст: 30



Ну вот если бы тут была хотя бы сортировка по алфавиту - было бы хоть как-то полезно.
Я себе, например, карту сделал, чтобы на ней игроки отображались.
Ввел сортировку по разным величинам:
ввел понятие коэффициента активности
ввел определение харвеста (не так как тут по action, а по честному)
отдельно определял гостов и игроков стоящих на территории домов.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Llirik
сообщение 3.5.2018, 13:14
Сообщение #10


******

Expert
Сообщений: 681
Регистрация: 5.9.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.259



Цитата(Sirocco @ 3.5.2018, 7:55) *

Ну вот если бы тут была хотя бы сортировка по алфавиту - было бы хоть как-то полезно.
Я себе, например, карту сделал, чтобы на ней игроки отображались.
Ввел сортировку по разным величинам:
ввел понятие коэффициента активности
ввел определение харвеста (не так как тут по action, а по честному)
отдельно определял гостов и игроков стоящих на территории домов.

Дай этот скрипт!)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Aimed
сообщение 3.5.2018, 14:11
Сообщение #11


*********

Grandmaster
Сообщений: 2.250
Регистрация: 29.12.2012
Группа: Пользователи
Наличность: 8846
Пользователь №: 15.607



От всего этого появляется толк только если все эти данные постоянно записывать и вести настоящую историю каждого персонажа и общую статистику. Тогда эта инфа становится ценной, а так это не очень полезная информация.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sirocco
сообщение 3.5.2018, 23:08
Сообщение #12


******

Expert
Сообщений: 809
Регистрация: 2.2.2012
Группа: Пользователи
Наличность: 15408
Пользователь №: 14.566
Возраст: 30



ну так все правильно, многие действия логируются для защиты недвижимости, финансовых потоков, объемовы харвеста, максимальная суточная активность и т.п.

Лирик, ты его даже собрать-то не сможешь... это не одна система а штук 7.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Llirik
сообщение 5.5.2018, 15:09
Сообщение #13


******

Expert
Сообщений: 681
Регистрация: 5.9.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.259



(IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 29.3.2024, 1:37
Designed by Nickostyle