Improve code for the elfs daily quest

Runes of Magic/Radiant Arcana (http://www.runesofmagic.com)
Message
Author
Tamyra
Posts: 133
Joined: Tue Feb 01, 2011 6:09 pm

Re: Improve code for the elfs daily quest

#81 Post by Tamyra » Mon Apr 18, 2011 11:46 am

Is this something that running the SVN update will fix? Because you lost me again on the profile stuff, and the table stuff.

EDIT: Re-tested...fail. For all of 15 seconds I thought it would work but then she got stuck at the first left hand turn going in the direction of the waterfall, and from there on out, whenever the "L" shape unstick movement was completed she'd spin 180 and face the opposite direction from where she'd been facing only to repeat the movement over and over. I halted the process at try 9 so as not to kick the game off. At this point I have no idea what's going on.
Attachments
Stuck2.jpg
Last edited by Tamyra on Mon Apr 18, 2011 12:25 pm, edited 1 time in total.

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: Improve code for the elfs daily quest

#82 Post by rock5 » Mon Apr 18, 2011 12:20 pm

The complex stuff I was just putting out there to see if anyone new what was happening.

But basically you said that you thought there was a problem with the skills'
Tamyra wrote:The only thing I can think of is that sometimes it messes up and gets stuck when trying to do a skill that the character does not yet have the level to do. Or a skill like flame, on a rogue, so mismatched skill for wrong class.
So I checked and found that when reloading the profile with the settings.loadProfile command it messed up because the table.copy command didn't work properly. It's been fixed in the latest version of micromacro so you need to update it to see if it solves your problem, that's micromacro not the rombot.

If you have the svn version of micromacro you can rightclick the micromacro folder and do an "SVN Update". Otherwise you can download it here.
http://www.solarstrike.net/downloads.php
  • Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
  • I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
  • How to: copy and paste in micromacro
    ________________________
    Quote:
    • “They say hard work never hurt anybody, but I figure, why take the chance.”
          • Ronald Reagan

Tamyra
Posts: 133
Joined: Tue Feb 01, 2011 6:09 pm

Re: Improve code for the elfs daily quest

#83 Post by Tamyra » Mon Apr 18, 2011 12:26 pm

I just posted a screen cap in my last post of what's going on, you can look. And yeah I did an update before I tried the new test.

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: Improve code for the elfs daily quest

#84 Post by rock5 » Mon Apr 18, 2011 12:42 pm

I wonder why it's saying 'clearing target'.

I think I might need to have a look at your profile and waypoint file.
  • Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
  • I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
  • How to: copy and paste in micromacro
    ________________________
    Quote:
    • “They say hard work never hurt anybody, but I figure, why take the chance.”
          • Ronald Reagan

Tamyra
Posts: 133
Joined: Tue Feb 01, 2011 6:09 pm

Re: Improve code for the elfs daily quest

#85 Post by Tamyra » Mon Apr 18, 2011 1:22 pm

Waypoint:

Code: Select all

<?xml version="1.0" encoding="utf-8"?><waypoints type="TRAVEL">
   <onLoad>
    levelupSkills1To10();
    questname=RoMScript("TEXT('Sys422340_name')")
   changeProfileOption("HARVEST_DISTANCE", 30)
   </onLoad>
      <!-- #  1 --><waypoint x="31847" z="4589" tag ='start'>
         
         local dqCount, dqPerDay = RoMScript("Daily_count()");
         if 10 > dqCount then   
            queststate = getQuestStatus("Helping Them Grow");
            if queststate == "complete" then
               -- Complete quest
               player:target_NPC("Blinsik");
               sendMacro("CompleteQuest()"); yrest(1200);
               -- Accept quest
               player:target_NPC("Blinsik");
               sendMacro("AcceptQuest()"); yrest(1200);
               --__WPL:setWaypointIndex(__WPL:findWaypointTag("start"));   
            else
               -- Accept quest
               player:target_NPC("Blinsik");
               sendMacro("AcceptQuest()"); yrest(1200);
            end
         else
            sendMacro("}LoginNextToon=true;a={")
            sendMacro("Logout();"); yrest(3*60*1000) -- wait 3m for next character to load
                  -- Re-initialize player
              player = CPlayer.new();
              settings.load();
              settings.loadProfile("tiering"); -- Profile name
              yrest (4000)
            end
</waypoint>
   <!-- #  2 --><waypoint x="31897" z="4620">   </waypoint>
   <!-- #  3 --><waypoint x="31932" z="4642">   </waypoint>
   <!-- #  4 --><waypoint x="31923" z="4686">   </waypoint>
   <!-- #  5 --><waypoint x="31846" z="4860">   </waypoint>
   <!-- #  6 --><waypoint x="31814" z="4993">   </waypoint>
   <!-- #  7 --><waypoint x="31784" z="5096">   </waypoint>
   <!-- #  8 --><waypoint x="31718" z="5227">   </waypoint>
   <!-- #  9 --><waypoint x="31644" z="5373">   </waypoint>
   <!-- # 10 --><waypoint x="31561" z="5508">   </waypoint>
   <!-- # 11 --><waypoint x="31472" z="5638">   </waypoint>
   <!-- # 12 --><waypoint x="31419" z="5728" tag="pick">    while 1 > inventory:getItemCount(204840) do
   player:target_Object(112976,500);
   yrest(1000);
end
        </waypoint>
   <!-- # 11 --><waypoint x="31472" z="5638" tag="return">   </waypoint>
   <!-- # 12 --><waypoint x="31561" z="5508">   </waypoint>
   <!-- # 13 --><waypoint x="31644" z="5373">   </waypoint>
   <!-- # 14 --><waypoint x="31718" z="5227">   </waypoint>
   <!-- # 15 --><waypoint x="31784" z="5096">   </waypoint>
   <!-- # 16 --><waypoint x="31814" z="4993">   </waypoint>
   <!-- # 17 --><waypoint x="31849" z="4845">   </waypoint>
   <!-- # 18 --><waypoint x="31833" z="4798">   </waypoint>
   <!-- # 19 --><waypoint x="31813" z="4738">   </waypoint>
   <!-- # 20 --><waypoint x="31799" z="4687">  </waypoint>
   <!-- # 21 --><waypoint x="31781" z="4631">  </waypoint>
   <!-- # 23 --><waypoint x="31850" z="4590">
   player:target_NPC("Blinsik"); yrest(1000); sendMacro("CompleteQuest()"); yrest(1200);
      </waypoint>
  <!-- # 23 --><waypoint x="31850" z="4590">
          repeat dailyQuestCount, dailyQuestsPerDay= RoMScript("Daily_count()") until dailyQuestCount and dailyQuestsPerDay
          if (dailyQuestsPerDay - dailyQuestCount) == 0 then
                  sendMacro("}LoginNextToon=true;a={")
            sendMacro("Logout();"); waitForLoadingScreen()
                  -- Re-initialize player
              player = CPlayer.new();
              settings.load();
              yrest (4000)
             else
         __WPL:setWaypointIndex(__WPL:findWaypointTag("start"));
         end
  </waypoint>
</waypoints>
Profile:

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<profile>
	<options>
		<!-- Try the bot with a new char mage                   -->
		<!-- At the pioneer village. Use demo.xml waypoint file -->
		<option name="HP_LOW"			value="85" />
		<option name="MP_LOW_POTION"	value="50" />
		<option name="HP_LOW_POTION"	value="40" />
		<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="2" />
		<option name="THROWN_BAG" value="2" />
		<option name="POISON" value="30" />

		<!-- 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" />
		<option name="MAX_TARGET_DIST"    value="225" />

		<!-- 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="ElfDaily.xml" />  <!-- 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="true" />

		<!-- Loot settings -->
		<option name="LOOT"               value="true" />
		<option name="LOOT_ALL"			  value="false" />  <!-- Loot all nearby dead mobs after combat -->
		<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 -->

		<!-- Harvest options -->
		<option name="HARVEST_DISTANCE"		value="120" />
		<option name="HARVEST_WOOD"			value="true" /> <!-- Choose which types to harvest. -->
		<option name="HARVEST_HERB"			value="true" /> <!-- "true" = harvest, "false" = do not harvest -->
		<option name="HARVEST_ORE"			value="true" />

		<!-- Eggpet options -->
		<option name="EGGPET_ENABLE_CRAFT"	value="false" /><!-- If using same slot for assist and craft, onlt 1 can be enabled. -->
		<option name="EGGPET_CRAFT_SLOT"	value="1" />
		<option name="EGGPET_ENABLE_ASSIST"	value="false" />
		<option name="EGGPET_ASSIST_SLOT"	value="1" />
		<option name="EGGPET_CRAFT_RATIO"	value="1:1:1" /> <!-- mining:woodworking:herbalism ratio to produce. -->
		<option name="EGGPET_CRAFT_INDEXES"	value="" /> 	 <!-- override auto craft index for mining,woodworking,herbalism eg. "2,,"-->


		<!-- 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="false" />
		<option name="CLOSE_WHEN_STUCK"		value="false" />
		<option name="RES_AUTOMATIC_AFTER_DEATH" value="true" />
		<option name="MAX_DEATHS" value="10" /> <!-- Log out after this many deaths -->

		<!-- Party Bot options  -->
		<!-- <option name="PARTY"			value="true" /> -->
		<!-- <option name="PARTY_ICONS"			value="true" /> -->
		<!-- <option name="PARTY_INSTANCE"		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"        modifier="" key="VK_0" />
	</hotkeys>

	<!-- define your skills depending from your actual primary class -->
	<!-- see the example for a priest/mage                           -->
	<!-- delete skills you don't have or don't want to use.          -->
	<!-- For more skills to use see /database/skills.xml             -->
	<!-- demo skills for LvL 1 character for all classes             -->
	<skills_priest>
		<skill name="PRIEST_SOUL_SOURCE"   modifier="" hotkey="VK_4" priority="110" inbattle="true" hpper="15" />
		<skill name="PRIEST_HOLY_AURA"     modifier="" hotkey="VK_7" priority="100" inbattle="true" hpper="24" />
		<skill name="PRIEST_URGENT_HEAL"   modifier="" hotkey="VK_2" priority="100" hpper="30"  />
		<skill name="PRIEST_REGENERATE"    modifier="" hotkey="VK_6" priority="90" />
		<skill name="PRIEST_RISING_TIDE"   modifier="" hotkey="VK_3" priority="80" />
		<skill name="MAGE_FIREBALL"        modifier="" hotkey="VK_8" priority="70" />
		<skill name="PRIEST_WAVE_ARMOR"    modifier="" hotkey="VK_5" priority="40"  inbattle="true" />
		<!--skill name="PRIEST_SOUL_BOND"     hotkey="VK_T" priority="30" /> -->
		<!--skill name="PRIEST_MAGIC_BARRIER" hotkey="VK_F" priority="20" rebuffcut="60" inbattle="false" /> -->
	</skills_priest>

	<skills_warrior>
		<skill name="WARRIOR_SLASH"          modifier="" hotkey="VK_2" priority="90" />
		<skill name="WARRIOR_PROBING_ATTACK" modifier="" hotkey="VK_4" priority="80" />
		<skill name="WARRIOR_OPEN_FLANK"     modifier="" hotkey="VK_5" priority="70" />
	</skills_warrior>

	<skills_scout>
		<skill name="SCOUT_SHOT"        modifier="" hotkey="VK_2" priority="90" />
		<skill name="SCOUT_AUTOSHOT"    modifier="" hotkey="VK_4" priority="80" />
		<skill name="SCOUT_WIND_ARROWS" modifier="" hotkey="VK_5" priority="70" />
	</skills_scout>

	<skills_rogue>
		<skill name="ROGUE_SHADOWSTAB"  modifier="" hotkey="VK_2" priority="90" />
		<skill name="ROGUE_LOW_BLOW"    modifier="" hotkey="VK_4" priority="80" />
	</skills_rogue>

	<skills_mage>
		<skill name="MAGE_FLAME"              modifier="" hotkey="VK_3" priority="80" />
		<skill name="MAGE_ELEMENTAL_CATALYST" modifier="" hotkey="VK_2" priority="30" inbattle="true" />
	</skills_mage>

	<skills_knight>
		<skill name="KNIGHT_HOLY_STRIKE"  modifier="" hotkey="VK_3" priority="90" />
		<skill name="KNIGHT_HOLY_SHIELD"  modifier="" hotkey="VK_4" priority="80" inbattle="true" hpper="15" />
		<skill name="KNIGHT_HOLY_SEAL"    modifier="" hotkey="VK_5" priority="70" />
		<skill name="KNIGHT_PUNISHMENT"   modifier="" hotkey="VK_2" priority="60" />
	</skills_knight>

	<skills_warden>
		<skill name="WARDEN_CHARGED_CHOP"	modifier="" hotkey="VK_2" priority="90" />
		<skill name="WARDEN_ENERGY_ABSORB"	modifier="" hotkey="VK_3" priority="80" inbattle="true" hpper="25" />
	</skills_warden>

	<skills_druid>
		<skill name="DRUID_RECOVER"        modifier="" hotkey="VK_2" priority="90" hpper="30" />
		<skill name="DRUID_EARTH_ARROW"    modifier="" hotkey="VK_3" priority="80" />
	</skills_druid>

	<onLoad><![CDATA[
		-- 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><![CDATA[
		-- Additional Lua code to execute on death
		-- pauseOnDeath(); -- Stop the script
		-- player:logout();	-- logout
	]]></onDeath>

	<onLeaveCombat><![CDATA[
		-- Additional Lua code to execute after killing an enemy
	]]></onLeaveCombat>

	<onLevelup><![CDATA[
		-- 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><![CDATA[
		-- 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.:
		--if( 15 > player.HP/player.MaxHP*100 ) then
		--    player:cast("PRIEST_SOUL_SOURCE");
		--elseif( 25 > player.HP/player.MaxHP*100 ) then
		--    player:cast("PRIEST_HOLY_AURA");
		--    player:cast("PRIEST_URGENT_HEAL");
		--    player:cast("PRIEST_URGENT_HEAL");
	]]></onSkillCast>

	<onHarvest><![CDATA[
		-- Additional Lua code to execute directly before the actual harvesting takes place.
		-- Note: arg1 contains the object to be harvested.
		-- i.e. arg1.Name will be the name of the node you are about to harvest
		-- If this snippet returns 'false', the node will *not* be harvested.
		-- All other return values result in the player attempting to harvest the node.
		-- Note that returning 'false' here breaks out of harvesting completely;
		-- You will not attempt to harvest other nearby nodes instead.
	]]></onHarvest>

	<onUnstickFailure><![CDATA[
		-- Lua code to execute when MAX_UNSTICK_TRIALS is reached.
	]]></onUnstickFailure>
</profile>

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: Improve code for the elfs daily quest

#86 Post by rock5 » Tue Apr 19, 2011 1:10 am

Those files work fine for me.

So the only thing I can think of is there is something wrong with your game installation or maybe the saved files in your "Documents/Runes of Magic" folder.
  • Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
  • I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
  • How to: copy and paste in micromacro
    ________________________
    Quote:
    • “They say hard work never hurt anybody, but I figure, why take the chance.”
          • Ronald Reagan

Post Reply

Who is online

Users browsing this forum: No registered users and 8 guests