We had a doll event in the past, but things might have changed and now we got the dolls in Lakrum as well.
This is for Asmodians in NA only, it tries to select the Soul Healer, if he gets him in target it means he is in city, then tries to go to the spot in front of the dolls, if he went to that spot he does the quest, if he cannot go to the spot it means he found an obstacle and if he cannot target the soul healer to begin with it means he needs to use return skill (must be bound in lakrum)
Eventually he goes to the doll and does the daily quest that takes the 2 dolls.
the script used originally the dialog commands for quest, more than half the times it bugged the npc dialog and the chars didn't finish the quests, so instead I am using mouse clicks.
I might add a function where it tests if the quest was successful by counting the dolls we had and whether we are at +2 now. But I get bored easily lately and this script is slow enough for people with low ping or those that run a lot of clients and want the script to slow enough so as not to cause trouble.
Code:
#IF=%FirstTime,;
#SmoothBackground
MemPtrWrite=%AddrFPS,%OffsetFPS1,20,BYTE;
MemPtrWrite=%AddrFPS,%OffsetFPS2,20,FLOAT;
UseSpeed=1;
#UseGravity
#UseCollision
#UseLoop
#SetVar10= How many characters you have?;
_SetVar11=0;
Command=;
_Calc15=%Var10*14;
_Calc15=%Var15+3;
#ENDIF
_MemPtrReadVar=%PlayerBase,%OffsetName,WCHAR[32],20; <-- saves the playername in %Var20
Delay=500;
#EXECUTE=DoQuest;
Delay=500;
_Calc11=%Var11+1;
MemWrite=%AddrFreeMem3,%Var11,BYTE;
_IFMemRead=%AddrFreeMem3,BYTE,=%Var10;
Command=/logout;
Delay=2000;
WaitForResponse=%Var20 finished doll event script;
#UseNoLoop
#EndScript
#ENDIF
MemWrite=%AddrFreeMem1,%Var10,BYTE;
_IFMemRead=%AddrFreeMem1,BYTE,>1;
#EXECUTE=ChangeCharacter;
#ELSE
Command=/logout;
Delay=2000;
WaitForResponse=%Var20 finished doll event script;
#UseNoLoop
#EndScript
#ENDIF
start_ChangeCharacter;
Command=/logout;
Delay=20000;
#EXECUTE=SelectSlot;
Delay=1500;
Mouse=400,571; <-- Start
Delay=15000;
_MemPtrReadVar=%PlayerBase,%OffsetName,WCHAR[32],20; <-- saves the playername in %Var20
end_ChangeCharacter;
start_SelectSlot;
MemWrite=%AddrFreeMem1,%Var10,BYTE;
_IFMemRead=%AddrFreeMem1,BYTE,=2;
Mouse=675,200;
#ENDIF
_IFMemRead=%AddrFreeMem1,BYTE,=3;
Mouse=675,241;
#ENDIF
_IFMemRead=%AddrFreeMem1,BYTE,=4;
Mouse=675,276;
#ENDIF
_IFMemRead=%AddrFreeMem1,BYTE,=5;
Mouse=675,313;
#ENDIF
_IFMemRead=%AddrFreeMem1,BYTE,=6;
Mouse=675,357;
#ENDIF
_IFMemRead=%AddrFreeMem1,BYTE,=7;
Mouse=675,397;
#ENDIF
_IFMemRead=%AddrFreeMem1,BYTE,=8;
Mouse=675,436;
#ENDIF
end_SelectSlot;
start_DoQuest; #############################################################
Command=/select Cyres;
Delay=500;
#IF=%TargetName,Cyres;
FlySmooth=2905.211,2456.698,313.744;
Delay=100;
MoveTo=2905.211,2456.698,313.744,False,False;
Delay=100;
#ENDIF
#IF=%POSITION,2905.211/2456.698/313.744;
Delay=500;
#ELSE
Command=/skill Return;
Delay=8000;
#DO=20000;
Command=/select Cyres;
Delay=500;
#UNTIL=%TargetName,Cyres; <--we are at obelisk
Delay=2000;
FlySmooth=2905.211,2456.698,313.744; next to doll
FlySmooth=2905.211,2456.698,313.744;
#ENDIF
Delay=1000;
Command=/select First Matryoshka;
Delay=100;
Command=/select First Matryoshka;
Delay=700;
Command=/attack;
Delay=200;
Command=/attack;
Delay=1000;
Mouse=112,169; DialogClick=QuestSelect80747
Delay=1000;
Mouse=199,390;
Delay=1000;
Command=/attack;
Delay=200;
Command=/attack;
Delay=1000;
Mouse=112,169; DialogClick=QuestSelect80747
Delay=1000;
Mouse=104,197; DialogClick=select1
Delay=1000;
Mouse=199,390;
Delay=600;
end_DoQuest;