Yoko

All sides of Injection
It is currently 2025-12-28 23:39:59

All times are UTC+02:00




Post new topic  Reply to topic  [ 4 posts ] 
Author Message
PostPosted: 2004-07-22 16:20:30 
Offline
User avatar

Joined: 2004-04-08 16:06:21
Posts: 29
Недавно я заметил у себя на шарде, что серийники у игров не меняются. И решил провести ряд тестов. Наверно вы тоже замечали, что серийник чара не изменяется, когда он сделает на себя спел incognito. В некоторых случаях команда info мне высвечивала реальные имена этих игроков, но не всегда.. Вот я и решил немного схитрить. Этот скрипт использует базу с никами и серийниками, и, сверив сериал игрока, умело спрятовшего свой ник магией, с базой, может высветить его истиный ник. Относительно скриптинга, мой скрипт один не из лучших, да и доработать его немного надо, но идею, я думаю, вы уловили :) Ниже я привожу свой скрипт и образец файла, базы ников/серийников. Проверяет он по последнему статусу..

Code:
sub inkognito()
    Var inkLine, inkLineNum, inkSNCur, inkTab, inkLineLast, inkLineCur, inkObjCur
    Var inkBase = File("C:\Program Files\Ultima Online\Progs\Injection\inkBase.dat") # путь к файлу

    inkBase.Open()
     While Not inkBase.Eof()
      inkLine = inkBase.ReadLn()
      If Mid(inkLine, 0, 2) == "cm" Then
       Dim inkBaseS[Val(Mid(inkLine, 2, (StrLen(inkLine) - 2)))]
       Dim inkBaseN[Val(Mid(inkLine, 2, (StrLen(inkLine) - 2)))]
       inkLineNum = Val(Mid(inkLine, 2, (StrLen(inkLine) - 2)))
       inkSNCur = 0
      End If
      If Mid(inkLine, 0, 2) == "sn" Then
       inkTab = 0
       inkLineLast = 2
       For inkLineCur = 2 To StrLen(inkLine)
        If Mid(inkLine, inkLineCur, 1) == " " Then
         If inkTab == 0 Then
#          UO.Print(Str(inkSNCur))
          inkBaseS[inkSNCur] = Mid(inkLine, inkLineLast, inkLineCur - 2)
          inkTab = inkTab + 1
          inkLineLast = inkLineCur + 1
         End If
         If inkTab == 1 Then
          inkBaseN[inkSNCur] = Mid(inkLine, inkLineLast, inkLineCur - 2)
          inkTab = inkTab + 1
          inkLineLast = inkLineCur + 1
         End If
        End If
       Next
       inkSNCur = inkSNCur + 1
      End If
     Wend
    inkBase.Close()

    UO.Print("Starting search")
    For inkObjCur = 0 To inkLineNum - 1
     If (inkBaseS[inkObjCur]) == (UO.GetSerial("laststatus")) Then
      UO.Print("-------------")
      UO.Print(inkBaseN[inkObjCur])
#      UO.Print(inkBaseS[inkObjCur])
      UO.Print("-------------")
     End If
    Next
end sub


Файл начинается с колличества игроков, которые у вас занесены в файл, причем перед колличеством надо поставить cm. И после того как вы занесли эту информацию, со след. строки начинаются сами данные. Информация об игроке (в одну строку пишется) начинается с sn, дальше идет его серийник, потом маленький промежуток и ник игрока. Ниже пример

Code:
cm5
sn0x00035907 Red Baron
sn0x00036314 imperator
sn0x0000A79E Morphyz
sn0x0001D267 TURAL
sn0x00011935 Angel


Top
   
 Post subject:
PostPosted: 2004-07-22 16:33:25 
Offline
User avatar

Joined: 2004-04-08 16:06:21
Posts: 29
ах да, забыл сказать, чем больше игроков, тем больше скрипт обрабатывается данные, так что не удивляйтесь, если он будет даже несколько секунд, а то и больше, вычислять, что за игрок стоит перед вами.


Top
   
 Post subject:
PostPosted: 2004-07-22 20:30:44 
Offline
Expert!
User avatar

Joined: 2004-04-04 11:13:54
Posts: 1205
Location: Балаково, Саратовская обл.
А зачем? Вар режим и наводишь на него курсор.


Top
   
 Post subject:
PostPosted: 2004-07-22 21:13:23 
Offline
User avatar

Joined: 2004-04-08 16:06:21
Posts: 29
можно и так :)


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 4 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 5 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited