Problems with setting up a finishing move.

Runes of Magic/Radiant Arcana (http://www.runesofmagic.com)
Post Reply
Message
Author
Exempt
Posts: 197
Joined: Wed Jan 20, 2010 9:55 am

Problems with setting up a finishing move.

#1 Post by Exempt » Wed Jan 20, 2010 2:33 pm

Hello, I'm Exempt!... :|

I'm trying to setup my mage to use Fireball when the mob is almost dead. I made it so it works by reading the tutorial but it's far from working well.

The problem is most of the time the mobs die in two hits and it will never cast Fireball on the second hit... Only after it has casted Flame twice or so will it even try to cast Fireball and that is normally after the mob is dead.

Edit: The code i'm using mostly is in the onSkillCast event.

Code: Select all

<profile>
	<options>
		<option name="HP_LOW"			value="85" />
		<option name="MP_LOW_POTION"	value="50" />
		<option name="HP_LOW_POTION"	value="30" />
		<option name="USE_HP_POTION"	value="best" />	<!-- potion select strategy: best|minstack -->
		<option name="USE_MANA_POTION"	value="best" />	<!-- potion select strategy: best|minstack -->

		<!-- Rest if HP or Mana is below that level -->
		<option name="HP_REST" value="15" />
		<option name="MP_REST" value="15" />

		<!-- Shopping options, how many of what do you want to keep in your inventory -->
		<option name="HEALING_POTION" value="99" />
		<option name="MANA_POTION" value="99" />
		<option name="ARROW_QUIVER" value="0" />
		<option name="THROWN_BAG" value="0" />
		<option name="POISON" value="0" />

		<!-- either false or arrow or thrown -->
		<option name="RELOAD_AMMUNITION" value="false" />	<!-- false|arrow|thrown -->

		<!-- Combat options -->
		<option name="COMBAT_TYPE"        value="" />	<!-- leave empty or choose ranged/melee if not using class default -->
		<option name="COMBAT_RANGED_PULL" value="true" /> <!-- only important for melees -->
		<option name="COMBAT_DISTANCE"    value="200" />
		<option name="MAX_FIGHT_TIME"     value="15" />	<!-- Max time without damage before break -->
		<option name="DOT_PERCENT"        value="90" />
		<option name="ANTI_KS"            value="true" />

		<!-- Attack monsters 3 levels above or 10 below your level -->
		<option name="TARGET_LEVELDIF_ABOVE" value="3" />
		<option name="TARGET_LEVELDIF_BELOW" value="10" />

		<!-- Waypoint and movement settings -->
		<option name="WAYPOINTS"		value="" />  <!-- leave empty to show a list -->
		<option name="RETURNPATH"		value="" />
		<option name="PATH_TYPE"		value="waypoints" />	<!-- waypoints | wander -->
		<option name="WANDER_RADIUS"		value="500" />
		<option name="WAYPOINT_DEVIATION"	value="0" />
		<option name="QUICK_TURN" 		value="false" />

		<!-- Loot settings -->
		<option name="LOOT"               value="true" />
		<option name="LOOT_IN_COMBAT"     value="true" />
		<option name="LOOT_DISTANCE"      value="100" />
		<option name="LOOT_PAUSE_AFTER"   value="0" />		<!-- probability in % for a short rest -->

		<!-- Log out and resurrect settings -->
		<option name="LOGOUT_TIME" 			value="0" />	<!-- in minutes, 0 = timer disabled -->
		<option name="LOGOUT_SHUTDOWN"		value="false" />
		<option name="LOGOUT_WHEN_STUCK"	value="true" />
		<option name="RES_AUTOMATIC_AFTER_DEATH" value="true" />

		<!-- For more options and documentation see the RoM Bot Wiki:  -->
		<!-- http://www.solarstrike.net/wiki/index.php5?title=RoM_Bot  -->

	</options>

	<friends>
		<!-- names of friends we help fighting or enemys we don't want to attack -->
		<!-- for umlauts use \129 (ue),\132 (ae),\148 (oe) e.g. K\132fer         -->
		<friend name="MyOtherCharacter1" />
		<friend name="MyOtherCharacter2" />
		<friend name="Elite_Mob_Name1" />
		<friend name="Elite_Mob_Name2" />
	</friends>

	<mobs>
		<!-- names of mobs we want to attack 				-->
		<!-- if no names defined we will attack all mobs	-->
		<mob name="" />
		<mob name="" />
		<mob name="" />
	</mobs>

	<hotkeys>
    	<!-- to communicate with the RoM API / define ingame dummy macro at place 1 -->
		<hotkey name="MACRO"        key="VK_0" />
	</hotkeys>

	<skills_mage>
		<skill name="MAGE_FLAME"              hotkey="VK_1" priority="90"/>
		<skill name="MAGE_ELEMENTAL_CATALYST" hotkey="VK_9" priority="30" inbattle="true" />
		<skill name="MAGE_FIREBALL"        hotkey="VK_2" autouse="false" />
		<skill name="PRIEST_URGENT_HEAL"        hotkey="VK_5" autouse="false" />
		<skill name="PRIEST_HOLY_AURA"        hotkey="VK_7" autouse="false" />
		<skill name="PRIEST_REGENERATE"        hotkey="VK_6" autouse="false" />
	</skills_mage>

	<onLoad>
		-- Additional Lua code to execute after loading the profile
		-- and before the bot starts. e.g. You could overwrite profile settings here
		-- like: changeProfileOption("HP_REST", 60);
	</onLoad>

	<onDeath>
		-- Additional Lua code to execute on death
		-- pauseOnDeath(); -- Stop the script
		player:logout();	-- logout
	</onDeath>

	<onLeaveCombat>o

	</onLeaveCombat>

	<onLevelup>
		-- Additional Lua code to execute after having a levelup
		-- and levelup the skills for a new character (mage or priest recommended)
		-- e.g. sendMacro("SetSpellPoint(_tabnr, _skillnr);"); would levelup a skill
	</onLevelup>

	<onSkillCast>
		-- Additional Lua code to execute when casting a skill
		-- Note: arg1 contains the skill being used.
		-- i.e. arg1.Name will be the name of the skill being cast
		-- e.g.:
		local target = player:getTarget();
		if( 35 > target.HP/target.MaxHP*100 ) then
			player:cast("MAGE_FIREBALL");
		end;

		if( 25 > player.HP/player.MaxHP*100 ) then
			player:cast("PRIEST_HOLY_AURA");
			player:cast("PRIEST_URGENT_HEAL");
			player:cast("PRIEST_REGENERATE");
		    	player:cast("PRIEST_URGENT_HEAL");
		elseif( 60 > player.HP/player.MaxHP*100 ) then
			player:cast("PRIEST_REGENERATE");   
		end;
	</onSkillCast>
</profile>
EDIT: Just incase this is brought up.. After the first Flame the mobs are around 10% hp.

Exempt
Posts: 197
Joined: Wed Jan 20, 2010 9:55 am

Re: Problems with setting up a finishing move.

#2 Post by Exempt » Wed Jan 20, 2010 3:27 pm

I tried to just edit my last post but it made he font go all crazy..

I found a function called targethpper but it's has the exact same affect.

Code: Select all

<skills_mage>
		<skill name="MAGE_FIREBALL"        hotkey="VK_2"  targethpper="35"/>
		<skill name="MAGE_FLAME"              hotkey="VK_1" priority="70"/>
		<skill name="MAGE_ELEMENTAL_CATALYST" hotkey="VK_9" priority="30" inbattle="true" />
		<skill name="PRIEST_URGENT_HEAL"        hotkey="VK_5" autouse="false" />
		<skill name="PRIEST_HOLY_AURA"        hotkey="VK_7" autouse="false" />
		<skill name="PRIEST_REGENERATE"        hotkey="VK_6" autouse="false" />
	</skills_mage>

User avatar
Administrator
Site Admin
Posts: 5307
Joined: Sat Jan 05, 2008 4:21 pm

Re: Problems with setting up a finishing move.

#3 Post by Administrator » Wed Jan 20, 2010 6:20 pm

It's because your fireball has not hit the target and done damage by the time you are ready to cast the next skill. The bot cannot predict the future, so there is nothing that can be done. Don't worry about it, when used against higher level enemies it is not a problem.

Exempt
Posts: 197
Joined: Wed Jan 20, 2010 9:55 am

Re: Problems with setting up a finishing move.

#4 Post by Exempt » Wed Jan 20, 2010 6:30 pm

I figured as much. Thanks for the reply.

I have a new question now.

If I use itemTotalCount() like this will it return the inventory count say 1-60? My goal is to make it go to the vendor if i need to repair or have a full inventory.

Code: Select all

<onLeaveCombat>		
		if( inventory:itemTotalCount() > 59 ) then
			player.free_flag1 = true;
		end;

		local dura = inventory:getMainHandDurability();
		if( 0.9 > dura ) then
			player.free_flag1 = true;
		end;
	</onLeaveCombat>
Edit: Also, ever since I made that first post so big I can barely read the font on this site anymore. Do you happen to know a fix?


Edit: Is there a way i can get a list of all possible functions?

Edit again... I forgot one other thing i intend to add, just incase it makes a difference. I'm going to make it so it will go to the merchants when it's out of a potion aswell.

Edit: I let the bot run a while as is... The inventory count function doesn't do what I had hoped. What is the function to check if the inventory is full?

User avatar
Administrator
Site Admin
Posts: 5307
Joined: Sat Jan 05, 2008 4:21 pm

Re: Problems with setting up a finishing move.

#5 Post by Administrator » Thu Jan 21, 2010 1:29 am

itemTotalCount() returns the total amount of one specific type of item, not how many slots are used. You could write your own function to check the number of inventory slots used, if you want.

Exempt
Posts: 197
Joined: Wed Jan 20, 2010 9:55 am

Re: Problems with setting up a finishing move.

#6 Post by Exempt » Thu Jan 21, 2010 9:30 pm

I really don't know how to in the scripting language.

Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot] and 0 guests