Stack Exchange is the Worst Place Ever to Ask a Question

For my new campaign I wanted to get a word similar to Necromancer that I could use as a Class name as Necromancer has been overdone. So I asked a question on Stack Exchange but I should have known better. One hour later and the question has been down voted to oblivion, closed, and a minor war has erupted in the comments:

stackexchangefail

There is something deeply, deeply wrong with the majority of people who answer questions on Stack Exchange, they’re rude, opinionated, pedantic beyond all reason, and just complete failures at answering questions, which is the one thing that they should actually be useful for.

This is not the first time I’ve tried to ask a simple question on Stack Exchange, I’ve been similarly horrified several times in the last year or two and always deleted the question as soon as possible. This time I decided not to use my own Stack Exchange ID and simply use a throwaway email address. Thank goodness.

There is something terrible that has happened to Stack Exchange, the inmates have taken it over and they are a seriously toxic group of unpleasant people.

Wildstar, not so Wild and not so Shiny

I’ve been playing Wildstar for a week or so now and I’m starting to think that it’s not all that. It doesn’t do anything ‘new’ just attempts to use all the popular stuff that everyone else has done and spin it with attitude.

Which would be fine for a free to play MMO but this is a full price subscription game and in the current gaming climate I think that most people will want something new and interesting in order to pay for a subscription not recycled concepts that are put together nicely.

It’s not that Wildstar is a bad game it’s just that it lacks a certain something to make it a total winner in my book. It’s bland and a bit boring.

A Million Years from Home

A million years from home ReRebekha Windmourner sat on a lump of rock gazing out over the ancient plains and shielding her eyes against the sun. A little ways away, in a muddy stream, the professor was exclaiming over some large footprints left in the mud while the ape looked on in patient puzzlement.

Raising her musket at a shadow on the sky Rebekha relaxed after a moment. The thunder lizards could be dangerous and even for an experienced shooter like her it could take several well placed shots to down a moderately sized one. That gave the faster ones plenty of time to get close so the sooner they were spotted the better.

In many ways Rebekha was glad to be away from the charnel house stink of the beachhead. Although it was dangerous for small groups out in the wilds at least it was better than herding enormous lizards into the slaughterhouse, which is why she had jumped at the professor’s offer of employment.

It was only a few more weeks until Rebekha and her ape friend would be able to ship out with enough cash in hand to pay for repairs and hire crew for another venture. This time, she vowed, things would be different.

Disease, Blindness, and Death

are all a result of excessive masturbation…

In relation to DDO however these are some of the additional effects that can be applied to your character thanks to enemy spellcasters, monsters, and traps. We’re going to look at the following effects with regards to gear:

  • Fear
  • Poison
  • Disease
  • Blindness
  • Paralysis
  • Death

All of the special effects in the game can be prevented or reduced with the right gear.

Poison and Disease

Poison and disease work in similar ways by damaging your stats thus making you weaker and so easier for the enemies to kill you. Diseases usually last longer and are harder to save against but do less damage. Proof Against Poison and Proof Against Disease items are what you need to protect from this. Your only other option is to use thes Neutralize Poison or Cure Disease spells (as applicable) from a friendly spellcaster, ‘clickie’ item, or a potion.

A Proof Against Poison/Disease item has an associated bonus that is applied to saves against poison/disease damage and effects.

Blindness

NPC spellcasters will outright blind you, cast an area effect spell that blinds everyone, or an enemy may have an attack that will blind you. Without this immunity you will see a black screen and have a very difficult time. You can buy blindness removal potions, wands, wait for a friendly spell caster to use one of these, or use a clickie of Blindness Removal. Blindness Ward items usually come as goggles.

Death

Deathblock – This immunity will stop ‘death-like’ spells from killing you. These are mostly one-shot kill spells and an exact list is only known by the developers. Slay living, finger of death, Phantasmal killer, and destruction are the spells you will see the most and this will make you immune to instantly dying from them. Phantasmal Killer will by your first, coming in the form of Tharaak Hounds who will cast it on you. Slay living and finger of death will be cast by beholders and enemy casters by 8th level dungeons, some earlier. Destruction spell will probably be seen first in the raid ‘The tempest Spine’ and is cast by the giants in there. This only protects you from dying specifically from the death effect of those spells, nothing else.

Fear – Normally you would want a fear immunity item at first level, however that is impossible. Until you can find one you have to use fear removal potions on each other and rely on your saving throw. The ‘Reaver’s Ring’ is usable at 8th level and you need to get one. They are cheap on the auction house and can also be looted in ‘the Xorian Cypher’. The spell ‘Greater Heroism’ will also prevent Fear, but that is a high level spell (another is ‘Heroes Feast’). Crafting items at end game can also add immunity to fear. Fear immunity will also prevent ‘despair’ caused by Mummies which paralyzes you in place and will lead to your demise. You need this item.

DDO Traps by EllisDee37

This is from a post by EllisDee37 one of the best forum contributors I have seen:

The traps in DDO are marvels of game design. For a long time when I started playing, I thought an area was trapped and the animations were just window dressing. I was wrong.

The individual elements of the traps are very finely designed. You can maneuver in between blades/spikes/whatever or time them to avoid all damage completely, no saving throws (or evasion) needed. Some specific examples:

Some spinning blades spin for a few seconds, then fold up and disappear into the ground for a couple seconds, then come back out and start all over again. When they disappear in the ground it is safe to run through that area. If there are many spinning blades of this “disappearing” variety, watch them for a minute or so and you’ll invariably see a pattern to their specific design that allows a safe path through them with proper timing.

Other spinning blades move while they spin. In almost all cases, their movement opens up safe pathways through even without waiting for them to fold up and disappear, since not all moving blades disappear.

Spike traps are the most obvious traps with safe lanes. Once activated, it is trivially easy to move between the rows of spikes to avoid all harm.

Guillotine-style blade traps have a fixed timing pattern. Watch them for a bit to see if there’s a longer pause at any point. If so, use that longer pause to navigate through. If not, well, it’s a video game, time to dust off your fine motor skills. heh. You can get through without it hitting you.

Most jet traps (acid, fire, poison, etc…) can simply be jumped over. As a general rule, the closer to the wall the jet is coming from the less high your jump needs to be. Stock up on jump potions from the market and you should be good to go.

Dart traps are similar to spike traps but the safe lanes are a bit less forgiving.

DDO Levelling Guide 7 to 10

Zone Adventure Level Source Notes and Instructions
The
Marketplace
       Start here for Veteran 7
Port Agents       Stock up on   hirelings, ammunition, wands, and potions. Go to House Deneith or Harbor Port   Agent and travel to Three Barrel Cove. Bind to the Spirit Binder in the inn   then go outside and pick up all quests in harbour area.
Port Agents Three Barrel Cove 5-7 Three Barrel Cove Complete all   quests and return to House Deneith when finished. Sell any items that aren’t   immediately useful as you go along but make sure to pick up all of the   Corsair’s Cunning three item set – repeat quests as required to get it (you   will want it for ‘The Pit’ below). The Legend of Two Toed Tobias is the   closest to the town and can be easily repeated for the end reward.
 House   Deneith  The Black   Loch  7 Sentinels of   Stormreach After completing   this head for Vargus d’Deneith and pick up ‘The Pit’. Then go to the   Anvilfire Inn and bind to the Spirit Binder.
House Deneith The Pit 7 F2P Notoriously   difficult so can be skipped but very good XP if you follow the guide.   Afterwards pick up Bargain of Blood (7) from Lille d’Deneith, located in   House Deneith, before heading to House Jorasco
House Deneith General 8 (F2P) There are   additional quests available in the Anvilfire Inn and nearby some of which are   free to play
House Jorasco Delera’s Tomb 5-8 Delera’s Graveyard Go to the Open   Palm Inn, pick up the initial Delera quest from Acolyte Hestair, and bind to   the Spirit Binder
House Jorasco General 5-8 F2P Most of these   quests are free to play, one quest is picked up in the Drowning Sorrows Inn.   Some of the quests from House Jorasco are level 11 so ignore those until   later
The Marketplace The Searing   Heights 4-7 Sentinels of   Stormreach Wilderness area   with entrance to Bargain of Blood dungeon
The Marketplace Devil Assault 6  F2P Leads to   Chronoscope raid
House Deneith General 6-8 (F2P) Don’t forget to   visit the Anvilfire Inn again
House Deneith Sorrowdusk Isle 6-10 Sorrowdusk Isle Do first quest   chain now and second later
House Deneith Sentinels of   Stormreach 7-8 Sentinels of   Stormreach First quest is   Bargain of Blood, see above
House Cannith Cannith Challenges 8 Cannith Challenge   Pack There are a more   of these challenges available from level 8:

  • Kobold Island – The        Disruptor
  • Dr Rushmore’s Mansion –        Moving Targets
  • Lava Caves – Colossal        Crystals
  • Extraplanar Palace – The        Dragon’s Hoard
House Phiarlan The Necropolis 8 Necropolis Part 2 Litany of the Dead   Part 2
House Phiarlan Ruins of Threnal 8-10 Ruins of Threnal  
House Kundarak Vault of Night 8-9 Vault of Night Leads to Vault of   Night raid
House Kundarak The Red Fens 9 The Red Fens  
aHouse Deneith Sorrowdusk Isle 6-10 Sorrowdusk Isle Do second quest   chain now
Port Agents Ataraxia’s Haven 10 Ataraxia’s Haven  

Handy Tip for Virtual Machines

When I’m booting up a virtual machine on my PC I always have to dig into the network details or run ipconfig in  order to determine the IP Address before I can use remote desktop. To save one of those steps you can run bginfo from the startup folder to get it to automatically write the IP Address and other details to the desktop background:

http://technet.microsoft.com/en-us/sysinternals/bb897557.aspx

and

http://windows.microsoft.com/en-us/windows/run-program-automatically-windows-starts

Eldritch Coding Horrors, Part 1

I found this terror today in a legacy application.

Program A uses SetWindowLong to hook the message loop for a Windows Form:

[sourcecode language=”VB”]

Friend Function StartListening() As Boolean
SetWindowLong(m_MappedWndHandle, GWL_WNDPROC, AddressOf WindowProcedure)
End Function

[/sourcecode]

Program A then shells program B. Program B sends a WM_COPYDATA message to program A. Program A intercept the message, reads the data, and then passes the message to the form:

[sourcecode language=”VB”]

Public Function WindowProcedure(ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If msg = WM_COPYDATA Then
objMapMemoryData.ReadMessage lParam
End If
WindowProcedure = CallWindowProc(objMapMemoryData.GetWindowProcedureAddress, hwnd, msg, wParam, lParam)
End Function

[/sourcecode]

objMapMemoryData.ReadMessage raises an event that is handled by the Form:

[sourcecode language=”VB”]

Friend Function ReadMessage(ByVal lParam As Long) As Boolean
‘SNIP: Copy memory around
RaiseEvent MapMemoryDataEvent
End Function

Private Sub objMapMemoryData_MapMemoryDataEvent()
‘SNIP: Process event here
End Sub

[/sourcecode]

To Bind or Not To Bind That is the Question

One of the things that VB6 is very good at is late binding. Back in the days before .NET late binding or OLE Automation as it was also known was one of the only ways to do certain tasks such as create reports in Excel, run Word mail merges from databases, or print nicely formatted documents. However there were downsides too. Applications that late bound to DLLs and EXEs had no means to ensure that the target supported the call being made or even that the target was installed on the PC. This allowed difficult to debug problems to creep into your program.

 So the best solution to late binding problems was to early bind to any DLLs that you wanted to use. This way you could ensure that the interface was correct and that the DLL was installed on the system. However this led to another problem: DLL Hell. When an updated DLL was installed your system had to keep track of each version of the DLL and make sure that the right program called the right version. If a DLL was relied upon by a lot of programs and was regularly updated then a new installation could mess up an old program.

 So .NET included ‘xcopy’ installation – simply include the right version of each referenced DLL in the same directory as the application and late binding became something that only ‘bad’ programmers did. Early bound DLLs also need to be loaded by the system when your program initiates.

 The thing is that late binding solves a certain class of problem, one that often occurs in legacy applications. When adding new features supported by a DLL or refactoring old features to use new DLLs early binding to the DLL can cause problems with your installation program/routine, especially where DLL Hell issues have been previously overcome or there are a large number of support DLLs required for the application.

 So a simple approach to enhancing or refactoring an old application is to develop with the references early bound and then switch to late binding and copy the required DLLs into either the application directory or another suitable location.