281 Commits

Author SHA1 Message Date
Akkadius
c4cdf811e3 Fix for zone controller spawn events where npc isn't inserted into entity list yet 2016-01-22 13:42:14 -06:00
Akkadius
8425607460 Implemented standardized zone controller scripts (Rule Zone, UseZoneController) Defaulted to true
- When a zone boots, it will spawn an invisible npc by the name of zone_controller
	- Lua and Perl scripts can be represented with this npc as zone_controller.pl/lua
	- This NPC's ID is ruled be define ZONE_CONTROLLER_NPC_ID 10
	- Two EVENT's uniquely are handled with this NPC/controller (They only work with the zone_controller NPC)
		- EVENT_SPAWN_ZONE :: All NPC spawns in the zone trigger the controller and pass the following variables:
			$spawned_entity_id
			$spawned_npc_id
		- EVENT_DEATH_ZONE :: All NPC deaths in the zone trigger the controller event and pass the following variables:
			$killer_id
			$killer_damage
			$killer_spell
			$killer_skill
			$killed_npc_id
2015-12-29 04:08:10 -06:00
Paul Coene
0c56660692 Merge remote-tracking branch 'upstream/master' 2015-11-20 12:04:11 -05:00
Paul Coene
f3120f26ee Fix issue with mobs no depopping (due to spawn_events) while zone is idle. 2015-11-20 12:03:43 -05:00
Akkadius
f884d8d738 Fix an issue where during a depop cycle and NPC's are engaged by wiping hatelist before issuing NPC depop 2015-11-02 21:33:36 -06:00
Akkadius
33917fe2a9 - Add Zone Process ID (OS PID) as information passed back to world, ultimately with the ability to display it in the telnet console under 'zonestatus'
- Refactored some zoneserver/worldserver code for readability
2015-10-31 20:19:57 -05:00
Michael Cook (mackal)
4ae02e5efe XTargets will move auto entries up on removal like live
This also makes use of the bulk packet so not a crap ton of packets
generated.
2015-09-03 02:58:04 -04:00
Michael Cook (mackal)
7cef9a05dd Bump witness fail chance to 50 2015-07-18 00:57:10 -04:00
Michael Cook (mackal)
a52ab7ae48 Rework spell aggro based on http://www.eqemulator.org/forums/showthread.php?t=39819<F37> 2015-07-16 22:38:32 -04:00
KimLS
d5098a56e0 Timers and some more loading stuff 2015-06-20 19:44:00 -07:00
KimLS
6515879c14 Merge branch 'master' into aa 2015-06-07 19:42:57 -07:00
KimLS
3d1dc6314d New style AA data loading, still rudimentary 2015-06-07 19:42:12 -07:00
Michael Cook (mackal)
f198ab714f Make inspect buffs LAA optional for target buffs 2015-06-07 22:31:21 -04:00
Russell Kinasz
2c6fd44811 Implemented encounter timers - no spawn required 2015-06-02 12:25:09 -07:00
Uleat
2308d3e880 Fix for EntityList::CheckSpawnQueue() debug assertion failure crash 2015-05-15 22:49:59 -04:00
Paul Coene
77dca484fe The mob AT_Anim (as set in spawn2) was not correctly displaying in
various situations.

First, the set function for mob _appearance optimized sending a message
if the new appearance was equal to the old.  This cann't be done, as
the 1st time the zone runs there is no client when the set function is
called.  If we're combining set/send, as we are, better to always do both.  This fixes several of the cases.

Repop also did not work, as no code was being called reliably to set
appearance and update the client based on code path and various flags.  This is also fixed.
2015-05-06 15:39:36 -04:00
Paul Coene
bf93d72a43 Added more changes so mobs armor will appear correctly (pc races only)
when the spawn vie gm command or normally with loot tables that equip.

Refined previous changes that fixed the issue with zoning in and not seeing
previosuly spawned armor by sharing the same module.
2015-04-02 13:25:12 -04:00
Paul Coene
a5872b165f Zoning into a new zone did not properly display PCs with tree/object illusions
and NPCs wearing gear in non-weapon slots.

The illusion thing: Not sure why, but te opcode for BulkZoneSpawn doesn't
display the tree/object illusions.  I did notice that even OP_Illusion gets
rejected by the client if sent before Client_Ready.  Maybe that is why.  The
BULKSpawns cannot be sent that late, I tried moving it in the sequence but
it never did the illusions correctly, at any point.  So, we new new the
single spawn OP code for PCs with those illusions.  This works.

The NPC gear thing.  Same story with BulkZoneSpawn,  Not sure why.  The data
is sent correctly.  So now we update the client zoning in (only them) with
what the NPCs are wearing.  Every othe client already is up to date.
2015-04-01 13:00:38 -04:00
Uleat
c96ee79b1e Added ';' to safe_delete_array(data) in ~BulkZoneSpawnPacket() 2015-03-06 04:26:26 -05:00
Akkadius
1d462bfd0f Revert some entity related CastTo changes 2015-01-25 01:42:46 -06:00
Akkadius
609cad72d9 Convert Entity::CastToNPC to Log.Out with EQDEBUG remove 2015-01-24 22:22:30 -06:00
Akkadius
a31ad485e4 Convert Entity::CastToClient to Log.Out 2015-01-24 22:20:58 -06:00
Uleat
cc1d7d54c2 Implemented mob equipment light sources 2015-01-24 22:00:06 -05:00
KimLS
17af9e3808 Merge fixes, hopefully didn't break anything. 2015-01-23 13:36:27 -08:00
KimLS
269d56e1d0 Switched out our kinda juryrigged vector types for glm::vec types since we use that as a 3d math library already but never switched out the types 2015-01-23 00:01:10 -08:00
Akkadius
683a81a6c8 Post merge fixes 2015-01-21 18:39:36 -06:00
Akkadius
c5447778a6 Merge remote-tracking branch 'remotes/origin/master' into logging_changes
Conflicts:
	world/client.cpp
	world/worlddb.cpp
	zone/aggro.cpp
	zone/bot.cpp
	zone/client.cpp
	zone/client_packet.cpp
	zone/client_process.cpp
	zone/doors.cpp
	zone/entity.cpp
	zone/inventory.cpp
	zone/mob_ai.cpp
	zone/perl_client.cpp
	zone/spells.cpp
	zone/waypoints.cpp
	zone/zone.cpp
	zone/zonedb.cpp
	zone/zoning.cpp
2015-01-21 17:29:30 -06:00
Akkadius
3d74035e24 Merge remote-tracking branch 'remotes/origin/master' into logging_changes
Conflicts:
	zone/command.cpp
	zone/command.h
	zone/inventory.cpp
2015-01-21 16:40:46 -06:00
Akkadius
013216ff2b Remove Unneeded DebugBreak 2015-01-20 19:41:30 -06:00
Akkadius
a6a86f030c Remove Unneeded DebugBreak 2015-01-20 19:41:29 -06:00
Akkadius
56b0a2aa4f Remove Unneeded DebugBreak 2015-01-20 19:41:28 -06:00
Akkadius
07d2eab183 Remove Unneeded DebugBreak 2015-01-20 19:41:27 -06:00
Akkadius
90dd9f8aeb Remove Unneeded DebugBreak 2015-01-20 19:41:26 -06:00
Akkadius
32cba9083c Remove Unneeded DebugBreak 2015-01-20 19:41:25 -06:00
Akkadius
26b65a05a9 Remove Unneeded DebugBreak 2015-01-20 19:41:24 -06:00
Akkadius
0db638c8c0 Remove Unneeded DebugBreak 2015-01-20 19:41:23 -06:00
Akkadius
456356d626 Remove Unneeded DebugBreak 2015-01-20 19:41:22 -06:00
Akkadius
29fe791ad0 Remove Unneeded DebugBreak 2015-01-20 19:41:21 -06:00
Akkadius
6c545a144c Remove Unneeded DebugBreak 2015-01-20 19:41:20 -06:00
Akkadius
6e582fb68f Remove Unneeded DebugBreak 2015-01-20 19:41:19 -06:00
Akkadius
a19f7f702c Remove Unneeded DebugBreak 2015-01-20 19:41:18 -06:00
Akkadius
f44155a317 Remove Unneeded DebugBreak 2015-01-20 19:41:17 -06:00
Akkadius
7fef8de50a Remove Unneeded DebugBreak 2015-01-20 19:41:14 -06:00
Akkadius
440ca97a79 Remove Unneeded DebugBreak: 2015-01-20 19:40:55 -06:00
Akkadius
b5fe23a4c3 Remove commented std::cout : CastToTrap error 2015-01-20 01:30:56 -06:00
Akkadius
849ec2850f Remove commented std::cout : CastToTrap error 2015-01-20 01:30:53 -06:00
Uleat
e70e443950 Implemented 'enum class ClientVersion' -- added 'RoF2' to lua client version enumeration 2015-01-19 23:32:57 -05:00
Akkadius
0d9b6703a6 Rename debug.h to global_define.h, update cmakelists and such 2015-01-19 04:12:09 -06:00
Akkadius
abc2f9cace Convert 'Dropping client:' to Zone Status 2015-01-19 03:00:32 -06:00
Arthur Ice
f33eb9f8f3 Removed a usage of Mob::DistNoRootNoZ and used ComparativeDistanceNoZ instead 2015-01-18 03:09:08 -08:00