Para's Script Library

02/12/2017 20:59 Paraly#901
Quote:
Originally Posted by swordofkaithiel View Post
Hi, excuse me, why i couldnt find Danuar Sanctuary script?
I attach the script here

_______________________


Quote:
Originally Posted by ll8082 View Post
i know useskill :
#IF=%Timer=4409,1000;
UseID=4409;
#ENDIF
but how do use charging skills ?
sorry, i am a new.
Code:
#IF=%Timer=4409,1000;
UseID=4409;
Delay=3000;<-- channels for 3 seconds
UseID=4409;
#ENDIF
Quote:
Originally Posted by ll8082 View Post
i just make a script , but it have error . who can help me ?

Delay=50;
_IFMemPtrRead=%PlayerBase,0x330/0x44,BYTE,<50;
#EXECUTE=HP;
#ENDIF
#IF=%GotTarget,True;
SendKey=0x09;
#ELSE
_IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,=0;
UseID=50002;
Delay=50;
UseID=50002;
#ELSE
#IF=%Timer=4221,11000;
UseID=4221;
CreateTimer=4221;
#ELSE
#IF=%Timer=4409,1000;
UseID=4409;
#ENDIF
#ENDIF
#ENDIF
#ENDIF
So first you can't really use a #IF question inside an #IF question in many cases.

You can stack IF questions like this

Code:
#IF
#IF
#IF
#ELSE
#ENDIF
but in most cases you can't do it like this

Code:
#IF
#IF
#ELSE
#IF
#ENDIF
the way how #IF questions work at the script editor is they tell the script editor in case it's true he is allowed to execute the code below till an #ELSE statement, in case it's false it will search for the next available #ELSE or #ENDIF and continue from there.
Also you just need 1 #ENDIF at the end even if you added like 5 #IF questions in a row like I did in my first example you still only need 1 #ENDIF

However there's a way to use IF questions after a ELSE for example by simply using functions.

here's your snippet fixed.

Code:
Delay=50;

_IFMemPtrRead=%PlayerBase,0x330/0x44,BYTE,<50;
#EXECUTE=HP; 
#ENDIF

#IF=%GotTarget,True;
SendKey=0x09;
#ELSE
#EXECUTE=NoTarget;
#ENDIF

start_NoTarget;

_IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,=0;
UseID=50002;
Delay=50;
UseID=50002; 
#ENDIF

_IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,>0;
#IF=%Timer=4221,11000;
UseID=4221; 
CreateTimer=4221; 
#ENDIF

_IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,>0;
#IF=%Timer=4409,1000;
UseID=4409;
#ENDIF

end_NoTarget;
02/13/2017 03:28 swordofkaithiel#902
hi, did you deleted the timat stronghold script?
02/13/2017 04:55 ll8082#903
can i use
#DO= 500;
#DO= 500;
Delay=2000;
#UNTIL;
#UNTIL;

and #untile can i use : #until true or true ; or #until true and true ?
02/13/2017 12:47 Paraly#904
Quote:
Originally Posted by ll8082 View Post
can i use
#DO= 500;
#DO= 500;
Delay=2000;
#UNTIL;
#UNTIL;

and #untile can i use : #until true or true ; or #until true and true ?
If you wanna use a DO / UNTIL inside another DO / UNTIL you could do it like this

Code:
#DO
#2DO
#2UNTIL
#UNTIL
Quote:
Originally Posted by swordofkaithiel View Post
hi, did you deleted the timat stronghold script?
Yes, tiamat stronghold got fixed at 5.0, those adds from the skeleton boss give no exp anymore
02/14/2017 07:43 Prettykiller#905
Combat script for Chanter or assassin
02/15/2017 01:10 ll8082#906
#IF=%Timer=4133,16000;
can i do this :
#IF=%Timer=4133,<16000; or #IF=%Timer=4133,16000,false;

i just test cant use
#DO=100;
#UNTIL
but

#DO=100;
#2UNTIL
or
#DO=100;
#3UNTIL; is can use.

not print(); is bad , look for error very fash.

02/15/2017 01:24 Paraly#907
Quote:
Originally Posted by ll8082 View Post
#IF=%Timer=4133,16000;
can i do this :
#IF=%Timer=4133,<16000; or #IF=%Timer=4133,16000,false;

i just test cant use
#DO=100;
#UNTIL
but

#DO=100;
#2UNTIL
or
#DO=100;
#3UNTIL; is can use.

not print(); is bad , look for error very fash.
So the first thing makes no sense

Code:
#IF=%Timer=4133,<16000;
this line doesn't need a "<" %Timer check will always check if the timer has runned for more than x millseconds
so
Code:
#IF=%Timer=4133,16000;
is already fine

And in case you wanna check if this isn't true it will jump to the next #ELSE obviously

Code:
#IF=%Timer=4133,16000;
WaitForResponse=Timer has runned for more than 16 seconds;
#ELSE
WaitForResponse=Timer hasn't passed the 16 seconds yet;
#ENDIF


Where should this make sense?
Code:
#DO=100;
#UNTIL
there's no condition at #UNTIL, if you just wanna use a loop for 100 milliseconds, add something impossible like

Code:
#DO=100;
#UNTIL=%TargetName,---;

Also this makes no sense

Code:
#DO=100;
#2UNTIL     

#DO=100;
#3UNTIL;

#DO declares the start point of the loop and also declares the timeout, in case it reaches #UNTIL it checks if a condition is true in order to continue or the timeout must be true, in case it's false it will jump back to the #DO

So #DO and #UNTIL work together as well as #2DO and #2UNTIL as well as #3DO and #3UNTIL but you can't just use the #3UNTIL with the normal #DO that makes no sense.
02/15/2017 01:26 ll8082#908
help me better my first script. only select nearby target .
Code:
#EXECUTE=loop; 
start_loop;
#IF=%Timer=4431,120000;
             UseID=4431;
             Delay=1300; 
            CreateTimer=4431;
#ENDIF
#IF=%Timer=4444,2600000;
             UseID=4444;
             Delay=1300; 
             CreateTimer=4444;
#ENDIF
_IFMemPtrRead=%PlayerBase,0x330/0x1520,DWORD,<2550;
   #EXECUTE=MP; 
#ENDIF
_IFMemPtrRead=%PlayerBase,0x330/0x44,BYTE,<90;
   #EXECUTE=HP; 
#ENDIF
#EXECUTE=checkdone;
end_loop;
start_checkdone;
   #IF=%GotTarget,Ture;  
   #EXECUTE=fbtarget;  
   #ELSE
   #EXECUTE=rang;  
#ENDIF
end_checkdone;
start_select;
   _IFMemPtrRead=%PlayerBase,0x330/0x44,BYTE,>88;
   SendKey=0x09;
   Delay=100; 
   #EXECUTE=loop;
   #ELSE
   Delay=100;
   #ENDIF
end_select
start_fbtarget;
   _IFMemPtrRead=%TargetBase,0x330/0x42,BYTE,>10;
   #EXECUTE=rang; 
   #ELSE
   SendKey=0x09; <--cant select long distance target look for other command.
   Delay=200;
   #EXECUTE=loop; 
   #ENDIF
end_fbtarget
start_rang;
 _IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,=0;
      SendKey=0x34;                          <--loot 
      Delay=200;
      SendKey=0x34; 
      #EXECUTE=loop; 
 #ELSE
  #EXECUTE=nodead; 
 #ENDIF
end_rang;
start_nodead;
 #IF=%TargetDistance,>25;
  SendKey=0x37;
 Delay=500;
 #EXECUTE=loop; 
 #ELSE
 #EXECUTE=combat;
 #ENDIF
end_nodead;

start_combat;
  _IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,>90;
   #IF=%Timer=4286,16000;   
            #DO=750;
            UseID=4286;
            _UNTILMemRead=0x12950B0,WORD,=4286;
            _IFMemRead=0x12950B0,WORD,=4286;
            CreateTimer=4286;
            MemWrite=0x12950B0,0,WORD;
            #DO=1000;
            Delay=50;
            _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,>0;
            #DO=2000;
            Delay=50;
            _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,=0;
   #EXECUTE=loop; 
   #ENDIF
 _IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,>60;
 #IF=%Timer=4543,30000;
 #EXECUTE=skill4543; 
 #ENDIF 
 #IF=%Timer=4224,12000;
 #EXECUTE=skill4224; 
 #ENDIF 
 #IF=%Timer=4306,30000;
 #EXECUTE=skill4306;      
 #ENDIF
end_combat;
start_skill4543;
  _IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,>0;
  #IF=%Timer=4543,12000;
               #DO=750;
            UseID=4543;
            _UNTILMemRead=0x12950B0,WORD,=4543;
            _IFMemRead=0x12950B0,WORD,=4543;
            CreateTimer=4543;
            MemWrite=0x12950B0,0,WORD;
            #DO=1000;
            Delay=50;
            _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,>0;
            #DO=2000;
            Delay=50;
            _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,=0;  
  #ENDIF
 #EXECUTE=loop;  
end_skill4543;
start_skill4224; 
 _IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,>0;
  #IF=%Timer=4224,12000;
               #DO=750;
            UseID=4224;
            _UNTILMemRead=0x12950B0,WORD,=4224;
            _IFMemRead=0x12950B0,WORD,=4224;
            CreateTimer=4224;
            MemWrite=0x12950B0,0,WORD;
            #DO=1000;
            Delay=50;
            _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,>0;
            #DO=2000;
            Delay=50;
            _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,=0;  
  #ENDIF
  _IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,>0;
  #IF=%Timer=4224,2000;
  #ELSE
            #DO=750;
            UseID=4236;
            _UNTILMemRead=0x12950B0,WORD,=4236;
            _IFMemRead=0x12950B0,WORD,=4236;
            CreateTimer=4236;
            MemWrite=0x12950B0,0,WORD;
            #DO=1000;
            Delay=50;
            _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,>0;
            #DO=2000;
            Delay=50;
            _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,=0;         
 #ENDIF
  _IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,>0;
   #IF=%Timer=4236,2000;
  #ELSE
            #DO=750;
            UseID=4254;
            _UNTILMemRead=0x12950B0,WORD,=4254;
            _IFMemRead=0x12950B0,WORD,=4254;
            CreateTimer=4254;
            MemWrite=0x12950B0,0,WORD;
            #DO=1000;
            Delay=50;
            _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,>0;
            #DO=2000;
            Delay=50;
            _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,=0;         
 #ENDIF
 #EXECUTE=loop;  
end_skill4223;
start_skill4306; 
   _IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,>0;
   #IF=%Timer=4306,31000; 
            #DO=750;
            UseID=4306;
            _UNTILMemRead=0x12950B0,WORD,=4306;
            _IFMemRead=0x12950B0,WORD,=4306;
            MemWrite=0x12950B0,0,WORD;
            #DO=1000;
            Delay=50;
            _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,>0;
            #DO=2000;
            Delay=50;
            _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,=0;  
            _IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,>0;                 
            Delay=1150;
            #DO=750;
            UseID=4306;
            _UNTILMemRead=0x12950B0,WORD,=4306;
            _IFMemRead=0x12950B0,WORD,=4306;
            CreateTimer=4306;
            MemWrite=0x12950B0,0,WORD;
            #DO=1000;
            Delay=50;
            _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,>0;
            #DO=2000;
            Delay=50;
            _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,=0;         
 #ENDIF 
#EXECUTE=loop;  
end_skill4330;

start_HP; 
    _IFMemPtrRead=%PlayerBase,0x330/0x44,BYTE,<90;
    #IF=%Timer=4342,6000;  
    #DO=750;
    UseID=4342;
    _UNTILMemRead=0x12950B0,WORD,=4342;
    _IFMemRead=0x12950B0,WORD,=4342;
    CreateTimer=4342;
    MemWrite=0x12950B0,0,WORD;
    #DO=1000;
    Delay=50;
    _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,>0;
    #DO=1000;
    Delay=50;
    _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,=0;
    #ENDIF
    #IF=%Timer=4339,3000; 
    #ELSE
    #DO=750;
    UseID=4352;
    _UNTILMemRead=0x12950B0,WORD,=4352;
    _IFMemRead=0x12950B0,WORD,=4352;
    MemWrite=0x12950B0,0,WORD;
    #DO=1000;
    Delay=50;
    _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,>0;
    #DO=2000;
    Delay=50;
    _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,=0;  
     #ENDIF       
 #EXECUTE=checkdone;
end_HP;

start_MP;
 #IF=%Timer=4372,30000;
            #DO=750;
            UseID=4372;
            _UNTILMemRead=0x12950B0,WORD,=4372;
            _IFMemRead=0x12950B0,WORD,=4372;
            CreateTimer=4372;
            MemWrite=0x12950B0,0,WORD;
            #DO=1000;
            Delay=50;
            _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,>0;
            #DO=2000;
            Delay=50;
            _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,=0;             
 #ENDIF
 #EXECUTE=HP;
end_MP;
02/17/2017 16:30 ll8082#909
how do use a var?
as:
var a:integer=1;
#IF=%GotTarget,Ture;
a=1;
#ELSE
a=2;
#ENDIF
02/17/2017 18:08 Paraly#910
Quote:
Originally Posted by ll8082 View Post
how do use a var?
as:
var a:integer=1;
#IF=%GotTarget,Ture;
a=1;
#ELSE
a=2;
#ENDIF
This isn't a developing language, it's just a small scripting language for Aion.
However tell me one case you need variables in a script.
02/18/2017 01:48 ll8082#911
Quote:
Originally Posted by Paraly View Post
This isn't a developing language, it's just a small scripting language for Aion.
However tell me one case you need variables in a script.
case:
Code:
#DO=2000000;
   _IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,>0;
    a=4544;
    b=3000;
    #EXECUTE=skill;  
    #ENDIF
    _IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,>0;
    a=4226;
    b=12000;
    #EXECUTE=skill;  
    #ENDIF
    _IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,>0;
    a=4265;
    b=16000;
    #EXECUTE=skill;  
    #ENDIF
_UNTILMemPtrRead=%TargetBase,0x330/0x44,BYTE,=0;


start_skill;
  _IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,>0;
  #IF=%Timer=a,b;
               #DO=750;
            UseID=a;
            _UNTILMemRead=0x12950B0,WORD,=a;
            _IFMemRead=0x12950B0,WORD,=a;
            CreateTimer=a;
            MemWrite=0x12950B0,0,WORD;
            #DO=1000;
            Delay=50;
            _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,>0;
            #DO=2000;
            Delay=50;
            _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,=0;  
  #ENDIF
end_skill;
02/18/2017 02:36 Paraly#912
Quote:
Originally Posted by ll8082 View Post
case:
Code:
#DO=2000000;
   _IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,>0;
    a=4544;
    b=3000;
    #EXECUTE=skill;  
    #ENDIF
    _IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,>0;
    a=4226;
    b=12000;
    #EXECUTE=skill;  
    #ENDIF
    _IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,>0;
    a=4265;
    b=16000;
    #EXECUTE=skill;  
    #ENDIF
_UNTILMemPtrRead=%TargetBase,0x330/0x44,BYTE,=0;


start_skill;
  _IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,>0;
  #IF=%Timer=a,b;
               #DO=750;
            UseID=a;
            _UNTILMemRead=0x12950B0,WORD,=a;
            _IFMemRead=0x12950B0,WORD,=a;
            CreateTimer=a;
            MemWrite=0x12950B0,0,WORD;
            #DO=1000;
            Delay=50;
            _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,>0;
            #DO=2000;
            Delay=50;
            _UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,=0;  
  #ENDIF
end_skill;
there you go

Code:
#DO=2000000;
_IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,>0;
#IF=%Timer=4544,3000;
#2DO=750;
UseID=4544;
_2UNTILMemRead=0x12950B0,WORD,=4544;
_IFMemRead=0x12950B0,WORD,=4544;
CreateTimer=4544;
MemWrite=0x12950B0,0,WORD;
#2DO=1000;
Delay=50;
_2UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,>0;
#2DO=2000;
Delay=50;
_2UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,=0;  	
#ENDIF
_IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,>0;
#IF=%Timer=4226,12000;
#2DO=750;
UseID=4226;
_2UNTILMemRead=0x12950B0,WORD,=4226;
_IFMemRead=0x12950B0,WORD,=4226;
CreateTimer=4226;
MemWrite=0x12950B0,0,WORD;
#2DO=1000;
Delay=50;
_2UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,>0;
#2DO=2000;
Delay=50;
_2UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,=0;  	
#ENDIF
_IFMemPtrRead=%TargetBase,0x330/0x44,BYTE,>0;
#IF=%Timer=4265,16000;
#2DO=750;
UseID=4265;
_2UNTILMemRead=0x12950B0,WORD,=4265;
_IFMemRead=0x12950B0,WORD,=4265;
CreateTimer=4265;
MemWrite=0x12950B0,0,WORD;
#2DO=1000;
Delay=50;
_2UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,>0;
#2DO=2000;
Delay=50;
_2UNTILMemPtrRead=%PlayerBase,0x330/0x14F8,DWORD,=0;  	
#ENDIF
_UNTILMemPtrRead=%TargetBase,0x330/0x44,BYTE,=0;
02/24/2017 13:02 Na.Q#913
I tried to make script exchange Fragmented Ceramium to Ceramium Medal in Cyanea. But it didn't work loop. Can you help me fix?

My script:

#IF=%FirstTime,;
RequireVersion=2.59;
#NeedResolution=816,638;
Delay=300;
#UseLoop
Command=/select Renrunerk;
Delay=150;
Command=/attack;
Delay=500;
Mouse=120,172;
Delay=750;
Mouse=120,172;
Delay=750;
Mouse=194,393;
Delay=500;
Command=/select Renrunerk;
Delay=150;
Command=/attack;
Delay=500;
Mouse=120,172;
Delay=750;
Mouse=195,391;
Delay=300;
02/24/2017 13:08 Paraly#914
Quote:
Originally Posted by Na.Q View Post
I tried to make script exchange Fragmented Ceramium to Ceramium Medal in Cyanea. But it didn't work loop. Can you help me fix?

My script:

#IF=%FirstTime,;
RequireVersion=2.59;
#NeedResolution=816,638;
Delay=300;
#UseLoop
Command=/select Renrunerk;
Delay=150;
Command=/attack;
Delay=500;
Mouse=120,172;
Delay=750;
Mouse=120,172;
Delay=750;
Mouse=194,393;
Delay=500;
Command=/select Renrunerk;
Delay=150;
Command=/attack;
Delay=500;
Mouse=120,172;
Delay=750;
Mouse=195,391;
Delay=300;
you missed the #ENDIF after your first settings.

Code:
#IF=%FirstTime,;
RequireVersion=2.59;
#NeedResolution=816,638;
Delay=300;
#UseLoop
#ENDIF
Command=/select Renrunerk;
Delay=150;
Command=/attack;
Delay=500;
Mouse=120,172;
Delay=750;
Mouse=120,172;
Delay=750;
Mouse=194,393;
Delay=500;
Command=/select Renrunerk;
Delay=150;
Command=/attack;
Delay=500;
Mouse=120,172;
Delay=750;
Mouse=195,391;
Delay=300;
02/24/2017 16:19 Vince3D#915
I have a problem with the script for the higher fortresses. The gravity and collision options are enabled, but the script runs as a whole once in 4 (Roolback at the beginning of the instance). Have you a solution?