KBot feedback thread

Status
Not open for further replies.

dazed0119

Active Member
I am haveing huge issues with the combat aspect of this... If I get an add the bot will ust sit there and let it pound on me half the time, the other half the time it just sits there and cycles targets non stop. It wont stick to one target till its dead and then switch to the next. Anyone else have similiar issues?
 

mycroft

Script Author: MyPrices
dazed0119 said:
I am haveing huge issues with the combat aspect of this... If I get an add the bot will ust sit there and let it pound on me half the time, the other half the time it just sits there and cycles targets non stop. It wont stick to one target till its dead and then switch to the next. Anyone else have similiar issues?

Yes , sometimes I find it can't decide which mob to kill if I get 2 mobs on me , it targets one , casts my initial pull spell , changes targets , casts my initial pull spell , swaps back....etc etc...
 

dazed0119

Active Member
I've also noticed I can be attacking a mob, get an Add, and it just ignores it, goes on and tries to pull another mob
 

crisdan

Well-Known Member
Is anyone still having issues with the portui and port locations never staying populated? I am using kbot 3.1 (even though it still says Kbot 2.2.1b in the isx console when you load kbot3.1) and I have tried it with the previously mentioned isxvglocations.xml file that I downloaded from here. Nothing that I have read in the forums have fixed my problem.

I will login with my toon, run kbot and click on the portui tab. No locations are listed. I will grab a few locations from running around and add a custom location or two. As soon as I cross a chunk or log out of the game and come back using the very same toon; I run kbot and click on the portui tab and my locations are all gone.

Does anyone have any further fix's or suggestions?
 

Cr4zyb4rd

Active Member
Something in your locations file is corrupt or incorrectly formatted. I'd give further advice, but I've already given more than enough hints for how to track this down and fix it if you search around the forums.
 

crisdan

Well-Known Member
Yeah crazy I thought that as well. I have already replaced, deleted, and cut and pasted different vglocations.xml files but it did not fix my problem.
 

Kram337

Active Member
Dath, Xeon, MadHatter, you guys really did a great job on KramBot! I'd like to commend you on a job well done! You added everything to it that I eventually wanted it to have.

I'm really glad you did all that work so I didn't have to :)

Thanks again guys,
~Kram
 

Kram337

Active Member
I'm having an issue that I expect you to resolve right away! Because I'm demanding. =)

Anybody else have this happen? Bot works fine except for sometimes it doesn't rest between fights. It'll just go pull another mob when my char is only at like 50% hp. Looking at the debug mode code it would seem that it occurs when the combat sub is exited abnormally.

Like when it notices that it's still in combat without a target then it skips the rest sequence. I'll look at the code but its obviously been changed a crap load since I been around.

~Kram
 

Kram337

Active Member
Well I do find the exact location of the code where it's going ary. I add in another "check for rest" code block there and abracadabra.

However, it'll only rest once thru the downtime routine because InCombat is returning TRUE even though we're not actually in combat or have adds or anything. Which is probably what the problem is in the first place.

Not sure how to fix that one. Is this a VG issue possibly? thinking you're in combat when you're not. Or do we need to place a pause in that sub to give it time to update the InCombat state?

~Kram

(Edit: The other issue with this bug is that we dont loot the corpse of the original mob either. So missing out on loot every now and then. The bigger of the issues is that I die a lot if the char pulls when it's not ready)
 

Kram337

Active Member
Okay, so I think I've got my issue of "Pulling when I should be resting" worked out. I changed line 682 (line number might not be 100% accurate, I've added a few other things here and there).

I changed the line that said:
if ${Me.InCombat}

to say:
if ${Me.Encounter}>0 || (${Me.TargetHealth}<100 && ${Me.TargetHealth}>0)

Anyway, it's been 30-45 minutes now without error, where it was occuring every few pulls previously. So I think it's resolved.

~Kram
 

dazed0119

Active Member
I am having issues with my ranger & pulling. It does great if the mob is in range of my bow attack, but if I am in what would NORMALLY be melee range, it wont pull as it is trying to use the ranged pull attack. Is there a way to change it where if it is under say 8range in stops trying to use the defined pull attack and uses something else, or backs up till it IS far enough back to use it?
 

Xeon

Active Member
dazed0119 said:
I am having issues with my ranger & pulling. It does great if the mob is in range of my bow attack, but if I am in what would NORMALLY be melee range, it wont pull as it is trying to use the ranged pull attack. Is there a way to change it where if it is under say 8range in stops trying to use the defined pull attack and uses something else, or backs up till it IS far enough back to use it?
This bot is not supported... if you want it to do something differently, just change the code.
 

dazed0119

Active Member
heh, If I knew enough on how to change it I would, hence why I was asking here incase anyone else knew how. I wouldn't even know where to begin on making changes to your awesome scripts :)
 

xail

Active Member
Great job on the bot guys, it works pretty well for the most part. I have one problem though. I play a necromancer and I'm trying to get my pet to tank (which requires that it uses its "Sneer" ability to take aggro). 80% of the time the bot doesn't even try to use the sneer ability. I have it set under the extras tab / pets and it still will not work correctly.

Appreciate the help guys,
Keep up the good work!
 

Mazdryk

Active Member
Has anyone figured out how to get the bot to use spells like svering ritual and scarlet rutual? these are spells that use Blood union points. I have no reason why they wont ever work even when i have them selected.
 

bohika

Active Member
Dunno if anyone posted this yet but...

inside function Roaming

Code:
	if ${totalWayPoints} == ${CurrentWP}
	{
		
		WPDirection:Set["Backward"]
	}
	else 
	{
		if ${CurrentWP} == 1
		{
			WPDirection:Set["Forward"]
		}
	}


keeps it from buggin out if you start running the bot near your last wp

edit:: I guess i'll add some more...

inside function:bool HarvestCheck
Code:
Pawn[resource,radius,${maxRoamingDistance},${anIter.Key}]:Target
		wait 10
		if ${Me.Target.ID(exists)}
add that wait so it has time to get the damn target

inside function main near the end

Code:
	; Check for new Mobs to fight
			call Check_for_Mobs
			if ${Return}
			{
					if ${usePullAttack}
					{
						call Pull
						if ${Return}
							call Fight
					}
					else
					{
						call Fight
					}
			}
			else
			{
					; Harvest?
					if ${doHarvest}
					{
						call HarvestCheck
						if ${Return}
						{
							; Ok, found a resource, move in for the kill!
							call DebugIt ".  Found Harvest Target"
							call movetoobject ${Me.Target.ID} 5 0
							call HarvestCheck
							wait 10
							call Harvest
						}
						else
						{
								if !${Me.InCombat}
							{
								call SprintStayOn
			
								; Not InCombat and nothing close by, lets move!
								call Roaming
								if !${Return}
								{
										call Pull
								}
							}
						}
					}
					else
					{
						if !${Me.InCombat}
						{
							call SprintStayOn
		
							; Not InCombat and nothing close by, lets move!
							call Roaming
							if !${Return}
							{
									call Pull
							}
						}
					}
			}

			StuckLoop:Set[${StuckLoop}+1]
change the code to that so it will harvest everything at your current wp
 
Last edited:

dazed0119

Active Member
Anyone out there know how to go about fixing the issue when u get an Add while fighting? Every time I get an add it constantly cycles between the 2 targets instead of killing one then switching to the next.
 

cheasley

Active Member
Mine has no problem with an Add. I've even watched in awe as I had an Add to an Add to an Add. Granted they were all 2 dots within my level range that I had setup.
 

cheasley

Active Member
One thing I am having a consistent problem with is in the Nukes Sub, in the Default_Combat_Routine. It will continually cast the first Spell and the first spell only. I have a 0 cost instant cast buff, which requires Blood Union points, which I can't for the life of me figure out yet either.

Name: Scarlet Ritual II
Type: Spell
Target: Offensive
Range: 25
Jin: NULL
Energy: 0
Endurance: 0
SpecialPointsCost: 0
PhenomenaCost: NULL
HealthCost: 0
VirtueCost: NULL
IsReady: TRUE
So I've altered my Nukes() and MeCasting() in kbot.iss.
I'm not thrilled with the modification so I'll post it below for review and
hopefully modification by someone more experienced with Atom events
and the like. I think increasing the wait definately slows down the script,
and it may be called for in my situation to detect what state the bot is in.

The chains addition within Nukes() is clumsy, I know, and should be more effectively implemented throughout the entire script as opposed to my bolt-on solution, but for now it works for me.


Code:
function:bool Nukes()
{
 
    variable iterator anIter
 
    setConfig.FindSet[NukeAttacks]:GetSettingIterator[anIter]
    anIter:First
 
    while ( ${anIter.Key(exists)} )
    {
        ;call DebugIt "D. DoT Sub ${anIter.Key}, rdy ${Me.Ability[${anIter.Key}].IsReady}, Already dotted ${Me.TargetEffect[${anIter.Key}](exists)}"
        call CheckAbilCost "${anIter.Key}"
        if ${Me.Ability[${anIter.Key}].IsReady}
        {
            call DebugIt "D. Nuke Sub ${anIter2.Key}, rdy ${Me.Ability[${anIter2.Key}].IsReady}, Already Nuketed ${Me.TargetEffect[${CurrentNukeName}](exists)}"
            Face ${Me.Target.X} ${Me.Target.Y}
            Me.Ability[${anIter.Key}]:Use
            call MeCasting
            call CheckForChain
            call CheckForCounter
            wait 25
 
        }
        anIter:Next
    }
 
}
My version of MeCasting() in KBot.iss

Code:
function MeCasting()
{
    ;Sub to wait till casting is complete before running the next command
    ;echo "Rar1: ${Time} ${Me.IsCasting}"
    while ${Me.IsCasting}
    {
        wait 20
    }
    ;echo "Rar2: ${Time} ${VG.InGlobalRecovery}"
    while ${VG.InGlobalRecovery}
    {
        wait 20
    }
    ;echo "Rar3: ${Time} ${Me.ToPawn.IsStunned}"
    while ${Me.ToPawn.IsStunned}
    {
        wait 20
    }
 
 
}
 
Last edited:

dazed0119

Active Member
Ok, so I am having issues with the pulling code when I dont have LOS it jsut sits there over and over trying to pull. I Know virtually nothing about coding and scripting, but I want to learn...

I have read though the script a bit and see a spot that LOOKS like it is designed to stop exactly what is happening to me, but its not working..


SO my new task is to Learn how to read the scripts and determine exactly what its trying to do.. Anyone have any good hints as to where I can start learning? I have looked through the WIKI a bit, but all that did was confuse me more basically. What I need is a total noob primer basically. If anyone out there is willing to help me out with some tutoring I would Love it, Thanks in advance.
 

bohika

Active Member
for the targeting issue try commenting out call FeigningDeath in function combatheal

also make the other fixes to combatheal that i posted earlier
 

Cr4zyb4rd

Active Member
What I need is a total noob primer basically. If anyone out there is willing to help me out with some tutoring I would Love it, Thanks in advance.
Search through my old posts, as when not being a sarcastic arsehole I've done quite a bit of this type of thing. By all means PM me or start a new thread if you have specific questions. I'm not on irc so much these days, but can arrange to be if needed, etc

(sorry to hijack the kbot thread, but i figured this would serve better as a semi-public announcement than a PM)
 

jelsea

Active Member
No such 'character' member 'Name'
No such 'pawn' member 'Equal'
No such 'character' member 'Name'
No such 'pawn' member 'Equal'
No such 'character' member 'Name'
No such 'pawn' member 'Equal'
No such 'character' member 'Name'
No such 'pawn' member 'Equal'
No such 'character' member 'Name'
No such 'pawn' member 'Equal'
No 'Target_Next' function found in script
Call failed
Dumping script stack
--------------------
-->C:/Program Files/InnerSpace/Scripts/kbot.iss:991 Pull() call Target_Next 8
C:/Program Files/InnerSpace/Scripts/kbot.iss:581 CheckState() call Pull
C:/Program Files/InnerSpace/Scripts/kbot.iss:244 main() call CheckState
-- Ending KBot --

With the new 3.2 version of kbot I keep getting this error after it runs for just a little bit. No amount of re-pathing will seem to fix it. Anyone know how to fix this?
 

blackee

Senior Member
I have the sme problem...

Current Target is Dead
. CheckState: 71
.Pull Attempt: 0 Levels: 41-51 Distance: 24
.Pull Target is: Null
No 'Target_Next' function found in script
Call failed
Dumping script stack
-------------------------------------
------>C:/Program Files/InnderSpace/Kbot.iss:991 Pull() call Target_Next 8
C:/Program Files/InnderSpace/Kbot.iss:581 CheckState() call Pull
C:/Program Files/InnderSpace/Kbot.iss:244 main() call CheckState
--- Ending Kbot ---

Please help! I have a basic understanding of programming, however, I have zero idea what is happening...it happens randomly. Sometimes it will run for 30 min other times for 1...
 
Last edited:

Xeon

Active Member
blackee said:
No 'Target_Next' function found in script
-------------------------------------
------>C:/Program Files/InnderSpace/Kbot.iss:991 Pull() call Target_Next 8
Edit your Kbot.iss file and remove the Target_Next line at line number 991

I'm working on the script again and will release an update tomorrow sometime
 

blackee

Senior Member
Xeon,

Thanks for the great code/logic, and a quick response.

Since you will be tweakin the code today, I have noticed a couple of things.

1. If a mob runs when it gets down to <5%, and the bot kills it after it has wondered away a few meters, Kbot goes into an endless loop (until the body rots). I would think a moveto needs to be added to the loot loop.

2. I have yet to get the harvesting portion working (of resources). SKinning and/or body harvesting works >80% (which is good). But I can't get my toon to run over to a resource and start harvesting. (side note: I have added "Knotted Pine Tree" and just "knotted", amongst other variations to no avail). Someone posted a harvest script to add into Kbot.iss, but either i added into the wrong loc, or the logicwas flawed. I'd suspect the former.

3. Is it possible to cast the toggle spells prior to pulling vice after teh mob dies (unless I don't understand the intent of a 'toggle' spell)?

Thanks for working the code for us today!
 

ststew

Active Member
blackee said:
Xeon,

Thanks for the great code/logic, and a quick response.

Since you will be tweakin the code today, I have noticed a couple of things.

1. If a mob runs when it gets down to <5%, and the bot kills it after it has wondered away a few meters, Kbot goes into an endless loop (until the body rots). I would think a moveto needs to be added to the loot loop.

2. I have yet to get the harvesting portion working (of resources). SKinning and/or body harvesting works >80% (which is good). But I can't get my toon to run over to a resource and start harvesting. (side note: I have added "Knotted Pine Tree" and just "knotted", amongst other variations to no avail). Someone posted a harvest script to add into Kbot.iss, but either i added into the wrong loc, or the logicwas flawed. I'd suspect the former.

3. Is it possible to cast the toggle spells prior to pulling vice after teh mob dies (unless I don't understand the intent of a 'toggle' spell)?

Thanks for working the code for us today!

Problem I have when mobs run is that my guy wont get into attack range, with the default 5 meter combat distance. Takes awhile for him to catch up to do the killing blow.
 

dazed0119

Active Member
One thing I have seemed to notice with the new release is it tends to ignore non aggro mobs while running to the next waypoint. I have target all mobs checked and it will run right through them onits route to the next mob. Once it gets to the next waypoint it will pull anything it sees though.

I didnt know if this is intentional or not, since they are non aggro, but thought I would mention it. So far I have not seen it do this with aggro mobs, but not really in a place with a lot of aggro currently
 

dazed0119

Active Member
Also it appears there might be a LOS issue or something. I will test more when I get home from work, but The couple of instances I noticed this morning where when the mob was behind a rock and I didnt have LOS to it, it kept cycling through my ranged attacks trying to attack it and never stopped till I moved myself to where I did have LOS.



Oh and a feature request if you ever feel like doing it. Would be great to have auto decline of group invites and trade invites similar to craftbot.

Oh and don't know if it is doable or not, but an option where when the mob is under x% health to cast a snare would be freaking awesome.. damn runners anyway...
 
Last edited:

jelsea

Active Member
Great Update Xeon, please continue to work on this one, we need Kbot as much as we need craftbot.

Bloodmages could use some love with this script when ever you have time to fine tune it. I notice that pretty much the form switching does not work all that well for bloodmages, and we live and die by our forms, especially if we are left in the dmg form for too lond and run out of HPs. So could use some code to make sure the form switch actually took place.

Also was thinking im sure all the classes could use a drop down box option for the instant attacks. I notice with the script all that seems to work is the Nuke and Rage attacks. I never see the snares or Dot's being used by the script.
 

ststew

Active Member
I get this error spammed in console a hundred times;
Exception during event execution: System.FormatException: Input string was not in a correct format.

at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)

at System.Number.ParseInt64(String value, NumberStyles options, NumberFormatInfo numfmt)

at MeleeBot.VGEvents.vgevent_IncomingCombatText(Object sender, LSEventArgs e)

at Vanguard.ISXVG.VGEvent.OnIncomingCombatText(Object Sender, LSEventArgs e)

at LavishScriptAPI.LavishScript.Events.Event.Target(Int32 argc, UInt32 argvToken, Int32 ThisObject)

While my guy stands there and dies.
 

Xeon

Active Member
ststew said:
I get this error spammed in console a hundred times;

at MeleeBot.VGEvents.vgevent_IncomingCombatText(Object sender, LSEventArgs e)

Ohhhh-nooooes! That is terrible... I'll fix it right away!

But really, you should pay more attention to what script you are running and where you are posting your help requests.
 

ststew

Active Member
Xeon said:
Ohhhh-nooooes! That is terrible... I'll fix it right away!

But really, you should pay more attention to what script you are running and where you are posting your help requests.
Opps that wasn't the right error I meant to save to post on here.. I'll let you know what the real error I get next time it happens ;p
 

ststew

Active Member
. ValidTarget: Me.Target is Dead or a Corpse
. ValidTarget is FALSE
. CheckState: 80
. CheckState: 80
. CheckState: 80
. CheckState: 80
. CheckState: 90
. CheckState: 80
CombatText: You have slain Spikeshell Turtle!

This is one instance where the mob was low health probably 1% or less, and kbot kept targeting it and spewing that out to the console.. had to kill it by hand...
 

jelsea

Active Member
Xeon is it possible to loot soulbound items through the script. I know it uses /lootall but that won't pickup soulbound items. Is there a way the script can loot items that our soulbound. Wonder if there is some sort of loot command that will allow soulbound items to be looted without having to click on them and click accept.
 

dazed0119

Active Member
jelsea said:
Xeon is it possible to loot soulbound items through the script. I know it uses /lootall but that won't pickup soulbound items. Is there a way the script can loot items that our soulbound. Wonder if there is some sort of loot command that will allow soulbound items to be looted without having to click on them and click accept.


Just go into your settings under the interface tab and turn the conformation off
 

dazed0119

Active Member
Another thing I have noticed with my ranger, I have my pull distance set at 49, and if I lower my Roaming distance any lower than that it wont pull at 49. It appears that Roam and pull distance are related. If I set Roam to 25 it wont pull unless the mob is within 25.
 

Leopardfist

Well-Known Member
dazed0119 said:
I am having issues with my ranger & pulling. It does great if the mob is in range of my bow attack, but if I am in what would NORMALLY be melee range, it wont pull as it is trying to use the ranged pull attack. Is there a way to change it where if it is under say 8range in stops trying to use the defined pull attack and uses something else, or backs up till it IS far enough back to use it?
Ever notice how NPC Archers can use their bows in melee range? I wish I could help you code wise, I am just about to install this for the first time myself.
 

blackee

Senior Member
Don't have much time to troubleshoot, however, KBot looks dorked up after the patch. The bot runs but I continually returns Target Isdead and I drop my target. I wasn't able to kill 1 mob.

Anyone else experiencing the same problem post patch?
 

dazed0119

Active Member
A Nice temp fix posted by fistx in IRC


Change line 12 of kb_target.iss and line 1499 of kbot.iss.

Change the End of those lines where it looks like < = 0 to read < = -1



Changed this and ran fine last night.
 

dazed0119

Active Member
I am still getting where this runs right past mobs even though the target all mobs is checked and they fit the criteria. It just runs right past them to the next way point and then pulls from there. Isnt it supposed to stop when it encounters one along its pathway?
 

blackee

Senior Member
I have yet to get it to work either (harvesting nodes that is)...I plan on tinkering with the code. The console looks for the pawn: Dusky tree, but it won't run over to it.

Bohika,

Can you provide more insight on where to put your harvest code?

I added a line to eat food while resting--to kbot.iss. This allows you to eat when your power is low.

__________________________________________

if ${doUseFood}
call UseFoodsDrinks

if ${Me.HealthPct} < ${restHealthPct} || ${Me.EnergyPct} < ${restEnergyPct} || ${Me.Stat["Adventuring","Jin"]} < ${RequiredJin}
{
if ${doSitToRegen} && !${isSitting}
{
if ${doUseFood}
call UseFoodsDrinks
isSitting:Set[TRUE]
}
return TRUE
}
_________________________________________--

Any help on the harvesting piece would be nice!
 
Last edited:

lazer1

Active Member
blackee said:
I have yet to get it to work either (harvesting nodes that is)...I plan on tinkering with the code. The console looks for the pawn: Dusky tree, but it won't run over to it.

Bohika,

Can you provide more insight on where to put your harvest code?

I added a line to eat food while resting--to kbot.iss. This allows you to eat when your power is low.

__________________________________________

if ${doUseFood}
call UseFoodsDrinks

if ${Me.HealthPct} < ${restHealthPct} || ${Me.EnergyPct} < ${restEnergyPct} || ${Me.Stat["Adventuring","Jin"]} < ${RequiredJin}
{
if ${doSitToRegen} && !${isSitting}
{
if ${doUseFood}
call UseFoodsDrinks
isSitting:Set[TRUE]
}
return TRUE
}
_________________________________________--

Any help on the harvesting piece would be nice!
That harvesting code must have been for an older version of the bot. The first part of the code is already there, and the 2nd part of the code does not have a place to go. I'm not at home so I cant have a go at hacking through it, but hopefully someone can respond with the right code for this version.
 

milamber

Active Member
Hey Xeon..

Any chance you could add a "custom chain"?

Lets say for dreadknights that would be:

1. Check if HealthPct is < 80
2. If yes, check if there's enough energy / endurance for Shadow Step and Harrow V
3. If there's not enough Endurance, wait for it - dont use other attacks which use Endurance. (Harrow uses 39 endurance).
4. When there's enough - cast shadowstep, wait 5 and then cast Harrow

Harrow heals for 200% weapon damage.

I've added a custom change so far for this but would be cool if you're considering adding this ;)
 

Xeon

Active Member
milamber said:
Hey Xeon..

Any chance you could add a "custom chain"?

Lets say for dreadknights that would be:
Yep, I have a low level DK and will be adding in this functionality... real soon now :D
 

dazed0119

Active Member
well running the newest release for about 2 hours now with ZERO issues that I have noticed, other than one spell not showing up on the list. Will get you the info on that spell as soon as I remember where the script is to get it ;o)
 

dazed0119

Active Member
Ok found it already

Name: Gift of Ardor I
Type: SPell
Target: 11
Range: 25


this doesnt show up anywhere, and should be in the combat buffs section.
 

hooch604

Active Member
feature request

Script works awesome for my bard, would work super awesome if I could use songs
for combat, rest and travel.

Right now I am having to use a separate macro to ensure my damage song doesn't drop but I could get a lot more kills per hour if I could rotate them.

:halo:
 

Xeon

Active Member
hooch604 said:
Script works awesome for my bard, would work super awesome if I could use songs for combat, rest and travel.
Well, I don't have any Bard toons, so I doubt I'll be adding any support.

However, if anyone does, please feel free to post/send me the diffs and I'll put them into the main code line.
 

IeU

Active Member
the pathing isnt working all that good for me, when toon get to a waypoint, it kind look back to the path that he just did and then face and go to the new waypoint, looks odd and boty . . .
 

Xeon

Active Member
IeU said:
the pathing isnt working all that good for me, when toon get to a waypoint, it kind look back to the path that he just did and then face and go to the new waypoint, looks odd and boty . . .
Weird... considering it's a BOT!
 

eeks

Active Member
Just got this installed and it's pretty awesome.

Is there a way to make a path from nearest altar back to your tombstone when you die?
I notice on ranger forage that it will forage right after killing a mob but not loot.
When foraging is there a way to make it stealth you after? This is an awesome ability to make it harder for you to get caught.
I think I made my loop to close or maybe crossed over somewhere but now and then I notice my charcter running backwards and not attacking anything (think this is just due to my pathing though.

Also I seem to get laggy pretty fast, this happens to vgcraftbot also even though I have memory to spare, any hints on things to improve this.
Btw real nice program....
 

hooch604

Active Member
Xeon said:
Well, I don't have any Bard toons, so I doubt I'll be adding any support.

However, if anyone does, please feel free to post/send me the diffs and I'll put them into the main code line.
Well I went the ghetto route and just stuck 3 lines in the code to facilitate my needs,

1) I press a button for my heal song during the rest routine.
2) I press a button for my melee song right where you call "stand"
3) I put a 5 second pause in the pull routine as my little dude was running up to the mob immediately after he pulled with his bow making it pointless to pull.
 

spudman

Active Member
Xeon said:
Well, I don't have any Bard toons, so I doubt I'll be adding any support.

However, if anyone does, please feel free to post/send me the diffs and I'll put them into the main code line.
Bard functionality is coming soon. I just finished adding stuff for a bard and just need to get the code changes to Xeon.

Assuming Xeon implements it as I've written it, it will work as follows...
there will be another tab under Extra's called "Bard"

You will have an option to choose a Combat, Rest and Travel Song (and yes, song, not melody)
In addition, for combat you choose your primary and secondary weapons, and for your travel and rest songs you choose the instrument to use.

Then it just plays those songs/switches items based on what's going on. Combat, will equip your weapons and play combat song. Rest will switch to Lute (most likely) and play regen song, travel will switch to drum and play travel song.
 

hooch604

Active Member
spudman said:
Bard functionality is coming soon. I just finished adding stuff for a bard and just need to get the code changes to Xeon.

Assuming Xeon implements it as I've written it, it will work as follows...
there will be another tab under Extra's called "Bard"

You will have an option to choose a Combat, Rest and Travel Song (and yes, song, not melody)
In addition, for combat you choose your primary and secondary weapons, and for your travel and rest songs you choose the instrument to use.

Then it just plays those songs/switches items based on what's going on. Combat, will equip your weapons and play combat song. Rest will switch to Lute (most likely) and play regen song, travel will switch to drum and play travel song.
Very nice spud, now I just have to get different crafted swords. I have two the exact same right now and I had to write some shit in autoit so that when I hit one button it actually goes and hits two because I need a seperate macro to equip the second identical sword.

For whatever reason you can't equip two identical weps from the same ingame macro :cool:
 

spudman

Active Member
hooch604 said:
Very nice spud, now I just have to get different crafted swords. I have two the exact same right now and I had to write some shit in autoit so that when I hit one button it actually goes and hits two because I need a seperate macro to equip the second identical sword.

For whatever reason you can't equip two identical weps from the same ingame macro :cool:
Thanks a lot, you broke it before I even got it released. :) I'm working on it though. I'ts probably because looking for the item by name is just equiping the same item twice. If I search for the item that is 'not' equipped, then I should be able to force it to equip properly. We'll see.
 

hooch604

Active Member
spudman said:
Thanks a lot, you broke it before I even got it released. :) I'm working on it though. I'ts probably because looking for the item by name is just equiping the same item twice. If I search for the item that is 'not' equipped, then I should be able to force it to equip properly. We'll see.
I was very happy to see it equip my weps properly, very cool.

One minor issue, I choose "Lute" for rest song instrument and it insists on equiping the flute :)
 
Last edited:

spudman

Active Member
hooch604 said:
I was very happy to see it equip my weps properly, very cool.

One minor issue, I choose "Lute" for rest song instrument and it insists on equiping the flute :)
ahh, probably need's an exact name search param. i'll post a fix in a bit
 

spudman

Active Member
hooch604 said:
I was very happy to see it equip my weps properly, very cool.

One minor issue, I choose "Lute" for rest song instrument and it insists on equiping the flute :)
Under configs, there's a default_combat_routines.iss file

Search for these...
Code:
Me.Inventory[${PrimaryWeapon}]:Equip
Me.Inventory[${SecondaryWeapon}]:Equip
Me.Inventory[${BardTravelInstrument}]:Equip
Me.Inventory[${BardRestInstrument}]:Equip
individually and add "ExactName," in front of the ${ like follows...

Code:
Me.Inventory[ExactName,${PrimaryWeapon}]:Equip
Me.Inventory[ExactName,${SecondaryWeapon}]:Equip
Me.Inventory[ExactName,${BardTravelInstrument}]:Equip
Me.Inventory[ExactName,${BardRestInstrument}]:Equip
probably a good idea to surround ${ } with quotes too. I'll test it tomorrow morning and get the update to Xeon, but this should work.
 

desire

Active Member
When attacked while in the middle of harvesting a resource, the bot does not defend itself. I think the problem is that keeps the resource targeted for the whole time.

It also often skips resources. I think what's happening is that it'll come to way point and if there are no mobs to kill, it does not look for resources there but goes to next way point.
 
Last edited:

eeks

Active Member
kaxon said:
Xeon Im impress of such a amazing work you have done, so much code in nice.

Thank you for the nice Bot.

Necro had same problem Health Leach(Drain Life I) heal by Leaching from Others.

mycroft


Used text editor like Notepad, open KBot.iss , search for this code, when deleted the code line, save as "KBot.iss" with the " <--quote otherwise if dont it will save as KBot.txt :-(

In the original(code) need to removed this code line at the beginin:
!${Me.Ability[${i}].IsOffensive} && !${Me.Ability[${i}].TargetType.Equal[Offensive]} &&
Code:
if [COLOR="Red"]!${Me.Ability[${i}].IsOffensive} && !${Me.Ability[${i}].TargetType.Equal[Offensive]} &&[/COLOR] !${Me.Ability[${i}].Type.Equal[Combat Art]} && !${Me.Ability[${i}].IsChain} && !${Me.Ability[${i}].IsCounter} && !${Me.Ability[${i}].IsRescue}
{
	;;; Heal Tab
	if ${Me.Ability[${i}].Type.Equal[Spell]}
	{
		;Spell and Defensive
		UIElement[SmallHealCombo@Heal@SettingTabs@SettingFrame@Setting@KBot@KBot]:AddItem[${Me.Ability[${i}].Name}]
		UIElement[BigHealCombo@Heal@SettingTabs@SettingFrame@Setting@KBot@KBot]:AddItem[${Me.Ability[${i}].Name}]
		UIElement[FastHealCombo@Heal@SettingTabs@SettingFrame@Setting@KBot@KBot]:AddItem[${Me.Ability[${i}].Name}]
		UIElement[PetCombo@Pets@ExtraTabs@ExtraFrame@Extra@KBot@KBot]:AddItem[${Me.Ability[${i}].Name}]
		UIElement[PetHealCombo@Pets@ExtraTabs@ExtraFrame@Extra@KBot@KBot]:AddItem[${Me.Ability[${i}].Name}]
		UIElement[MeditationCombo@Rest@SettingTabs@SettingFrame@Setting@KBot@KBot]:AddItem[${Me.Ability[${i}].Name}]
	}
}
working code
Code:
if  !${Me.Ability[${i}].Type.Equal[Combat Art]} && !${Me.Ability[${i}].IsChain} && !${Me.Ability[${i}].IsCounter} && !${Me.Ability[${i}].IsRescue}
{
	;;; Heal Tab
	if ${Me.Ability[${i}].Type.Equal[Spell]}
	{
		;Spell and Defensive
		UIElement[SmallHealCombo@Heal@SettingTabs@SettingFrame@Setting@KBot@KBot]:AddItem[${Me.Ability[${i}].Name}]
		UIElement[BigHealCombo@Heal@SettingTabs@SettingFrame@Setting@KBot@KBot]:AddItem[${Me.Ability[${i}].Name}]
		UIElement[FastHealCombo@Heal@SettingTabs@SettingFrame@Setting@KBot@KBot]:AddItem[${Me.Ability[${i}].Name}]
		UIElement[PetCombo@Pets@ExtraTabs@ExtraFrame@Extra@KBot@KBot]:AddItem[${Me.Ability[${i}].Name}]
		UIElement[PetHealCombo@Pets@ExtraTabs@ExtraFrame@Extra@KBot@KBot]:AddItem[${Me.Ability[${i}].Name}]
		UIElement[MeditationCombo@Rest@SettingTabs@SettingFrame@Setting@KBot@KBot]:AddItem[${Me.Ability[${i}].Name}]
	}
}
my necro had
Name: Drain Life I
Type: Spell
Target: Offensive
Range: 25

as Offensive too, didnt show in Heal % , after removed Offensive from code, it show and heal when Health % reach.

Hope help.

Thank you Xeon forn great Script.

kaxon
Ok I tried this and saved it like "KBot.iss" and then put it as all text and ANSI
and I can't get KBot to open anyone able to tell me what I'm doing wrong?
 

CrazyJosh1

Active Member
Xeon, could you add support to Necropsy and Vile Ritual corpses please?

both are necro abilities, necropsy checks for grafts (2 second spell cast), and vile ritual should have a set mana % before it does it. Currently, I've altered the harvesting part to do it, but its...flaky. lol

Basically, loot target, cast necropsy, loot again (loot window auto-pops up as soon as the spell is done casting, even if no loot), then if below a set % of mana, it casts vile ritual xxx
 

hooch604

Active Member
Oops, bard duel wield a little busted...

Ah sorry Spud and Xeon, I was a little lazy when I first implemented Spud's exactName fix.

When I tested it I tried it without the quotes around the ${} and it worked.

In the 3.23 code I had to take the quotes out and on line 584...

Code:
Me.Inventory[ExactName,${i}]:Equip
needs to be ...

Code:
Me.Inventory[${i}]:Equip

..oh and I am still putting in the wait 45 line right after the pull routine is done to avoid running in on the mobs I am trying to pull.
 
Last edited:

spudman

Active Member
hooch604 said:
In the 3.23 code I had to take the quotes out
hmm i tested it with the quotes and a flute/lute and didn't have an issue. What did it do with the quotes, not equip anything? I'll look at it later tonight if i get a chance.

and on line 584...
Code:
Me.Inventory[ExactName,${i}]:Equip
needs to be...
Me.Inventory[${i}]:Equip
Correct, I don't think I changed that (to ExactName), Xe may have accidentally based off my previous post, but good catch.
 

hooch604

Active Member
The quotes don't seem to affect the flute/lute issue but rather the duplicate wep equip problem. Doesn't seem to make sense but with no quotes everything works as advertised.

fyi: My weapon and instruments names have spaces and apostrophies in them and work fine without quotes.
 
Last edited:

spudman

Active Member
I just DL'd the 3.23 version and tested with my bard. the only change I made was the line you mentioned from...
Code:
Me.Inventory[ExactName,"${i}"]:Equip
to
Code:
Me.Inventory[${i}]:Equip
were you talking about the quotes on this line in particular? Yes, the quotes on this line will break it, since if we search for "${i}", it would be look for a weapon named whatever number i is. i.e. look for a weapon named "5", which isn't going to happen. That line definitely doesn't want the quotes, but they should stay in the other lines with no problem. I know it works either way on the other lines, but the quotes really are proper given that instruments and weapons can have spaces, etc. in them.

I tested with several vendor bought weapons that were the same name and with several lute/flutes in my inventory and it equipped everything properly with just that one line change.
 

hooch604

Active Member
ah ok then, I'm sure it's all good, I didn't cross test the scenarios. How about pulling, you don't find that the bot will fire the arrow and then run in on the mob right away making the "pull" a moot action?

I'll try again with the quotes all in.
 

hooch604

Active Member
Post emergency transport

Does anyone get the problem where kbot starts hunting immediately after the emergency health "safe port".

He doesn't seem to do a health check or rest stop. Just runs right out again and getting himself whacked right away.

edit: mmm I watched him do it right after posting this, he sat down for the rest but only for 1-2 seconds then ran off....

edit: another brute force and ignorance "fix", I changed a wait 30 line in the emerg transport function to wait 300. :p
 
Last edited:
Status
Not open for further replies.
Top Bottom