OpenKore / openkore

A free/open source client and automation tool for Ragnarok Online
http://openkore.com
Other
1.28k stars 1.04k forks source link

Error equip_rightHand with homunculus summoned. #1291

Closed Fadreus closed 6 years ago

Fadreus commented 6 years ago

------------------ Bug Report Template ------------------

Summary:

Error printed in attempts to equip_rightHand Cutlus to use block attackSkillSlot Bash when monster attacking Master more than 1 instead of attacking Homunculus.

Affected configuration(s)/ file(s):
Click Here ``` OpenKore version what-will-become-2.1 @ai_seq = clientSuspend eventMacro macro route Network state = 5 Network handler = Network::DirectConnection Revision: ctime:2017_10_16 Loaded plugins: plugins/breakTime/breakTime.pl (breakTime; description: Automatically disconnect and reconnect at certain times of the day) plugins/eventMacro/eventMacro.pl (eventMacro; description: allows usage of eventMacros) plugins/macro/macro.pl (macro; description: allows usage of macros) plugins/macrostability/macroStability.pl (macroStability; description: suspend macros when not ingame) plugins/map/map.pl (map; description: map) plugins/raiseSkill/raiseSkill.pl (raiseSkill; description: automatically raise character skills) plugins/raiseStat/raiseStat.pl (raiseStat; description: automatically raise character stats) plugins/reconnect/reconnect.pl (reconnect; description: v1.0) plugins/xconf/xconf.pl (xConf; description: commands for change items_control, mon_control, pickupitems, priority) Error message: Assertion failed! at E:/ERO/openkore_ready/trunk/src/deps/Carp/Assert.pm line 271 Carp::Assert::assert('') called at src/Skill.pm line 209 Skill::getSP('Skill=HASH(0x6da4a04)', 0) called at src/Misc.pm line 4032 Misc::checkSelfCondition('attackSkillSlot_2') called at src/AI/Slave.pm line 413 AI::Slave::processAttack('AI::Slave::Homunculus=HASH(0x6937bb4)') called at src/AI/Slave.pm line 237 AI::Slave::iterate('AI::Slave::Homunculus=HASH(0x6937bb4)') called at src/AI/Slave/Homunculus.pm line 46 AI::Slave::Homunculus::iterate('AI::Slave::Homunculus=HASH(0x6937bb4)') called at src/AI/SlaveManager.pm line 54 AI::SlaveManager::iterate() called at src/functions.pl line 774 main::mainLoop_initialized() called at src/functions.pl line 75 main::mainLoop() called at src/Interface.pm line 75 Interface::mainLoop('Interface::Console::Win32=HASH(0x41db3cc)') called at openkore.pl line 97 main::__start() called at start.pl line 136 Stack trace: Assertion failed! at E:/ERO/openkore_ready/trunk/src/deps/Carp/Assert.pm line 271 Carp::Assert::assert('') called at src/Skill.pm line 209 Skill::getSP('Skill=HASH(0x6da4a04)', 0) called at src/Misc.pm line 4032 Misc::checkSelfCondition('attackSkillSlot_2') called at src/AI/Slave.pm line 413 AI::Slave::processAttack('AI::Slave::Homunculus=HASH(0x6937bb4)') called at src/AI/Slave.pm line 237 AI::Slave::iterate('AI::Slave::Homunculus=HASH(0x6937bb4)') called at src/AI/Slave/Homunculus.pm line 46 AI::Slave::Homunculus::iterate('AI::Slave::Homunculus=HASH(0x6937bb4)') called at src/AI/SlaveManager.pm line 54 AI::SlaveManager::iterate() called at src/functions.pl line 774 main::mainLoop_initialized() called at src/functions.pl line 75 main::mainLoop() called at src/Interface.pm line 75 Interface::mainLoop('Interface::Console::Win32=HASH(0x41db3cc)') called at openkore.pl line 97 main::__start() called at start.pl line 136 at E:/ERO/openkore_ready/trunk/src/deps/Carp/Assert.pm line 271 Carp::Assert::assert('') called at src/Skill.pm line 209 Skill::getSP('Skill=HASH(0x6da4a04)', 0) called at src/Misc.pm line 4032 Misc::checkSelfCondition('attackSkillSlot_2') called at src/AI/Slave.pm line 413 AI::Slave::processAttack('AI::Slave::Homunculus=HASH(0x6937bb4)') called at src/AI/Slave.pm line 237 AI::Slave::iterate('AI::Slave::Homunculus=HASH(0x6937bb4)') called at src/AI/Slave/Homunculus.pm line 46 AI::Slave::Homunculus::iterate('AI::Slave::Homunculus=HASH(0x6937bb4)') called at src/AI/SlaveManager.pm line 54 AI::SlaveManager::iterate() called at src/functions.pl line 774 main::mainLoop_initialized() called at src/functions.pl line 75 main::mainLoop() called at src/Interface.pm line 75 Interface::mainLoop('Interface::Console::Win32=HASH(0x41db3cc)') called at openkore.pl line 97 main::__start() called at start.pl line 136 ```
Impact:

Forced to exit openkore.

Expected Behavior:

Equip Cutlus when/before using Bash Skill

Actual Behavior:

Forced to exit openkore.

Steps to Reproduce:

Error printed when ever I use this block. Use this block with homunculus to reproduce the error.

attackSkillSlot 5 {
hp >= 70%
sp >= 8
dist 1
lvl 5
equip_rightHand Cutlus
aggressives > 1
disabled 0
}

attackSkillSlot 8013 {
homunculus_sp >= 30
whenStatusInactive Caprice Delay
}

------------------ Feature Request Template ------------------

Summary:

Equip Cutlus to use Skill Bash. Additionally I wish to equip by default Light Epsilon when not attacking but in useSelf_skill doesn't support (or do they?) condition equip to use skills.

Additional Details:

I've tested on other classes and it worked as intended but not with homunculus.

Here is my config.txt ``` # Please Read the Users Manual # The Manual is located at http://wiki.openkore.com/index.php?title=Manual ######## Login options and server-specific options ######## master server username password loginPinCode char # Poseidon Settings (http://wiki.openkore.com/index.php/PoseidonServer) # They must be the same as Query Server config in Poseidon.txt poseidonServer 127.0.0.1 poseidonPort 24390 bindIp forceMapIP # 1 = hook into RO client, 2 = Act as stand-alone proxy, proxy = act as true proxy # http://wiki.openkore.com/index.php/XKore XKore 0 XKore_port 2350 XKore_dll NetRedirect.dll XKore_autoAttachIfOneExe 1 XKore_silent 1 XKore_bypassBotDetection 0 XKore_exeName ragexe.exe # XKore 2 / Proxy configuration XKore_listenIp 127.0.0.1 XKore_listenPort 6901 XKore_publicIp 127.0.0.1 XKore_ID # It is not advised to set secureAdminPassword if you're using Xkore 2 secureAdminPassword 1 adminPassword wregriec callSign commandPrefix ; callSignGM 0 inGameAuth 0 pauseCharServer 0 pauseMapServer 0 ignoreInvalidLogin 0 secureLogin_requestCode # Opening cash shop when connected to map server (recv/ST0) whenInGame_requestCashPoints 0 message_length_max 80 ######## Main configuration ######## alias_heal sp 28 allowedMaps allowedMaps_reaction 0 attackAuto 2 attackAuto_party 1 attackAuto_onlyWhenSafe 0 attackAuto_followTarget 1 attackAuto_inLockOnly 1 attackAuto_notInTown 1 attackDistance 1 attackDistanceAuto 1 attackMaxDistance 1 attackMaxRouteDistance 100 attackMaxRouteTime 3 attackMinPlayerDistance 2 attackMinPortalDistance 4 attackUseWeapon 0 attackNoGiveup 1 attackCanSnipe attackCheckLOS 1 attackLooters 0 attackChangeTarget 1 aggressiveAntiKS 1 autoMoveOnDeath autoMoveOnDeath_x autoMoveOnDeath_y autoMoveOnDeath_map attackEquip_topHead attackEquip_midHead attackEquip_lowHead attackEquip_leftHand attackEquip_rightHand attackEquip_leftAccessory attackEquip_rightAccessory attackEquip_robe attackEquip_armor attackEquip_shoes attackEquip_arrow #You need the breakTime plugin: http://wiki.openkore.com/index.php?title=BreakTime autoBreakTime { startTime stopTime } autoConfChange { minTime varTime lvl joblvl } autoMakeArrows 0 autoRestart 0 autoRestartMin 10800 autoRestartSeed 3600 autoRestartSleep 1 autoSleepMin 900 autoSleepSeed 900 autoResponse 0 autoResponseOnHeal 0 autoSpell autoSpell_safe avoidGM_namePattern avoidGM_near 2 avoidGM_near_inTown 0 avoidGM_talk 0 avoidGM_reconnect 1800 avoidGM_ignoreList avoidList 1 avoidList_inLockOnly 0 avoidList_reconnect 1800 cachePlayerNames 1 cachePlayerNames_duration 900 cachePlayerNames_maxSize 100 clientSight 25 dcPause 0 dcOnDeath 0 dcOnDualLogin 0 dcOnDisconnect 0 dcOnEmptyArrow 0 dcOnMaxReconnections 0 dcOnMute 0 dcOnPM 0 dcOnZeny 0 dcOnStorageFull 0 dcOnPlayer 0 dcOnServerShutDown 0 dcOnServerClose 0 dcOnJobLevel dcOnLevel follow 0 followCheckLOS 0 followTarget followEmotion 1 followEmotion_distance 4 followFaceDirection 0 followDistanceMax 6 followDistanceMin 3 followLostStep 12 followSitAuto 0 followBot 0 followRandom 0 followRandomDistance 4 itemsTakeAuto 0 itemsTakeAuto_party itemsGatherAuto 0 itemsMaxWeight 48 itemsMaxWeight_sellOrStore 50 itemsMaxNum_sellOrStore 99 cartMaxWeight 8000 itemsTakeAuto_new 0 itemsTakeGreed 0 lockMap lockMap_x lockMap_y lockMap_randX lockMap_randY route_escape_reachedNoPortal 1 route_escape_randomWalk 1 route_escape_shout route_avoidWalls 1 route_randomWalk 1 route_randomWalk_inTown 0 route_randomWalk_maxRouteTime 75 route_maxWarpFee route_maxNpcTries 1 route_teleport 0 route_teleport_minDistance 250 route_teleport_maxTries 20 route_teleport_notInMaps route_step 17 route_tryToGuessMissingPortalByDistance 1 runFromTarget runFromTarget_dist 5 saveMap saveMap_warpToBuyOrSell 1 saveMap_warpChatCommand memo1 memo2 memo3 memo4 shopAuto_open 0 shop_random 0 shop_useSkill 1 sitAuto_hp_lower 70 sitAuto_hp_upper 90 sitAuto_sp_lower 30 sitAuto_sp_upper 50 sitAuto_follow 0 sitAuto_over_50 0 sitAuto_idle 1 sitAuto_look 5 sitAuto_look_from_wall sitTensionRelax 0 statsAddAuto 0 statsAddAuto_list statsAddAuto_dontUseBonus 1 statsAdd_over_99 0 skillsAddAuto 0 skillsAddAuto_list tankMode 0 tankModeTarget teleportAuto_hp 20 teleportAuto_sp 20 teleportAuto_idle 0 teleportAuto_portal 0 teleportAuto_search 0 teleportAuto_minAggressives 5 teleportAuto_minAggressivesInLock teleportAuto_onlyWhenSafe 0 teleportAuto_maxDmg 2000 teleportAuto_maxDmgInLock 2000 teleportAuto_deadly 1 teleportAuto_useSkill 1 teleportAuto_useChatCommand teleportAuto_allPlayers 0 teleportAuto_notPlayers teleportAuto_atkCount 0 teleportAuto_atkMiss 10 teleportAuto_unstuck 0 teleportAuto_lostTarget 0 teleportAuto_dropTarget teleportAuto_dropTargetKS 0 teleportAuto_attackedWhenSitting 0 teleportAuto_totalDmg 0 teleportAuto_totalDmgInLock 0 teleportAuto_equip_leftAccessory teleportAuto_equip_rightAccessory teleportAuto_lostHomunculus teleportAuto_useItemForRespawn teleportAuto_item1 teleportAuto_item2 dealAuto 1 dealAuto_names partyAuto 2 partyAutoShare 1 partyAutoShareItem 1 partyAutoShareItemDiv 1 guildAutoDeny 1 verbose 1 showDomain 0 showDomain_NPC parseMsg_presence showDomain_Shop list squelchDomains drop, selfSkill, skill, devotion, effect, exp, parseMsg_statuslook, attackedMiss, attackMonMiss, emotion verboseDomains beepDomains pm, publicchat beepDomains_notInTown pm, publicchat friendlyAID showTime 0 showTimeDomains showTimeDomainsFormat wx_map_maxAutoSize 300 wx_map_monsterSticking 1 wx_map_npcSticking 1 wx_map_playersSticking 1 wx_map_portalSticking 5 wx_map_route wx_npcTalk wx_captcha showAllDamage 0 manualURL http://wiki.openkore.com/index.php?title=Manual forumURL http://forums.openkore.com logChat 1 logPrivateChat 1 logPartyChat 0 logGuildChat 0 logSystemChat 1 logEmoticons logConsole 0 logAppendUsername 1 logAppendServer 0 monsterLog 0 logDead 1 chatTitleOversize 0 shopTitleOversize 0 sleepTime 200000 ignoreAll 1 itemHistory 0 autoTalkCont 1 noAutoSkill 0 portalCompile 1 portalRecord 0 missDamage 0 tankersList repairAuto 0 repairAuto_list status_mapProperty 0 status_mapType 0 removeActorWithDistance monster_filter ######## Mercenary Support ######## mercenary_attackAuto 2 mercenary_attackAuto_party 1 mercenary_attackAuto_notInTown 1 mercenary_attackAuto_onlyWhenSafe 0 mercenary_attackDistance 1.5 mercenary_attackMaxDistance 2.5 mercenary_attackMaxRouteTime 4 mercenary_attackCanSnipe 0 mercenary_attackCheckLOS 0 mercenary_attackNoGiveup 0 mercenary_attackChangeTarget 1 mercenary_followDistanceMax 10 mercenary_followDistanceMin 3 mercenary_route_step 15 mercenary_tankMode 0 mercenary_tankModeTarget mercenary_teleportAuto_hp 10 mercenary_teleportAuto_maxDmg 500 mercenary_teleportAuto_maxDmgInLock 0 mercenary_teleportAuto_deadly 1 mercenary_teleportAuto_unstuck 0 mercenary_teleportAuto_dropTarget 0 mercenary_teleportAuto_dropTargetKS 0 mercenary_teleportAuto_totalDmg 0 mercenary_teleportAuto_totalDmgInLock 0 mercenary_teleportAuto_attackedWhenSitting 0 ######## Homunculus Support ######## homunculus_attackAuto 2 homunculus_attackAuto_party 1 homunculus_attackAuto_notInTown 1 homunculus_attackAuto_onlyWhenSafe 0 homunculus_attackDistance 1.5 homunculus_attackMaxDistance 2.5 homunculus_attackMaxRouteTime 4 homunculus_attackCanSnipe 0 homunculus_attackCheckLOS 0 homunculus_attackNoGiveup 1 homunculus_attackChangeTarget 1 homunculus_followDistanceMax 3 homunculus_followDistanceMin 1 homunculus_route_step 19 homunculus_tankMode 0 homunculus_tankModeTarget homunculus_runFromTarget 0 homunculus_runFromTarget_dist 6 homunculus_StandByAuto 0 homunculus_teleportAuto_hp homunculus_teleportAuto_maxDmg homunculus_teleportAuto_maxDmgInLock 0 homunculus_teleportAuto_deadly homunculus_teleportAuto_unstuck 0 homunculus_teleportAuto_dropTarget 0 homunculus_teleportAuto_dropTargetKS 0 homunculus_teleportAuto_totalDmg 0 homunculus_teleportAuto_totalDmgInLock 0 homunculus_teleportAuto_attackedWhenSitting 0 # Turn on/off homunculus autofeeding homunculus_autoFeed 1 # Feed homunculus when meet the hunger value (homunculus_hunger > homunculus_return) homunculus_hunger 15 # Return homunculus when meet the hunger value homunculus_return 11 # In Wich maps should we allow feeding? (leave empty for any map) homunculus_autoFeedAllowedMaps # Turn on/off pet autofeeding pet_autoFeed 1 # Feed pet when meet the hunger value pet_hunger 25 # Return pet when meet the hunger value pet_return 20 ######## Block options ######## # You can copy & paste any block multiple times. So if you want to # configure two attack skills, just duplicate the attackSkillSlot block. attackSkillSlot { lvl 10 dist 1.5 maxCastTime 0 minCastTime 0 hp sp > 10 homunculus_hp homunculus_sp homunculus_dead onAction whenStatusActive whenStatusInactive whenFollowing spirit amuletType aggressives previousDamage stopWhenHit 0 inLockOnly 0 notInTown 0 timeout 0 disabled 0 monsters notMonsters monstersCount maxAttempts 0 maxUses 0 target_hp target_whenStatusActive target_whenStatusInactive target_deltaHp inInventory isSelfSkill 0 equip_topHead equip_midHead equip_lowHead equip_leftHand equip_rightHand equip_leftAccessory equip_rightAccessory equip_robe equip_armor equip_shoes equip_arrow manualAI 0 } attackSkillSlot 5 { hp >= 50% sp >= 8 dist 1 equip_rightHand +4 Cutlus aggressives > 1 disabled 0 } attackSkillSlot 8013 { homunculus_sp >= 30 whenStatusInactive Caprice Delay } attackSkillSlot 42 { sp > 4 hp < 40% } attackComboSlot { afterSkill waitBeforeUse dist 1.5 isSelfSkill 1 target_hp target_deltaHp monsters notMonsters monstersCount } doCommand { hp sp homunculus_hp homunculus_sp homunculus_dead onAction whenStatusActive whenStatusInactive whenFollowing spirit amuletType aggressives monsters notMonsters monstersCount stopWhenHit 0 inLockOnly 0 notWhileSitting 0 notInTown 0 timeout disabled 0 inInventory inCart inMap manualAI 0 } doCommand ss 247 { timeout 600 sp > 50 whenStatusInactive EFST_GN_CARTBOOST } doCommand ss 243 { timeout 60 sp > 10 whenStatusInactive EFST_GN_CARTBOOST } useSelf_skill 247 { sp > 50 homunculus_dead 1 timeout 5 aggressives < 3 } useSelf_skill 243 { lvl 5 homunculus_dead 1 target_dead 1 timeout 5 } useSelf_skill 28 { sp > 10 hp < 90% } useSelf_skill { lvl 10 maxCastTime 0 minCastTime 0 hp sp homunculus_hp homunculus_sp homunculus_dead onAction whenStatusActive whenStatusInactive whenFollowing spirit amuletType aggressives monsters notMonsters monstersCount stopWhenHit 0 inLockOnly 0 notWhileSitting 0 notInTown 0 timeout 0 disabled 0 inInventory manualAI 0 } useSelf_skill 231 { lvl 4 hp < 30% sp > 1 } useSelf_skill 2478 { lvl 5 sp > 100 whenStatusInactive EFST_GN_CARTBOOST notWhileSitting 1 timeout 10 } useSelf_skill_smartHeal 1 partySkillDistance 0..8 partySkill { lvl 10 dist 3 maxCastTime 0 minCastTime 0 hp sp homunculus_hp homunculus_sp homunculus_dead onAction whenStatusActive whenStatusInactive whenFollowing spirit amuletType aggressives monsters notMonsters monstersCount stopWhenHit 0 inLockOnly 0 notWhileSitting 0 notInTown 0 timeout 0 disabled 0 manualAI 0 target target_hp target_isJob target_isNotJob target_whenStatusActive target_whenStatusInactive target_aggressives target_monsters target_timeout 0 target_deltaHp target_dead 0 inInventory isSelfSkill 0 } monsterSkill { target maxUses # Skill Use Conditions, including isSelfSkill # Self Conditions # Target Monster Conditions } monsterSkill 5 { sp >= 8 target disabled 0 aggressives > 1 } autoSwitch_default_rightHand autoSwitch_default_leftHand autoSwitch_default_arrow # NOTE: In the case of two handed weapons, or no Shield, # duplicate the weapon name for 'rightHand' # To attack with bare hands, specify "[NONE]" (without the quotes) for rightHand autoSwitch { rightHand leftHand arrow distance useWeapon } equipAuto { topHead midHead lowHead leftHand rightHand leftAccessor rightAccessory robe armor shoes arrow monsters notMonsters monstersCount weight 0 whileSitting 0 hp sp homunculus_hp homunculus_sp homunculus_dead onAction whenStatusActive whenStatusInactive whenFollowing spirit amuletType aggressives stopWhenHit 0 inLockOnly 0 notWhileSitting 0 notInTown 0 timeout 0 disabled 0 inInventory manualAI 0 } equipAuto { leftHand +4 Light Epsilon rightHand +4 Light Epsilon hp < 70% } equipAuto { rightHand +4 Cutlus hp >= 90% sp > 30% } useSelf_item { hp sp homunculus_hp homunculus_sp homunculus_dead onAction whenStatusActive whenStatusInactive whenFollowing spirit amuletType aggressives monsters notMonsters monstersCount stopWhenHit 0 inLockOnly 0 notWhileSitting 0 notInTown 0 timeout 0 disabled 0 inInventory manualAI 0 } ######## Autostorage/autosell ######## buyAuto { npc standpoint distance 5 price minAmount 2 maxAmount 3 batchSize disabled 0 } sellAuto 0 sellAuto_npc sellAuto_standpoint sellAuto_distance 10 sellAuto_npc_steps s storageAuto 0 storageAuto_npc storageAuto_distance 13 storageAuto_npc_type 3 storageAuto_npc_steps c r1 c r0 n storageAuto_password storageEncryptKey storageAuto_keepOpen 0 storageAuto_useChatCommand storageAuto_notAfterDeath 1 relogAfterStorage 0 minStorageZeny 500 npcTimeResponse npcWrongStepsMethod 0 getAuto { minAmount maxAmount passive } ######## Debugging options; only useful for developers ######## debug 0 debugPacket_unparsed 0 debugPacket_received 0 debugPacket_ro_sent 0 debugPacket_sent 0 debugPacket_exclude debugPacket_include debugPacket_include_dumpMethod debugDomains logToFile_Debug logToFile_Errors logToFile_Messages logToFile_Warnings history_max 50 macro_orphans reregister_safe eventMacro_orphans reregister_safe macroStability_disable macroStability_disableChecks eventMacro_orphans reregister_safe eventMacro_CheckOnAI auto ```
Fadreus commented 6 years ago

Upon realizing if it was mistake on my part, I've done several more tests. It worked as intended with other classes but not with homunculus summoned. Is it bugged or wasn't suppose to be used while summoning homunculus?