Sunday, May 2, 2010

May 2010

Rev 610 :
-Added a limit for keydown skill with a maximum of 1 second charge
-Fixed disconnection problem with platform of special swim property due to checks on rev 609 (Eg : Neo Tokyo 2012 Old Fox Flagship Deck)

Rev 609 : [Anti cheat update!]
-Added handling of keydown skill such as BigBang for additional damage calculation
-Added MovementConstants.java file for storing of all movement constants
-Fixed heal attack formula for damage calculation
-Fixed various job skill event not spawning monster (Bugged due to a few revs back)
-Patched swim hack at non-swimming map
-Patched movement skill hack at map with movement skill disabled
-Patched jump down hack at map with jump down disabled
-Patched jump hack at map with jump disabled
-Patched a map dc hack with player movement
-Server sidded magic attack handling with PlayerRandomStream

Rev 608 :
-Added Dark Soul Rock drops for Jr. Balrog in another world (Concentration quest)
-Fixed the difference between signed and unsigned arithmetic for PlayerRandomStream (We should have server sidded magic attack and criticals pretty soon)

Rev 607 :
-Insignificant being now brings you to another world when "Extreme Temptation" quest is active (Concentration)

Rev 606 :
-Papulatus map can now be entered without "The piece of cracked dimension" as long as there's "Ludibrium Medal" in inventory

Rev 605 :
-Removed InventoryContainer interface

Rev 604 :
-Fixed a bug with trades causing the item to disappear when trading "One-of-a-kind" item while having one
-Fixed a bug with hired merchant causing the item to
disappear when buying "One-of-a-kind" item while having one
-Latency check framework (TODO : Perfect it for use on attack check for anti cheat purposes)

Rev 603 :
-Packet data now uses byte[] (Removed MaplePacket and ByteArrayMaplePacket?)

Rev 602 :
-Added a check to prevent merchant saving to Fredrick when meso and items size is zero
-Fixed Hired merchant disconnection with error 38 upon first user leave

Rev 601:
-Added broadcastWorldMsg() method for EventManager
-Fixed NullPointerException when entering CS with party larger than 1
-Fixed ConcurrentModificationException with character controlled monster 'controlled' object [It is now thread-safe]
-Removed RSA decrypt method from Channel Server project

Rev 600
-200 millis second delay between each drop of reactor
-Added Check_1Empty_InventorySpace() method for checking if all inventory have at least 1 slot
-Added monster/reactor drop timestamp handling (The time of the item can be set via SQL database @ 'period')
-Added item min/max handling for reactor drop based on SQL database
-Fixed disconnection for normal attack for claws on booster (anti cheat)
-New reactor meso handling (It can be specify by setting itemid to zero and the min/max will be the value)
-New reactor drop method based on the rate of 999999
-Treasure hunt event (The event will last for 20 minutes at once per hour.... Find Maple Administrator for more information!)

Rev 599 :
-[MSEA v.93] Evan char creation (Check on equip item, starting mapid, starting job id)

Rev 598 :
-Added 4 hours timer for Chaos Zakum
-Re-attempting on shutting down and saving all hired merchant upon successful disconnecting all players when shutting down (In an event which player created a merchant during the disconnecting process)
-Included v.93 source

Rev 597 :
-Chaos zakum [Find Adobis NPC and make a selection between normal or Chaos zakum, chaos zakum will drop Zakum Helmet of stats +21]
  NOTE : The only difference between normal and chaos zakum will be it's HP and EXP without any additional damage or curse. It'll be implemented as soon as MSEA get it.

Rev 596 :
-Added a check to prevent untradeable or locked items from being added to Storage

Rev 595 :
-Change Channel/ Enter CS/Exit CS will now utilize MapleClient.disconnect() for graceful disconnection
-Fixed NPC script Pison [Florina Beach NPC)
-Fixed exception thrown when gaining negative EXP on fishing (Occurs when EXP needed for level is below 200)

Rev 594 :
-Added support for Allatori Obfuscator on login server
-Removed Login packet from Channel Server
-Removed functions required for login from Channel Server
-Seperate Login server project [With support for version v.82 to v.93]
  [NOTE developers, Login Server must be kept as lightweight as possible, and do not link it to any part of Channel Server! It's RMI communication to world is based on InterServerConnector.jar]

Rev 593 :
-Added item "Horned tail Ticket" gain upon Horned Tail entry which last for 12 hours
-Added a check to prevent item bought from CS from merging with other item of similar ID if the timestamp is not the same
-Clean up for Randomizer.rand(min, max)
-Fixed skill Showdown/Taunt not doing any damage when having Shadow Partner buff

Rev 592 :
-Disallowed player from entering Nine Spirit's Nest if the quest is completed
-Fixed a bug with storage causing the item to disappear when taking out "One-of-a-kind" item

Rev 591 :
-Added handling for quest with "map" property (Eg : nine spirit egg message and buff broadcast map)
-Nine spirit egg quest
-Updated @gmlist command
-Renamed AramiaFireWorks.java to MultiPlayer_ContributedEvent.java (Gaga Maple Anniversary event!)

Rev 590 :
-Skill Armor Crash, Magic Crash, Power crash

Rev 589 :
-Added a check to prevent player from losing item when disconnected during the setting up store process
-Fixed events system being stuck in "Battle in-progress" state when the last player have disconnected from the map

Rev 588 :
-Updated Spinel Worldtour NPC's speech (MSEA)
-Optimization for spawn monster (System.currentTimeMillis() will only be called once per respawn)
-Optimization for respawn timer (The map timer scheduled for each map will be cancelled upon zero player and rescheduled when someone enter)

Rev 587 :
-Added resetMap() method on MapleMap
-Added Map_timelimit for tracking of timers such as squad (The timer will appear on reload map)
-Added checking if the squad have already entered (This prevents re-entering on the same squad)
-Added portal script to Tristan refugee (Boss balrog)
-[MSEA v.92] Added portal script to get out of Nett's Pyramid

Rev 586 :
-Added !getmapflag command to get the list of field limit that the map has (Eg : Disable teleport rock, movement skill)
-Boss monster spawn priority (Boss monster will now be spawned first before any monster)
-Disable logging of GM command and IP log when there's no data available on the HashMap

Rev 585 :
-Critical percentage/rate calculation upon stat updating instead of calculating upon attack
-Excluded GM from being disconnected when doing a !dcall or !shutdown command

Rev 584 :
-Added Checking Duey to see if it's opened via 13 Digit Asiasoft passport before allowing invoke various method such as sending, deleting and receiving parcel)
-Added handling for losing quest item (Included checks if character already have the item and if the item is part of the quest)
-writeInt(long i) method for writing of uint_32 to client (As some might overflow, it's best to use int_64)

Rev 583 :
-CalcDamage limit of 1 when monster is buffed with magic/weapon immunity
-Fixed monster buff disappearing on reloading map
-Fixed magic/weapon reflection monster buff 3rd party display
-Merged weapon and magic immunity cooldown time together (So that weapon immunity can't be casted immediately after magic immunity has ended or vise versa)

Rev 582 :
-Added min accuracy check for magic attack (anti cheat)

Rev 581 :
-Added serialVersionUID to implements of Serializable without it
-Added stat calculation for Bless of Fairy skill (Server side)
-Fixed a bug with merchant tax
-Tweaked magic attack calculation again slightly based on the data from BMS (More accurate now)

Rev 580 :
-Added a check to prevent an item with timestamp from merging with other one with none
-Fixed item/equipment timestamp disappearing after dropping

Rev 579 :
-Added CurrentReadable_Time() method for easy creation of the current time in human readable string format
-Added logging system for pink bean and horntail defeat
-Added checking if an attack has to be charged before use (anti cheat)

Rev 578 :
-Added tax for Hired Merchant store
-Fixed death EXP decrease amount (Similar to official server)
-Modified damage calculation slightly (if damage calculated after monster m/wdef is below zero it'll be converted to 1)

Rev 577 :
-Added PlayerRandomStream class (TODO : Fix randomizer due to differences between signed and unsigned integer)
-Added a range of 200000 distance square from character for monster to be able to auto aggressive (If necessary)
-Added checking the used skill is of level above 0 else disconnection (anti cheat)
-Improved IP blocking system

Rev 576 :
-Redesigned the merchant visitor enter/leave slot position system (Should fix the error 38 disconnection issue completely)

Rev 575 :
-Added the removal of KARMA_EQ and KARMA_USE item flag when purchasing something from the merchant that has been Karma'd
-Added checking if item is untradeable or locked (Timeless/reverse) before allowing it to be placed on merchant
-Added checking if the item has KARMA_EQ or KARMA_USE item flag to be allowed to be placed on merchant
-Fixed Error 38 disconnection when the first visiter in merchant leave the room

Rev 574 :
-Hired merchant (Anti cheat Checking and release)
 TODO : Fix error 38 when the first visitor is leaving the merchant
-Removed Valetine's day 'Rose' drop from every monster
-Removed Chinese New Year 'Red Packet' drop from every monster

Rev 573 :
-Updated Allator obfuscator to version 2.9 (March 29, 2010)
-Some minor fixes to self destruction monster handling

Rev 571 ~ 572 :
-Added !shutdownmerchant command, close all merchant stores and save it to database
-Compile error fix

Rev 570 :
-Added a check to prevent player from moving stationary summon (hack)

Rev 569 :
-Added disbandParty(eim) method to witch tower (To prevent it from throwing up exceptions, party isnt required in witch tower)
-Added position parsing for bounce movement (Standing on the bouncing platform at witch tower)

Rev 568 :
-Added Mina level of IP blocking system if sessions are spammed against the server on the same IP, replaced with ArrayList checking made on rev 520 ~ 522 (This ensures that no session are created at all, prevents the attacker from using up the server resources)
-Memory leak fixes

Rev 567 :
-Added a CharacterTransfer.java pruning system every 15 minutes, to prevent memory leaks (Cleaning up characters which didn't successfully change channel, enter cs, exit cs and was cached in the data)
-Fixed a change channel bug where you'll be changed to the same channel (Due to rev 564 ~ 566 commit)

Rev 566 : [Fully stable update of the separated CS server]
-Added launch_cs.sh file
-Added a couple of checking to see if CS is shutted down/ started up/ connected before a inter server connection is made [If it's off, the server'd reply with "The cash shop is currently unavailable..."]
-Added isCharacterListConnected(), getParty(), updateParty(), loggedOn(), loggedOff(), setGuildMemberOnline(), shutdown() RMI function for communication between CS <> world server.

Rev 565 :
-Added !shutdowncs command
-Added shutdownhook for CS server [Prevents rollback for characters in CS]
-Implemented full separated CS server from Channels

Rev 564 :
-Changed CS server authentication key to a complex 18 character key
-Implemented Cash Shop Server
-Implemented World <> CS server RMI connection

TODO :
1) Transfer player data to CS via rev 558 commit when going into CS.
2) Transfer back the data via rev 558 commit when going out of CS.
3) Move all CS related items to CS server and not to be loaded by channels.


Rev 563 :
-Added monster stun effect for Ninja Storm skill

Rev 562 :
-Added meso drop for Cube Slime
-Fixed Aramia Fireworks kegs display progress

Rev 561 :
-Added NPC script 'Tia' [For the creation of 15% scrolls]

Rev 560 :
-Added a check if the server have successfully retrieved the reactor drops from database before caching it (It might fix Zakum quest bug)

Rev 559 :
-Bug fixes for rev 558

Rev 558 :
-Implemented [Channel > World > Channel] character data transfer when changing channel instead of retrieving it from database. [Reduces database load and speed up Change channel process]

1: Character requested channel change
2: The channel server which the character is in will save the character then sent the character's information such as str, dex, int, luk, quests to the world server with the target channel as argument.
3: The world server will then search for the channel and transport the data there. [Through Externalizable API]
4: Sent the channel IP information to the client.
5: The client will then process the channel change and connect to the target channel.
6: The target channel server will retrieve the character's information [TransferCharacter.java] and reconstruct [MapleCharacter.java] class.

-Change channel now takes only half a second.

Rev 557 :
-Added a view range limit for boss monster HP bar display
-Updated jvm.dll to Java jdk 6 Update 20

Saturday, April 17, 2010

April 2010

Rev 556 :
-Added a limit for !spawn command (Only 4x or lower ratio of original monster is allowed to be summoned)
-Added NPC script 'Entrance Lock' (Zipangu : 2012 Roppongi Mall, Core blaze squad system)
-Added Quest script 'Break of Blaze'
-Added Quest script 'Magic, Science and space'
-Added Quest script 'A rush of Core Blaze'
-Added Quest script 'Activating Core Blaze'

Rev 555 :
-NPC Keroben now give the item 'Holy Water of Life' if the character have 'Holy cup' in possession (Temporary until the entire Horntail quest is fixed, same for Life Root)

Rev 554 :
-Patched Remote hack based on IP (Ability to access other character which are currently logged on via packet editing)

Rev 553 :
-[MSEA v.92] Soaring skill (Ability to fly)
-Code clean up

Rev 552 :
-Added portal script 'catPriest_map' to 'Forest of the Ghost Priest'

Rev 551 :
-Added Meso drop for Veetron and Slygie
-Some fixes for item vac auto ban system (It should not have anymore false bans due to looting on ropes)

Rev 550 :
-Added Equip stats "hands", equipment with hands will now be added
-Added stats randomization for hands

Rev 549 :
-Fix for rev 547 commit (Bless of Fairy not showing up on highest level character and wrong skill id for Legend job)

Rev 548 :
-[MSEA v.92] Neutralize buff effect on monster (Monster will not be able to bump into character when buffed with neutralize, unfortunately there's nothing I can do to get it working on v.82)

Rev 547 :
-Bless of fairy skill (Level limit for Adventurer, Aran and Evan : 12. Level limit for Cygnus : 20)

Rev 546 :
-Added getHands() method in PlayerStats
-Added player hands calculation based on Dex, Int and Luck (Since a couple of new weapons now requires that, for anti cheat purposes)

Rev 545 :
-Fixed Disease/debuff not cancelling after changing channel or enter Cash Shop (Data is now brought over to other channel)

Rev 544 :
-[MSEA v.92] Added Darkness Element for Evan skills
-[MSEA v.92] Fixed packet structure needed to get in-game
-[MSEA v.92] Fixed 'Elemental Reset' skill for Evan
-[MSEA v.92] Fixed 'Magic Booster' skill for Evan
-[MSEA v.92] Fixed 'Blessing of the Onyx' skill for Evan
-[MSEA v.92] Fixed 'Maple Warrior' skill for Evan
-[MSEA v.92] Fixed 'Slow' skill for Evan

-[MSEA v.92] In-game Poll system
-[MSEA v.92] Updated monster drops based on the latest list on MonsterBook.img

Rev 543 :
-Added "readInt2()" for unsigned integers using int_64 since Java doesn't support unsigned type yet.
-Fixed quest monster kills registering wrongly [Stupid HashMap : LinkedHashMap]

Rev 542 :
-Implemented new Item vac checking for player and pet loot (It should now be accurate without any false bans and auto ban after 5 loot attempts. Now includes server and client side checking)

Rev 541 :
-[Night Walker] Fixed Poison bomb, credits goes to Moogra for part of the code
http://i39.tinypic.com/bgzj36.jpg

Rev 540 :
-[Infighter] Fixed the skill "MP Recovery"

Rev 539 :
-Class bonus EXP of 10% when partying an Aran that is within the leech level. (Might be temporary, there'll be more EXP bonus event in future)
http://i44.tinypic.com/ixw3mc.jpg

Rev 538 :
-Added Ice Staff, Ice Wand, Thunder Staff, Fire Staff and Fire Wand to Ellinia Gachapon
-Added Ice Staff, Ice Wand, Fire Staff and Fire Wand to Mushroom Shrine Gachapon

Rev 537 :
-Disallowed dispel from dispelling buffs when "Hide" is on

Rev 536 :
-Added Portal Script at Clown Flyer for accessing Neaty Yeti Area
-Removed FieldLimit for GM on summoning bags

Rev 535 :
-[MSEA v.91] Fixed monster movement parsing
-[MSEA v.91] Added map description information for 'go50000'
-Increased the drop rate for Dunas 2
-Fixed Shadow Meso skill and attack formula for anti cheat purpose.

Rev 534 :
-Added portal script for s4tornado_enter.js (Ninja storm quest is now completable)

1) Find "[Storybook] Mysterious Letter" storybook from Dual Ghost Pirates.
2) Now travel to Ludi and talk the npc #1
3) Npc #1 will refer you to Orbis and talk to Npc #2 (Near the guild making place )
4) Travel back to Npc#1
5) The npc#1 then asks you to hunt for 3 items: Griffey Wind (Griffey), Thanatos Black Tornado (Thanatos), Boogie's Cursed Whirlwind (Zakum's summon, boogie).
6) Once you collect all the required items, travel to Leafre
7) Talk to your 4th job instructor to finish.

NPC #1: At Ludi, go to Terrace Hall (Toy Factory) and move all the way to your left until you reach Cloud Terrace 5. There is a hidden porter slightly to your left, enter it and you will find this NPC named Unknown Thief. Talk to him and he will ask you to get the Maple Marble from NPC #2.

NPC #2: Now go to Orbis where the Guild Headquarter is. Just outside the main building, there are 3 steps, teleport all the way to the top. You will see a Maple Leaf (yes, that's the NPC #2!). Click on it to get the Maple Marble and return to NPC #1 to complete the quest. Reward: 800,000 EXP

Rev 533 :
-Auto assigning of AP to STR when level <= 10 and job isn't Beginner, Cygnus and Legend.
-Added Item Maker scrolling effect to self and third party
-Changed MapleCharacter.meso and MapleCharacter.exp to int instead of Atomic Integer

Rev 532 :
-Alternative threading method for EventInstanceManager [2x faster :P}
-Fixed bossPQ saving system [A full BPQ gaining nearly 10k points instead of 1k stated]
-Some modifications to CopyOnWriteArrayList 'characters' in MapleMap (Fixed the random DC bug)

Rev 531 :
-Fixed summons when changing map

Rev 530 :
-Fixed Neo Tokyo Crystal NPC not teleporting players to the right place (Shibuya)
-Performance update for threading, it should now be running 3 ~ 4x faster (-Confidential-)

Rev 529 :
-Cleanup on MaplePacketDecoder.java

Rev 528 :
-Fixed Super transformation quest (Due to rev 505 commit)
-RunningOid for mapobject is now synchronized together with mutex instead of AtomicInteger
-Removed session TcpNoDelay attribute for packets

Rev 527 :
-Added a 2 ~ 4 seconds stun buffstat for Dragon Roar

Rev 526 :
-Added meso drop for Captain and Kru
-Added NPC script [squad] and instances for Boss Balrog (TODO : Entire battle system)
-Give "Seal of the Underground Dungeon" buff when entering the map "Dungeon - Balrog's Tomb"

Rev 525 :
-Added checking to prevent Reverse/Timeless [equipTradeBlock] item from being traded/duey'd/merchant'd
-Reverse/Timeless [equipTradeBlock] item to disappear when equipped once after dropping
-Fixed auto ban system not disconnecting players due to rev515 commit

Rev 523 ~ 524 :
-Fixed Adobis NPC due to rev512 commit
-Modified some MySQL query for it to work with mysql-connector-5.1.12.jar
-Updated mysql-connector-java-bin.jar to version 5.1.12

Rev 522 :
-Added a 5 second timer to decrease the number of sessions by 1 when closed (This is because HTTP connection is closed immediately, and the counter on previous rev won't work
-IP ban when the number of session exceeds 7

Rev 521 :
-Added IP ban system if 10 sessions are opened in 6 seconds (Most likely DOS)

Rev 520 :
-Added a limit of 5 connections per IP (Fooding sessions causing Celino's recent downtime, it was the tool which I've released on Kryptodev months ago.)

Rev 519 :
-Added extra checking for NPC teleport rock to prevent packet editing [If quest is completable, old : state = 1]

Rev 518 :
-Reverted MapleMap 'mapobject' ConcurrentHashMap to HashMap [Since it's causing random disconnection issue, synchorizing would be safer]
-Reduced the drop rate of scrolls, skillbook and equipment for drop extractor [MonsterDropCreator.java]

Rev 517 :
-Added Cygnus scripted quest for level 1 ~ 13

Rev 516 :
-Added support for collecting data of equipment level data [TODO : Implement it]

Rev 515 :
-Fixed NullPointerException for !ban command [Although it does work, just annoying]
-Pre-define size limit for certain Map/HashMap/LinkedHashMap
-Replaced for loop on object "mapobjects" with iterator [MapleMap.java]

Rev 514 :
-Replaced for loop on object "characters" with iterator [MapleMap.java]

Rev 513 :
-Added checking if the map allows Mystic Door before casting [Patch Map.wz/PE exploit]

Rev 512 :
-Added !tmegaphone GM command [Enable/disable megaphone, updated throughout the entire world]
-Added saveDispose() method to NPCConversationalManager.java, 100% non DC npc regardless of how the user click on it [TODO : Update all NPC scripts with the new format]
-Removed NPCScript.java [Uses invokeMethod() instead, faster]

Rev 511 :
-Added NPC shop for "Mu Mu The Hired Merchant" CS item
-Replaced ArrayList with CopyOnWriteArrayList on MapleMap

Rev 510 :
-Use ConcurrentHashMap instead of synchronizing [Linked]HashMap for thread-safety and speed (PlayerStorage and MapleMap)

Rev 509 :
-Added quest and squad system for Neo Tokyo Nameless Magic Monster and Dunas 2

Rev 508 :
-Added checking for items with "LOCK" flag when dropping/trading

Rev 507 :
-Fixed a spelling error with Pink Bean defeat message
-Some slight fixes to the previous commits

Rev 506 :
-Added checking for equipping weapon to other equipment slots of non weapon
-Fixed energy charge duration

Rev 505 :
-Added disposeIfPlayerBelow(byte size, int mapid) method to EventInstanceManager (Returns true if disposed)
-Updated event scripts for the new method
-Removed !eventstate command
-Removed getPlayers() method on EventInstanceManager

Rev 503 :
-Fixes for last revision
-Thread safety #2 ! (MapleMap.java, everything that access mapobject Map are now synchronized)

Rev 504 :
-Added server/RandomRewards.java, for caching of Gold Box, Silver Box and Fishing reward on startup [TODO : Gachapon in future :P]