================== ### 1.6.2 ================== *** INCOMPATIBLE CHANGES ***: - Items named e.g. "Unknown 1234" are now called "Unknown #1234" so that you can use their name in items_control.txt. - The syntax for chat room commands has been changed. See below. - Many "whenStatus(In)active" names have been changed, so that they're consistent with the actual item or skill names. For example, the status name for Concentration Potion has been renamed from "Concent" to "Concentration Potion", and the status name for Increase AGI has been renamed from "Inc Agi" to "Increase AGI". - dcOnDisconnect must be set to 2 if you want to disconnect when you get "Out of sync with server" error. Bug fixes: - Fix deal bug: showing twice as many items added. - Make "Compiles portals now?" prompt case-insensitive. - Prevent the character select screen from appearing randomly due to lag or unparsed packets. - Storage log not created when relogAfterStorage is active. - Bot should no longer fail to pick up items dropped by monsters that died a distance away. - Tk map viewer has been fixed. - Make itemsTakeAuto_party count dmgFromYou too. (Hack to allow looting monsters that you killed without ever using attack ai_seq.) - inInventory was not working at all since its last update. - Bot should no longer wait 3 seconds needlessly when starting an NPC conversation. - Don't say "Done talking with ." until after " : Done talking". - Undo above change because NPCs don't always say "Done talking". - Fix where command. - Fix detection of lower headgear in packet 01DA, 01D9, 01D8. - Correctly detect a player's sitting status when you walk onto their screen (packet 01D8, "Player Exists"). It was previously detecting every non-dead player as sitting. - Kore was not displaying left hand damage when right hand missed. - Kore should recognize when someone is made to stand up by an attack, taking into account that Endure/miss doesn't count. - Fixed a crash caused by autoresponse. - Fixed dealAuto not working while dead. - Add the missing "timeout" chat command. - Fix equipAuto trying to equip unidentified items. - Long-overdue fix to make a party that you joined in this session work properly (obscure variable sharing problem). - Correctly set the field name on aliased novice training fields. - Give a warning if the user specifies an invalid "server" option in config.txt. - Job level flag in mon_control.txt was never actually implemented. - avoidGM_near_inTown fixed. - route_teleport through maps with inner warps should work now. - Fix sitAuto_look. It's more reliable now. - Fix bug where monsters changing into other monsters overwrote $obj->{type}. - The "pm 0" command no longer crash when there are no players in the pm list. - Kore was blocking packets in XKore mistakenly for certain serverTypes. - Fix isSelfSkill with area-skill attackSkillSlot skills. - Fix $char->{guild} autovivification causing the bot to think you're in a guild when you are not. - Fix avoidGM_namePattern, it should work now for nearby GMs. - Wx interface will no longer show blank messages in the chat viewer. New features: - Better support for detecting dead players. - Show player number with emoticons and public chat. - Show distance with emoticons. - The uneq command now supports item names. - You can now specify multiple plugin directories on the commandline. Each directory is seperated by a ';' (on Windows) or a ':' (on Unix). - target_dist range condition for monsters. - "Player Exists:" and "Player Appeared:" messages moved to domain parseMsg_presence/player so you can put it in beepDomains. - Server disconnections are now immediately detected. - Messages about other players being muted moved to parseMsg_statuslook domain with verbosity 2. - "Unknown error 0" message changed to "Server shutting down". - The "ignoreInvalidLogin" config option now also ignores incorrect password. - Messages about other players parseMsg/hairColor and parseMsg/job moved to verbosity 2. - Your account ID is now shown in readable base 10 form on login. - The inInventory option now checks if you have all of the items in the list. - "pl" command now displays what shield people are using. - debugPacket_received 2 option functions like a packet sniffer. - Detect when another player changes their weapon/shield or headgear. - Detect what shoes another player is wearing. (It will say "Unknown" if you never saw that person walk.) - Make "Destination reached." command a non-debug message when you arrive at a manually input destination. - Implemented "That person is too far from you to trade." error message. - _whenWeaponEquipped _whenShieldEquipped conditions. - Implement packet 014C (guild ally/enemy list). - Detect $player->{guildID} and $char->{guildID}. - It will say "You are again:" instead of "You are now:" when you gain a status effect that you already had. - When storageAuto is triggered, it will write a message saying why. - Display your PvP rank when you're in a PvP zone. - $ai_v{temp}{pvp} is set to 1 in PVP maps, 2 in GVG. - Female characters are now supported on inRO. - Kore now supports "monster-NPCs", NPCs which look like monsters. - Completed Freya support, for servers like VanRO and EuphRO. - New "Vx" interface, ported from modKore. See http://openkore.sourceforge.net/forum/viewtopic.php?p=50860 - Display numerical character ID when logging in. - Server-side friend list support. - Implement packet 01D6 (detect PVP/GVG mode in Aegis 8.5). - debugPacket_sent and debugPacket_ro_sent 2 option functions like a packet sniffer. - Support for private RO servers like aeRO and powRO with weird pre-login packets. To use this feature you must put the line 'preLoginCode 1' in tables/servers.txt. - You can now use the monster name "all" in mon_control.txt to specify default values. - showTime config option to show high resolution timestamps with all messages. Useful for developers only. - Skills cast by yourself are now in the 'selfSkill' domain. - "exp" command now tracks item changes (see how much loot you're getting, see how many potions you're consuming). - New message "Cannot pickup item (failure code #)" indicates when you can't pick up an item. (I think 2 always means overweight?) - New chat command "mag" for Magnificat. New commands: - storage log Manually force writing to storage.txt. Some people complain that the storage log is broken, so until that has been resolved, this command will do. - ai on ai off Turns AI on/off. - card use Get the list of items you can slot the card into. - card mergelist Show the list of items you can slot the card into again. - card mergecancel Cancel the card merging request. - card merge Merge the used card into the specified item. - card forceuse This advanced command will instantly merge the specified card and the specified item. It only checks if the items exist in the inventory, so it's possible to screw up with this. - 'weight [<#>]' command tells you how much more stuff you can carry (if you want to know how many more Red Potion you can carry, and Red Potion weighs 7, then type 'weight 7'). - arrowcraft forceuse # Craft arrows immediately without using the skill. On many servers any class can create arrows using this exploit. # is the inventory number of the item you wish to craft into arrows. - friend List your friends. - friend request # Request a player to be your friend. The player number is obtained by the 'pl' command. - friend remove # Remove a friend from your friend list. - friend accept Accept the request to be friend. - friend reject Reject the request to be friend. - friend pm # Add the specified friend to the PM list for easy PM-ing. - chat create "title" Create a chat room. - chat modify "title" Modify a chat room. - chat bestow Give chat admin power to the user. - chat join Join the chat room. - chat kick Join the chat room. - chat leave Leave the chat room. - chat info Info about the chat room. - chat list List of chat rooms around you. - relog [delay] You can now specify a delay when relogging. - talknpc New command for sending a sequence of commands to the NPC at . Useful in macros. New config options: - partySkill: target_dead Only use the skill on a dead player. Useful for Resurrection. - avoidGM_namePattern (regular expression) In case your server uses non-standard GM names, you can specify a regular expression for GM names with this option. - teleportAuto_totalDmg (number) teleportAuto_totalDmgInLock (number) Teleport away if a monster has done this much total damage to you. - dcOnZeny (number) Disconnect automatically when your Zeny equals or lower than the specified number. Useful if you use buyAuto or the auto buy plugin. - teleportAuto_atkCount (number) Teleport away if Kore can't kill the monster in the specified number of attacks. - "e" sequence for NPC talk steps; use it when you want kore to wait until the NPC says "Done talking" - route_teleport_notInMaps (list of maps) Do not teleport on route in the specified maps. - serverType 4 Set this for new Freya servers such as EuphRO and VanRO. - route_randomWalk 2 The bot will not walk through portals to get to other areas during route_randomWalk. - storageAuto_notAfterDeath (flag) If this is set, Kore will not do storage automatically after death. - block condition: onlyWhenSafe (flag) Only use this skill if there are no players on the screen. - showTimeDomains list Show a timestamp in front of messages from certain domains. - friendlyAID list A list of AIDs of friendly players. Currently, players in that list who appear will be in domain parseMsg_presence instead of parseMsg_presence/player (useful for beepDomains). - dcOnEmpty option for useSelf_item block will disconnect if it tries to use that item but ran out. - storageAuto_useChatCommand (command) Use a specified chat command to open the storage instead of going to talk to the kafra. - partySkill: notPartyOnly (flag) Use this skill on anybody, not just party members. - partySkill: target_isGuild (list) Use this skill on the specified guilds. New control files: - control/sys.txt This file stores options that can only be loaded once (so this file cannot be reloaded). You can get a default version of this file from the default configuration files archive. Internal: - whenGroundStatus() now takes coordinates instead of a player/monster. - There's now a %sys (in package Settings) variable for options in control/sys.txt - Most modules are now autoloadable (see perldoc SelfLoader). - Optimizations in the %portals_lut data structure. This saves about 700 KB of memory. - New "b," NPC talk sequence, only useful to macro writers who use the 'talknpc' command. Buys of ( is the number shown in the 'store' list). Use after "b", e.g. "b b2,100". - Cleanup of redundant functions.pl $map_string variable. - Store lookID instead of itemID internally for other players' headgear. http://openkore.sourceforge.net/forum/viewtopic.php?p=51034 Fixes "Unknown 140" bug; improves detection of custom headgears. - All players and monsters (members of %monsters and %players) are now objects. See Monster.pm and Player.pm for available methods, both of which inherit Actor.pm. Also You.pm and Unknown.pm. - New Actor::get($ID) function is sort of like $ID eq $accountID ? $char : ($monsters{$ID} || $players{$ID}) - Network::Send::sendMove() redundant $r_socket first argument removed. - New functions Commands::register() and Commands::unregister() for easy registration of new commands in plugins. - Store $guild{member}[$c]{charID}. - Get rid of useless %chars_old. - The old $actor->name was renamed to $actor->nameString (but just reference it as $actorwhen constructing message strings since $actor is overloaded to call $actor->nameString). - $player->{name} is now undef for players whose name is unknown. $player->name will return $player->{name} || e.g. "Unknown #300001". - New $char->master function returns party or player information about your followTarget. - Added hooks "packet_partyMsg" and "packet_guildMsg". argument hash contains 'Msg' (the message) and 'MsgUser' (the sender) - Please use mon_control() from now on instead of accessing %mon_control directly so that "all" will work. - $actor->{casting} now tracks what spell someone is casting on what target, and is cleared correctly when the spell completes/is interrupted. - New hook packet_item_removed. - All commands have been moved to Commands.pm. - New plugin hook "player" passes a player object when "Player Appears" or "Player Exists". - New items_control() function (use this instead of %items_control). - functions.pl is able to run using strict (but isn't yet). Credits: - Damokles: case sensitivity fix, avoidGM_namePattern, skillsstatus.txt help. - kunjandad: friend list packet support. - Crypticode: 'ai on'/'ai off' commands; item name support in 'uneq' command. - punkpudding: route_teleport_notInMaps. - Sinistral: skillsstatus.txt help. - Hakore: avoidGM_near_inTown fix. - TJ09: Einbroch fields. - kaliwanagan: 'selfSkill' domain. - bijikucing: Ayothaya portals. - 시이라: Juperos and Lighthalzen fields.