Diplomacy Bot

don'tdoit

Active Member
i'll be giving this a shot...

personally, i have a private (won't be released for now) script that i use as a wrapper around Karye's Diplobot. It basically allows Diplobot to do individual diplomacy parley's, but my script controls everything else... movement, doors, which NPCs to parley with, what type of parleys, etc, etc, etc.

looking forward to trying yours out... will let ya know what I find...
 

gavkra

Active Member
Could you grab the settings file it creates and send it to me? If you want, I can help get this going.

Thanks
 

sohocuba25

Active Member
wasnt really crashing, just doing odd movements. I just try to find mobs close to each other and it does fine.

Since diplobot is killing my systems been using yours =)
 

gavkra

Active Member
sohocuba25 said:
wasnt really crashing, just doing odd movements. I just try to find mobs close to each other and it does fine.

Since diplobot is killing my systems been using yours =)
Were you using the waypoints?

Did you find it went to the proper point, went too far and kept going back and forth around the spot? If so, you may try turning graphics way down to see if it helps. This just helps me confirm.

For the latter, I think there could be more programming to make it run just like a human would on a "laggy" system.
 

sohocuba25

Active Member
Its easier to just find 2 npc's close by

Now I let it run a long time but it seems to hitch, it will hail the mob and civic diplomacy will be an option but it gets stuck. Was stuck for 6 hours until i woke up. Maybe have it auto switch every other minute to the next npc and restart the getting parley portion ?
 

gavkra

Active Member
sohocuba25 said:
Its easier to just find 2 npc's close by

Now I let it run a long time but it seems to hitch, it will hail the mob and civic diplomacy will be an option but it gets stuck. Was stuck for 6 hours until i woke up. Maybe have it auto switch every other minute to the next npc and restart the getting parley portion ?
I think I know the problem for this one. I had an issue where I needed to delay before playing the first card or the server would say I couldn't play it yet. Probably still playing it too early, especially when the server is more busy. For a quick fix, you can change the following line if you wish to, to make it wait a bit longer before playing the first care. (I'll make a more robust change later today)

Search for:
wait 10

Replace with:
wait 30

Change the occurrence that is right after:

Dialog[Civic Diplomacy,${conv}]:Select

Of course, if you wish to just wait, I'll actually have it check that the card was played after some timeout. This way it retries.
 

BillyBob

Active Member
I just downloaded and tried your diplo script. I have been using diplobot for the last 48 levels and pretty much has worked great. Only problem I had with it was the lag it caused moving to NPCs. Also that I hated that it will auto change after every parley.

Things I like:
No lag problems at all
Smaller window
Can pick conversation types per NPC

Anyway to add a few things?
A way to track your win/loss also would love to see a break down in win/lose per conversation types. I see this is done in the window now but does not seam to be correct.


Problems:
If I have 2 NPCs next to each other it will not spin around and talk ot the others. NPC1 at 12oclock and NPC2 at 5oclock no father than 3 feet apart. The script will not turn and face NPC2. (Nevermind a programer friend fixed this for me)
 
Last edited:

sohocuba25

Active Member
still getting stuck on one npc even though its ready to parley

I dont know scripting but maybe adding in something to reset it if it doesnt do anything for 20 secs or even a minute would be awesome.

Like to reget or retry the last step
 

gavkra

Active Member
Sohocuba,

I am at work now but will make this change tonight.

Also, I received a couple of improvements from others and will put them in as well.

Billybob: I will put in some of your suggestions (the easy ones). I think your programmer friend sent me the "Facing" fix as well so I will get it in there. I may try to add some stats in the GUI tonight. One thing I tried to do was to red/green the checkboxes for the Parley types, when they failed or passed. That didn't work so well.

What do you think of number next to each NPC name like: 250/255 which would show total successes for that NPC. Then if you mouse over, you get more text like:

Interview: 10/10
Incite: 8/10
Convince: 7/10
...
...

NOTE: If you have nice fixes you think others could use, please send my way. You can PM me with the change, or the whole script again. I use the "Subversion" program so have a good way to review and merge in changes if you send the whole file.
 

gavkra

Active Member
Ok, there is a new release now.

There may be another release shortly that adds better stat display.
 

bigxiz

Active Member
eh tried to get it working would not stop running once it started.

also would not actually start the parlay, and would just select the civic diplomacy then do nothing.
 

Iremearde

Active Member
great work, use this for some parleys and diplobot for others.

Although, I had to cancel out the facing since it always wanted to face a target even if it was in view and this just throws up a flag. also had to increase the distance before it would go to said npc.

Would it be possible to just do tender parley's from 50 to 25 and have to start over?
 

gavkra

Active Member
There is a new release posted that adds some better stats. It also addresses a facing issue and makes it easier to disable "facing targets" at the top of the script.

thatoneguy1138 has modified the previous version and sent me the new files. This is a good example of someone making some nice improvements that get shared with everyone.

If you have a good idea and know how to implement, please do so and then send me a PM.

There are some having issues with moving to targets, that I can't reproduce. If someone else has an issue and is technically inclined, feel free to fix and send me the new files.

In short, this software is released so that those that want to use and improve, are able. I really can't fully support it alone, so please jump in and help make it better.
 

djvj

Active Member
Hmm..I click run and it faces the npc, shows his available parlays and sits there. never starts it. NPC only has incite available and I have just Inc checked. BTW this is your latest version.
 

sohocuba25

Active Member
yeah that was happening before

Gavkra one of my guildies modified your script also, whats your email ? I am going to attach the 2 files here. Check it out
 

Attachments

djvj

Active Member
Ah that's why. Bot only works for civic diplo. If you are doing a writ or a quest, it wont recognize the parlay option available. Would be cool if it did or even if it would take over a parlay already in progress if started by hand.
 

gavkra

Active Member
djvj said:
Ah that's why. Bot only works for civic diplo. If you are doing a writ or a quest, it wont recognize the parlay option available. Would be cool if it did or even if it would take over a parlay already in progress if started by hand.
Ah, I think the reason is I have never tried it for anything but the 5 conv. types. The script does need a bit of improvement so it determines where you are in the parley and continues from then on. Will check it out.
 

gavkra

Active Member
sohocuba25 said:
yeah that was happening before

Gavkra one of my guildies modified your script also, whats your email ? I am going to attach the 2 files here. Check it out
Thanks! Got it merged in and will release it with the next changes.

Posting here worked out well since others can get a look too. Still, I gave you a PM with my email address.
 

sohocuba25

Active Member
whatever changes he made it moves flawlessly between npc's now and has absolutely no lag.

The individual options to change conv types with individual stats makes it much more effecient also. After an hour i noticed 2 of 5 NPC's each had one type they were dominating me on so i just unclicked it =)
 

gavkra

Active Member
sohocuba25 said:
whatever changes he made it moves flawlessly between npc's now and has absolutely no lag.

The individual options to change conv types with individual stats makes it much more effecient also. After an hour i noticed 2 of 5 NPC's each had one type they were dominating me on so i just unclicked it =)
Nice to see it working much better now. Even more importantly, nice to see it fixed by a real expert...not me.

BTW, I think I will do a real release in the proper release area and leave this thread open for bug reports.
 

Iremearde

Active Member
How exactly does the targeting work? I'm trying to parley three npcs all with the same last name but different first name. I change the line

Code:
if ${Pawn[exact,${npc}].Distance} > 4
to
Code:
if ${Pawn[exact,${npc}].Distance} > 8
It seems completely unrelated but when this change occurs, it doesn't seem to target the other 2 npcs.

(random npc names but same concept)
Example:
NPC1= Kbima Iloq
NPC2= Krumba Iloq
NPC3= Iano Iloq

If i'm standing 5 away from Kbima, 6 away from krumba, and 7 away from Iano. it targets Kbima.

If i'm standing 2 away from krumb, 5 away from kbima, and 10 away from iano. it targets krumb and not kbima.

If im standing 2away from iano, 5 from krumba and 10 from kbima. it targets iano.

From my understanding it should target the first NPC then second then third.

What it does is target the nearest NPC, parleys. Then stalls with out targeting the other two no matter where i stand.


My conclusion is that it is targeting the nearest NPC by last name. Either that or i'm just completely clueless. :)
 

gavkra

Active Member
Iremearde said:
How exactly does the targeting work? I'm trying to parley three npcs all with the same last name but different first name. I change the line

...

My conclusion is that it is targeting the nearest NPC by last name. Either that or i'm just completely clueless. :)
Your confusion is warranted, and your conclusion seems correct. I did a bit of testing....

I pulled down the console and typed:

Target First Last

(I used a real NPC's name that was near me). It targeted the right one. I then picked a first name of one NPC and last name of the other and it targeted based on the last name only!!! It seems that it interprets the First Last as a list of several names and only looks at the last word for targeting.

Of course, it is my programming error. I should have known to do:

Target "First Last"

So, replace the line just before the one you already changed with:

Target "${npc}"

It also occurs again down below a few lines. Change it too.

I will make the change here for the next release.

Good find!
 

Iremearde

Active Member
ah, thank you! works much better now :) decided to make a harvesting alt while i was waiting for a fix since i tried for an hour or two before i gave up.
 

sohocuba25

Active Member
The one ive posted has been running without a damn pause except to switch NPC's for over 3 days now

Try that one for now.
 

Iremearde

Active Member
sohocuba25 said:
The one ive posted has been running without a damn pause except to switch NPC's for over 3 days now

Try that one for now.
I have been it works nice. But there was still that minor patch that was needed in order for the 3 npc's to work.
 

Iremearde

Active Member
as i said earlier, it was the whole last name targeting problem since there is a group of 3 npcs im doing right now with the same last name. all it needed was quotes around the npc part and it works perfect

dont feel like double posting but is there away to make an option box for facing an opponent and another option for slow turning for facing?
 
Last edited:

mordacai

Active Member
Feature request

Would it be possible to put a random wait time in before playing a card, at the moment it is just too efficent, can spot the diplobotters a mile away.
 

Eris

Active Member
Added the ability for it to do non civic diplomacy quests. Not perfect for bartenders yet as it cycles the convtype variable before choosing the conversation (IE, if the tender has 4 "Ho there tender!" conversations, they are all intervies, it will do one, and run to the next NPC before trying another. I will clean this up later.)
 

Attachments

Eris

Active Member
Now tries to do conversation types until that type of conversation is no longer available.
 

Attachments

djvj

Active Member
It needs to add an option to turn on/off ability to do non-civic parlays. Right now the script won't play ANY civic, the non-civic code doesn't allow it.
 
Last edited:

gavkra

Active Member
djvj said:
It needs to add an option to turn on/off ability to do non-civic parlays. Right now the script won't play ANY civic, the non-civic code doesn't allow it.
Are you sure this is the reason? I tested it quite a bit. I am testing more though.

--EDIT--

Nevermind. A typo and it was only doing General diplomacy. I tested it with an NPC that happened to have General as well. New release going up now...
 
Last edited:

sohocuba25

Active Member
If i change the drive letter in the VGAlarm.xml to D dipbot doesnt work.

Now if i do nothing it works, but the background is black. I can still see names

Kind of a catch 22 heh
 

Eris

Active Member
I have been toiling away for several days now on a rather complete rewrite of this script. It fixes the issues with it that bothered me, as well as adds much more functionality.

I am not going to go into details at this point of what functions are fixed, changed, removed, or added, but this is your opportunity for any feature requests that you would like to see.

Please make them promptly, as once I release this, it will probably be a few weeks on adding any functionality again (bug fixes of course will be as immediate as is possible.)

Thank you,
Eris
 

chayce

Active Member
Improved Card Rate Engine

I took the bot and made some serious changes to how it rates cards.

*Bot no longer subtracts mana that opponent doen't have instead rates on how much it can actualy take.
*Colors can be selected to be denied from each NPC (due to class or station, such as denying soliders the red they use.)((tried to make automatic, but lacking ISXVG functionality))
*Givescale gain now increases if you are winning by more than 4, so that you won't give your opponent stones to throw at you.
*If you have >5 Mana of any color the Gainscale is lowered for that color type so that bot will not flood you with one color if able.

I think that sums up all the changes. My code is not pretty (my first try as scripting in innerspace), and this script may need to be tweaked more, but it works so much better than the generic bot script. I will post more as I refine it more.
 

Attachments

djvj

Active Member
I like your changes to the AI chayce, just not the changes to the UI. I really liked the ability to keep track of each npc win/fail rate. Plus you removed movement/face boxes... I like to turn movement off sometimes.
 

chayce

Active Member
UI Changes

I didn't change the UI other than to add the check boxes for my features I think my dip.xml is from a few versions back, so my bad. Will change the current version and repost when I have a chance. Thanks for the response.
 

djvj

Active Member
Ah that makes sense. BTW, I am getting a presence point ever 5 parlays now since using your changes and the same strategy as before chayce, good work.
 

chayce

Active Member
Diplobot Graphics Problems

I just saw what sohocuba25 wrote. If you are getting the black background with diplobot, basically no skin used, the problem is probably where you have vanguard installed. My wife had the same problem, the Vgskin uses files in:

C:\Program Files\Sony\Vanguard\VGUIAssets\Shells\Default\Textures\

If Vanguard is installed to another location, it obviously can't get the graphics files and goes black instead. To fix this you can either change all the links to the appropriate directory. Or do what we did and move the needed files to the right spot. Good luck hope this fixes it for everyone.
 

Xeon

Active Member
I tried this out today and only problem I ran into was this:

Setup 2 NPC's which are right next to each other. Goes along just fine for a while, but then I start getting:

No one seems to know what you are talking about.

Over and over. It looks like the currently targeted NPC has no more parlays. However, it doesn't switch over to the other NPC like normal.

If I manually switch it, everything works again for X amount of time, then gets stuck with that same problem again.

I added a OnIncomingText to catch that:
Code:
atom(script) DIP_OnIncomingText(string Text, string ChannelNumber, string ChannelName)
{
	if ${Text.Find[No one seems to know what you are talking about]}
	{
		; No more Parlays on this NPC, try to switch
		iter:Set[${iter}+1]
	}
}
Also, I changed the skin file to use the VGSkin one:
Code:
variable string UISkin = "${LavishScript.CurrentDirectory}/Interface/VGSkin.xml"
Edit: Well that didn't seem to fix the problem... Still looking at it
 
Last edited:

don'tdoit

Active Member
From my own bot:

Code:
atom VG_Inc_Text(string Text, string Number, string Name)
{
	if "${Text.Find[No one seems to know what you are talking about.]}"
	{
		echo "${Text}" "${Number}" "${Name}"
		VG:ExecuteCmd[/farewell]
	}
}
 

Eris

Active Member
The rewrite is nearly complete. I had to recode a few functions to fit in chayce's update to the card rating, and of course add it in to the UI, but overall, it is getting VERY near to completion.

Look for it in the next few days, assuming my motivation level remains high.
 

gavkra

Active Member
Thanks for the updates guys. This "test version" should include the new AI and a potential fix for the hang at an NPC.

Xeon: Could you the call to enable the IncomingText atom? I put a potential fix in there. You can probably test it by removing the new "wait 5" I just added and maybe even commenting out the Parlay:Continue call that was already there. That should make every parley have the problem you experienced and test out my fix (well, it's really your fix and dontdoit's fix).

Chayce: Thanks for the new AI. This XML should be the latest. I wonder if you can make it automatically learn the NPCs. by looking at the NPC's dots when its our turn and comparing with the previous turn. Let's say the NPC has 4 1 1 1 and then the next turn it is 1 1 1 1, and the dialog changes by 5 points, then we can keep a tally as to how many points they earned: 5 0 0 0. Once the parley is done, you will end up with a tally like 50 5 10 5 and then decide that one is much higher than the others and..... (I think you know all this but maybe the script cant see that info?).

Please try out this version and lets get some feedback before I post a real release. Since I can't really test this for a few days, I figured its better to make the merge and post something others can test.

Many thanks!
 

Attachments

djvj

Active Member
Would any be willing to add a way to choose what card you always want to start out with? Going around to different npc's and the first card the script uses changes. When playing by hand I will always use Gremlin Greed and I want the script to do the same. Maybe have the script (with an option) to always play slot0 first.
 

Eris

Active Member
Yes, I think that would be possible. And get Bitter Truths. It is not the best mid parley, usually, with the influence it removes from you, but damn is it a vicious opener. Then of course, follow with Gremlin Greed. Hard to argue with a free 5 influence without giving them anything.
 

Gameross

Active Member
So which diplobot should I be installing? Looks like people doing this that and the other thing. Can someone point the direction!
 

Gameross

Active Member
djvj said:
Thanks.

Installed it. It implies there's automatic pathing, etc, but I can only get it to play single games that I manually start. Am I doing something wrong?

It doesn't even seem to have a means to add pathing. The UI window is very basic. The UI background is all black and I remember something where this implies something may not be setup correctly.

Thanks for your help.
 

Gameross

Active Member
Gameross said:
Thanks.

Installed it. It implies there's automatic pathing, etc, but I can only get it to play single games that I manually start. Am I doing something wrong?

It doesn't even seem to have a means to add pathing. The UI window is very basic. The UI background is all black and I remember something where this implies something may not be setup correctly.

Thanks for your help.
OK, remembered how to fix it. Had to edit the VGSkin.XML file with the correct location of my Vanguard directory/drive.
 

gavkra

Active Member
TheDon said:
can someone give me a step by step setup rundown... im gettin somthing messed up :(
Sorry, but time is limited to support this. Did you go to the release posting and follow the instructions there? I'm just wondering if I need to add something more to those.

NOTE: There is a new Diplomacy script that includes better pathing. I haven't used it much since I dont dip much anymore. You might try that one.

In short, you pick the buttons to add the NPCs and click W to make waypoints TO THAT NPC. Hope it helps.
 
Top Bottom