Command=/select Peridot; Delay=150; _IFMemPtrRead=%TargetBase,%OffsetName,WCHAR[64],=Peridot; _IFMemPtrRead=%TargetBase,%OffsetPosX,float,2193.09-2197.09; _IFMemPtrRead=%TargetBase,%OffsetPosY,float,2058.76-2062.76; _IFMemPtrRead=%TargetBase,%OffsetPosZ,float,245.83-249.83; #DO=60000; SendKey=0x43; Delay=500; _UNTILMemPtrRead=%TargetBase,%OffsetName,WCHAR[64],=; _Calc8=%Var8+1; #ENDIF
Did you see this example script?Quote:
In the gather function, how can I edit to get only Ultimate product type?
For example I am gathering Peridot and i just want got Ultimate Peridot and cancel Ancient and Legendary to save Katalam Essencetapper:
Code:Command=/select Peridot; Delay=150; _IFMemPtrRead=%TargetBase,%OffsetName,WCHAR[64],=Peridot; _IFMemPtrRead=%TargetBase,%OffsetPosX,float,2193.09-2197.09; _IFMemPtrRead=%TargetBase,%OffsetPosY,float,2058.76-2062.76; _IFMemPtrRead=%TargetBase,%OffsetPosZ,float,245.83-249.83; #DO=60000; SendKey=0x43; Delay=500; _UNTILMemPtrRead=%TargetBase,%OffsetName,WCHAR[64],=; _Calc8=%Var8+1; #ENDIF
#IF=%FirstTime,; _MemPtrReadVar=%PlayerBase,%OffsetName,WCHAR[32],PlayerName; #EXECUTE=GetEssenceTappingAddr; #ENDIF #DO=120000; _MemReadVar=%Var[ET_AddrItemID],DWORD,ET_ItemID; _MemReadVar=%Var[ET_AddrAmount],DWORD,ET_Amount; _MemReadVar=%Var[ET_AddrSuccess],DWORD,ET_Success; _MemReadVar=%Var[ET_AddrFailure],DWORD,ET_Failure; _MemReadVar=%Var[ET_AddrComplete],DWORD,ET_Complete; _MemReadVar=%Var[ET_AddrLevel],DWORD,ET_Level; Display=ItemID: %Var[ET_ItemID]/nAmount: %Var[ET_Amount]/nSuccess: %Var[ET_Success]/nFailure: %Var[ET_Failure]/nCompleted at: %Var[ET_Complete]/n/nEssenceTapping at: %Var[ET_Level]/n,0,0,EssenceTappingData: %Var[PlayerName]; Delay=10; #UNTIL=1,=2; start_GetEssenceTappingAddr; _MemReadVar=%AddrFreeMem8,DWORD,cache; MemWrite=%AddrFreeMem8,%AddrFoV,DWORD; _MemReadVar=%AddrFreeMem8,DWORD,temp; MemWrite=%AddrFreeMem8,%Var[cache],DWORD; _Calc[ET_AddrItemID]=%Var[temp]-5256; _Calc[ET_AddrAmount]=%Var[temp]-5248; _Calc[ET_AddrSuccess]=%Var[temp]-5232; _Calc[ET_AddrFailure]=%Var[temp]-5228; _Calc[ET_AddrComplete]=%Var[temp]-5224; _MemPattern=3275000032750000................FFFFFFFFFFFFFFFF..........000000................0E000000000000000F00000000000000000000000000000000000000000000001500000000......00000000..........000000010000000000000000000000000000000000000000000000..000000..000000,116,False,0x10000000/0x17F000000; #IF=%Var[PatternFound],>0; _SetVar=ET_AddrLevel,%Var[PatternRet_1]; #ENDIF end_GetEssenceTappingAddr;
#IF=%FirstTime,; #EXECUTE=GetEssenceTappingAddr; #ENDIF Command=/select Peridot; Delay=150; _IFMemPtrRead=%TargetBase,%OffsetName,WCHAR[64],=Peridot; _IFMemPtrRead=%TargetBase,%OffsetPosX,float,2193.09-2197.09; _IFMemPtrRead=%TargetBase,%OffsetPosY,float,2058.76-2062.76; _IFMemPtrRead=%TargetBase,%OffsetPosZ,float,245.83-249.83; #DO=60000; SendKey=0x43; #EXECUTE=Collect; _UNTILMemPtrRead=%TargetBase,%OffsetName,WCHAR[64],=; _Calc8=%Var8+1; #ENDIF start_Collect; #DO=500; Delay=10; _UNTILMemRead=%Var[ET_AddrItemID],DWORD,>0; // wait till collecting has started _IFMemRead=%Var[ET_AddrItemID],DWORD,=152003057; // If is Ultimate Peridot #DO=60000; Delay=333; _UNTILMemPtrRead=%TargetBase,%OffsetName,WCHAR[64],=; #ELSE SendKey=0x1B; Delay=15; SendKey=0x1B; Delay=15; SendKey=0x1B; Delay=15; #ENDIF end_Collect; start_GetEssenceTappingAddr; _MemReadVar=%AddrFreeMem8,DWORD,cache; MemWrite=%AddrFreeMem8,%AddrFoV,DWORD; _MemReadVar=%AddrFreeMem8,DWORD,temp; MemWrite=%AddrFreeMem8,%Var[cache],DWORD; _Calc[ET_AddrItemID]=%Var[temp]-5256; _Calc[ET_AddrAmount]=%Var[temp]-5248; _Calc[ET_AddrSuccess]=%Var[temp]-5232; _Calc[ET_AddrFailure]=%Var[temp]-5228; _Calc[ET_AddrComplete]=%Var[temp]-5224; _MemPattern=3275000032750000................FFFFFFFFFFFFFFFF..........000000................0E000000000000000F00000000000000000000000000000000000000000000001500000000......00000000..........000000010000000000000000000000000000000000000000000000..000000..000000,116,False,0x10000000/0x17F000000; #IF=%Var[PatternFound],>0; _SetVar=ET_AddrLevel,%Var[PatternRet_1]; #ENDIF end_GetEssenceTappingAddr;
Quote:
Do you have anyway to check energy of respose?
#EXECUTE=GetRepose; WaitForResponse=Percentage: %Var[ReposePercent]/nRepose EXP left: %Var[ReposeCurrentValue]/nRepose EXP maximum: %Var[ReposeMaxValue]; start_GetRepose; _MemReadVar=%AddrFreeMem0,BYTE[4],TempCache; MemWrite=%AddrFreeMem0,%AddrFlightCooldown,DWORD; _MemReadVar=%AddrFreeMem0,DWORD,AddrTemp; MemWrite=%AddrFreeMem0,%Var[TempCache],BYTE[4]; _Calc[AddrReposeCurrent]=%Var[AddrTemp]-232; _Calc[AddrReposeMax]=%Var[AddrTemp]-224; _MemReadVar=%Var[AddrReposeCurrent],DWORD,ReposeCurrentValue; _MemReadVar=%Var[AddrReposeMax],DWORD,ReposeMaxValue; _Calc[ReposePercent]=%Var[ReposeCurrentValue]/%Var[ReposeMaxValue]; _Calc[ReposePercent]=%Var[ReposePercent]*100; end_GetRepose;
Sorry but i check all the character it shows incorrect, Percentage and Repose EXP left always is 0Quote:
Code:#EXECUTE=GetRepose; WaitForResponse=Percentage: %Var[ReposePercent]/nRepose EXP left: %Var[ReposeCurrentValue]/nRepose EXP maximum: %Var[ReposeMaxValue]; start_GetRepose; _MemReadVar=%AddrFreeMem0,BYTE[4],TempCache; MemWrite=%AddrFreeMem0,%AddrFlightCooldown,DWORD; _MemReadVar=%AddrFreeMem0,DWORD,AddrTemp; MemWrite=%AddrFreeMem0,%Var[TempCache],BYTE[4]; _Calc[AddrReposeCurrent]=%Var[AddrTemp]-232; _Calc[AddrReposeMax]=%Var[AddrTemp]-224; _MemReadVar=%Var[AddrReposeCurrent],DWORD,ReposeCurrentValue; _MemReadVar=%Var[AddrReposeMax],DWORD,ReposeMaxValue; _Calc[ReposePercent]=%Var[ReposeCurrentValue]/%Var[ReposeMaxValue]; _Calc[ReposePercent]=%Var[ReposePercent]*100; end_GetRepose;
Sorry this code was from 2019 for an older aion patch, anyways here you goQuote:
Sorry but i check all the character it shows incorrect, Percentage and Repose EXP left always is 0
#EXECUTE=GetRepose; WaitForResponse=Percentage: %Var[ReposePercent]/nRepose EXP left: %Var[ReposeCurrentValue]/nRepose EXP maximum: %Var[ReposeMaxValue]; start_GetRepose; _MemReadVar=%AddrFreeMem0,BYTE[4],TempCache; MemWrite=%AddrFreeMem0,%AddrFlightCooldown,DWORD; _MemReadVar=%AddrFreeMem0,DWORD,AddrTemp; MemWrite=%AddrFreeMem0,%Var[TempCache],BYTE[4]; _Calc[AddrReposeCurrent]=%Var[AddrTemp]-244; _Calc[AddrReposeMax]=%Var[AddrTemp]-236; _MemReadVar=%Var[AddrReposeCurrent],DWORD,ReposeCurrentValue; _MemReadVar=%Var[AddrReposeMax],DWORD,ReposeMaxValue; _Calc[ReposePercent]=%Var[ReposeCurrentValue]/%Var[ReposeMaxValue]; _Calc[ReposePercent]=%Var[ReposePercent]*100; end_GetRepose;
Crafting Kinah Bundles from luna is the best method to make Kinah, it just requires level 10 characters and has a very low risk of getting bannedQuote:
Hi :)
What script is the best to make kinah ?
Have a good day :)
They get materials every day and when a toon has the kinah bundle recipe available to craft it crafts them, so the more characters you have the more kinah you get, it's just a question of timeQuote:
Just the daily and weekly luna script ?
I don't know how earn kinah with that :(
Quote:
Did you see this example script?
Code:#IF=%FirstTime,; _MemPtrReadVar=%PlayerBase,%OffsetName,WCHAR[32],PlayerName; #EXECUTE=GetEssenceTappingAddr; #ENDIF #DO=120000; _MemReadVar=%Var[ET_AddrItemID],DWORD,ET_ItemID; _MemReadVar=%Var[ET_AddrAmount],DWORD,ET_Amount; _MemReadVar=%Var[ET_AddrSuccess],DWORD,ET_Success; _MemReadVar=%Var[ET_AddrFailure],DWORD,ET_Failure; _MemReadVar=%Var[ET_AddrComplete],DWORD,ET_Complete; _MemReadVar=%Var[ET_AddrLevel],DWORD,ET_Level; Display=ItemID: %Var[ET_ItemID]/nAmount: %Var[ET_Amount]/nSuccess: %Var[ET_Success]/nFailure: %Var[ET_Failure]/nCompleted at: %Var[ET_Complete]/n/nEssenceTapping at: %Var[ET_Level]/n,0,0,EssenceTappingData: %Var[PlayerName]; Delay=10; #UNTIL=1,=2; start_GetEssenceTappingAddr; _MemReadVar=%AddrFreeMem8,DWORD,cache; MemWrite=%AddrFreeMem8,%AddrFoV,DWORD; _MemReadVar=%AddrFreeMem8,DWORD,temp; MemWrite=%AddrFreeMem8,%Var[cache],DWORD; _Calc[ET_AddrItemID]=%Var[temp]-5256; _Calc[ET_AddrAmount]=%Var[temp]-5248; _Calc[ET_AddrSuccess]=%Var[temp]-5232; _Calc[ET_AddrFailure]=%Var[temp]-5228; _Calc[ET_AddrComplete]=%Var[temp]-5224; _MemPattern=3275000032750000................FFFFFFFFFFFFFFFF..........000000................0E000000000000000F00000000000000000000000000000000000000000000001500000000......00000000..........000000010000000000000000000000000000000000000000000000..000000..000000,116,False,0x10000000/0x17F000000; #IF=%Var[PatternFound],>0; _SetVar=ET_AddrLevel,%Var[PatternRet_1]; #ENDIF end_GetEssenceTappingAddr;
It displays all informations you need, so what you would do is
Code:#IF=%FirstTime,; #EXECUTE=GetEssenceTappingAddr; #ENDIF Command=/select Peridot; Delay=150; _IFMemPtrRead=%TargetBase,%OffsetName,WCHAR[64],=Peridot; _IFMemPtrRead=%TargetBase,%OffsetPosX,float,2193.09-2197.09; _IFMemPtrRead=%TargetBase,%OffsetPosY,float,2058.76-2062.76; _IFMemPtrRead=%TargetBase,%OffsetPosZ,float,245.83-249.83; #DO=60000; SendKey=0x43; #EXECUTE=Collect; _UNTILMemPtrRead=%TargetBase,%OffsetName,WCHAR[64],=; _Calc8=%Var8+1; #ENDIF start_Collect; #DO=500; Delay=10; _UNTILMemRead=%Var[ET_AddrItemID],DWORD,>0; // wait till collecting has started _IFMemRead=%Var[ET_AddrItemID],DWORD,=152003057; // If is Ultimate Peridot #DO=60000; Delay=333; _UNTILMemPtrRead=%TargetBase,%OffsetName,WCHAR[64],=; #ELSE SendKey=0x1B; Delay=15; SendKey=0x1B; Delay=15; SendKey=0x1B; Delay=15; #ENDIF end_Collect; start_GetEssenceTappingAddr; _MemReadVar=%AddrFreeMem8,DWORD,cache; MemWrite=%AddrFreeMem8,%AddrFoV,DWORD; _MemReadVar=%AddrFreeMem8,DWORD,temp; MemWrite=%AddrFreeMem8,%Var[cache],DWORD; _Calc[ET_AddrItemID]=%Var[temp]-5256; _Calc[ET_AddrAmount]=%Var[temp]-5248; _Calc[ET_AddrSuccess]=%Var[temp]-5232; _Calc[ET_AddrFailure]=%Var[temp]-5228; _Calc[ET_AddrComplete]=%Var[temp]-5224; _MemPattern=3275000032750000................FFFFFFFFFFFFFFFF..........000000................0E000000000000000F00000000000000000000000000000000000000000000001500000000......00000000..........000000010000000000000000000000000000000000000000000000..000000..000000,116,False,0x10000000/0x17F000000; #IF=%Var[PatternFound],>0; _SetVar=ET_AddrLevel,%Var[PatternRet_1]; #ENDIF end_GetEssenceTappingAddr;