Diplomacy Grind Bot
Posted: February 11th, 2007, 6:29 pm
Here is the alpha copy, I haven't even broken the repetitive junk out into functions yet ... but it works.
Here's what you need to do in order to set it up. Find an NPC that has a higher DIP Skill than you and develop a strategy to beat them. The strategy needs to assume that all your cards will use the maximum refresh rate, this script will not work if you give it a sequence that assumes even one of the cards refreshs sooner.
Find the mouse coordinates on your screen to click the diplomacy dialog when it comes up, then find the coordinates on your screen to click the parlay type you would like to attempt. Change the script target to match your own, change the two mouse targets to match your own.
Oh yea .. you might not realize that the cards in your strategy are a 0 based array. So in the code, /parleyplay 0 mean to play the left most card in your strategy, and it increments from there. /parleyplay only puts the card in the game window, you have to perform a /parlayspeak or /parleylisten to move the round.
So yer gonna need to modify the workflow for playing your cards in the right order below as well.
Go stand next to the npc ... facing them ... and kick off the script. You should win the dip battle that ensues.
TODO: break out functions
TODO: break out configuration
TODO: wrap in a loop w/appropriate timming between battles.
TODO: add code to loot information, if .. Lord forbid ... you actually get any out of the npc.
If I ever get around todoing any of that I'll post it back here for ya'll.
Here's what you need to do in order to set it up. Find an NPC that has a higher DIP Skill than you and develop a strategy to beat them. The strategy needs to assume that all your cards will use the maximum refresh rate, this script will not work if you give it a sequence that assumes even one of the cards refreshs sooner.
Find the mouse coordinates on your screen to click the diplomacy dialog when it comes up, then find the coordinates on your screen to click the parlay type you would like to attempt. Change the script target to match your own, change the two mouse targets to match your own.
Oh yea .. you might not realize that the cards in your strategy are a 0 based array. So in the code, /parleyplay 0 mean to play the left most card in your strategy, and it increments from there. /parleyplay only puts the card in the game window, you have to perform a /parlayspeak or /parleylisten to move the round.
So yer gonna need to modify the workflow for playing your cards in the right order below as well.
Go stand next to the npc ... facing them ... and kick off the script. You should win the dip battle that ensues.
TODO: break out functions
TODO: break out configuration
TODO: wrap in a loop w/appropriate timming between battles.
TODO: add code to loot information, if .. Lord forbid ... you actually get any out of the npc.
If I ever get around todoing any of that I'll post it back here for ya'll.
Code: Register to unlock hidden link
XUScriptHost.SendKeys ("/target Guard");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("/ParleyAsses");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(1000);
XUScriptHost.Sleep(1000);
XUScriptHost.MouseMove(204,450);
XUScriptHost.LMouseDown(204,450);
XUScriptHost.LMouseUp(204,450);
XUScriptHost.Sleep(1000);
XUScriptHost.MouseMove(236,465);
XUScriptHost.LMouseDown(236,465);
XUScriptHost.LMouseUp(236,465);
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys("/parleyplay 0");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys("/parleyspeak");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(10000);
XUScriptHost.SendKeys("/parleyplay 1");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys("/parleyspeak");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(10000);
XUScriptHost.SendKeys("/parleyplay 4");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys("/parleyspeak");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(10000);
XUScriptHost.SendKeys("/parleyplay 2");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys("/parleyspeak");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(5000);
XUScriptHost.SendKeys("/parleyplay 0");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys("/parleyspeak");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(10000);
XUScriptHost.SendKeys("/parleyplay 1");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys("/parleyspeak");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(10000);
XUScriptHost.SendKeys("/parleyplay 4");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys("/parleyspeak");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(10000);
XUScriptHost.SendKeys("/parleyplay 2");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys("/parleyspeak");
XUScriptHost.Sleep(10000);
XUScriptHost.SendKeys("/parleyplay 0");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys("/parleyspeak");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(10000);
XUScriptHost.SendKeys("/parleyplay 4");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys("/parleyspeak");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(5000);
XUScriptHost.SendKeys("/parleyplay 3");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys("/parleyspeak");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(10000);
XUScriptHost.SendKeys("/parleyplay 2");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys("/parleyspeak");
XUScriptHost.Sleep(1000);
XUScriptHost.SendKeys ("{ENTER}");
XUScriptHost.Sleep(10000);