Undefined Player.Class1
Posted: Wed Sep 02, 2015 1:10 pm
ok, so I've seen this a few times as well and cannot understand why. I seem to get it when my script loads a new character, but it doesn't happen with all characters.
Here's the portion of my script that calls the new character:
Here's the error is hows me in the MM window:
Here's the section of settings.lua that it's referring to (the only spot where the word "undefined" appears in the file):
And lastly, Here's my profile for that character:
Looking at it, I'm wondering if this part in the onload section of the profile might be causing the problem:
But, then again, I only see this problem when the MM windows is loading up the new character. After the error, I can manually start the same waypoint file and it runs fine.
Any ideas?
Update:
Another of my characters, while loading at the same part of my waypoint, received this error in the MM window:
The character loaded up fine in game, but MM had a problem reading some information from memory. I think something seems to be going faster than the reading of memory or something. Not sure though. Maybe it has something to do with the CPU speed as in the conversation in the other hot topic thread. I don't know.
Here's the portion of my script that calls the new character:
Code: Select all
SetCharList(CharList)
SetRestartClientSettings(1, "rom4u")
LoginNextChar()
setWindowPos(getWin(),1300,10,500,350)
loadProfile()
loadPaths(__WPL.FileName);
Here's the section of settings.lua that it's referring to (the only spot where the word "undefined" appears in the file):
Code: Select all
if( settings.profile.options.COMBAT_TYPE ~= "ranged" and
settings.profile.options.COMBAT_TYPE ~= "melee" ) then
if( player.Class1 == CLASS_WARRIOR or
player.Class1 == CLASS_ROGUE or
player.Class1 == CLASS_WARDEN or
player.Class1 == CLASS_KNIGHT or
player.Class1 == CLASS_CHAMPION ) then
settings.profile.options.COMBAT_TYPE = "melee";
elseif(
player.Class1 == CLASS_PRIEST or
player.Class1 == CLASS_SCOUT or
player.Class1 == CLASS_DRUID or
player.Class1 == CLASS_MAGE or
player.Class1 == CLASS_WARLOCK ) then
settings.profile.options.COMBAT_TYPE = "ranged";
else
error("undefined player.Class1 in settings.lua", 0);
end;
end
Code: Select all
<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="50" />
<option name="USE_HP_POTION" value="best" /> <!-- potion select strategy: best|minstack -->
<option name="USE_MANA_POTION" value="best" /> <!-- potion select strategy: best|minstack -->
<option name="USE_PHIRIUS_POTION" value="false" /> <!-- false | true if you want to use the Phirus Potions -->
<option name="PHIRIUS_MP_LOW" value="40" />
<option name="PHIRIUS_HP_LOW" value="40" />
<!-- 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" /> <!-- set to "0" if not required to buy -->
<option name="ARROW_QUIVER" value="2" /> <!-- set to "0" if not required to buy -->
<option name="THROWN_BAG" value="2" /> <!-- set to "0" if not required to buy -->
<option name="POISON" value="75" /> <!-- set to "0" if not required to buy -->
<!-- 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="180" />
<option name="MAX_FIGHT_TIME" value="25" /> <!-- Max time without damage before break -->
<option name="DOT_PERCENT" value="90" />
<option name="ANTI_KS" value="true" />
<option name="MAX_TARGET_DIST" value="200" />
<!-- Attack monsters 3 levels above or 10 below your level -->
<option name="TARGET_LEVELDIF_ABOVE" value="3" />
<option name="TARGET_LEVELDIF_BELOW" value="75" />
<!-- 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="5" />
<option name="WAYPOINT_PASS" value="0" />
<option name="QUICK_TURN" value="true" />
<!-- Loot settings -->
<option name="LOOT" value="true" />
<option name="LOOT_ALL" value="true" /> <!-- Loot all nearby dead mobs after combat -->
<option name="LOOT_IN_COMBAT" value="false" />
<option name="LOOT_DISTANCE" value="225" />
<option name="LOOT_PAUSE_AFTER" value="0" /> <!-- probability in % for a short rest -->
<option name="LOOT_AGAIN" value="0" />
<!-- Auto selling options when used with player:merchant -->
<option name="INV_AUTOSELL_ENABLE" value="false" /> <!-- true | false -->
<option name="INV_AUTOSELL_FROMSLOT" value="1" /> <!-- 1 = bag 1 slot 1 -->
<option name="INV_AUTOSELL_TOSLOT" value="60" /> <!-- 30 = last slot bag 1 -->
<option name="INV_AUTOSELL_QUALITY" value="white,green" /> <!-- white,green,blue,purple -->
<option name="INV_AUTOSELL_TYPES" value="Weapons,Armor" />
<!-- 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="true" />
<option name="CLOSE_WHEN_STUCK" value="true" />
<option name="RES_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" /> -->
<!-- Healing options -->
<!-- <option name="HEALER_FIGHT" value="true" /> --> <!-- For party bot if you want healer to also fight -->
<!-- pvp -->
<!--option name="PVP" value="true" /> --> <!-- To enable PVP, with this set to true it will auto attack any players with red names -->
<!-- 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="100652" /> -- Golo
<friend name="" />
<friend name="" />
<friend name="" />
</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>
<!-- 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 -->
<!-- to use a specific key instead of MACRO then use hotkey="VK_1" this example is for hotkey 1 -->
<skills_druid>
<skill name="DRUID_RECOVER" hotkey="MACRO" priority="90" hpper="30" />
<skill name="DRUID_SAVAGE_BLESSING" hotkey="MACRO" priority="80" />
<skill name="DRUID_MOTHER_EARTHS_PROTECTION" hotkey="MACRO" priority="100" maxhpper="20" />
<skill name="DRUID_EARTH_ARROW" hotkey="MACRO" priority="80" />
<skill name="DRUID_BRIAR_ENTWINEMENT" hotkey="MACRO" priority="80" />
<skill name="DRUID_RESTORE_LIFE" hotkey="MACRO" priority="90" hpper="75" />
<skill name="DRUID_BLOSSOMING_LIFE" hotkey="MACRO" priority="90" hpper="50" />
<skill name="DRUID_WEAKENING_SEED" hotkey="MACRO" priority="75" />
<skill name="DRUID_CONCENTRATION_PRAYER" hotkey="MACRO" priority="80" />
<skill name="DRUID_ROCK_PROTECTION" hotkey="MACRO" priority="100" maxhpper="25" />
<skill name="DRUID_MOTHER_NATURES_WRATH" hotkey="MACRO" priority="100" />
<skill name="DRUID_MYSTERIOUS_GRACE" hotkey="MACRO" priority="100" />
</skills_druid>
<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);
inventory:update();
if(player.Level == 1) then
openGiftbags1To10(player.Level);
else
levelupSkills1To10("loadonly");
end;
if(player.Class1 == CLASS_SCOUT ) then
changeProfileOption("ARROW_QUIVER", 2);
end;
</onLoad>
<onDeath>
-- Additional Lua code to execute on death
-- pauseOnDeath(); -- Stop the script
</onDeath>
<onLeaveCombat>
-- Additional Lua code to execute after a target is finished
-- if(player.Level == 10) then
-- __WPL:setForcedWaypointType("TRAVEL")
-- end;
</onLeaveCombat>
<onLevelup>
-- thats a demo for opening the gift bags from Lvl 1-10
-- and levelup the skills for a new character (mage or priest recommended)
-- you can delete that lines if you don't want to use that
-- single skill would be: sendMacro("SetSpellPoint(4,2);");
-- or levelupSkill(_skillname, _times)
levelupSkills1To10();
-- open giftbag and equip content
openGiftbags1To10(player.Level);
</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.
</onSkillCast>
</profile>
Code: Select all
if(player.Class1 == CLASS_SCOUT ) then
changeProfileOption("ARROW_QUIVER", 2);
end;
Any ideas?
Update:
Another of my characters, while loading at the same part of my waypoint, received this error in the MM window:
The character loaded up fine in game, but MM had a problem reading some information from memory. I think something seems to be going faster than the reading of memory or something. Not sure though. Maybe it has something to do with the CPU speed as in the conversation in the other hot topic thread. I don't know.