Para's Script Library

07/03/2018 18:20 Paraly#1981
Here's an example code how to read the price of the current selected item at broker

Code:
_IFFrameVisible=181;
#EXECUTE=CheckUnitPrice;
#ENDIF

_IFFrameVisible=497;
#EXECUTE=CheckStackPrice;
#ENDIF


start_CheckUnitPrice;

_MemPtrReadVar=%AddrFrameID[181],0x610,DWORD,UnitPrice; unit price
_MemPtrReadVar=%AddrFrameID[181],0x628,DWORD,UnitAmount; unit amount
_Calc[BundlePrice]=%Var[UnitPrice]*%Var[UnitAmount];
WaitForResponse=Unit Price: %Var[UnitPrice]/nAmount: %Var[UnitAmount]/nPrice for the whole bundle: %Var[BundlePrice];

#IF=%Var[UnitPrice],<50000;
WaitForResponse=Unit price is lower than 50000;
#ELSE
WaitForResponse=Unit price is greater than 50000;
#ENDIF

end_CheckUnitPrice;



start_CheckStackPrice;

#EXECUTE=TransformStackPrice;
WaitForResponse=The stack price is: %Var[StackPrice];

#IF=%Var[StackPrice],<50000;
WaitForResponse=Stack price is lower than 50000;
#ELSE
WaitForResponse=Stack price is greater than 50000;
#ENDIF

end_CheckStackPrice;









start_TransformStackPrice;


_MemPtrReadVar=%AddrFrameID[497],0x610/0x358/0x108/0x0,WCHAR[32],StackPriceCached;

_SetVar=DynamicOffset,0x0;

#DO=60000;

_Calc[DynamicOffset]=%Var[DynamicOffset]+2;
_IFMemPtrRead=%AddrFrameID[497],0x610/0x358/0x108/%Var[DynamicOffset],BYTE,=44;
MemPtrWrite=%AddrFrameID[497],0x610/0x358/0x108/%Var[DynamicOffset],46,BYTE;
#ENDIF

#UNTIL=%Var[DynamicOffset],>32;


_SetVar=DynamicOffset,0x0;

#DO=60000;

_Calc[DynamicOffset]=%Var[DynamicOffset]+2;
_IFMemPtrRead=%AddrFrameID[497],0x610/0x358/0x108/%Var[DynamicOffset],BYTE,=46;
_Calc[DynamicOffset]=%Var[DynamicOffset]+2;
_MemPtrReadVar=%AddrFrameID[497],0x610/0x358/0x108/%Var[DynamicOffset],WCHAR[32],RemainingString;
_Calc[DynamicOffset]=%Var[DynamicOffset]-2;
MemPtrWrite=%AddrFrameID[497],0x610/0x358/0x108/%Var[DynamicOffset],%Var[RemainingString],WCHAR[32];
#ENDIF

#UNTIL=%Var[DynamicOffset],>32;


_SetVar=DynamicOffset,0x0;

#DO=60000;

_Calc[DynamicOffset]=%Var[DynamicOffset]+2;
_IFMemPtrRead=%AddrFrameID[497],0x610/0x358/0x108/%Var[DynamicOffset],BYTE,=32;
MemPtrWrite=%AddrFrameID[497],0x610/0x358/0x108/%Var[DynamicOffset],0,BYTE;
#ENDIF

#UNTIL=%Var[DynamicOffset],>32;


_MemPtrReadVar=%AddrFrameID[497],0x610/0x358/0x108/0x0,WCHAR[32],StackPrice;
MemPtrWrite=%AddrFrameID[497],0x610/0x358/0x108/0x0,%Var[StackPriceCached],WCHAR[32];


end_TransformStackPrice;
07/03/2018 18:38 Exem strike#1982
Quote:
Originally Posted by Paraly View Post
Here's an example code how to read the price of the current selected item at broker

Code:
_IFFrameVisible=181;
#EXECUTE=CheckUnitPrice;
#ENDIF

_IFFrameVisible=497;
#EXECUTE=CheckStackPrice;
#ENDIF


start_CheckUnitPrice;

_MemPtrReadVar=%AddrFrameID[181],0x610,DWORD,UnitPrice; unit price
_MemPtrReadVar=%AddrFrameID[181],0x628,DWORD,UnitAmount; unit amount
_Calc[BundlePrice]=%Var[UnitPrice]*%Var[UnitAmount];
WaitForResponse=Unit Price: %Var[UnitPrice]/nAmount: %Var[UnitAmount]/nPrice for the whole bundle: %Var[BundlePrice];

#IF=%Var[UnitPrice],<50000;
WaitForResponse=Unit price is lower than 50000;
#ELSE
WaitForResponse=Unit price is greater than 50000;
#ENDIF

end_CheckUnitPrice;



start_CheckStackPrice;

#EXECUTE=TransformStackPrice;
WaitForResponse=The stack price is: %Var[StackPrice];

#IF=%Var[StackPrice],<50000;
WaitForResponse=Stack price is lower than 50000;
#ELSE
WaitForResponse=Stack price is greater than 50000;
#ENDIF

end_CheckStackPrice;









start_TransformStackPrice;

_SetVar=DynamicOffset,0x0;

#DO=60000;

_Calc[DynamicOffset]=%Var[DynamicOffset]+2;
_IFMemPtrRead=%AddrFrameID[497],0x610/0x358/0x108/%Var[DynamicOffset],BYTE,=46;
_Calc[DynamicOffset]=%Var[DynamicOffset]+2;
_MemPtrReadVar=%AddrFrameID[497],0x610/0x358/0x108/%Var[DynamicOffset],WCHAR[32],RemainingString;
_Calc[DynamicOffset]=%Var[DynamicOffset]-2;
MemPtrWrite=%AddrFrameID[497],0x610/0x358/0x108/%Var[DynamicOffset],%Var[RemainingString],WCHAR[32];
#ENDIF

#UNTIL=%Var[DynamicOffset],>32;


_SetVar=DynamicOffset,0x0;

#DO=60000;

_Calc[DynamicOffset]=%Var[DynamicOffset]+2;
_IFMemPtrRead=%AddrFrameID[497],0x610/0x358/0x108/%Var[DynamicOffset],BYTE,=32;
MemPtrWrite=%AddrFrameID[497],0x610/0x358/0x108/%Var[DynamicOffset],0,BYTE;
#ENDIF

#UNTIL=%Var[DynamicOffset],>32;


_MemPtrReadVar=%AddrFrameID[497],0x610/0x358/0x108/0x0,WCHAR[32],StackPrice;

end_TransformStackPrice;
I'm kind of slow, is this any news? how it works ? I do this and he does what?
07/03/2018 18:41 Paraly#1983
Quote:
Originally Posted by Exem strike View Post
I'm kind of slow, is this any news? how it works ? I do this and he does what?
It's only for people that need to read the broker price for their scripts
07/03/2018 19:04 teteu999#1984
Quote:
#IF=%Var[StackPrice],<50000;
WaitForResponse=Stack price is lower than 50000;
#ELSE
WaitForResponse=Stack price is greater than 50000;
#ENDIF
script crash here
07/03/2018 19:09 xndinlove#1985
Quote:
Originally Posted by teteu999 View Post
script crash here
Quote:
Originally Posted by Paraly View Post
Here's an example code how to read the price of the current selected item at broker
you can reply here Paraly
no problem
07/03/2018 19:18 Paraly#1986
Quote:
Originally Posted by teteu999 View Post
script crash here
Did you modify the snippet?
How does your Aion Client look like when you executed the script?

Quote:
Originally Posted by xndinlove View Post
you can reply here Paraly
no problem
I don't see why I couldn't reply here
07/03/2018 19:19 xndinlove#1987
Quote:
Originally Posted by Paraly View Post
Did you modify the snippet?
How does your Aion Client look like when you executed the script?



I don't see why I couldn't reply here
cuz i sent you whisper asking the exactly same thing
so you dont need to answer both places ;)
07/03/2018 19:22 teteu999#1988
Quote:
Did you modify the snippet?
No, I did not change anything.

Quote:
How does your Aion Client look like when you executed the script?
Nothing happens with Client

the entire script close in this section
#IF=%Var[StackPrice],<50000;
WaitForResponse=Stack price is lower than 50000;
#ELSE
WaitForResponse=Stack price is greater than 50000;
#ENDIF
07/03/2018 19:24 Paraly#1989
Quote:
Originally Posted by teteu999 View Post
No, I did not change anything.


Nothing happens with Client

the entire script close in this section
#IF=%Var[StackPrice],<50000;
WaitForResponse=Stack price is lower than 50000;
#ELSE
WaitForResponse=Stack price is greater than 50000;
#ENDIF
Can I take a look with [Only registered and activated users can see links. Click Here To Register...]?
07/03/2018 19:25 teteu999#1990
Quote:
Can I take a look with supremo?
of course, i will send in private message
07/03/2018 21:15 Paraly#1991
I've added the Broker bot script to the Short Script Bundle, you need to edit the script in order to fill the item names and the desired prices you want, it's very easy to edit :)

Later on I add an option so he automatically resells the bought items for X price :)


Edit: I added the sell option as well now, so all you need to make kinah is good rules about which items to buy at which price and resell them at a higher price, with enough money you can control the market :)

Edit2: Added Asmo support



_________________


I've Added Speech=[text]; to the Script Editor with 5.08

It works like this

Code:
#EnableSpeech
_MemPtrReadVar=%PlayerBase,%OffsetName,WCHAR[32],Charactername;
Speech=%Var[Charactername] is running out of scrolls.;
Someone requested an example for a trading script yesterday, here it is

Script 1: Trades certain item to certain user
Code:
#IF=%FirstTime,;
#DisableScrolling
#SmoothBackground
#NeedResolution=816,638;
Delay=300;
#NeedResolution=816,638;
UseSpeed=1;
#ENDIF


Command=/select SomePlayerName; <-- targets a player
Delay=150;
Command=/trade; <-- requests trade

MemWrite=%AddrFreeMem5,0,BYTE; <-- sets freemem5 to 0
#DO=30000;
_IFFrameVisible=171; <-- checks if trade window is visible
MemWrite=%AddrFreeMem5,1,BYTE; <-- sets freemem5 to 1
#ENDIF
Delay=500;
_UNTILMemRead=%AddrFreeMem5,BYTE,=1; <-- waits till freemem5 is at 1
Delay=500;



_SetVar=SearchedItemID,166100023; <-- Enter the ItemID you want the inventory coords of
#EXECUTE=CheckInvSlot; <-- searches for the coordinates
Mouse=%Var22,Right; <-- rightclicks at the coordinates



MemWrite=%AddrFreeMem5,0,BYTE; <-- sets freemem5 to 0
#DO=60000;
_IFFrameVisible=171; <-- checks if trade window is visible
FrameAction=171,XPOS,0;
FrameAction=171,YPOS,0;
Mouse=59,219; <-- clicks on Lock list
Delay=15;
Mouse=59,222; <-- clicks on Lock list
Delay=1000;
Mouse=180,241; <-- clicks on OK
Delay=15;
Mouse=180,244; <-- clicks on OK
#ELSE
MemWrite=%AddrFreeMem5,1,BYTE; <-- sets freemem5 to 1
#ENDIF
Delay=500;
_UNTILMemRead=%AddrFreeMem5,BYTE,=1; <-- waits till freemem5 is at 1










start_CheckInvSlot;

_SetVar=Round,0;
_SetVar=Cube,0;
_SetVar=DynamicCubeOffsetBase,1424;

MemPtrWrite=%AddrFrameID[15],0x6C,4.032836914,FLOAT;
MemPtrWrite=%AddrFrameID[15],0x74,0,FLOAT;

#DO=90000;

_Calc[DynamicSlotOffset]=%Var[Round]*8;
_Calc[DynamicCubeOffset]=%Var[Cube]*8;
_Calc[DynamicCubeOffset]=%Var[DynamicCubeOffset]+%Var[DynamicCubeOffsetBase];
MemWrite=%AddrFreeMem20,0,BYTE;

_IFMemPtrRead=%AddrFrameID[16],%Var[DynamicCubeOffset]/0x3B8/%Var[DynamicSlotOffset]/0x9C,DWORD,=%Var[SearchedItemID];
MemWrite=%AddrFreeMem20,1,BYTE;
#ENDIF

#IF=%Var[Round],>26;
MemWrite=%AddrFreeMem20,2,BYTE;
#ENDIF

_Calc[Round]=%Var[Round]+1;

_UNTILMemRead=%AddrFreeMem20,BYTE,>0;

_Calc[Round]=%Var[Round]-1;

#IF=%Var[Cube],>4;
WaitForResponse=Nothing found;
_SetVar=Round,0;
_SetVar=Cube,0;
MemWrite=%AddrFreeMem20,3,BYTE;
#ENDIF

_IFMemRead=%AddrFreeMem20,BYTE,=2;
_Calc[Cube]=%Var[Cube]+1;
_SetVar=Round,0;
#UNTIL=1,=2;
#ENDIF


_IFMemRead=%AddrFreeMem20,BYTE,=1;
#EXECUTE=GetInvSlotCoord;
_Calc[Round]=%Var[Round]+1;
_Calc[Cube]=%Var[Cube]+1;
#ENDIF


end_CheckInvSlot;



start_GetInvSlotCoord;

#IF=%Var[Cube],=0; cube
#EXECUTE=GetInvSlotCoordCube0;
#ENDIF

#IF=%Var[Cube],=1; cube
#EXECUTE=GetInvSlotCoordCube1;
#ENDIF

#IF=%Var[Cube],=2; cube
#EXECUTE=GetInvSlotCoordCube2;
#ENDIF

#IF=%Var[Cube],=3; cube
#EXECUTE=GetInvSlotCoordCube3;
#ENDIF

#IF=%Var[Cube],=4; cube
#EXECUTE=GetInvSlotCoordCube4;
#ENDIF

end_GetInvSlotCoord;



start_GetInvSlotCoordCube0;

First Row
#IF=%Var[Round],=0; slot number
_SetVar22=563,48; slot coords
#ENDIF

#IF=%Var[Round],=1;
_SetVar22=590,48;
#ENDIF

#IF=%Var[Round],=2;
_SetVar22=615,48;
#ENDIF

#IF=%Var[Round],=3;
_SetVar22=645,48;
#ENDIF

#IF=%Var[Round],=4;
_SetVar22=672,48;
#ENDIF

#IF=%Var[Round],=5;
_SetVar22=697,48;
#ENDIF

#IF=%Var[Round],=6;
_SetVar22=724,48;
#ENDIF

#IF=%Var[Round],=7;
_SetVar22=753,48;
#ENDIF

#IF=%Var[Round],=8;
_SetVar22=781,48;
#ENDIF


Second Row
#IF=%Var[Round],=9; slot number
_SetVar22=563,78; slot coords
#ENDIF

#IF=%Var[Round],=10;
_SetVar22=590,78;
#ENDIF

#IF=%Var[Round],=11;
_SetVar22=615,78;
#ENDIF

#IF=%Var[Round],=12;
_SetVar22=645,78;
#ENDIF

#IF=%Var[Round],=13;
_SetVar22=672,78;
#ENDIF

#IF=%Var[Round],=14;
_SetVar22=697,78;
#ENDIF

#IF=%Var[Round],=15;
_SetVar22=724,78;
#ENDIF

#IF=%Var[Round],=16;
_SetVar22=753,78;
#ENDIF

#IF=%Var[Round],=17;
_SetVar22=781,78;
#ENDIF


Third Row
#IF=%Var[Round],=18; slot number
_SetVar22=563,105; slot coords
#ENDIF

#IF=%Var[Round],=19;
_SetVar22=590,105;
#ENDIF

#IF=%Var[Round],=20;
_SetVar22=615,105;
#ENDIF

#IF=%Var[Round],=21;
_SetVar22=645,105;
#ENDIF

#IF=%Var[Round],=22;
_SetVar22=672,105;
#ENDIF

#IF=%Var[Round],=23;
_SetVar22=697,105;
#ENDIF

#IF=%Var[Round],=24;
_SetVar22=724,105;
#ENDIF

#IF=%Var[Round],=25;
_SetVar22=753,105;
#ENDIF

#IF=%Var[Round],=26;
_SetVar22=781,105;
#ENDIF

end_GetInvSlotCoordCube0;




start_GetInvSlotCoordCube1;

Fourth Row
#IF=%Var[Round],=0; slot number
_SetVar22=563,154; slot coords
#ENDIF

#IF=%Var[Round],=1;
_SetVar22=590,154;
#ENDIF

#IF=%Var[Round],=2;
_SetVar22=615,154;
#ENDIF

#IF=%Var[Round],=3;
_SetVar22=645,154;
#ENDIF

#IF=%Var[Round],=4;
_SetVar22=672,154;
#ENDIF

#IF=%Var[Round],=5;
_SetVar22=697,154;
#ENDIF

#IF=%Var[Round],=6;
_SetVar22=724,154;
#ENDIF

#IF=%Var[Round],=7;
_SetVar22=753,154;
#ENDIF

#IF=%Var[Round],=8;
_SetVar22=781,154;
#ENDIF


Fifth Row
#IF=%Var[Round],=9; slot number
_SetVar22=563,176; slot coords
#ENDIF

#IF=%Var[Round],=10;
_SetVar22=590,176;
#ENDIF

#IF=%Var[Round],=11;
_SetVar22=615,176;
#ENDIF

#IF=%Var[Round],=12;
_SetVar22=645,176;
#ENDIF

#IF=%Var[Round],=13;
_SetVar22=672,176;
#ENDIF

#IF=%Var[Round],=14;
_SetVar22=697,176;
#ENDIF

#IF=%Var[Round],=15;
_SetVar22=724,176;
#ENDIF

#IF=%Var[Round],=16;
_SetVar22=753,176;
#ENDIF

#IF=%Var[Round],=17;
_SetVar22=781,176;
#ENDIF



Sixth Row
#IF=%Var[Round],=18; slot number
_SetVar22=563,208; slot coords
#ENDIF

#IF=%Var[Round],=19;
_SetVar22=590,208;
#ENDIF

#IF=%Var[Round],=20;
_SetVar22=615,208;
#ENDIF

#IF=%Var[Round],=21;
_SetVar22=645,208;
#ENDIF

#IF=%Var[Round],=22;
_SetVar22=672,208;
#ENDIF

#IF=%Var[Round],=23;
_SetVar22=697,208;
#ENDIF

#IF=%Var[Round],=24;
_SetVar22=724,208;
#ENDIF

#IF=%Var[Round],=25;
_SetVar22=753,208;
#ENDIF

#IF=%Var[Round],=26;
_SetVar22=781,208;
#ENDIF

end_GetInvSlotCoordCube1;




start_GetInvSlotCoordCube2;

Seventh Row
#IF=%Var[Round],=0; slot number
_SetVar22=563,252; slot coords
#ENDIF

#IF=%Var[Round],=1;
_SetVar22=590,252;
#ENDIF

#IF=%Var[Round],=2;
_SetVar22=615,252;
#ENDIF

#IF=%Var[Round],=3;
_SetVar22=645,252;
#ENDIF

#IF=%Var[Round],=4;
_SetVar22=672,252;
#ENDIF

#IF=%Var[Round],=5;
_SetVar22=697,252;
#ENDIF

#IF=%Var[Round],=6;
_SetVar22=724,252;
#ENDIF

#IF=%Var[Round],=7;
_SetVar22=753,252;
#ENDIF

#IF=%Var[Round],=8;
_SetVar22=781,252;
#ENDIF


Eighth Row
#IF=%Var[Round],=9; slot number
_SetVar22=563,280; slot coords
#ENDIF

#IF=%Var[Round],=10;
_SetVar22=590,280;
#ENDIF

#IF=%Var[Round],=11;
_SetVar22=615,280;
#ENDIF

#IF=%Var[Round],=12;
_SetVar22=645,280;
#ENDIF

#IF=%Var[Round],=13;
_SetVar22=672,280;
#ENDIF

#IF=%Var[Round],=14;
_SetVar22=697,280;
#ENDIF

#IF=%Var[Round],=15;
_SetVar22=724,280;
#ENDIF

#IF=%Var[Round],=16;
_SetVar22=753,280;
#ENDIF

#IF=%Var[Round],=17;
_SetVar22=781,280;
#ENDIF



Ninth Row
#IF=%Var[Round],=18; slot number
_SetVar22=563,306; slot coords
#ENDIF

#IF=%Var[Round],=19;
_SetVar22=590,306;
#ENDIF

#IF=%Var[Round],=20;
_SetVar22=615,306;
#ENDIF

#IF=%Var[Round],=21;
_SetVar22=645,306;
#ENDIF

#IF=%Var[Round],=22;
_SetVar22=672,306;
#ENDIF

#IF=%Var[Round],=23;
_SetVar22=697,306;
#ENDIF

#IF=%Var[Round],=24;
_SetVar22=724,306;
#ENDIF

#IF=%Var[Round],=25;
_SetVar22=753,306;
#ENDIF

#IF=%Var[Round],=26;
_SetVar22=781,306;
#ENDIF

end_GetInvSlotCoordCube2;





start_GetInvSlotCoordCube3;

Tenth Row
#IF=%Var[Round],=0; slot number
_SetVar22=563,351; slot coords
#ENDIF

#IF=%Var[Round],=1;
_SetVar22=590,351;
#ENDIF

#IF=%Var[Round],=2;
_SetVar22=615,351;
#ENDIF

#IF=%Var[Round],=3;
_SetVar22=645,351;
#ENDIF

#IF=%Var[Round],=4;
_SetVar22=672,351;
#ENDIF

#IF=%Var[Round],=5;
_SetVar22=697,351;
#ENDIF

#IF=%Var[Round],=6;
_SetVar22=724,351;
#ENDIF

#IF=%Var[Round],=7;
_SetVar22=753,351;
#ENDIF

#IF=%Var[Round],=8;
_SetVar22=781,351;
#ENDIF


Eleventh Row
#IF=%Var[Round],=9; slot number
_SetVar22=563,381; slot coords
#ENDIF

#IF=%Var[Round],=10;
_SetVar22=590,381;
#ENDIF

#IF=%Var[Round],=11;
_SetVar22=615,381;
#ENDIF

#IF=%Var[Round],=12;
_SetVar22=645,381;
#ENDIF

#IF=%Var[Round],=13;
_SetVar22=672,381;
#ENDIF

#IF=%Var[Round],=14;
_SetVar22=697,381;
#ENDIF

#IF=%Var[Round],=15;
_SetVar22=724,381;
#ENDIF

#IF=%Var[Round],=16;
_SetVar22=753,381;
#ENDIF

#IF=%Var[Round],=17;
_SetVar22=781,381;
#ENDIF



Twelfth Row
#IF=%Var[Round],=18; slot number
_SetVar22=563,409; slot coords
#ENDIF

#IF=%Var[Round],=19;
_SetVar22=590,409;
#ENDIF

#IF=%Var[Round],=20;
_SetVar22=615,409;
#ENDIF

#IF=%Var[Round],=21;
_SetVar22=645,409;
#ENDIF

#IF=%Var[Round],=22;
_SetVar22=672,409;
#ENDIF

#IF=%Var[Round],=23;
_SetVar22=697,409;
#ENDIF

#IF=%Var[Round],=24;
_SetVar22=724,409;
#ENDIF

#IF=%Var[Round],=25;
_SetVar22=753,409;
#ENDIF

#IF=%Var[Round],=26;
_SetVar22=781,409;
#ENDIF

end_GetInvSlotCoordCube3;







start_GetInvSlotCoordCube4;


Thirteenth Row
#IF=%Var[Round],=0; slot number
_SetVar22=563,456; slot coords
#ENDIF

#IF=%Var[Round],=1;
_SetVar22=590,456;
#ENDIF

#IF=%Var[Round],=2;
_SetVar22=615,456;
#ENDIF

#IF=%Var[Round],=3;
_SetVar22=645,456;
#ENDIF

#IF=%Var[Round],=4;
_SetVar22=672,456;
#ENDIF

#IF=%Var[Round],=5;
_SetVar22=697,456;
#ENDIF

#IF=%Var[Round],=6;
_SetVar22=724,456;
#ENDIF

#IF=%Var[Round],=7;
_SetVar22=753,456;
#ENDIF

#IF=%Var[Round],=8;
_SetVar22=781,456;
#ENDIF


Fourteenth Row
#IF=%Var[Round],=9; slot number
_SetVar22=563,480; slot coords
#ENDIF

#IF=%Var[Round],=10;
_SetVar22=590,480;
#ENDIF

#IF=%Var[Round],=11;
_SetVar22=615,480;
#ENDIF

#IF=%Var[Round],=12;
_SetVar22=645,480;
#ENDIF

#IF=%Var[Round],=13;
_SetVar22=672,480;
#ENDIF

#IF=%Var[Round],=14;
_SetVar22=697,480;
#ENDIF

#IF=%Var[Round],=15;
_SetVar22=724,480;
#ENDIF

#IF=%Var[Round],=16;
_SetVar22=753,480;
#ENDIF

#IF=%Var[Round],=17;
_SetVar22=781,480;
#ENDIF



Fifteenth Row
#IF=%Var[Round],=18; slot number
_SetVar22=563,510; slot coords
#ENDIF

#IF=%Var[Round],=19;
_SetVar22=590,510;
#ENDIF

#IF=%Var[Round],=20;
_SetVar22=615,510;
#ENDIF

#IF=%Var[Round],=21;
_SetVar22=645,510;
#ENDIF

#IF=%Var[Round],=22;
_SetVar22=672,510;
#ENDIF

#IF=%Var[Round],=23;
_SetVar22=697,510;
#ENDIF

#IF=%Var[Round],=24;
_SetVar22=724,510;
#ENDIF

#IF=%Var[Round],=25;
_SetVar22=753,510;
#ENDIF

#IF=%Var[Round],=26;
_SetVar22=781,510;
#ENDIF

end_GetInvSlotCoordCube4;
Script 2: A Tradeslave who accepts any trade
Code:
#IF=%FirstTime,;
#NeedResolution=816,638;
Delay=500;
#NeedResolution=816,638;
WaitForResponse=Be sure your toon has 100% UI size/nBe sure Click to Move is disabled/nBe sure the Trade Slave is at the normal server not FTS/nBe sure you've reseted the window positions/nBe sure Windows DPI scaling is at 100%;
#UseLoop
UseSpeed=1;
#SmoothBackground
MemPtrWrite=%AddrFPS,%OffsetFPS1,24,BYTE;
MemPtrWrite=%AddrFPS,%OffsetFPS2,24,FLOAT;
MemPtrWrite=%AddrCamMax,%OffsetCamMax,0.1,FLOAT;CA MMAX
Delay=100;
MemPtrWrite=%AddrThirdPerson,%OffsetThirdPerson,0, FLOAT;THIRDPERSON
MemWrite=%AddrCamY,-85,FLOAT;
#ShowLog
#ENDIF


MemWrite=%AddrFreeMem5,0,BYTE;
#DO=999999999;
_IFFrameVisible=508; trade accept window
MemWrite=%AddrFreeMem5,1,BYTE;
FrameAction=508,XPOS,0;
FrameAction=508,YPOS,0;
#ENDIF
Delay=750;
_UNTILMemRead=%AddrFreeMem5,BYTE,=1;
Delay=1500;
Mouse=161,73; accept trade
Delay=15;
Mouse=161,76; accept trade
Delay=2000;
FrameAction=171,XPOS,0;
FrameAction=171,YPOS,0;
Delay=1500;
MemWrite=%AddrFreeMem5,1,BYTE;
#DO=60000;
_IFFrameVisible=171; trade window
Mouse=59,219; Lock list
Delay=15;
Mouse=59,222; Lock list
Delay=1000;
Mouse=180,241;
Delay=15;
Mouse=180,244;
#ELSE
MemWrite=%AddrFreeMem5,0,BYTE;
#LogAddRound
#ENDIF
Delay=500;
_UNTILMemRead=%AddrFreeMem5,BYTE,=0;
07/05/2018 14:53 xndinlove#1992
Quote:
Originally Posted by Paraly View Post
Someone requested an example for a trading script yesterday, here it is
I did some fixing here..

added a FrameAction for those coordinates to work properly. otherwise it will never Lock and press Ok:
Code:
MemWrite=%AddrFreeMem5,0,BYTE; <-- sets freemem5 to 0
#DO=60000;
_IFFrameVisible=171; <-- checks if trade window is visible
FrameAction=171,XPOS,0;
FrameAction=171,YPOS,0;
Mouse=59,219; <-- clicks on Lock list
Delay=15;
Mouse=59,222; <-- clicks on Lock list
Delay=1000;
Mouse=180,241; <-- clicks on OK
Delay=15;
Mouse=180,244; <-- clicks on OK
#ELSE
MemWrite=%AddrFreeMem5,1,BYTE; <-- sets freemem5 to 1
#ENDIF
Delay=500;
_UNTILMemRead=%AddrFreeMem5,BYTE,=1; <-- waits till freemem5 is at 1

and for the trade slave the frame ID is 508, not 507
Code:
MemWrite=%AddrFreeMem5,0,BYTE;
#DO=999999999;
_IFFrameVisible=508; trade accept window
MemWrite=%AddrFreeMem5,1,BYTE;
FrameAction=508,XPOS,0;
FrameAction=508,YPOS,0;
#ENDIF


also, the inventory must be opened or the script will click on nothing
so make sure it's OPEN

and i noticed that for some odd reason, if the item is in certain slots it will not trade them at all. "Nothing found" message will pop. (wrong coords maybe?)
EDIT: no i just checked. the coords are right.

for example the last slot from Default cube (this one i'm sure it doesn't work. there are others which i don't remember)

[Only registered and activated users can see links. Click Here To Register...]

btw, this take a VERY GOOOD TIME to scan all slots xD
(not a complain tho :D)



_____________
07/05/2018 20:02 Paraly#1993
Quote:
Originally Posted by xndinlove View Post
I did some fixing here..

added a FrameAction for those coordinates to work properly. otherwise it will never Lock and press Ok:
Code:
MemWrite=%AddrFreeMem5,0,BYTE; <-- sets freemem5 to 0
#DO=60000;
_IFFrameVisible=171; <-- checks if trade window is visible
FrameAction=171,XPOS,0;
FrameAction=171,YPOS,0;
Mouse=59,219; <-- clicks on Lock list
Delay=15;
Mouse=59,222; <-- clicks on Lock list
Delay=1000;
Mouse=180,241; <-- clicks on OK
Delay=15;
Mouse=180,244; <-- clicks on OK
#ELSE
MemWrite=%AddrFreeMem5,1,BYTE; <-- sets freemem5 to 1
#ENDIF
Delay=500;
_UNTILMemRead=%AddrFreeMem5,BYTE,=1; <-- waits till freemem5 is at 1

and for the trade slave the frame ID is 508, not 507
Code:
MemWrite=%AddrFreeMem5,0,BYTE;
#DO=999999999;
_IFFrameVisible=508; trade accept window
MemWrite=%AddrFreeMem5,1,BYTE;
FrameAction=508,XPOS,0;
FrameAction=508,YPOS,0;
#ENDIF


also, the inventory must be opened or the script will click on nothing
so make sure it's OPEN

and i noticed that for some odd reason, if the item is in certain slots it will not trade them at all. "Nothing found" message will pop. (wrong coords maybe?)
EDIT: no i just checked. the coords are right.

for example the last slot from Default cube (this one i'm sure it doesn't work. there are others which i don't remember)

btw, this take a VERY GOOOD TIME to scan all slots xD
(not a complain tho :D)



_____________
Fixed everything, the scan is as fast as possible for the scripting engine :p

I also updated the Broker Bot again few bugfixes and he now automatically takes the money if he sold something and notifies you about how much money he earned

Edit: Another patch for the Broker Bot with a lot of fixes
07/16/2018 06:14 yam316#1994
still safe?
07/16/2018 11:34 Paraly#1995
Quote:
Originally Posted by yam316 View Post
still safe?
What you mean?
hacking in general, yes seems it's still safe :)