diff --git a/zone/client.cpp b/zone/client.cpp index 3896fd058..bc42c3db0 100644 --- a/zone/client.cpp +++ b/zone/client.cpp @@ -1291,7 +1291,7 @@ void Client::ChannelMessageSend(const char* from, const char* to, uint8 chan_num if (senderCanTrainSelf || weAreNotSender) { if ((chan_num == ChatChannel_Group) && (ListenerSkill < 100)) { // group message in unmastered language, check for skill up - if (m_pp.languages[language] <= lang_skill) + if (language < MAX_PP_LANGUAGE && m_pp.languages[language] <= lang_skill) CheckLanguageSkillIncrease(language, lang_skill); } } @@ -6519,8 +6519,7 @@ void Client::Doppelganger(uint16 spell_id, Mob *target, const char *name_overrid npc_type = made_npc; - int summon_count = 0; - summon_count = pet.count; + int summon_count = pet.count; if(summon_count > MAX_SWARM_PETS) summon_count = MAX_SWARM_PETS; @@ -6541,7 +6540,7 @@ void Client::Doppelganger(uint16 spell_id, Mob *target, const char *name_overrid NPC* swarm_pet_npc = new NPC( (npc_dup!=nullptr)?npc_dup:npc_type, //make sure we give the NPC the correct data pointer 0, - GetPosition() + glm::vec4(swarmPetLocations[summon_count], 0.0f, 0.0f), + GetPosition() + glm::vec4(swarmPetLocations[summon_count - 1], 0.0f, 0.0f), GravityBehavior::Water); if(!swarm_pet_npc->GetSwarmInfo()){ @@ -11753,4 +11752,4 @@ void Client::Undye() } database.DeleteCharacterDye(CharacterID()); -} \ No newline at end of file +}