mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 22:01:30 +00:00
Merge branch 'master' of https://github.com/EQEmu/Server
This commit is contained in:
commit
21ce6efc73
@ -2,6 +2,11 @@ EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
||||
-------------------------------------------------------
|
||||
== 12/27/2014 ==
|
||||
Akkadius: Add option to automatic database upgrade script 5) Download latest Opcodes from Github
|
||||
Trevius: (RoF2) Fixed dropping items on the ground so they go to ground level instead of camera height.
|
||||
Trevius: Show Helm Option should be functional again.
|
||||
Kayen: Implemened npc special ability (43) CASTING_RESIST_DIFF which sets innate resist modifier on
|
||||
ALL spells used by that NPC. Ie. 43,1,-200 will set a -200 innate resist diff, so if your npc cast
|
||||
a spell that has a -10 resist modifier the final resist diff would be -210.
|
||||
|
||||
== 12/24/2014 ==
|
||||
Trevius: (RoF+) Added herosforgemodel field to the npc_types table.
|
||||
|
||||
@ -1994,17 +1994,17 @@ namespace RoF2
|
||||
outapp->WriteUInt32(emu->drakkin_tattoo);
|
||||
outapp->WriteUInt32(emu->drakkin_details);
|
||||
|
||||
outapp->WriteUInt8(0); // Unknown
|
||||
outapp->WriteUInt8(0); // Unknown
|
||||
outapp->WriteUInt8(0); // Unknown
|
||||
outapp->WriteUInt8(0); // Unknown
|
||||
outapp->WriteUInt8(0); // Unknown
|
||||
outapp->WriteUInt8(0); // Unknown 0
|
||||
outapp->WriteUInt8(0xff); // Unknown 0xff
|
||||
outapp->WriteUInt8(1); // Unknown 1
|
||||
outapp->WriteUInt8(0xff); // Unknown 0xff
|
||||
outapp->WriteUInt8(1); // Unknown 1
|
||||
|
||||
outapp->WriteFloat(5.0f); // Height ?
|
||||
outapp->WriteFloat(5.0f); // Height
|
||||
|
||||
outapp->WriteFloat(3.0f); // Unknown
|
||||
outapp->WriteFloat(2.5f); // Unknown
|
||||
outapp->WriteFloat(5.5f); // Unknown
|
||||
outapp->WriteFloat(3.0f); // Unknown 3.0
|
||||
outapp->WriteFloat(2.5f); // Unknown 2.5
|
||||
outapp->WriteFloat(5.5f); // Unknown 5.5
|
||||
|
||||
outapp->WriteUInt32(0); // Primary ?
|
||||
outapp->WriteUInt32(0); // Secondary ?
|
||||
@ -2330,7 +2330,7 @@ namespace RoF2
|
||||
|
||||
outapp->WriteUInt64(emu->exp); // int32 in client
|
||||
|
||||
outapp->WriteUInt8(0); // Unknown - Seen 5 on Live
|
||||
outapp->WriteUInt8(5); // Unknown - Seen 5 on Live - Eye Height?
|
||||
|
||||
outapp->WriteUInt32(emu->platinum_bank);
|
||||
outapp->WriteUInt32(emu->gold_bank);
|
||||
|
||||
@ -1817,45 +1817,8 @@ void Client::FillSpawnStruct(NewSpawn_Struct* ns, Mob* ForWho)
|
||||
}
|
||||
ns->spawn.size = 0; // Changing size works, but then movement stops! (wth?)
|
||||
ns->spawn.runspeed = (gmspeed == 0) ? runspeed : 3.125f;
|
||||
if (!m_pp.showhelm) ns->spawn.showhelm = 0;
|
||||
ns->spawn.showhelm = m_pp.showhelm ? 1 : 0;
|
||||
|
||||
/*
|
||||
// Equipment/Weapons already set from Mob::FillSpawnStruct
|
||||
// Commenting this out for now
|
||||
const Item_Struct* item = nullptr;
|
||||
const ItemInst* inst = nullptr;
|
||||
int16 invslot;
|
||||
|
||||
for (uint32 matslot = 0; matslot < _MaterialCount; matslot++)
|
||||
{
|
||||
// Only Player Races Wear Armor
|
||||
if (IsPlayerRace(race) || matslot > 6)
|
||||
{
|
||||
invslot = Inventory::CalcSlotFromMaterial(matslot);
|
||||
if (invslot == INVALID_INDEX)
|
||||
continue;
|
||||
|
||||
if ((inst = m_inv[invslot]) && inst->IsType(ItemClassCommon))
|
||||
{
|
||||
item = inst->GetItem();
|
||||
|
||||
if (matslot > 6)
|
||||
{
|
||||
// Weapon Models
|
||||
ns->spawn.equipment[matslot].material = GetEquipmentMaterial(matslot);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Armor Materials/Models
|
||||
ns->spawn.equipment[matslot].material = item->Material;
|
||||
ns->spawn.equipment[matslot].elitematerial = item->EliteMaterial;
|
||||
ns->spawn.equipment[matslot].heroforgemodel = GetHerosForgeModel(matslot);
|
||||
ns->spawn.colors[matslot].color = m_pp.item_tint[matslot].rgb.use_tint ? m_pp.item_tint[matslot].color : item->Color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
bool Client::GMHideMe(Client* client) {
|
||||
|
||||
@ -135,7 +135,8 @@ enum {
|
||||
NPC_CHASE_DISTANCE = 40,
|
||||
ALLOW_TO_TANK = 41,
|
||||
IGNORE_ROOT_AGGRO_RULES = 42,
|
||||
MAX_SPECIAL_ATTACK = 43
|
||||
CASTING_RESIST_DIFF = 43,
|
||||
MAX_SPECIAL_ATTACK = 44
|
||||
};
|
||||
|
||||
typedef enum { //fear states
|
||||
|
||||
@ -118,7 +118,15 @@ Object::Object(Client* client, const ItemInst* inst)
|
||||
m_data.heading = client->GetHeading();
|
||||
m_data.x = client->GetX();
|
||||
m_data.y = client->GetY();
|
||||
m_data.z = client->GetZ();
|
||||
if (client->GetClientVersion() >= EQClientRoF2)
|
||||
{
|
||||
// RoF2 places items at player's Z, which is 0.625 of their height.
|
||||
m_data.z = client->GetZ() - (client->GetSize() * 0.625f);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_data.z = client->GetZ();
|
||||
}
|
||||
m_data.zone_id = zone->GetZoneID();
|
||||
|
||||
decay_timer.Start();
|
||||
|
||||
@ -4206,6 +4206,10 @@ float Mob::ResistSpell(uint8 resist_type, uint16 spell_id, Mob *caster, bool use
|
||||
|
||||
//Get resist modifier and adjust it based on focus 2 resist about eq to 1% resist chance
|
||||
int resist_modifier = (use_resist_override) ? resist_override : spells[spell_id].ResistDiff;
|
||||
|
||||
if(caster->GetSpecialAbility(CASTING_RESIST_DIFF))
|
||||
resist_modifier += caster->GetSpecialAbilityParam(CASTING_RESIST_DIFF, 0);
|
||||
|
||||
int focus_resist = caster->GetFocusEffect(focusResistRate, spell_id);
|
||||
resist_modifier -= 2 * focus_resist;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user