================== ### 1.6.0 ================== ** INCOMPATIBLE CHANGES **: - Fixed spelling of two monsters. Bon Gun is now Bongun. Requim is now Requiem. Bug fixes: - Fixed a memory problem in the pathfinding code which makes Kore crash. - Fix bulk selling bug which caused disconnect. - Correctly set names for VVVS weapons. - Correct strip language code in public messages. - Chat messages were saying "chatMsgUser" instead of the person's name. - target_timeout should work with skills like Kyrie Eleison now. (The problem was it says " uses Kyrie Eleison on self", instead of "You use Kyrie Eleison on ". It now recognizes the former when setting timeouts) - The Wx interface can now correctly launch a browser on Linux. - Fix display of map name in config.txt chat entries. - Restore advanced 2-2 class support from version 1.5.0. - Sell all items at once instead of just 8 at a time. - skillsAddAuto was waiting a long time to add the next skill point. - Auto-drop will look at full item name now. New features: - Don't use teleportAuto_minAggressives if the more specific teleportAuto_minAggressivesInLock is specified. - Don't use teleportAuto_maxDmg if the more specific teleportAuto_maxDmgInLock is specified. - New 'guild request ' command to request someone to join a guild. - "Press ENTER to exit this program." prompt removed from Linux version. - New 'guild leave' command (needs testing, but the server I play is down) added. - Nearly complete oRO and pRO support. Thanks to jojobaoil and duckieeex! - Display a warning if Kore is attempting to use a skill it doesn't have. New config options: - showDomain (flag) If set to 1 will display domains along with messages. - serverType (number) Defines what kind of server you're playing on. 0 = normal server 1 = oRO (Oceania) 2 = pRO (Philippines) - allowedMaps (list of maps) Exit or respawn of Kore is on a map other than the ones specified in (list of maps). This is useful on pRO where GMs warp you to secret rooms. - allowedMaps_reaction (number) 0 = respawn 1 = exit Credits: - jsteng: VVVS weapon name bugfix. - arachno: Language code bugfix, chat.txt map name bugfix. - Duckieeex, Mananabas, gradeA: Help with pRO support. ================== ### 1.5.2 (beta) ================== ** INCOMPATIBLE CHANGES **: - For users of teleportAuto_search, in order to have it work you must now: * Set teleportAuto_idle to 1 * Set ai_teleport_idle in timeouts.txt to the same as ai_teleport_search * Delete ai_teleport_search in timeouts.txt (it is obsolete) * Set route_randomWalk to 0 - If you have been using "maxUses" to limit the number of times you attempt to cast a skill, you may have to change it to "maxAttempts" instead. - Kobolds have been renamed from Kobold # to Kobold-#. Many people don't know about using tabs in mon_control.txt, and would probably have problems figuring out what to do for Kobolds. Example: Kobold 1 is now Kobold-1 Bug fixes: - Correctly detect pets. - Fix all kinds of troubles regarding sitting and standing. - Set maxDistance = distance (instead of defaulting to 30) in attackSkillSlot. - The 'conf' chat command now works. - partyAggressives now counts monsters your party attacked - Fixed some cases of ksPlayers not working - When following master around a corner, fallback to routing algorithm instead of trying to walk through the corner - Don't increment maxUses counter for an attackSkillSlot until the skill is actually used (internal note: this counter is indexed using the monster ID and the skill ID, so if you have more than one attackSkillSlot or monsterSkill block that uses the same skill, they will unexpectedly share the same maxUses counter) - Fix reference to undefined variable $skillID in ai_skillUse2() - Make _stopWhenHit condition not count party members, and stop counting a monster as aggressive if it hit you in the past, but then attacked someone else - "Total Damage" display in 's' command now includes damage from skills - "exp reset" command now resets damage statistics in 's' command - Portal recording has been fixed. - Fix teleport using clip. - Portal recording has been fixed more. - Moved some messages to "teleport" domain. - Show weapon name instead of ID in the pl # commands. - shop_random has been readded. - Win32 console interface: fixed a crash regarding text input. - "aggressives 0" and "partyAggressives 0" should work now. - Fix bugged teleportAuto_onlyWhenSafe. New features: - Mask password input display '*' instead of your real password (Only on linux console) - If old files (from before the CVS cleanup) are found, warn the user and bail out. Too many people are reporting "bugs" that are a result of conflicts with old files. - More avoidGM modes. See the news avoid the new avoidGM_near config option. - The autoresponse system is now back, and improved. The chat_resp.txt format has changed. Kore will also not respond to people who are repeating themselves. - teleportAuto_search will now prevent attackAuto from attacking monsters in the event that no monsters you are searching for exist onscreen. - chat.txt uses one line per message, allowing grepping. - skillsAddAuto will now print a message when it auto-adds a skill. - Display source and destination coordinates in "Recorded new portal" message. - route_teleport is now a normal message instead of a debug message (something that made my party bot suddenly teleport away from me should not be silent). - "Failed to take " message now shows more information. - If a monster's name in monsters.txt is different from what the server sends, the name in monsters.txt prevails. (Lets us distinguish between monsters that the server gives the same name to, but are different) - WX Advance Settings now support proxy for download manual. You have to add lines 'webproxy' and 'webproxy_port' in config.txt to enable proxy. - storageAuto will now check if you have the ability to open storage. - Bulk selling has finally been implemented! Kore will always auto-sell this way from now on, no need to set any config options. - Reset monster aggression when it changes to another type of monster. New config options: - ksPlayers is a comma-seperated lists of player names that should be treated as if they were in your party for the purpose of KS checks. - beepDomains contains a list of message domains (see Log.pm) for which Kore will beep. - beepDomains_notInTown contains a list of message domains that are exempted from beepDomains if you are in a town. - beepOnChat and beepOnPM were removed. Use this instead: beepDomains publicchat,emotion,pm - New selfCondition _whenPermitSkill _whenNotPermitSkill for use in auto-skill usage blocks; they are true/false respectively when you have been granted use of that temporary skill. - New condition _smartEncore for useSelfSkill. When 1, it will cast the Encore skill instead of this skill if Encore would cause this skill to be cast (saves SP for bards and dancers). - avoidGM_near now supports different modes: 0 - disabled (do not avoid GM) 1 - teleport & disconnect 2 - disconnect 3 - teleport 4 - respawn - New 'previousDamage (range)' condition for attackSkillSlot. Use this skill only when your damage to the monster is between the specified range. - teleportAuto_maxDmgInLock (number) Similar to teleportAuto_maxDmg, but only has effect when in lockMap. - teleportAuto_minAggressivesInLock (number) Similar to teleportAuto_minAggressives, but only has effect when in lockMap. - portalRecord: 0 - don't automatically record portals 1 - record portals you walk through 2 - record the return portal too (by guessing) - webproxy webproxy_port To enable and specify whether WX will use this proxy for downloading the manual. - sellAuto_standpoint buyAuto { standpoint } Bots will use this location as a standpoint instead of anywhere near NPC itself. Internal: - Move a "pm" message into "pm/sent" domain so that "beepOnDomains pm" won't beep on your own PMs. - Add a third argument $obj to objectRemoved() function (just like objectAdded() has), and moved the objectRemoved() calls to just before the object was deleted so that $obj still exists when it is called. - %mon_control added to Globals.pm. - The Wx map viewer's xpmmake() has been rewritten in C++ for speed. It is now more than 100 times faster. - makeDistMap() has also been written in C++ and is now more than 100 times faster. - New "refine" message domain. Credits: - jsteng: Pet detection fix. - mondlicht: misc bug fixes. - denni: previousDamage condition, teleportAuto_maxDmgInLock, teleportAuto_minAggressivesInLock. - jojobail: some work on oRO support, storageAuto ability check, some bug fixes. - asuwannarat: Niflmheim portals. - arachno: shop_random, missing euRO item. ================== ### 1.5.1 (beta) ================== Bug fixes: - Fix "undefined value as HASH" bug in the Wx item list control. - Reset earned money when openshop. - Fix crash when using "move" and "date" commands via PM/chat. - partySkill target_timeouts are now saved when Kore uses the skill on the person, not when it tries to use it. - The day parameter for autoBreakTime is no longer case sensitive. - Fix a routing problem which causes Kore to walk back and forth. - Various attackComboSlot bug fixes. - "You are in Stunned state" message was verbosity 2 instead of 1. - 'autostorage' command will now work even if storageAuto is set to 0. - Sometimes Kore would stop auto-storing items covered by the 'all' setting in items_control.txt, necessitating a reload. - Zeny earned is reset when you use "exp reset". - "Inventory Item Removed" message was not being displayed when you drop (instead of fire) arrows. - Your shop title and chatroom title will not longer than 36 characters. - Kore was allowing more than 10 items to be added to the deal (bug #31) if you were adding more than one of the same type of equipment. The server would destroy these excess items! This is now fixed, except when you type a lot of "deal add" commands faster than the server responds. - 'autosell' command will now work even if sellAuto is set to 0. - Don't trigger sellAuto after storageAuto if sellAuto is 0. - Set $char->{spirits} to 0 upon changing map servers. - Fix teleporting for characters that have Teleport level 0. - $monsters{$targetID}{skillUses}{$skill->handle}++ line was auto-vivifying $monsters{$targetID}, making players getting incorrectly counted as monsters and causing various bugs such as ghost player images, and itemsTakeAuto_party not working. - Do not automatically add stats over 99 base stat. - Detect negative damage correctly. (unpack 'S1' => 's1') - 's' command correctly displays Status Points >= 1000 now. - Don't trigger autosit while already auto-sitting. - Fix maxDistance. - Don't use runFromTarget_dist in attackCheckLOS when !runFromTarget. - Don't use Arrow Crafting skill when !autoMakeArrows. New features: - statsAddAuto will now print a message when it increases a stat. - Plugins Commands now work (unload, unload all, load, load all). - More infomation for merchant shop ('al' command). - Support for private RO server (which has only one real IP). To use this feature you must put the line 'private 1' in tables/servers.txt. - config.txt now supports multi-line comments, like C/C++. /* indicates the beginning of a comment, and */ indicates the end. - AI sequence will now be cleared when switching characters due to autoConfChange. - items_control.txt can now have an 'all' option, just like pickupitems.txt. Example: # Store everything but nippers; keep nippers in inventory nipper 0 0 0 all 0 1 0 - teleportAuto_[hp|sp|minAggressives] will now print a message when it is triggered. - 'drop' command now works when AI is off, if you are only dropping one item. - 'aiv' command will now indicate whether or not AI is on. - "You [successfully refined/failed to refine] a weapon!" message implemented. (packet switch 018F) - "storage [add|get]" commands now support item names, e.g. "storage get +5 Sword Mace [Andre]" Currently, item names containing commas may not work properly. - "version" command tells you what version of Kore you are running. - Show distance of player when public chat and add more log message of public chat. The format is like this. [Date Time][C] [Mapname BotsPosition] [TargetPosition] [dist=DistanceFromPlayer] ChatName : ChatMessage - Monster weights. - autoTalkCont will print a message when it is triggered. - Prevent getting skill/chat muted when playing in X-Kore mode. - "exp reset" command now prints a confirmation message. - New "monsterSkill" directive; works like "partySkill", and will target all monsters that you are engaging/can engage. Useful for fighting multiple opponents at once, e.g. acolyte can offensive-bless Khalitzburg even if it's not your current target, or knight can provoke all Sohees and then Brandish Spear them. - statAddAuto_list is now case-insensitive. - Recognize "Unknown error 15" ("You have been forced to disconnect by a GM"). - 'conf' command will now display what the old value was. - "Received Possible Identify List" message now tells you how many items are in the list. - Automatically create arrows with Arrow Craft. You can control it by editing control/arrowcraft.txt. In that file, put in the items that you need for creating arrows. For example: Lantern 1 Tooth of Bat 1 Red Blood 1 Garlet 1 - Automatically raise skill levels. - All teleportAuto code will now print a message saying why it teleported. New config options: - beepOnPM, beepOnChat if set to 1 will generate a beep when you hear a PM/public chat message. - The attackSkillSlot and attackComboSlot blocks now have an extra option: isSelfSkill (flag) This specifies whether the combo skill is used on yourself. - _defendMonsters consition, e.g.: partySkill Pneuma { lvl 1 target_defendMonsters Raydric Archer } will only cast this skill if a Raydric Archer's last attack hit the person. - verboseDomains is the opposite of squelchDomains. - missDamage; any damage you do <= this amount will be counted as a miss. (e.g. for monks who have Spirit Spheres) - teleportAuto_useSP if set to 2 will only use SP when other players are present. - EXPERIMENTAL _misses and _totalMisses conditions, e.g. to switch elemental weapons using equipAuto when you are missing a monster that changed elements. - shopTitleOversize (flag) chatTitleOversize (flag) if set to 1 will enable shop title or chatroom title length longer than 36 characters. - pauseMapServer (seconds) Pause for (seconds) before connect to map server (Sometime server slower than bots). - autoBreakTime now supports the 'all' time, which makes it take a break every day in the week. - statsAddAuto_dontUseBonus (flag) If set to 1 then statsAddAuto will not factor in the stat bonuses at all. - teleportAuto_attackedWhenSitting (flag) Teleport when a monster attacked you while you're auto-sitting. This is useful if you set mon_control.txt to completely ignore the attacks of certain monsters, but you only want to teleport when they hit you while you're sitting. - skillsAddAuto (flag) skillsAddAuto_list (list of skills and levels, seperated by comma) Automatically raise skill levels. Similar to statsAddAuto, but works on skills. Example: skillsAddAuto 1 skillsAddAuto_list Basic Skill 9, Increase HP Recovery 10, Sword Mastery 10 New timeouts.txt options: - ai_teleport 1 Specifies the timeout for using Fly Wing when teleporting. This prevents Kore from using tons of Fly Wings when trying to teleport. New commands: - ihist Display last few entries of the item log. - move [Portal Number] To move into portal if portals exist. Internal: - $interface->beep() function for cross-platform beep support. - Kore will exit if a plugin failed to load. - Kore will exit if a configuration file failed to load. - checkMonsterCondition() now takes a monster hash instead of monster ID. (Perhaps other similar functions should be converted too) - inInventory($item, $quantity = 1) returns the index of the item if you have at least $quantity of it, or undef otherwise. - inventoryItemRemoved($index, $amount) function (packet 00AF is not the only way inventory items can be removed). - New module Match.pm contains functions for matching input typed by the player with an in-game entity (e.g. players, monsters, items). - Better support for advanced 2-2 classes. - Guild member job ID format is now the same as char job ID format. - IPC protocol's numbers are now in big endian format. - is_casting plugin hook. - $monsters{$ID}{ID} is now set to $ID, so that %monsters objects contain complete information about themselves. - New ai_skillUse2() function is a wrapper to ai_skillUse() that (1) uses "objects" instead of identifiers, and (2) automatically resolves (x,y) coordinates for area-targetted skills. - Move some messages from "route" to "route_teleport" domain. - Comment out stopAttack() to try to fix "bot attacks slowly when buff ran out" bug. - attackMinPortalDistance's minimum value has been lowered to 1. Credits: - asuwannarat, as2765324: tRO server details. - MindChild: support for the 'all' option in items_control.txt, support for the --storage argument, autoBreakTime 'all', auto-arrow craft. - jabskeeterbug: item history command. - jsteng: some routing bug fixes. - ZetaAlpha: advanced 2-2 class support fixes, guild member ID fixes. - blacklady: Monster weights, autobuy/sell/storage optimizations, pet taming packets support. - isieo: Mute prevention. - denni: Teleport if attacked while sitting. - brianhj: skillsAddAuto ================== ### 1.5.0 (beta) ================== A new beta version, 1.5.0, has finally been released. A lot of stuff has changed, and your old configuration files may not work, so please read this document thoroughly. But the easiest way is to delete your configuration files and start from scratch using the new default configuration files. Remember: this is a BETA version. It may not be stable. Special thanks to the following people; Kore would not have been possible without them: - Joseph: -1 and 2 attack-auto support in mon_control.txt, avoidList_inLockOnly, auto cart get, misc other things - aputs: Support for the _monsters option in useSelf_skill, useSelf_item and partySkill. - obyarou: Priority attack support for non-aggressive monsters, shop timeout in X-Kore bugfix (bug #49), sitAuto_idle vs shopAuto_open conflict fix (bug #50), other misc bugfixes. - fov: writeDataFile*() tweaks, lockMap and randomWalk tweaks, partySkills for certain jobs - polokus: idRO Amatsu/Kunlun support - Ven`Tatsu: walkable water bugfix (bug #21) - sparshong: character creation/deletion packet code. - jsteng, littlewens: mute packet support, chat room list clear bugfix. - anoxemian: (partial?) kRO/PK server support. - doenet: improved mon_control.txt, randomWalk and lockMap fixes/improvements. - BotMan: server details for pRO. - anu: add storage opening timeout, teleportAuto_dropTarget - juifeng: NPC talk timeout fix when using "d#" talk code - isieo: attackComboSlot bugfix - brianhj: auto stat-add ** INCOMPATIBLE CHANGES **: - Tools.dll is obsolete! Delete it! - The skill numbers listed in 'skills' have changed! They are now stable, so for example 'Heal' will always be skill #28 no matter what character you are playing, even if you equip accessories that grant skills. If you previously made aliases for manually triggering skills, you will have to edit them to use the new skill numbers. - All server-specific information is now stored in servers.txt. The master_* config options are now obsolete. New features: - HUGE performance gains in portal compilation. It's now 70% faster compared to 1.4.x. - You can now configure Kore to never attack certain monsters, even when they attack you. In mon_control.txt, set the flag to -1. Example: Matyr -1 0 0 - useSelfSkill, useSelfItem and partySkill now also support the _monsters config option, just like attackSkillSlot. This example uses Pneuma only when Raydric Archer attacks: useSelf_skill Pneuma { monsters Raydric Archer } - Priority attacks for non-aggressive monsters are now supported. - You can set Kore to avoid/prefer walking through certain maps (see control/routeweights.txt for configuration). - Support for advanced 2-2 skills. - If you are granted use of a temporary skill (e.g. Yggdrasil Leaf, Abracadabra), you can use the sl/sm/sp/ss commands to cast it using the number shown in the "Permitted to use" message. Example: > ss 290 Permitted to use Defender (257), level 5 You use Abracadabra on yourself: Lv 10 > ss 257 You use Defender on yourself: Lv 5 - 'monster', 'monocell', 'death' and 'mvp' commands have been removed. If you actually use these, set these aliases in your config.txt: alias_monster ss 293 alias_monocell sm 293 alias_death sp 295 alias_mvp sm 292 - If 'sp' command is called without a player target, it will target yourself. Useful for e.g. 'alias_heal sp 28'. - 'Item Appeared' message and 'il' command now display the item's coordinates. - The Linux version no longer depends on sys/ioctl.ph. This means the dynamic interface (support for left/right arrow keys, etc.) will work out-of-the-box on many systems now. - Support for creation and deletion of characters. - Weapon upgrades are now detected. - Newbie zones are now correctly supported. - Delay of attacks is now displayed. 200 - Delay indicates the ASPD. - Support for partySkills on certain job classes. - kRO/PK servers are now (partially?) supported. In config.txt, set pkServer to 1. - TAB completion in Wx and Linux interface!!! - Input history support in Linux interface. - Spells being cast now show how long they take. - Combo skill support. - While walking, Kore can teleport until it's near the destination. - New command "spells" will display what area effects are currently active, e.g. Pneuma, Warp Portal - Area effect spell appeared/disappeared message added, domain skill, debug level 2 - When displaying exp gained, also display % of base/job gained - New talk sequence code: d# - send # to the NPC (useful for buying forging items) If you wanted to buy 100 mini furnaces for example: c r1 c r0 c d100 - Auto-detect saveMap when you cast Teleport level 2. (If saveMap is set incorrectly, you'll have to type 'respawn' twice; once to get it to auto-detect the saveMap, and then it'll work the second time.) - parseMsg_statuslook verbose 1 displays status effects on you; verbose 2 displays status effects on others. - "vl" (vender list) command now displays coordinates. - Automatic disconnection during specified times of the day. - If storage opening fails the first time for some reason, Kore will try again. - The bot will now look at NPCs when it is talking to them, like a real player. - When you issue a "move" command, this will clear previous move actions. - When the amount of zeny you have changes, you will be told. - Support for specifying hair color and hair style at character creation. - Improvements in the Wx interface: advanced configuration editor, info bar, ability to send PMs. - Automatically raise stats. mon_control.txt: - mon_control.txt has gained more features. The new syntax is: (monster name) (attack) (teleport) (search) (skillcancel) (lv) (joblv) (hp) (sp) - (attack-auto): You can now mark a monster as "always aggressive". This means that, if a certain monster is on screen, Kore will always attack it, even when Kore is sitting and the monster isn't attacking you. In mon_control.txt, set the (attack_auto) flag to 2. Example: Skeleton Soldier 2 0 0 0 - (level): You can configure Kore to only attack a monster, if your base level is high enough. Example: Sohee 1 0 0 50 Only attack Sohee if your are lv 50 or higher. items_control.txt: - items_control.txt now has ability to automatically get items from cart The new syntax is: (item name) (minimum in inventory) (autostore) (autosell) [put in cart] [get from cart] So to automatically keep 10 Meat in inventory from cart: Meat 10 0 0 0 1 New commands: - guild join (flag) Accept or deny a guild join request. - pl (number) Show detailed information about a player. - switchconf (file) Switch to another configuration file. New config options: - attackMaxDistance (number) You should set it to 2.5 - useSelf_skill, partySkill and useSelf_item now also support the 'monsters' and 'notMonsters' options. - New partySkill options: * target_aggressives Only activate partySkill if a certain monster attacks a party member. * target_isJob * target_isNotJob Only activate partySkill for certain job classes - attackComboSlot { ...everything that attackSkillSlot supports is also supported here... afterSkill (skill name) waitBeforeUse (number of seconds) } Use a certain attack skill, after another attack skill was last used. - avoidList_inLockOnly (flag) Set to 1, if you want to avoid people on your avoid list when they are on screen, but only when you are in lockMap. - pkServer (flag) To to 1 if you're playing kRO or on a PK server. - dcOnMute (flag) Disconnect when you have been muted by a GM. - attackMinPlayerDistance (number) Only auto-attack monsters that are at least (number) blocks away from other players. (number) is at least 3; if you enter a lower value, Kore will treat it as 3. - teleportAuto_atkMiss (number) Teleport if you've missed a monster more than (number) times in a row. This is useful if you're trying to attack a monster with the wrong elemental weapon, for example. - route_teleport (flag) route_teleport_minDistance (number) route_teleport_maxTries (number) While walking to other maps, Kore will teleport until it's near a portal, if route_teleport is enabled. It will keep teleporting until it's at least route_teleport_minDistance steps away from the portal. It will attempt to teleport at most route_teleport_maxTries times, before falling back to walking. It's recommended that you set a value between 100 or 200 for route_teleport_minDistance. - New conditions _whenGround and _whenNotGround can e.g. cast a skill only if certain conditions are met. For example: useSelf_skill Pneuma { lvl 1 monsters Raydric Archer whenNotGround Pneuma } will use the Pneuma skill if you are fighting Raydric Archer, and there is not already a Pneuma affecting you. - New condition _whenIdle for use only when the bot is doing nothing - Automatic disconnection during certain times of the day. Example: autoBreakTime Sun { startTime 21:29 stopTime 1:08 } will disconnect at 9:29 P.M. on Sunday and resume botting at 1:08 A.M. on Monday. You can only specify breaks of less than 24 hours. You can add multiple break times by adding additional blocks. Only specify the first three letters of the week day. - The autoConfChanged syntax has changed, and is now more powerful. autoConfChange (filenames...) { minTime (number) varTime (number) lvl (range) joblvl (range) } (filenames...) is a list of filenames, seperated by comma. A random file out of this list will be selected. Kore will wait at least minTime seconds, and at most minTime + varTime seconds before switching config file. If lvl and joblvl are given, Kore will only switch config file if you're in the given level or job level range. - teleportAuto_dropTarget (flag) Teleport if you can't reach a monster. - partyAggressives condition works like aggressives, but also counts monsters that have fought party members. - New attackSkillSlot option: _notMonsters attackSkillSlot Bash { lvl 1 dist 1.5 notMonsters Green Plant, Poring, Lunatic } - itemsTakeAuto_party 1 will take items from monsters killed by party members. - attackAuto_party can be set to 2 instead of 1; this will only attack monsters that attacked the party, and not monsters that the party hit. This fixes the "tank hits monster, bot mage casts spell on monster, monster hits bot since it hasn't retaliated against the tank yet" problem. - New config "attackCheckLOS 1"; when activated, this will enable the new experimental LOS check code. If you are a ranged attacker (attackDistance > 2), this code will check whether it thinks you have a clear line of attack to the target; if not, it will attempt to move to a space where you do, while respecting runFromTarget_dist and followDistanceMax. This code isn't perfect yet! It will frequently be unable to find a solution. - Config option attackNoGiveup will make bot not stop attacking enemy even if it can't damage it. Useful if your attackSkillSlot is e.g. Spell Breaker. - attackCanSnipe (flag) Set to 1 if your character can snipe (archers/mages). - statsAddAuto (flag) Automatically increase stats. statsAddAuto_list (stats) Example: statsAuddAuto_list 10 vit, 20 str, 25dex, 30 vit, 30 str, 50 vit, 40 str New timeouts.txt options: - ai_attack_unfail 5 Bug fixes: - Kore can walk on walkable water now (bug #21). - Don't open shop immediately after login in X-Kore mode (bug #49). - sitAuto_idle doesn't conflict with shopAuto_open's timeout now (bug #50). - MO_BODYRELOCATION is now recognized as an area-usage skill. - Don't display "level 65535" when an area-usage skill is used. - Incoming Request to join Guild message now displays guild name. - Alchemist potions aren't called [?254] anymore. - Cards in equipment in storage weren't being displayed. - $item->{type} is now set correctly for equipment in storage. - When following players by name, typing 'follow A' then 'follow B' would cause you to still be following A instead of B. - Fixed a crash when cart inventory is not available (such as during login). - Fixed chat room creation with non-default usercount, private-flag and passwd - $config{'char'} eq '' is no longer treated as $config{'char'} == 0 - Route AI should get stuck a lot less now. - Autostorage will now walk back to the NPC if it fails to teleport back. - Item has been upgraded to now correctly shows the old upgrade level for - When determining whether not to attack a monster due to it being too close to another player (to avoid KSing), exempt party members. Implemented in positionNearPlayer(). - teleportAuto_search no longer spams the server with the teleport packet many times per second. - Guild login/logout and chat messages no longer show blanks all the time. - Kore will not attack monsters that are trapped by non-party members, or monsters that are being lured. - Chat room list is correctly cleared on map change. - The skill_use AI sequence will now wait until the skill has finished casting. - Typing "talk no" while not talking to an NPC would cause disconnection; "talk no" is no longer allowed in that case now. - Headgear display for "pl <#>" command will say Unknown instead of None as appropriate. - "storage get" no longer requires AI to be enabled. - Fixed PM list synchronization bug. - Fix attackAuto_onlyWhenSafe: ignore party members. - If itemsGatherAuto is 1, don't gather items while walking towards a monster, or when there are aggressive monsters on screen. - Casting area-effect skills (e.g. Safety Wall, Warp Portal, Storm Gust) works again now (ai_skillUse() was passing $args{target_x} instead of $args{x}). - Warp Portal opening message now shows correct person name - Warn when user specified a useSelf_skill with an invalid name instead of trying to cast an empty skill ID - "Monster x changed to y" message no longer displays blank y - Check for numeric argument in Commands::cmdUseSkill. - Fix crash in party check of positionNearPlayer(). - Fix crash in calculating exp gained %. - Fixed bug in "cartGet" AI sequence - Fixed the location of the AI_post plugin hook - When attempting to "deal add" an item that the other party cannot carry, display the appropriate error message and don't pretend that the item is not in inventory anymore. - "Player are now: Blessing" changed to "Player is now: Blessing" - When creating a character using Kore, there will no longer be garbage trailing the character name. - Command "ai" returns error if invalid parameters are given. - Kore will no longer incorrectly timeout when using d# talk sequence code. - When using a teleport NPC, get 10 spaces away instead of 3 spaces away. Lets you use e.g. the guild castle flags on the unwalkable water in Payon. - Fix auto cart bug for equipped items. - Fix corrupted character name displayed upon creation. - Maybe fix "Incoming Request to Ally Guild '1'" message. - route_randomWalk on non-contiguous maps will no longer try to leave the map to get to the other section. - Don't auto-attack monsters that are behind a wall. - Don't walk away after picking up items; immediately attack other monsters on screen. Internal: - findIndex() and related functions are now much faster (bug #16). - writeDataFile*() won't write trailing spaces. - Functions in Tools.dll are now called through XS, Perl's native C-to-Perl interface. - Kore now detects what directory its executable is in, and adds it to its include path (@INC). - Some parseMsg messages moved to parseMsg_presence. - Improved lockMap and randomWalk settings. Without route_randomWalk, lockMap_randX/Y modify the lockMap_x/y position by a random amount. If route_randomWalk is set, lockMap_x/y and lockMap_randX/Y specify the area in which randomWalk should walk. - Automatically remove player entries, when that player is more than 35 blocks away. Sometimes players don't get removed from the list for some reason. - Detect what weapon (later shield) people are using. - "Player Info" message domain is now parseMsg_presence instead of parseMsg - itemName()/itemNameSimple() function now returns "None" for item #0 - ai_getAggressives() now accepts a second optional argument $party; if true, it will return monsters that have fought party members - Don't avoid walls when moving to monsters.