Yoko

All sides of Injection
It is currently 2024-03-28 19:33:29

All times are UTC+02:00




Post new topic  Reply to topic  [ 35 posts ]  Go to page Previous 1 2
Author Message
 Post subject:
PostPosted: 2007-09-10 00:53:01 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Это снова я :) Теперь я со скриншотами, хотя с ними я уже вроде был.. В этот раз я реализовал раскладывание скриншотов по папочкам, для наибольшего удобства.

Code:
; Функция создаёт выбранную директорию, если такая ещё не существует
; Проверка на существовании осуществляется через пустой файл is_dir.
; (c) 2007, Destruction.
Sub mkdir( dir )
   if not right( dir, 1 ) == "/" && not right( dir, 1 ) == "\" then
      dir = dir + "/"
   endif
   var f = file( dir + "is_dir" )
   if not f.open() then
      uo.launch( "cmd", '/c mkdir "' + dir + '"' )
      wait( 500 )
      f.create()
   endif
   f.close()
endsub

Вроде неплохо извернулся учитывая неумение инжы работать с папками как таковыми.. Из минусов - я не помню как писать такое под вин98.

Далее - две функции для определения даты / времени, вариант от mihail мне не понравился как минимум замещением стандартной ф-ции date на его:
Code:
; Определение текущей даты
; n - разделитель
; Destruction
Sub getDate( n )
   var d = str( uo.date() )
   if strlen( d ) == 5 then
      d = "0" + d
   endif
   return right( d, 2 ) + n + mid( d, 2, 2 ) + n + left( d, 2 )
endsub

; Определение текущего моммента времени
; n - разделитель
; Destruction
Sub getTime( n )
   var t = str( uo.time() )
   if strlen( t ) == 5 then
      t = "0" + t
   endif
   return left( t, 2 ) + n + mid( t, 2, 2 ) + n + right( t, 2 )
endsub


Ну и непосредственно ф-ция создания скриншота, для которой все вышенаписанное писалось:
Code:
; Destruction
var sc_dir = "./sc/" ; Папка для складывания скриншотов.
Sub snap()
   var filetype = "BMP" ; в каком формате сохранять скриншоты
   var filename = sc_dir
   mkdir( filename )
   filename = filename + uo.getInfo( "shard" ) + "/"
   mkdir( filename )
   filename = filename + uo.getInfo( "character" ) + "/"
   mkdir( filename )
   filename = filename + getDate( "." ) + " " + getTime( "-" )
   uo.snap( filetype, filename + "." + filetype )
endsub


Примечание: при первом запуске на персонаже / шарде будет небольшая задержка перед созданием первого скриншота.

PS: Injection пока не умеет сохранять скриншоты в JPG, а у меня в БМП они весят по 5мб, поэтому всем у кого проблемы с местом могу посоветовать заглянуть в гугл: http://www.google.ru/search?hl=ru&q=com ... verter&lr= и использовать для последущей конвертации одну из найденных программ (я использую ImageMagick, т.к. привык, новичкам будет непросто освоить). Но это собственно говоря сами.

_________________
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Skype: d119060


Top
   
 Post subject:
PostPosted: 2008-01-04 21:56:18 
Offline
Expert!
User avatar

Joined: 2005-05-20 20:30:10
Posts: 548
Иногда возникает проблема чистки реестра от значений EasyUO, но поскольку в инжекте такая возможность не предусмотрена приходится придумывать из раздела "сделай сам".. утилитка (зеркало) для удаления заданных ключей ИзиУО - кидаем в C:\WINDOWS\system32 и запускаем из инжекта:
Code:
uo.exec("launch rmEasyUO 100") ; где 100 имя ключа

_________________
"плагины" для инжекта


Top
   
 Post subject:
PostPosted: 2008-01-07 04:13:54 
Offline
Expert!
User avatar

Joined: 2005-05-20 20:30:10
Posts: 548
иногда в инжекте не хватает возможности передвигать курсор мыши на заданные координаты, эта улилитка вам в этом поможет.
Скачиваем, кидаем в папку C:\WINDOWS\system32, далее в инжекте


Code:
uo.exec("launch SetCursorPos 555,444") ; где 555 - координата X, 444 - Y соответственно


ВНИМАНИЕ!!! для корректной работы необходимо указывать АБСОЛЮТНЫЕ координаты (на вкладке скриптового модуля в инжекте определяются относительные), абсолютные координаты можно узнать в UOPilot'е

----
update абсолютные координаты можно так же определять утилиткой в след. посте

_________________
"плагины" для инжекта


Last edited by Mihail on 2008-01-07 15:55:16, edited 1 time in total.

Top
   
 Post subject:
PostPosted: 2008-01-07 15:54:45 
Offline
Expert!
User avatar

Joined: 2005-05-20 20:30:10
Posts: 548
утилита для определения абсолютных координат
как всегда кидаем в папку c:\windows\system32
Программа при запуске копирует текущие координаты мыши в буфер обмена и вырубается

Code:
uo.exec("launch GetCursorPos") ; пример использования функции получения абсолютных координат 

далее в скрипте Ctrl+V :)

----
Использование:

вставляем скрипт
Code:
sub uoCopyCursorPos()
; копируем координаты куосра в буфер обмена
uo.exec("launch GetCursorPos")
end sub

далее делаем хоткей
Code:
exec uoCopyCursorPos

наводим мышь куда нужно и запускаем с хоткея, затем в скрипте нажимаем "Paste" или Ctrl+V

_________________
"плагины" для инжекта


Top
   
 Post subject:
PostPosted: 2008-01-07 16:50:06 
Offline
Expert!
User avatar

Joined: 2005-05-20 20:30:10
Posts: 548
утилита для копирования вашего текста в буфер обмена

Code:
uo.exec("launch ClipboardSetText йа_криведко") ; пример использования копирования текста в буфер обмена - внимание НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ ПРОБЕЛЫ


использование в инжекте:
Code:
sub uoCopy(Text)
uo.exec("launch ClipboardSetText " + Text)
end sub


пример что с этим можно сделать:

аналог uo.info, только с мелкими доработками, в числе которых автоматическое копирование в буфер типа предмета
Code:
sub uoInfo()
  var o, layer
  uo.addobject('object for information')
  while uo.targeting()
    wait(100)
  wend
  o = uo.getserial('object for information')
  layer = uo.getlayer(o)
  if layer=='*' then
    layer='0'
  end if
  uo.click(o)
  checklag()
  uo.textclose()
  uo.exec("set toptext 1")
  uo.textopen()
  uo.exec("set toptext 0")
  uo.textprint('ID='+o+' Type='+uo.getgraphic(o)+' Name='+uo.getname(o))
  uo.textprint('Quantity: '+str(uo.getquantity(o))+' Color: '+uo.getcolor(o)+' Layer: '+layer)
  uo.textprint('X='+str(uo.getx(o))+' Y='+str(uo.gety(o))+' Z='+str(uo.getz(o))+' C='+uo.containerof(o))
  uo.textprint()
  uoCopy(uo.getgraphic(o))
end if
end sub

_________________
"плагины" для инжекта


Top
   
 Post subject:
PostPosted: 2008-01-07 21:21:58 
Offline
Expert!
User avatar

Joined: 2005-05-20 20:30:10
Posts: 548
Написал улучшенный Drag
Как всегда кидаем в system32
И внимательно читаем как использовать.

uo.exec("launch uoDrag x,y,x1,y1,delay,steps")
x,y - координаты отправной точки (не забывает - абсолютные)
x1,y1 - координаты точки прибытия
так же опционально (не обязательно) можно задать:
delay* - задержка после перетаскивания курсора перед "отпусканием" кнопки мыши
steps - если нужно чтобы мышка перетаскивалась медленно, то задав этот параметр программа просчитает промежуточные точки остановки (вы задаете количество точек - чем больше, тем медленнее) - точки рассчитываются по кратчайшему расстоянию - тоесть по прямой.
* в случае, когда задан параметр steps, delay - это время ожидания после каждой точки - оптимально 10-500

Code:
uo.exec("launch uoDrag 280,740,880,350,100,10")

если надо быстро переместить, то
Code:
uo.exec("launch uoDrag 280,740,880,350,20")

Не рекоммендую совсем убирать задержку (хотя технически это можно) т.к. предмет\гамп и т.д. может просто не успеть "захватиться"
Так же не забываем, что никаких пробелов в передаваемых параматрах быть не должно.. (на случай если кто невзирая на мою определялку координат будет всеравно вставлять их из пилота - он ставит пробел после запятой :) )
И проверок от дурака тоже не много :) так что если кому вдруг придет в голову указать 2 соседних пикселя и поставить интервал в 100 шагов, то 98 шагов курсор будет стоять на месте.. и все в таком духе..

_________________
"плагины" для инжекта


Top
   
 Post subject:
PostPosted: 2008-01-08 00:01:08 
Offline
Expert!
User avatar

Joined: 2005-05-20 20:30:10
Posts: 548
утилитка для открытия гиперссылок (в том числе и локальных)
Как всегда кидаем в C:\Windows\system32
Далее запускаем из инжекта, передавая в качестве параметров адрес ссылки. Работает аналогично проводнику.

Code:
uo.exec("launch OpenLink http://uo.com")

Code:
uo.exec("launch OpenLink C:\")

send mail (mailto:123@123.com) etc.

и помните - никаких пробелов в параметрах

_________________
"плагины" для инжекта


Top
   
 Post subject:
PostPosted: 2008-01-09 01:02:48 
Offline
Expert!
User avatar

Joined: 2005-05-20 20:30:10
Posts: 548
утилитка для запуска приложений на заданном процессоре\ядре процессора (зеркало)
Если надо запустить определенное приложение на определенном ядре многоядерного процессора.
Кидаем в c:\windows\system32

синтаксис использования:
Code:
[путь к запускаемому приложению],[номер ядра]

Code:
uo.exec("launch DualCore_Launcher D:\GAMES\UO\client.exe,1")

Чтобы рулить двухъядерными процессорами: 1 - первое ядро, 2 - второе, 3 - оба
Так же не стоит забывать что не должно быть пробелов в пути к запускаемому файлу..

_________________
"плагины" для инжекта


Top
   
 Post subject:
PostPosted: 2008-02-15 01:32:22 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Сортировка массива по алфавиту.

Code:
Sub sort( arr, len )
   var i, j, r, temp
   for i = 1 to len -1
      j = i
      while j > 0
         r = getAlphaWord( arr[ j ], arr[ j - 1 ] )
         if r == 1 then
            temp = arr[ j ]
            arr[ j ] = arr[ j - 1 ]
            arr[ j - 1 ] = temp
            j = j - 1
         else
            j = 0
         endif
      wend
   next
EndSub

Sub getAlphaWord( word1, word2 )
   var i, r, len = strlen( word1 )
   if strlen( word1 ) > strlen( word2 ) then
      len = strlen( word2 )
   endif
   for i = 0 to len -1
      r = getAlphaSym( word1[ i ], word2[ i ] )
      if not r == 0 then
         return r
      endif
   next
   if strlen( word2 ) > strlen( word1 ) then
      return 1
   endif
   if strlen( word1 ) > strlen( word2 ) then
      return 2
   endif
   return 0
   
EndSub

Sub getAlphaSym( sym1, sym2 )
   var i, alpha = "0123456789"
   alpha = alpha + "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
   alpha = alpha + "abcdefghijklmnopqrstuvwxyz"
   alpha = alpha + "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
   alpha = alpha + "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
   if sym1 == sym2 then
      return 0
   endif
   for i = 0 to strlen( alpha ) -1
      if alpha[ i ] == sym1 then
         return 1
      endif
      if alpha[ i ] == sym2 then
         return 2
      endif
   next
   return 0
EndSub


Пример использования:
Code:
sub main()
   var i, len = 3
   DIM arr[val( str( len ) )]
   arr[0] = "Abc";
   arr[1] = "123"
   arr[2] = "1230"
   sort( arr, len )
   for i = 0 to len -1
      uo.print( arr[ i ] )
   next
end sub

_________________
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Skype: d119060


Top
   
 Post subject:
PostPosted: 2008-05-03 22:34:09 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
I'm wrote:
Code:
sub time(jor,n)
#Mihail
var i, t=''
var ser=str(jor)
for i=0 to len(ser)-2 step 2
t=t+mid(ser,i,2)+n
next
t=left(t,len(ser)+2)
return t
end sub

Code:
sub time(jor,n) 
#Mihail
var ser=str(jor),t=''
  if len(ser)==5 then
    ser='0'+ser
  else
    if len(ser)==4 then
      ser='00'+ser
    end if
  end if
  t=left(ser,2)+n+mid(ser,2,2)+n+right(ser,2)
  return t
end sub


Top
   
 Post subject:
PostPosted: 2008-09-27 23:55:41 
Offline
User avatar

Joined: 2008-09-12 05:07:34
Posts: 247
I'm wrote:
Время и дата в нормальном формате (inside) by Mihail
Code:
sub main()
uo.print(date(uo.date(),'.'))
uo.print(time(uo.time(),':'))
end sub


где jor - это время\дата в формате числа, а n - нужный вам разделитесь.
Code:
sub date(jor,n)
#Mihail
var ser=str(jor), t=''
if len(ser)==5 then
ser='0'+ser
end if
t=right(ser,2)+n+mid(ser,2,2)+n+left(ser,2)
return t
end sub


Code:
sub time(jor,n)
#Mihail
var i, t=''
var ser=str(jor)
for i=0 to len(ser)-2 step 2
t=t+mid(ser,i,2)+n
next
t=left(t,len(ser)+2)
return t
end sub
в функцию time надо тоже воткнуть проверку на длину строки 5 и дописку нуля вначале, без неё часы с полуночи до10 утра не ходят :D

Code:
sub time(jor,n)
   var i, t=''
   var ser=str(jor)
   if len(ser)==4 then
      ser='00'+ser
   else if len(ser)==5 then
      ser='0'+ser
   endif
   for i=0 to len(ser)-2 step 2
      t=t+mid(ser,i,2)+n
   next
   t=left(t,len(ser)+2)
   return t
end sub


вот так нормально время показывает


Last edited by Millerbeer on 2013-12-07 21:03:32, edited 1 time in total.

Top
   
PostPosted: 2010-02-06 12:33:34 
Offline
Expert!
User avatar

Joined: 2005-04-23 10:19:43
Posts: 388
Работа с наборами (Set).
Отличаются от массивов тем, что намного быстрее выполняет функции add и delete (практически моментально) и хранит только уникальные значения.

Code:
### SETS
Sub purgeSet(setName)
   var len = getSetLen(setName)
   var i
   
   if (len == 0) then
      return
   endif
   
   for i=0 to len-1
      setSetValue(setName,i,0)
   next
   setSetLen(setName,0)
endsub

Sub dumpSet(setName)
   UO.TextOpen()
    UO.TextPrint("Printing set <"+setName+"> contents:");
   
   var i
   var len = getSetLen(setName)
   var value
   for i=0 to len-1
      value = getSetValue(setName,i)
      value = "["+str(i)+"] = "+value
      UO.Print(value)
      UO.TextPrint(value)
   next
endsub

Sub addSetValue(setName, value)
   var pos = getSetIndexOf(setName, value)
   
   if (pos >= 0) then
      return pos
   endif
   
   var len = getSetLen(setName)   
   setSetValue(setName,len,value)
   setSetLen(setName,len+1)
   
   return len
endsub

Sub setSetValue(setName, index, value)
   UO.SetGlobal('set_'+setName+'_'+str(index), value)
endsub

Sub getSetValue(setName, index)
   return UO.GetGlobal('set_'+setName+'_'+str(index))
endsub

Sub getSetIndexOf(setName, value)
   var len = getSetLen(setName)
   var i = 0
   var curValue
   
   if (len == 0) then
      return -1
   endif
   
   for i = len-1 to 0 step -1
      curValue = getSetValue(setName,i)
      if (curValue == value OR curValue == str(value)) then
         return i
      endif
   next
   
   return -1
endsub

Sub getSetLen(setName)
   return val(UO.GetGlobal('set_'+setName+'_cnt'))
endsub

Sub setSetLen(setName, length)
   UO.SetGlobal('set_'+setName+'_cnt',length)
endsub

Sub delSetIndex(setName, index)
   var len = getSetLen(setName)
   setSetValue(setName, index, getSetValue(setName, len-1))
   setSetLen(setName,len-1)
endsub

Sub delSetValue(setName, value)
   delSetIndex(setName, getSetIndexOf(setName, value))
endsub


К примеру я применил его в скрипте на списки игноров:
У меня часто бывает что два скрипта должны игнорить разные вещи, при этом иногда их резетить. К примеру скрипт на подсчёт точного количества шмоток в указанном контейнере должен игнорировать найденные шмотки, а потом их все резетить. Но он может зарезетить переменные другого скрипта, что есть плохо. Поэтому можно использовать это:

Code:
### IGNORE LISTS
Sub addToIgnoreList(listName, object)
   var obj = UO.GetSerial(object)   
   if (obj == 0 OR obj == -1) then
      return
   endif
   addSetValue(listName,obj)
   UO.Ignore(obj,'on')
endsub

Sub delFromIgnoreList(listName, object)
   var obj = UO.GetSerial(object)   
   if (obj == 0 OR obj == -1) then
      return
   endif
   delSetValue(listName,obj)
   UO.Ignore(obj,'off')
endsub

Sub resetIgnoreList(listName)
   var i
   var len = getSetLen(listName)
   var obj
   
   if (len == 0) then
      return
   endif
   
   for i=0 to len-1
      obj = getSetValue(listName,i)
      UO.Ignore(obj,'off')
      setSetValue(listName,i,0)
   next
   setSetLen(listName,0)
endsub


Пример использования:

Code:
sub testIgnoreList()
   var i
   for i = 0 to 5
      UO.FindType(-1)
      addToIgnoreList('list1','finditem')
      UO.FindType(-1)
      addToIgnoreList('list2','finditem')
   next
   
   UO.FindType(-1)
   UO.Print('Found items after ignore: '+str(UO.FindCount()))
   
   resetIgnoreList('list1')
   UO.FindType(-1)
   UO.Print('Found items after reset1: '+str(UO.FindCount()))
   
   resetIgnoreList('list2')
   UO.FindType(-1)
   UO.Print('Found items after reset2: '+str(UO.FindCount()))
endsub


Top
   
PostPosted: 2010-07-10 09:59:01 
Offline
Expert!
User avatar

Joined: 2005-04-23 10:19:43
Posts: 388
Улучшенный вариант explode-а, заполняет частями массив.

Code:
Sub explodeToArr( string, pattern, arr, arrlength )
   var i, counter = 0, entry = 0
   for i=0 to strlen( string ) -strlen( pattern )
      if mid( string, i, strlen( pattern ) ) == pattern then
         counter = counter + 1
         if counter <= arrlength then
            arr[counter-1] = mid( string, entry, i-entry )
         else
            return counter - 1
         endif
         entry = i + strlen( pattern )
      endif
   next
   if (counter == 0) then
      arr[counter] = mid( string, entry, strlen(string)-entry )
      return counter+1
   else
      return counter
   endif
endsub


Top
   
 Post subject: Re:
PostPosted: 2011-01-26 14:19:11 
Offline
User avatar

Joined: 2005-07-14 20:53:05
Posts: 124
Destruction wrote:
Ещё пачка свеженаписанных полезностей с использованием недавно найденной фичи (описал в разделе FAQ).

Полезности используют друг-друга, так, что с ошбками вроде "Function not found" - не приставать -)

Итак, функция первая -) Проверяет - есть ли в переданном массиве переменная. Если нет - возвращает -1, если есть - порядковый номер элемента массива.

Если вместо массива передать строку, а вместо строки - один символ, то функция вернёт первое вхождение символа в строке.

Регистронезависимый поиск работает значительно медленее, используйте только при острой необходимости!
Code:
; int inArray( string, array, bool, int )
; str - какую строку искать
; arr - массив, в котором искать
; nocase - true, чтобы не учитывался регистр при поиске.
; arr_len - длинна переданного массива
Sub inArray( str, arr, nocase, arr_len )
   var i
   if nocase then
      str = StrToLower( str )
   endif
   for i=0 to arr_len-1
      if nocase then
         if StrToLower( arr[i] ) == str then
            return i
         endif
      else
         if arr[i] == str then
            return i
         endif
      endif
   next
   return -1
endsub


Собственно ещё две функции - StrToUpper и StrToLower, соответсвенно переводят переданную строку в верхний или нижний регистр.
Работают медленно, поэтому в режиме реального времени - не получится. Может пригодится для разовых преобразований.

Функции UpperWords и LowerWords возвращают массивы с русскими и англискими буквами соответствующего регистра. Чтобы всё сработало корректно - в функцию необходимо передать массив размером не менее 59 элементов (смотри функции StrToLower и StrToUpper).
Code:
sub StrToLower( str )
   var num, i, j
   DIM lower[59]
   lower = LowerWords( lower )
   DIM upper[59]
   upper = UpperWords( upper )
   for i=0 to strlen( str )-1
      num = inArray( str[i], upper, 0, 59)
      if num > -1 then
         str = left( str, i ) + lower[ num ] + right( str, strlen( str ) -i -1 )
      endif
   next
   return str
endsub

sub StrToUpper( str )
   var num, i, j
   DIM lower[59]
   lower = LowerWords( lower )
   DIM upper[59]
   upper = UpperWords( upper )
   for i=0 to strlen( str )-1
      num = inArray( str[i], lower, 0, 59)
      if num > -1 then
         str = left( str, i ) + upper[ num ] + right( str, strlen( str ) -i -1 )
      endif
   next
   return str
endsub

Sub LowerWords(words)
   words[0] = "q"
   words[1] = "w"
   words[2] = "e"
   words[3] = "r"
   words[4] = "t"
   words[5] = "y"
   words[6] = "u"
   words[7] = "i"
   words[8] = "o"
   words[9] = "p"
   words[10] = "a"
   words[11] = "s"
   words[12] = "d"
   words[13] = "f"
   words[14] = "g"
   words[15] = "h"
   words[16] = "j"
   words[17] = "k"
   words[18] = "l"
   words[19] = "z"
   words[20] = "x"
   words[21] = "c"
   words[22] = "v"
   words[23] = "b"
   words[24] = "n"
   words[25] = "m"
   words[26] = "й"
   words[27] = "ц"
   words[28] = "у"
   words[29] = "к"
   words[30] = "е"
   words[31] = "н"
   words[32] = "г"
   words[33] = "ш"
   words[34] = "щ"
   words[35] = "з"
   words[36] = "х"
   words[37] = "ъ"
   words[38] = "ф"
   words[39] = "ы"
   words[40] = "в"
   words[41] = "а"
   words[42] = "п"
   words[43] = "р"
   words[44] = "о"
   words[45] = "л"
   words[46] = "д"
   words[47] = "ж"
   words[48] = "э"
   words[49] = "я"
   words[50] = "ч"
   words[51] = "с"
   words[52] = "м"
   words[53] = "и"
   words[54] = "т"
   words[55] = "ь"
   words[56] = "б"
   words[57] = "ю"
   words[58] = "ё"
   return words
endsub

Sub UpperWords(words)
   words[0] = "Q"
   words[1] = "W"
   words[2] = "E"
   words[3] = "R"
   words[4] = "T"
   words[5] = "Y"
   words[6] = "U"
   words[7] = "I"
   words[8] = "O"
   words[9] = "P"
   words[10] = "A"
   words[11] = "S"
   words[12] = "D"
   words[13] = "F"
   words[14] = "G"
   words[15] = "H"
   words[16] = "J"
   words[17] = "K"
   words[18] = "L"
   words[19] = "Z"
   words[20] = "X"
   words[21] = "C"
   words[22] = "V"
   words[23] = "B"
   words[24] = "N"
   words[25] = "M"
   words[26] = "Й"
   words[27] = "Ц"
   words[28] = "У"
   words[29] = "К"
   words[30] = "Е"
   words[31] = "Н"
   words[32] = "Г"
   words[33] = "Ш"
   words[34] = "Щ"
   words[35] = "З"
   words[36] = "Х"
   words[37] = "Ъ"
   words[38] = "Ф"
   words[39] = "Ы"
   words[40] = "В"
   words[41] = "А"
   words[42] = "П"
   words[43] = "Р"
   words[44] = "О"
   words[45] = "Л"
   words[46] = "Д"
   words[47] = "Ж"
   words[48] = "Э"
   words[49] = "Я"
   words[50] = "Ч"
   words[51] = "С"
   words[52] = "М"
   words[53] = "И"
   words[54] = "Т"
   words[55] = "Ь"
   words[56] = "Б"
   words[57] = "Ю"
   words[58] = "Ё"
   return words
endsub

Вот это вообще меня убило, решил переписать инжект. To Yoko Выдай исходники, будем внедрять все "важные" функции внутрь

_________________
Я пока только учусь :oops:

http://www.surfjunky.com/?r=BloodSlayer


Top
   
PostPosted: 2011-01-26 16:06:29 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
ИМХО если выкинуть исходники то погибнет то немногое что еще хоть как то шевелится. Шарды с онлайном >300 можно пересчитать по пальцам. В основной масса от 2 (админ-игрок) до 30. А если все про инжект будет доступно всем то будет читинг и коррупция... Хотя это мое мнение.

PS давно бы уже надо было выложить сурсы последнего инжекта - году в 2008 новый улучшенный инжект был бы готов.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 35 posts ]  Go to page Previous 1 2

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 19 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:  
cron
Powered by phpBB® Forum Software © phpBB Limited