diff --git a/server/gameserver/android.cc b/server/gameserver/android.cc index 5bb6a7ef..4c767fae 100644 --- a/server/gameserver/android.cc +++ b/server/gameserver/android.cc @@ -12,6 +12,8 @@ #include "mt/Equip.h" #include "mt/Robot.h" #include "mt/Text.h" +#include "mt/Hero.h" +#include "mt/Item.h" Android::Android():Human() { @@ -164,15 +166,18 @@ void Android::InternalUpdate(int delta_time) void Android::GiveEquip() { - const mt::Equip* weapon_meta = mt::Equip::GetById(robot_meta->weapon_id()); - if (weapon_meta) { - Weapon& weapon = weapons[GUN_SLOT1]; - weapon.weapon_idx = GUN_SLOT1; - weapon.weapon_id = weapon_meta->id(); - weapon.ammo = 0; - weapon.meta = weapon_meta; - weapon.Recalc(); - SetCurrWeapon(&weapon); + const mt::Item* item_meta = mt::Item::GetById(meta->default_weapon()); + if (item_meta) { + const mt::Equip* weapon_meta = mt::Equip::GetById(item_meta->relationship()); + if (weapon_meta) { + Weapon& weapon = weapons[GUN_SLOT1]; + weapon.weapon_idx = GUN_SLOT1; + weapon.weapon_id = weapon_meta->id(); + weapon.ammo = 0; + weapon.meta = weapon_meta; + weapon.Recalc(); + SetCurrWeapon(&weapon); + } } sex = robot_meta->sex(); if (sex == 0) { diff --git a/server/gameserver/netdata.cc b/server/gameserver/netdata.cc index ac74c25a..ff49f141 100644 --- a/server/gameserver/netdata.cc +++ b/server/gameserver/netdata.cc @@ -448,13 +448,16 @@ void BattleDataContext::ParseResult(a8::XObject& obj) } #if 1 if (hero_ability_->hero_meta) { - const mt::Equip* meta = mt::Equip::GetById(hero_ability_->hero_meta->default_weapon()); - if (meta) { - weapon1_ability_ = std::make_shared(); - weapon1_ability_->weapon_uniid = 0; - weapon1_ability_->weapon_lv = 1; - weapon1_ability_->quality = 1; - weapon1_ability_->weapon_meta = meta; + const mt::Item* item_meta = mt::Item::GetById(hero_ability_->hero_meta->default_weapon()); + if (item_meta) { + const mt::Equip* meta = mt::Equip::GetById(item_meta->relationship()); + if (meta) { + weapon1_ability_ = std::make_shared(); + weapon1_ability_->weapon_uniid = 0; + weapon1_ability_->weapon_lv = 1; + weapon1_ability_->quality = 1; + weapon1_ability_->weapon_meta = meta; + } } } #else