Tuesday, April 28, 2009

Java: IP Analyzer Update #2

Previously this program relied upon a brute strength method of comparing a given IP with a list of previously provided IPs. Some of these IPs were classes and large ranges and were converted to a longer list of single IPs before the comparison took place. As one can imagine this is not the ideal way to go about the process as it can take minutes to compare a Class B range and Class C ranges actually crash the program itself.

Recently it became necessary to add a Class B range to the list of IPs to be compared to, so a solution to this problem was needed to allow the program to remain viable. So the entire block of code regarding comparison of IPs was rewritten, with very little of it being reused. Comparison of Ips would be done in steps where each octet was compared to each other rather than the entire IP at once. The input and list IPs were split up into arrays of integers, one slot for each octet of the IP. For those that were classes or ranges there was one array for the beginning of the IP range and one array for the end.

Once the IPs were stored in this manner their first octets were compared and if the given IP range fell within the list's IP range then a boolean variable was set to true, signifying that a match was found.

if(beginUserIP[0] > endCompareIP[0] || endUserIP[0] <>
match1 = false;
else
match1 = true;

This was done for all four octets. Then if all of the variable were true the given IP matched, if not then it did not match the list IP range and the next IP range on the list was taken and the process repeated all over again.

As it turns out this process only requires at most a second to run through the entire restricted IP list, and this includes having some Class A ranges in the list. Also helps that this reduced the amount of code in the program by several dozen lines, considering how small the program is that is rather nice. I don't see any additional changes that need to be made to this program, it is very basic and now all of the bugs are worked out of it so no new updates should be forthcoming.

Monday, April 27, 2009

Java: Hotline Update #10

Another month, another round of changes to the Hotline program. Again, these changes weren't anything significant. Basically three of the options were removed and replaced by three new options. As such this entailed new JButtons to be created with associated listeners, and a new piece to the If-Else statement in the ReportPanel class to handle this new variation to the call options.

Along with this I decided to get cute and inserted an easter egg into the program. Originally I was thinking a blank JButton in the OptionsPanel class to initiate the easter egg. However that seemed a bit obvious and would definitely be noticed by management, so I had to come up with another way. I settled on having the easter egg accessed via the report section, specifically when a report is run covering February 30-31st or some combination of this date range. Since these dates don't exist it won't interfere with legitimate business.

The easter egg is purely a little game. Several windows appear in succession that require an OK button to be clicked. When they are all gone a new window appears displaying the time it took to clear these windows. A lowest score is saved in a text file on the server and is compared to the individual's score, if they are lower then their score replaces the current one.

I'm going to let the reps find it on their own, but may give a slight hint to get them started.

Wednesday, April 22, 2009

Diablo II: Fanatic Zealot Skill Layout

A Fanatic Zealot is a Paladin that utilizes the Zeal attack and Fanatic aura to enhance his physical attack. This build deals purely physical damage to monsters and as such needs a backup skill, such as Vengeance, or specialized equipment, such as Reapers Toll, in order to deal with the physically immune monsters of Hell. The skill setup is as follows:

Might - 1
Sacrifice - 1
Smite - 1
Holy Bolt - 1

At level six this character is utilizing the Might aura in order to amplify his damage. For the low level monsters encountered at this point this is quite adequate to keep progress moving at a decent pace. As Might isn't a synergy for the endgame skills only a single point is placed here.

Blessed Aim - 1
Zeal - 1
Charge - 1

Now at level twelve Zeal becomes available as the character's main attacking skill. This allows multiple monsters to be targeted at the same time, as well as increasing the damage of each attack. Still only a single point Might aura is utilized so progress will most likely slow down a bit at this point as skill points are used mostly on prerequisites so far.

Zeal - 7
Blessed Hammer - 1
Concentration - 1

At level eighteen the character trades in a single point Might aura for a single point Concentration aura. The damage dealt is not increased significantly, but the chance of having the zeal cycle interrupted is reduced dramatically. Along with this the Zeal skill is pumped which adds to the damage done as well as the number of targets that can be hit per cycle. As such the character's progress should increase again to acceptable levels.

Zeal - 13
Holy Shield - 1

At level twenty-four the character is able to utilize the Holy shield skill. As the length of time it will remain is low and mana cost high this skill will only be used in extreme circumstances at this point, such as against Act bosses. Zeal is also increased as the character's level increases, allowing progress to remain smooth.

Zeal - 20
Fanaticism - 2

At level thirty Fanaticism becomes available and replaces Concentration as the aura of choice. At level thirty-one Zeal is maxed as well. With Fanaticism the character's attack becomes faster and additional damage modifiers are added to his attack, helping him deal with the increased Hit Points of the monsters in the later acts.

Fanaticism - 20

At level forty-nine Fanaticism is maxed and the character has received the bulk of the enhanced damage modifiers possible. As such his damage is significant and will allow him to deal with virtually any monster pack encountered.

Holy Shield - 10
Vengeance - 1
Sacrifice - 20

At level seventy-one Holy Shield has been increased to allow it's use in normal questing. Now its charge will last for a few minutes at a time and as such can be used in all circumstances rather than only against act bosses. As such the survival of the character is increased exponentially with the better block rate and multiplied defense rating that Holy shield provides. Vengeance is also given a single point as the answer to physical immune monsters. Preferably the character will have an equipment answer to PIs, but if any unbreakable ones are encountered he will have a way to deal with them with Vengeance. Along with this Sacrifice, a synergy for Zeal, is maxed and as a result increased the damage dealt by the character significantly.

Holy Shield - 20

At level seventy-nine Holy Shield is maxed to allow the highest possible bonus to blocking percentage. This allows the character to have what is basically 75% resistance to physical attacks with a blocking percentage of the same value. Depending on equipment worn this could also push the character's defense rating past the ten thousand mark, which is the magic value when monsters begin to have difficulties successfully attacking the character. That coupled with the max block rating allows the character able to tank even the most dangerous monster packs. From this point onward the character can place points into Defiance as a synergy for Holy Shield. This will increase the defense rating of the character that much more and increase his survivability.

Final Skill Distribution:

Zeal - 20
Sacrifice - 20
Fanaticism - 20
Holy Shield - 20
Vengeance - 1
Defiance - rest

Friday, April 17, 2009

Diablo II: Patriarch Silverbolt

Silverbolt is a Fanatic Zealot, a Paladin that utilizes the Zeal attack and Fanaticism aura to enhance his physical attack. This is the type of character that requires a good, high damaging weapon in order to be effective. It's a very simple build with few variations, normally in the area of how to deal with physically immune monsters. Mine followed the mainstream concept of maximizing damage output above all else.

Silverbolt started off untwinkled, as per the norm, but with the plan to upgrade his weapon early and often in order to keep his damage as high as possible. Progress in the beginning was slow but steady as the first act of Normal normally doesn't have any major obstacles I haven't seen before. Silverbolt progressed through nicely and with the addition of some lightning/fire resistance charms was able to tank the lightning beetles of Act II and shaman of Act III comfortably.

Still his progress the farther into Normal he got was slower and slower. And this with the constant twinkling of weapons: Bladebone to Rusthandle to The Chieftain to Steeldriver to Hand of Blessed Light. As such the mobs of monsters couldn't simply be engaged head on after Act I, they would swarm too much and overwhelm our hero. Instead Silverbolt could be found hiding behind his trusted Desert Warrior mercenary and letting the more hardy companion soak up as much damage as possible. Environmental obstacles were also used to great effect in this regard, such as the doorways of the Act II tombs.

AS expected Act IV lead to a fair amount of close calls, but no NDE until Silverbolt was suddenly surrounded by spawners and their kin. With a pillar to his back Silverbolt had no where to run and ran out of potions before the spawners ran out of kids. Dying in Normal really wasn't part of the plan, but it did show some overconfidence on my part as a boss pack of spawners really needs to be handled a bit more delicately, no matter the difficulty. After that Silverbolt was able to complete out the difficulty without any other dire circumstances, including fights against Diablo and Baal.

This brought him to Nightmare, at level 45. Here just about all of his end game equipment could be worn, and was. All that was missing was his weapon, boots and gloves. Even though his damage output didn't grow considerably, his defensive ability gained an exponential boots. Max block was suddenly very possible along with 90% resistance to all elements. As a result Silverbolt blew through all of Nightmare difficulty with almost no problems. In fact he used only three health potions the entire difficulty, not counting any that went to the merc of course. He did get caught once by an Oblivion Knight in mid-zeal cycle in the Chaos Sanctuary, from which death was the only outcome. I truly thought all of the OKs were farther away, otherwise I would never have tried to zeal in their presence.

Upon entering Hell both Silverbolt and his mercenary, a Might Desert Warrior, were almost full equipped, all that was missing was the merc's Reaper's Toll. This was my answer to the physically immune monsters that would be encountered, namely Ghosts, Swarms and unique bosses. Silverbolt's single point in Vengeance was purely for any unbreakable PIs. Silverbolt took Hell at P3, as I had a feeling he could handle it. He could, all the way through.

Tactics were reversed from NM, Silverbolt was in front tanking the monster mobs while his mercenary hung behind and poked them with his polearm but mainly remained in a safe position. Due to max block and around 11k defense Silverbolt was as much a tank as possible. That coupled with a decent amount of life leech meant he could survive almost any mob encountered head-on. The only monsters he let the mercenary lead was against Ghosts so they didn't drain his mana away.

Silverbolt did keep the trend going with a single death in Act IV. I was being careful and using Vengeance only in the Chaos Sanctuary. However while swinging against a Doom Knight one of those mana draining wisps drained away all of Silverbolt's mana almost instantly (it was low to begin with). At almost the exact same time an Oblivion Knight cursed him with Iron Maiden. So when Silverbolt's swing landed home he died, or his swing after killed him. Either way an unfortunately chain of events conspired to Silverbolt's only death in Hell. From there onward he ripped through the rest of the difficulty without any other unfortunate occurrences. Baal and his minions were almost anti-climatic after all the effort of getting to the World Stone Keep in the first place. Especially since the Throne Room consisted of Dolls, OKs and the Witches that kept Silverbolt cursed the entire level. At least that overrode Iron Maiden, the only plus possible.

No plans to do anything else with Silverbolt. I did find a Lower Kurast map with two campfires for him. It's possible I'll use him for LK running to pop all chests/logs/bodies in the area once and a while. I'm not really going to try for thousands of runs with him, since a single run takes a few minutes easily. Other than that Silverbolt will retire comfortably.

Stats:
Level 84
Strength - 105(126)
Dexterity - 78(106)
Vitality - 317(352)
Energy - 15(15)

Life - 1157(1357)
Mana - 139(317)

Lightning Resistance - 90
Fire Resistance - 90
Cold Resistance - 88
Poison Resistance - 57

Skills:
Zeal - 20(28)
Fanaticism - 20(26)
Sacrifice - 20(28)
Holy Shield - 20(28)
Vengeance - 1(9)
Defiance - 7(13)

Equipment:
Weapon: Heaven's Light (Amn-Shael)
Armor: Guardian Angel (Ort)
Shield: Herald of Zakarum (Pdiamond)
Boots: Gore Rider
Belt: String of Ears
Gloves: Laying of Hands
Helm: Rockstopper (Thul)
Ring 1: Raven Frost
Ring 2: Angelic Halo
Amulet: Angelic Wings

Mercenary (Might Desert Warrior)
Helm: Vampire Gaze
Armor: Duriel's Shell
Weapon: Reaper's Toll

Hellforge
NM - Io
Hell - Fal