mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-21 10:11:30 +00:00
Merge git://github.com/EQEmu/Server into Development
Conflicts: changelog.txt
This commit is contained in:
commit
ca3b5a3221
@ -1,11 +1,16 @@
|
|||||||
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
||||||
-------------------------------------------------------
|
-------------------------------------------------------
|
||||||
|
|
||||||
|
== 11/28/2014 ==
|
||||||
|
Trevius: Fixed a zone crash related to numhits for spells.
|
||||||
|
Trevius: Fixed a query related to group leaders logging in.
|
||||||
|
Trevius (Natedog): Fixed a world crash related to attempting to join an adventure with Mercenaries.
|
||||||
|
|
||||||
== 11/27/2014 ==
|
== 11/27/2014 ==
|
||||||
Kayen: Projectiles (ie Arrows) fired from archery will now do damage upon impact instead of instantly (consistent w/ live).
|
Kayen: Projectiles (ie Arrows) fired from archery will now do damage upon impact instead of instantly (consistent w/ live).
|
||||||
Optional SQL: utils/sql/git/optional/2014_11_27_ProjectileDmgOnImpact.sql
|
Optional SQL: utils/sql/git/optional/2014_11_27_ProjectileDmgOnImpact.sql
|
||||||
|
|
||||||
== 11/24/2014 ==
|
== 11/25/2014 ==
|
||||||
Trevius: Spells that modify model size are now limited to 2 size adjustments from the base size.
|
Trevius: Spells that modify model size are now limited to 2 size adjustments from the base size.
|
||||||
Trevius: Fix to prevent Mercenaries from being set as Group Leader.
|
Trevius: Fix to prevent Mercenaries from being set as Group Leader.
|
||||||
|
|
||||||
|
|||||||
@ -768,7 +768,10 @@ uint32 Database::GetCharacterID(const char *name) {
|
|||||||
std::string query = StringFormat("SELECT `id` FROM `character_data` WHERE `name` = '%s'", name);
|
std::string query = StringFormat("SELECT `id` FROM `character_data` WHERE `name` = '%s'", name);
|
||||||
auto results = QueryDatabase(query);
|
auto results = QueryDatabase(query);
|
||||||
auto row = results.begin();
|
auto row = results.begin();
|
||||||
if (row[0]){ return atoi(row[0]); }
|
if (results.RowCount() == 1)
|
||||||
|
{
|
||||||
|
return atoi(row[0]);
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3277,7 +3280,7 @@ char* Database::GetGroupLeaderForLogin(const char* name, char* leaderbuf) {
|
|||||||
if (group_id == 0)
|
if (group_id == 0)
|
||||||
return leaderbuf;
|
return leaderbuf;
|
||||||
|
|
||||||
query = StringFormat("SELECT `leadername` FROM `group_leader` WHERE `gid` = '%u' AND `groupid` = %u LIMIT 1", group_id);
|
query = StringFormat("SELECT `leadername` FROM `group_leaders` WHERE `gid` = '%u' LIMIT 1", group_id);
|
||||||
results = QueryDatabase(query);
|
results = QueryDatabase(query);
|
||||||
|
|
||||||
for (auto row = results.begin(); row != results.end(); ++row)
|
for (auto row = results.begin(); row != results.end(); ++row)
|
||||||
|
|||||||
@ -4169,7 +4169,8 @@ struct Arrow_Struct {
|
|||||||
/*070*/ uint8 unknown070;
|
/*070*/ uint8 unknown070;
|
||||||
/*071*/ uint8 item_type;
|
/*071*/ uint8 item_type;
|
||||||
/*072*/ uint8 skill;
|
/*072*/ uint8 skill;
|
||||||
/*073*/ char model_name[43];
|
/*073*/ uint8 unknown073[16];
|
||||||
|
/*089*/ char model_name[27];
|
||||||
/*116*/
|
/*116*/
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -54,10 +54,10 @@ void Adventure::AddPlayer(std::string character_name, bool add_client_to_instanc
|
|||||||
{
|
{
|
||||||
if(!PlayerExists(character_name))
|
if(!PlayerExists(character_name))
|
||||||
{
|
{
|
||||||
int client_id = database.GetCharacterID(character_name.c_str());
|
int32 character_id = database.GetCharacterID(character_name.c_str());
|
||||||
if(add_client_to_instance)
|
if(character_id && add_client_to_instance)
|
||||||
{
|
{
|
||||||
database.AddClientToInstance(instance_id, client_id);
|
database.AddClientToInstance(instance_id, character_id);
|
||||||
}
|
}
|
||||||
players.push_back(character_name);
|
players.push_back(character_name);
|
||||||
}
|
}
|
||||||
@ -70,8 +70,12 @@ void Adventure::RemovePlayer(std::string character_name)
|
|||||||
{
|
{
|
||||||
if((*iter).compare(character_name) == 0)
|
if((*iter).compare(character_name) == 0)
|
||||||
{
|
{
|
||||||
database.RemoveClientFromInstance(instance_id, database.GetCharacterID(character_name.c_str()));
|
int32 character_id = database.GetCharacterID(character_name.c_str());
|
||||||
|
if (character_id)
|
||||||
|
{
|
||||||
|
database.RemoveClientFromInstance(instance_id, character_id);
|
||||||
players.erase(iter);
|
players.erase(iter);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
++iter;
|
++iter;
|
||||||
|
|||||||
@ -275,7 +275,7 @@ public:
|
|||||||
int16 GetBuffSlotFromType(uint16 type);
|
int16 GetBuffSlotFromType(uint16 type);
|
||||||
uint16 GetSpellIDFromSlot(uint8 slot);
|
uint16 GetSpellIDFromSlot(uint8 slot);
|
||||||
int CountDispellableBuffs();
|
int CountDispellableBuffs();
|
||||||
void CheckNumHitsRemaining(uint8 type, uint32 buff_slot=-1, uint16 spell_id=SPELL_UNKNOWN);
|
void CheckNumHitsRemaining(uint8 type, int32 buff_slot=-1, uint16 spell_id=SPELL_UNKNOWN);
|
||||||
bool HasNumhits() const { return has_numhits; }
|
bool HasNumhits() const { return has_numhits; }
|
||||||
inline void Numhits(bool val) { has_numhits = val; }
|
inline void Numhits(bool val) { has_numhits = val; }
|
||||||
bool HasMGB() const { return has_MGB; }
|
bool HasMGB() const { return has_MGB; }
|
||||||
|
|||||||
@ -5558,7 +5558,7 @@ int16 Client::GetFocusEffect(focusType type, uint16 spell_id) {
|
|||||||
return realTotal + realTotal2 + realTotal3;
|
return realTotal + realTotal2 + realTotal3;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mob::CheckNumHitsRemaining(uint8 type, uint32 buff_slot, uint16 spell_id)
|
void Mob::CheckNumHitsRemaining(uint8 type, int32 buff_slot, uint16 spell_id)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
Field 175 = numhits type
|
Field 175 = numhits type
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user