Page 1 of 1

So this is a thing now apparently

Posted: Mon Dec 22, 2014 2:55 am
by kjLotus
Image

Re: So this is a thing now apparently

Posted: Mon Dec 22, 2014 3:08 am
by atom0s
I've summoned the devil inside of kj to do magical things lol.

Re: So this is a thing now apparently

Posted: Mon Dec 22, 2014 7:21 pm
by whasf
If you could make them fight each other, that'd be +1

Re: So this is a thing now apparently

Posted: Mon Dec 22, 2014 7:32 pm
by kjLotus
whasf wrote:If you could make them fight each other, that'd be +1
2 minute of scripting (promathia fights prishe in the last CoP fight, so all the system stuff is there already)

Re: So this is a thing now apparently

Posted: Wed Dec 24, 2014 12:00 am
by tagban
Lol, I want to just leave fenrir near the AH in Bastok and San D.. encourage windurst as the only safe bet.. :) Actually if this really is possibly server wide.. Could start adding scripted events for random new things to happen, would be pretty slick for servers wanting to do special things.

Re: So this is a thing now apparently

Posted: Wed Dec 24, 2014 12:57 am
by kjLotus
tagban wrote:Lol, I want to just leave fenrir near the AH in Bastok and San D.. encourage windurst as the only safe bet.. :) Actually if this really is possibly server wide.. Could start adding scripted events for random new things to happen, would be pretty slick for servers wanting to do special things.
ya you can spawn anything you want in any zone. only restriction is that they don't count as mobs for certain things (aggro, aoes)

Re: So this is a thing now apparently

Posted: Wed Dec 24, 2014 9:43 am
by tagban
How does that work now ? lol

Re: So this is a thing now apparently

Posted: Wed Dec 24, 2014 11:09 am
by marcux
Wait, you can now spawn in any zone, not just the zone the mob is bound to?
how?

Re: So this is a thing now apparently

Posted: Wed Dec 24, 2014 1:47 pm
by atom0s
marcux wrote:Wait, you can now spawn in any zone, not just the zone the mob is bound to?
how?
We are making use of a special table in the game client to handle it. Inside of the client there is a map of memory called the NPCMAP. This area of memory holds all the entities in the game of the current zone.
This area of memory is currently setup as the following:

Code: Select all

struct NPCMAP
{
    Entity _NPCEntities[1024];
    Entity _PlayerEntities[1024];
    Entity _DynamicEntities[2048];
};
The first 1024 entries in this map are non-playable characters. This is bound to the specific zone and is loaded from the DAT files. This includes all the NPCs such as quest mobs, towns people, monsters, event triggers, etc.
Next, the players take up the next 1024 entries in this table. This table is specific to players and players alone.
The last table holds all other "dynamic" entities. This means things that are spawned into the zone by either players or events.

By using the dynamic entity table, the game client allows the server to spawn any entity in the game, inside of any zone. However it does have drawbacks currently with DSP as we are not actively monitoring this collection of entities for things like aggro, AoE magic / abilities, and other things that are typically specific to NPCs only.

It's more of a fun feature then implementing something serious since there are only a handful of instances where the retail servers use this table to spawn in specific entities for events. kj mentioned a good example, such as Prishe in the last CoP fight. She is loaded into the zone using this method.