Yoko

All sides of Injection
It is currently 2026-01-16 13:34:35

All times are UTC+02:00




Post new topic  Reply to topic  [ 21 posts ]  Go to page 1 2 Next
Author Message
PostPosted: 2011-05-17 17:58:13 
Offline

Joined: 2011-05-17 17:53:33
Posts: 11
Добрый день, написал скрипт (второй за всю жизнь) и он не работает.
Смысл такой - когда чар видит, что у оппонента по спарингу хп меньше половины - выключает вар, как увидит что хп стало полным - включает вар и атакует. Прошу, пожалуйста, проверьте где ошибка в скрипте.

Code:
sub WarOffHP()
  While UO.Life > 0
    While uo.getHP('0x000159FE') < uo.getMaxHP('0x000159FE')/2 then
      If not uo.warmode(false) then
        uo.warmode(false)
        wait(500)
      Else
        wait(500)
      Endif
    wend
    wait(500)
    While uo.getHP('0x000159FE') = uo.getMaxHP('0x000159FE') then
      If not uo.warmode(true) then
        uo.warmode(true)
        wait(300)
        uo.attack('0x000159FE')
      Else
        wait(500)
      Endif
    Wend
  Wend
endsub


Top
   
PostPosted: 2011-05-17 18:27:07 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Скрипт у тебя в принципе написан правильно. Ряд мелких косметических ошибок.

Code:
sub WarOffHP()
  While UO.Life > 0 ; можно написать   while not uo.dead()
    While uo.getHP('0x000159FE') < uo.getMaxHP('0x000159FE')/2 ;  then не нужен
      If not uo.warmode(false) then
        uo.warmode(false)
        wait(500)
      Else
        wait(500)
      Endif
    wend
    wait(500)
    While uo.getHP('0x000159FE') == uo.getMaxHP('0x000159FE') ;  then не нужен, в условии ставится "==" ,а не "=", которое присваивает значение.
      If not uo.warmode(true) then
        uo.warmode(true)
        wait(300)
        uo.attack('0x000159FE')
      Else
        wait(500)
      Endif
    Wend
  Wend
endsub

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


Top
   
PostPosted: 2011-05-17 19:14:26 
Offline

Joined: 2011-05-17 17:53:33
Posts: 11
Спасибо. Скрипт запускается, но работать не хочет. Чар и вар включает и атакует вроде - бы, но бить не бьет, просто стоит около него, даже не знаю почему так.

Quote:
выведи табличку жизней своего противника и свою табличку, на свою через запятая инфо укажы и вставь код ('0x000159FE') который будет аместь етого в строку номер 2. Добей до тех жизней которые будет вырубать вар противника, и такимжемакаром через запятая инфо полученый код введи в строку номер один..и так во всем скрипте


Вот такое посоветовали, вы не знаете что это значит? xD


Top
   
PostPosted: 2011-05-17 22:39:24 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
А ну в принципе логично :)) Я тормознул на математике.
У тебя условия выглядят примерно вот так:
Code:
до тех пор пока жизни (100) < жизни/2 (50)
ждем
дотех пор пока жизни (100)==жизням (100)
атакуем


а что происходит когда 50<жизни<100?
то-есть если предположить что на чарах находится какойто регенерирующий жизни предмет то более правильно будет как то так:

Code:
sub WarOffHP()
var tar = '0x000159FE'
   While not uo.dead()
      if uo.getHP( tar ) >= uo.getMaxHP( tar )  then
         uo.attack( tar )
      endif
      if uo.getHP( tar ) <= (uo.getMaxHP( tar )/2) then
         If not uo.warmode(false) then
            uo.warmode(false)
         Endif
      endif
      wait(500)
   Wend
endsub

sub targ() ; запустить на кукле одетой в реген.
   While not uo.dead()
      If not uo.warmode(false) then
            uo.warmode(false)
      endif
      wait(500)
   Wend
endsub


полчаса мои два чара качали боевые и тактику ;)
На втором чаре можно повесить постоянный отхил, либо хилить его дерущимся чаром - будет расти хилинг.

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


Top
   
PostPosted: 2011-05-18 05:28:13 
Offline

Joined: 2011-05-17 17:53:33
Posts: 11
Code:
sub WarOffHP()
var tar = '0x000159FE'
   While not uo.dead()
      if uo.getHP( tar ) >= uo.getMaxHP( tar )  then
         uo.attack( tar )
      endif
      if uo.getHP( tar ) <= (uo.getMaxHP( tar )/2) then
         If not uo.warmode(false) then
            uo.warmode(false)
         Endif
      endif
      wait(500)
   Wend
endsub

Спасибо большое,скрипт работает. только у меня он постоянно атакует пока равно максимальному )))), т.е. каждые пол секунды высвечивается ник грушы с боку, как только хп ниже максимального, перестает постоянно атаковать. как бы сделать чтобы он только один раз отаковал когда хп становится максимальным?

Code:
sub targ() ; запустить на кукле одетой в реген.
   While not uo.dead()
      If not uo.warmode(false) then
            uo.warmode(false)
      endif
      wait(500)
   Wend
endsub

А мы не с одного сервера? Я так понимаю у вас тоже у "куклы" автоматически включается вар :) И я еще вчера утром допер до такого скрипта 8) только немного другой он у меня.
Code:
sub WarOff()
  While UO.Life > 0
    If not uo.warmode(false) then
      uo.warmode(false)
      wait(500)
    Else
      wait(500)
    Endif
  Wend
endsub

И интересует почему вот допустим:
Code:
If not uo.warmode(false) then
uo.warmode(false)

вот так вот работает, а вот так:
Code:
If uo.warmode(true) then
uo.warmode(false)

не работает. точнее работает, но он и выключает вар когда в варе, и включает его когда вара нету.


Top
   
PostPosted: 2011-05-18 06:08:57 
Offline

Joined: 2011-05-17 17:53:33
Posts: 11
И еще... как при помощи инжекта узнать есть в руке оружие или нет. Нужно для того чтобы, когда оружие сломается, чар одевал новое :)


Top
   
PostPosted: 2011-05-19 20:01:45 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
SpaceBunny wrote:
И еще... как при помощи инжекта узнать есть в руке оружие или нет. Нужно для того чтобы, когда оружие сломается, чар одевал новое :)


С запозданием, но все же

Code:
If UO.ObjAtLayer('Rhand') <> t_Weapon then
        If t_Weapon == '0' then
          UO.UnEquip('Rhand')
          Wait(1000)
         else
          If UO.Count(t_Weapon) then
            UO.FindType(t_Weapon, -1, 'my')
            If UO.FindCount() then
              UO.Equip('Rhand', 'finditem')
              Wait(1000)
             else
              UO.Print('Ошибка 2')
              UO.Print('Скрипт продолжает работу')
            Endif
           else
            UO.FindType(t_Weapon, -1, id_Container)
            If UO.FindCount() then
              CheckLag()
              UO.MoveItem('finditem', -1, 'backpack')
              Wait(1000)
              UO.Equip('Rhand', 'finditem')
              Wait(1000)
             else
              UO.Print('В контейнере ' + id_Container + ' закончилось оружие для прокачки умения ' + Skills[a])
              UO.Print('Скрипт продолжает работу')
            Endif
          Endif
        Endif
      Endif
Endif


Ответ в первой строке,а дальше пример как использовать


Top
   
PostPosted: 2011-05-20 13:13:22 
Offline

Joined: 2011-05-17 17:53:33
Posts: 11
ZeroDX
Как прочитать эту строчку?
Code:
If UO.ObjAtLayer('Rhand') <> t_Weapon then

Если в правой руке нету оружия, то?
Или если в правой руке есть оружие, то?


Top
   
PostPosted: 2011-05-20 13:52:07 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
If UO.ObjAtLayer('Rhand') <> t_Weapon then
означает
если объект в правой руке не равет заданному типу оружия тогда...

Запись немного не верна. Правильнее было бы записать:
Code:
if uo.GetGraphic(uo.ObjAtLayer('Rhand')) <> t_Weapon then

если тип объекта в правой руке не равен заданному типу оружия

вверху треба прописать
var t_Weapon = 'тип оружия'

ЛИБО как вариант чтобы совсем хорошо было прописать так:
Code:
var t_Weapon = uo.GetGraphic(uo.ObjAtLayer('Rhand')) 


тогда скрипт ЗАПОМНИТ какое оружие было у тебя в руке на момент запуска и будет искать его в сундуке чтобы надеть в случае если у тебя не будет в руке заданного оружия :shock:

:lol:

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


Top
   
PostPosted: 2011-05-20 17:22:25 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
А ведь действительно не верна. Написал примерно месяц назад, так ни разу и не тестировал.


Top
   
PostPosted: 2011-05-20 18:26:39 
Offline

Joined: 2011-05-17 17:53:33
Posts: 11
Спасибо! Сделал так, работает на ура :)

Только вот вопрос. У меня при одевании оружия, вылетает таргет. есть функция для отмены таргета? uo.CancelTarget() работать не хочет :(


Top
   
PostPosted: 2011-05-20 18:47:43 
Offline
User avatar

Joined: 2006-11-06 21:45:23
Posts: 137
Code:
   if UO.Targeting() then
      UO.Say(chr(27))
   endif


Top
   
PostPosted: 2011-05-20 18:52:32 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
отмена курсора-прицела:
uo.say(chr(27))
ВОЗМОЖНО но маловероятно
uo.msg(chr(27))
опередили :mrgreen:

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


Top
   
PostPosted: 2011-05-20 19:15:21 
Offline

Joined: 2011-05-17 17:53:33
Posts: 11
Code:
sub oryj()
var t_Weapon = '0x0F52'
  while not uo.dead ()
    if uo.GetGraphic(uo.ObjAtLayer('Rhand')) <> t_Weapon then
      uo.usetype('0x0F52')
      wait(500)
      uo.Say(chr(27))
    endif
    wait(4000)
  wend
wait(500)
endsub


Спасибо, все работает. Вот так вот сейчас выглядит мой скрипт.
Вопрос такой, можно ли заменить вот это:

Code:
uo.usetype('0x0F52')
wait(500)
uo.Say(chr(27))


на одну команду, чтобы оружие просто одевалось? Допустим uo.odetoryjie('0x0F52').


Top
   
PostPosted: 2011-05-20 19:23:47 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
Code:
UO.FindType(t_Weapon, -1, 'backpack')
If UO.FindCount() then
  UO.Equip('Rhand', 'finditem')
  Wait(500)
  else
  UO.Print('В бэкпаке персонажа отсутствует необходимое оружие :Р')
  Return
Endif


Last edited by ZeroDX on 2011-05-20 19:24:21, edited 1 time in total.

Top
   
PostPosted: 2011-05-20 19:24:03 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
uo.Equipt('Rhand',t_Weapon) ; одеть тип оружия.

Если в паке больше 1 экземпляра оружия то
Code:
UO.FindType(t_Weapon, -1, 'backpack')
If UO.FindCount() then
  UO.Equip('Rhand', 'finditem')
  Wait(500)
  else
  UO.Print('В бэкпаке персонажа отсутствует необходимое оружие :Р')
  Return
Endif


=
uo.Equipt('Rhand',t_Weapon)

:wink:

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


Top
   
PostPosted: 2011-05-20 19:25:44 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
Mirage wrote:
uo.Equipt('Rhand',t_Weapon)

Ну или так :oops:


Top
   
PostPosted: 2011-05-24 23:24:08 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
Quote:
чтобы оружие просто одевалось? Допустим uo.odetoryjie('0x0F52').
:D


Top
   
PostPosted: 2011-06-04 07:12:38 
Offline

Joined: 2011-05-17 17:53:33
Posts: 11
Ох, теперь у меня новая проблема. Решил податься в горе-минера. Но вот беда, скрипт не очень хороший. Я понимаю что тут никто за меня его дописывать не будет, поэтому прошу дать мне хотя-бы наводку что и как делать.
Скрипт работает так - копает, ходит по шахте, когда макс. вес - относит в сундук около шахты, и обратно копать.
А проблема в том, что когда он отнес в сундук, и идет копать, то копает он не с того места где остановился, а с начала. Да и когда он приходит на начало, стоит еще минуты две ничего не делая.
Code:
Sub tohome()
Go_To(3662, 2181, 0) # Как пройти к сундуку из шахты (А)
Go_To(3662, 2204, 0) # Как пройти к сундуку из шахты (В)
wait(500)
unloadore()#Выгружаемся
wait(500)
Go_To(3662, 2204, 0) # Как пройти в шахту от сундука (В)
Go_To(3662, 2181, 0) # Как пройти в шахту от сундука (А)
Go_To(3662, 2181, 0) # Это первая точка копания (А)
wait(500)
end sub

Sub unloadore()
VAR TempX,TempY,i,Exit, Exit1, ConTainer, j
VAR Index=14
DIM Ore[5]
TempX=UO.GetX()
TempY=UO.GetY()
Ore[0]=0x19B9
Ore[1]=0x19B7
Ore[2]=0x19BA
Ore[3]=0x19B8
Ore[4]=0x0F29
For i=0 to 4
Exit=0
repeat
UO.FindType(Ore[i])
if UO.GetQuantity('finditem')>0 then
Exit1=0
j=0
UO.MoveItem('finditem',0,"0x4003BADC")#ID сундука,куда складывать руду
wait(1000)
Else
Exit=1
endif
until Exit==1
Next
end sub
sub main()
VAR i
while 1==1

Go_To(3662, 2181, 0)#Это первая точка копания
min()
Go_To(3659, 2175, 0)#Вторая точка копания
min()
Go_To(3659, 2172, 0)#И.Т.Д.
min()
Go_To(3659, 2169, 0)
min()
Go_To(3659, 2166, 0)
min()
   
Go_To(3659, 2163, 0)
min()
Go_To(3659, 2160, 0)
min()
Go_To(3659, 2157, 0)
min()
Go_To(3656, 2155, 0)
min()
Go_To(3656, 2158, 0)
min()

Go_To(3656, 2161, 0)
min()
Go_To(3656, 2164, 0)
min()
Go_To(3656, 2167, 0)
min()
Go_To(3656, 2170, 0)
min()
Go_To(3656, 2173, 0)
min()
   
Go_To(3656, 2176, 0)
min()
Go_To(3656, 2179, 0)
min()
Go_To(3653, 2180, 0)
min()
Go_To(3653, 2177, 0)
min()
Go_To(3653, 2174, 0)
min()

wend
end sub

Sub min()
var x,y,z
VAR LastTimer
VAR ms1 = "There is nothing here to mine for."
VAR ms2 = "You can't use"
VAR ms3 = "Вы переместили"
VAR ms4 = "You loosen some rocks"
VAR ms5 = "location"
VAR ms6 = "Try mining"
VAR ms7 = "You can't see that"
VAR ms8 = "You stop"
VAR ms9 = "That is too"
VAR ms10= "Вы не смогли"
VAR ms11= "You cannot mine"
z=UO.GetZ("self")
for y=-2 to 2
for x=-2 to 2
UO.Print(str(x)+" "+str(y))
if uo.weight > 400 then #Вес при котором идем домой
tohome()
endif
repeat
uo.deletejournal()
UO.WaitTargetTile("1341",STR(UO.GetX()+x),STR(UO.GetY()+Y),str(z))
UO.UseType('0x0E85')
LastTimer=UO.Timer()
repeat
wait(300)
until UO.InJournal(ms1) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms7) OR  UO.InJournal(ms9) OR  UO.InJournal(ms10) OR  UO.InJournal(ms11) OR UO.Timer()>LastTimer+200
if UO.InJournal(ms3) then
else
endif
until UO.InJournal(ms2) OR UO.InJournal(ms1) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR  UO.InJournal(ms9) OR  UO.InJournal(ms11)
next
next
end sub

Sub Step(x,y,mx,my,forstep)
if uo.GetX('self') <> x then
if uo.GetY('self') <> y then
if mx<0 then
if my<0 then
uo.Press(40)
wait(forstep)
else
uo.Press(39)
wait(forstep)
end if
else
if my<0 then
uo.Press(37)
wait(forstep)
else
uo.Press(38)
wait(forstep)
end if
end if
else
if mx<0 then
uo.Press(34)
wait(forstep)
else
uo.Press(36)
wait(forstep)
end if
end if
else
if my<0 then
uo.Press(35)
wait(forstep)
else
uo.Press(33)
wait(forstep)
end if
end if
end sub

Sub Go_To(x,y,abc)
var mx,my,fx,fy
var xx=x
var yy=y
var DistX=0
var DistY=1
var forstep=300
repeat
mx=uo.GetX('self')-x
my=uo.GetY('self')-y
fx=mx+x
fy=my+y
Step(xx,yy,mx,my,forstep)
until x==fx+DistX && y==fy+DistY || x==fx-DistX && y==fy+DistY || x==fx+DistX && y==fy-DistY || x==fx-DistX && y==fy-DistY || x==fx && y==fy
end sub


Top
   
PostPosted: 2011-06-04 12:51:09 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
ты почти сделал это сам - не хватало только 1 строки.
+ у тебя маленькая ошибка/ неточность в Sub min()
Проверяй внимательно все if then endif. Там чего то не хватает, я не могу править - скрипт модифицирован под тебя.

Code:
Sub tohome()
   VAR TempX=UO.GetX()
   VAR TempY=UO.GetY()
   Go_To(3662, 2181, 0) # Как пройти к сундуку из шахты (А)
   Go_To(3662, 2204, 0) # Как пройти к сундуку из шахты (В)
   wait(500)
   unloadore()#Выгружаемся
   wait(500)
   Go_To(3662, 2204, 0) # Как пройти в шахту от сундука (В)
   Go_To(3662, 2181, 0) # Как пройти в шахту от сундука (А)
   Go_To(3662, 2181, 0) # Это первая точка копания (А)
   Go_To(TempX, TempY, 0) # переходим к последней точке копания.
   wait(500)
end sub
Sub unloadore()
   VAR i,Exit, Exit1, ConTainer, j
   VAR Index=14
   DIM Ore[5]
   Ore[0]=0x19B9
   Ore[1]=0x19B7
   Ore[2]=0x19BA
   Ore[3]=0x19B8
   Ore[4]=0x0F29
   For i=0 to 4
      Exit=0
      repeat
         UO.FindType(Ore[i])
         if UO.GetQuantity('finditem')>0 then
            Exit1=0
            j=0
            UO.MoveItem('finditem',0,"0x4003BADC")#ID сундука,куда складывать руду
            wait(1000)
         Else
            Exit=1
         endif
      until Exit==1
   Next
end sub
sub main()
   VAR i
   while 1==1
      Go_To(3662, 2181, 0)#Это первая точка копания
      min()
      Go_To(3659, 2175, 0)#Вторая точка копания
      min()
      Go_To(3659, 2172, 0)#И.Т.Д.
      min()
      Go_To(3659, 2169, 0)
      min()
      Go_To(3659, 2166, 0)
      min()
      
      Go_To(3659, 2163, 0)
      min()
      Go_To(3659, 2160, 0)
      min()
      Go_To(3659, 2157, 0)
      min()
      Go_To(3656, 2155, 0)
      min()
      Go_To(3656, 2158, 0)
      min()
      Go_To(3656, 2161, 0)
      min()
      Go_To(3656, 2164, 0)
      min()
      Go_To(3656, 2167, 0)
      min()
      Go_To(3656, 2170, 0)
      min()
      Go_To(3656, 2173, 0)
      min()
      
      Go_To(3656, 2176, 0)
      min()
      Go_To(3656, 2179, 0)
      min()
      Go_To(3653, 2180, 0)
      min()
      Go_To(3653, 2177, 0)
      min()
      Go_To(3653, 2174, 0)
      min()
   wend
end sub
Sub min()
   var x,y,z
   VAR LastTimer
   VAR ms1 = "There is nothing here to mine for."
   VAR ms2 = "You can't use"
   VAR ms3 = "Вы переместили"
   VAR ms4 = "You loosen some rocks"
   VAR ms5 = "location"
   VAR ms6 = "Try mining"
   VAR ms7 = "You can't see that"
   VAR ms8 = "You stop"
   VAR ms9 = "That is too"
   VAR ms10= "Вы не смогли"
   VAR ms11= "You cannot mine"
   z=UO.GetZ("self")
   for y=-2 to 2
      for x=-2 to 2
         UO.Print(str(x)+" "+str(y))
         if uo.weight > 400 then #Вес при котором идем домой
            tohome()
         endif
         repeat
            uo.deletejournal()
            UO.WaitTargetTile("1341",STR(UO.GetX()+x),STR(UO.GetY()+Y),str(z))
            UO.UseType('0x0E85')
            LastTimer=UO.Timer()
            repeat
               wait(300)
            until UO.InJournal(ms1) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms7) OR  UO.InJournal(ms9) OR  UO.InJournal(ms10) OR  UO.InJournal(ms11) OR UO.Timer()>LastTimer+200
            if UO.InJournal(ms3) then
            else
            endif
         until UO.InJournal(ms2) OR UO.InJournal(ms1) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR  UO.InJournal(ms9) OR  UO.InJournal(ms11)
      next
   next
end sub
Sub Step(x,y,mx,my,forstep)
   if uo.GetX('self') <> x then
      if uo.GetY('self') <> y then
         if mx<0 then
            if my<0 then
               uo.Press(40)
               wait(forstep)
            else
               uo.Press(39)
               wait(forstep)
            end if
         else
            if my<0 then
               uo.Press(37)
               wait(forstep)
            else
               uo.Press(38)
               wait(forstep)
            end if
         end if
      else
         if mx<0 then
            uo.Press(34)
            wait(forstep)
         else
            uo.Press(36)
            wait(forstep)
         end if
      end if
   else
      if my<0 then
         uo.Press(35)
         wait(forstep)
      else
         uo.Press(33)
         wait(forstep)
      end if
   end if
end sub
Sub Go_To(x,y,abc)
   var mx,my,fx,fy
   var xx=x
   var yy=y
   var DistX=0
   var DistY=1
   var forstep=300
   repeat
      mx=uo.GetX('self')-x
      my=uo.GetY('self')-y
      fx=mx+x
      fy=my+y
      Step(xx,yy,mx,my,forstep)
   until x==fx+DistX && y==fy+DistY || x==fx-DistX && y==fy+DistY || x==fx+DistX && y==fy-DistY || x==fx-DistX && y==fy-DistY || x==fx && y==fy
end sub

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


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 0 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