* removed the double level gain messages to display once either the level gained or the level.
* implement the message "You will now lose experience when you die" and "Your items will no longer stay with you..." when reach a certain level already sets in the rule table.
Syntax on NPC is:
e.other:QuestReward(e.self,copper,silver,gold,platinum,item,experience,factionid,factionvalue);
This will give you any or all of the rewards and their messages with one call, including the quest ding sound. Any item is sent to your inventory, like SummonItem does now. The coin message is generated by the client, and will give you a message for each coin type (You recieve 5 copper...). No way around that, but it's still useful if the reward only calls for a single type.
We now send the PlayerState in the spawn struct to allow clients
to see other bard animations with instrument to be played if they
zone in after the bard equipped the instrument
OP_WeaponEquip2 and OP_WeaponUnequip2 renamed to OP_PlayerStateAdd
and OP_PlayerStateRemove
Still needs work: Get AI controlled mobs sending the correct
PlayerStates. (stunned, attacking, etc)
This is a rather naive implementation, we should really save the
PlayerState server side so we can have newly zoned in clients
after the equip happened to see the animation. But until we find
all the places the PlayerState is sent, this is fine.
-Identified Size / SolidType fields in newer clients and properly exported it to EQEmu for use in UF, RoF, RoF2 via perl accessors. (Should work in LUA, no testing was done though for LUA)
-Added a sanity check for size to objects. Any size over 5000.f seems to crash the newer clients' graphical engines and PEQ has some containers filled in with bogus values.
-Added the ability to return a value on perl function EVENT_PLAYER_PICKUP which sends a fake dropped item ID to the client to generate the appropriate client response so the item can stay on the ground and not be 'picked up'. Should also work in LUA, didn't test LUA.
-Renamed unknown008 and unknown010 to size and solidtype respectively for objects.
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.
was bad. Blinded mobs can still cast spells when in melee range. The
original fear code had no blind rolled into it, I added that. This was an
overright. I changed the macro to use bonues and fleemode instead of
looking at curfp. Testing looks good to me.
New rules:
Combat:MeleePush turns melee push on/off
Combat:MeleePushChance is the chance that an NPC will be pushed
Clients are pushed every successful hit, need to verify or disprove this
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.
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.