Yoko

All sides of Injection
It is currently 2025-11-23 06:46:19

All times are UTC+02:00




Post new topic  Reply to topic  [ 23 posts ]  Go to page 1 2 Next
Author Message
PostPosted: 2004-10-07 13:24:43 
Offline

Joined: 2004-09-17 15:20:37
Posts: 13
Народ ! Пожайлуста, помогите, обыскал весь форум, много нашёл касающегося обкладыванием ветока со всех сторон жертвы, но ниченго рабочего так и не нашёл, не могли бы вы дать ссылочку на рабочий скрипт или отписаться здесь ?? Суть такова, чтобы я стоял впритык ко врагу, независимо какой стороной и нажимая на кнопку, мой пративник обкладывался бы с 4 сторон, лучше с 8 конечно, всё таки кривая вердата не такая уж и вещь далёкая...


Top
   
PostPosted: 2004-10-07 18:36:29 
Offline
Expert!

Joined: 2004-06-04 03:24:25
Posts: 333
ZID wrote:
Народ ! Пожайлуста, помогите, обыскал весь форум, много нашёл касающегося обкладыванием ветока со всех сторон жертвы, но ниченго рабочего так и не нашёл, не могли бы вы дать ссылочку на рабочий скрипт или отписаться здесь ?? Суть такова, чтобы я стоял впритык ко врагу, независимо какой стороной и нажимая на кнопку, мой пративник обкладывался бы с 4 сторон, лучше с 8 конечно, всё таки кривая вердата не такая уж и вещь далёкая...

чем ты его обкладываешь и как стоишь? в смысле - на соседних тайлах, или на одном и том же?


Top
   
 Post subject:
PostPosted: 2004-10-07 19:40:33 
Offline

Joined: 2004-09-17 15:20:37
Posts: 13
я стою перед ним мордой вперёд допустим....


Top
   
 Post subject:
PostPosted: 2004-10-08 04:07:09 
Offline
Expert!

Joined: 2004-06-04 03:24:25
Posts: 333
ZID wrote:
я стою перед ним мордой вперёд допустим....

я не очень понял, для чего тебе это и чем ты собрался обкладывать, но вот тебе пара примеров и делай с ними что хочешь. оба выстраивают вокруг тебя квадратный забот из указаного типа предметов размером 5х5:
1) этот пример наименее глючен, но с ним дофига всего инжект пишет, если не отключать injectecho, да и работает довольно медленно
Code:
sub main()   
   droparound("0x097B") # 0x097B заменить на нужный тип предмета
endsub
sub droparound(itemtype)
   var a,b,c,d,e,x,y
   for a=-2 to 1
      b=str(a)
      c=str(0-a)      
      for e=0 to 3         
         d=uo.count(itemtype)
         if d>0 then
            uo.waittargettype(itemtype)
            uo.addobject('f')
            if e==0 then
               x=uo.getx('self')+2
               y=uo.gety('self')+a
            endif
            if e==1 then
               x=uo.getx('self')-2
               y=uo.gety('self')-a
            endif
            if e==2 then
               x=uo.getx('self')-a
               y=uo.gety('self')+2
            endif
            if e==3 then
               x=uo.getx('self')+a
               y=uo.gety('self')-2
            endif
            uo.textprint(str(x)+' '+str(y))
            uo.moveitem('f',"1","ground",str(x),str(y),str(255))
            repeat               
               wait(100)
            until d<>uo.count(itemtype)
            wait(100)
         endif
      next
   next   
endsub



2) этот пример, вроде бы, работает пошустрее, но на лагах может "хватать" вещь с земли и класть её в новое место

Code:
sub main()
   var what="0x0E21" # 0x0E21 заменить на objtype необходимого предмета
   droparound(what)
endsub
sub droparound(itemtype)
   var a,b,c,d,e,x,y
   
   for a=-2 to 1
      b=str(a)
      c=str(0-a)      
      for e=0 to 3         
         d=uo.count(itemtype)
         if d>0 then
            uo.findtype(itemtype,'-1','backpack')            
            if e==0 then
               x=uo.getx('self')+2
               y=uo.gety('self')+a
            else
               if e==1 then
                  x=uo.getx('self')-2
                  y=uo.gety('self')-a
               else
                  if e==2 then
                     x=uo.getx('self')-a
                     y=uo.gety('self')+2
                  else
                     x=uo.getx('self')+a
                     y=uo.gety('self')-2                     
                  endif               
               endif
            endif            
            uo.moveitem('finditem',"1","ground",str(x),str(y),str(uo.getz()))
            repeat               
               wait(30)
            until d<>uo.count(itemtype)
            wait(30)
         endif
      next
   next   
endsub



Top
   
 Post subject:
PostPosted: 2004-10-08 13:43:59 
Offline

Joined: 2004-09-17 15:20:37
Posts: 13
спасиб, ща потестю....


Top
   
 Post subject:
PostPosted: 2004-10-08 13:50:17 
Offline

Joined: 2004-09-17 15:20:37
Posts: 13
и в первом и во втором ничего не делает вообще, что то быстроо проскакивает, но ничего не происходит..


Top
   
 Post subject:
PostPosted: 2004-10-08 14:34:17 
Offline

Joined: 2004-09-17 15:20:37
Posts: 13
аааа неее сорри, 1 работает, но это свосем не то что мне нужно... я проси чтобы он чела обкладывал ветками, чтобы чел застревал... и веток не стока...


Top
   
 Post subject:
PostPosted: 2004-10-08 14:58:47 
Offline

Joined: 2004-09-17 15:20:37
Posts: 13
вобщем, чтобы я стоял рожей к противнику и он кидал ветку ему за спину, слева и справа, вот что то типа этого скрипта... получше конечно.... только тут он кидает почему то за спину врагу когда стоишь к нему жопой к лицу.... и только за спину, но не по сторонам...
Code:
sub itemdrop()
; Itemdrop by Dei
var Ditem='0x1B9B' ; item to drop
var hgt='0' ; height (-2 to 4)

uo.findtype(Ditem,-1,'my')
if uo.getquantity('finditem')>=1 then
if uo.getdir('self')==0 then ; N
   uo.drop('1','0','2',hgt,'finditem')
end if
if uo.getdir('self')==1 then ; NE
      uo.drop('1','-2','2',hgt,'finditem')
      end if
if uo.getdir('self')==2 then ; E
         uo.drop('1','-2','0',hgt,'finditem')
            end if
if uo.getdir('self')==3 then ; SE
            uo.drop('1','-2','-2',hgt,'finditem')
                  end if
if uo.getdir('self')==4 then ; S
             uo.drop('1','0','-2',hgt,'finditem')
                  end if                     
if uo.getdir('self')==5 then ; SW
         uo.drop('1','2','-2',hgt,'finditem')
            end if
if uo.getdir('self')==6 then ; W
      uo.drop('1','2','0',hgt,'finditem')
      end if
if uo.getdir('self')==7 then ; NW
   uo.drop('1','2','2',hgt,'finditem')
end if
     else
uo.findtype(Ditem,-1,'ground')
if uo.getquantity('finditem')<=1 then
uo.grab('1','finditem')
     end if
end if
end sub


Top
   
 Post subject:
PostPosted: 2004-10-08 16:44:43 
Offline

Joined: 2004-09-17 15:20:37
Posts: 13
хм.... я сам переделал, чтобы кидал передом, но как сделать чтобы кидал ещщё и по бокам ветки ??? и жедательно под себя... ?


Top
   
 Post subject:
PostPosted: 2004-10-08 17:07:55 
Offline
Expert!

Joined: 2004-06-04 03:24:25
Posts: 333
ZID wrote:
и в первом и во втором ничего не делает вообще, что то быстроо проскакивает, но ничего не происходит..

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


Top
   
 Post subject:
PostPosted: 2004-10-08 17:15:32 
Offline
Expert!

Joined: 2004-06-04 03:24:25
Posts: 333
если первый скрипт работает, то его можно переделать так(только еще расстояние проверять):
Code:
sub main() 
   var what="0x1B9B"
   ver opponent="0x12345678" # заменить на сериал оппонента
   droparound(what, opponent)
endsub
sub droparound(itemtype,who)
   var a,b,c,d,e,x,y
   for a=-1 to 0
      b=str(a)
      c=str(0-a)       
      for e=0 to 3         
         d=uo.count(itemtype)
         if d>0 then
            uo.findtype(itemtype,'-1','backpack')             
            if e==0 then
               x=uo.getx(who)+1
               y=uo.gety(who)+a
            else
               if e==1 then
                  x=uo.getx(who)-1
                  y=uo.gety(who)-a
               else
                  if e==2 then
                     x=uo.getx(who)-a
                     y=uo.gety(who)+1
                  else
                     x=uo.getx(who)+a
                     y=uo.gety(who)-1                     
                  endif               
               endif
            endif             
            uo.moveitem('finditem',"1","ground",str(x),str(y),str(uo.getz()))
            repeat               
               wait(30)
            until d<>uo.count(itemtype)
            wait(30)
         endif
      next
   next
endsub


Top
   
 Post subject:
PostPosted: 2004-10-08 18:15:30 
Offline

Joined: 2004-09-17 15:20:37
Posts: 13
неее... никаких серивлов оппонента ненадо чтобы можно было и без оппонента можно было вылодить...


Top
   
 Post subject:
PostPosted: 2004-10-08 23:36:57 
Offline
Expert!

Joined: 2004-06-04 03:24:25
Posts: 333
ZID wrote:
неее... никаких серивлов оппонента ненадо чтобы можно было и без оппонента можно было вылодить...

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


Top
   
 Post subject:
PostPosted: 2004-10-08 23:51:18 
Offline
Expert!

Joined: 2004-06-04 03:24:25
Posts: 333
ZID wrote:
хм.... я сам переделал, чтобы кидал передом, но как сделать чтобы кидал ещщё и по бокам ветки ??? и жедательно под себя... ?

хотя бы схемку какую нарисовал бы, что ли... пару примеров "на пальцах", что конкретно ты от скрипта хочешь...


Top
   
 Post subject:
PostPosted: 2004-10-09 00:13:23 
Offline
Expert!

Joined: 2004-06-04 03:24:25
Posts: 333
такс. перечитал первый твой пост в топике. кажется, понял, в чем дело. но ответь мне на один вопрос - кто тебе сказал, что ты выложишь ветки вокруг жертвы раньше, чем она отойдет в сторону?
получилось примерно следующее:
Code:
#N=0,-1; NE=1,-1;  E=1,0; SE=1,1; S=0,1; SW=-1,1; W=-1,0; NW=-1,-1;   
sub dropitems()
   var item='0x1B9B'
   dim ox[8],oy[8]
#----N----
   ox[0]=0
   oy[0]=-1
#----NE---
   ox[1]=1
   oy[1]=-1
#----E----
   ox[2]=1
   oy[2]=0
#----SE---
   ox[3]=1
   oy[3]=1
#----S----
   ox[4]=0
   oy[4]=1
#----SW---
   ox[5]=-1
   oy[5]=1
#----W----
   ox[6]=-1
   oy[6]=0
#----NW
   ox[7]=-1
   oy[7]=-1
#------------      
   var x,d,t
   uo.ignorereset()
   d=uo.getdir('self')      
   for x=0 to 7   
      uo.findtype(item,'-1','backpack')
      if uo.findcount()>0 then
         t=uo.count(item)
         uo.drop('1',str(ox[x]+ox[d]),str(oy[x]+oy[d]),'0','finditem')
         uo.ignore(uo.getserial('findinem'))
         repeat
            wait(10)
         until t<>uo.count(item)
         wait(50)
      endif
   next
endsub


Top
   
 Post subject:
PostPosted: 2004-10-10 15:54:41 
Offline

Joined: 2004-09-17 15:20:37
Posts: 13
ХМ... РАБОТАЕТ... но почему то инвалид обжект тайп 0X000000 пишет после того как кладёт 3 ветку...


Top
   
 Post subject:
PostPosted: 2004-10-10 16:11:52 
Offline

Joined: 2004-09-17 15:20:37
Posts: 13
и типа надо последовательность ветко сменить, так как после того как он по бокамкладёт ветки он не может положить в верхние углы... пожтому ошибки..


Top
   
 Post subject:
PostPosted: 2004-10-10 16:59:14 
Offline

Joined: 2004-09-17 15:20:37
Posts: 13
спасибо что помогаешь


Top
   
 Post subject:
PostPosted: 2004-10-10 17:37:26 
Offline

Joined: 2004-09-17 15:20:37
Posts: 13
и ещё плиз, если не сложно, напиши на то чтобы он обкладывал 4 ветками с 4 сторон (по бокам и верх низ), по углам не надо... но и первую плиз поправь...


Top
   
 Post subject:
PostPosted: 2004-10-11 01:13:32 
Offline
Expert!

Joined: 2004-06-04 03:24:25
Posts: 333
ZID wrote:
и ещё плиз, если не сложно, напиши на то чтобы он обкладывал 4 ветками с 4 сторон (по бокам и верх низ), по углам не надо... но и первую плиз поправь...

я тебе показал пару способов, дальше ты и сам, я думаю, сможешь...
для четырех сторон - просто убираешь из массивов, что в начале скрипта лишние направления (все элементы ч нечетными индексами), оставив в них только 4 вместо восьми, ну и соответственно индексы другие : 1-4. потом после определения направления чара берешь из массивов данные просто в другом порядке. в каком - уже труда разобраться не составит.


Last edited by GrayLord on 2004-10-11 01:16:22, edited 1 time in total.

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

All times are UTC+02:00


Who is online

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