This commit is contained in:
aozhiwei 2022-09-16 21:01:41 +08:00
parent 5dc035e2aa
commit cacfc2e11b
2 changed files with 37 additions and 16 deletions

View File

@ -310,7 +310,7 @@ void InternalShot(Creature* c,
glm::vec4 v = transform * gun_muzzle_position;
bullet_born_offset = a8::Vec2(v.z *10*1, v.x*10*-1);
bullet_born_pos = c->GetPos() + bullet_born_offset;
if (c->IsPlayer()) {
if (c->IsPlayer() || c->IsCar()) {
#ifdef DEBUG
a8::XPrintf("offset:%f,%f angle:%f old_angle:%f angle_xy:%f,%f %f %f gun_muzzle_position:%f,%f,%f pos:%f,%f\n",
{bullet_born_offset.x,

View File

@ -590,20 +590,38 @@ private:
float l_y = anim_xobj->At("l")->At("y")->AsXValue().GetDouble();
float l_z = anim_xobj->At("l")->At("z")->AsXValue().GetDouble();
float p3_t = anim_xobj->At("t")->AsXValue().GetDouble();
float p3_x = anim_xobj->At("p3")->At("x")->AsXValue().GetDouble();
float p3_y = anim_xobj->At("p3")->At("y")->AsXValue().GetDouble();
float p3_z = anim_xobj->At("p3")->At("z")->AsXValue().GetDouble();
float p3_t = 0;
float p3_x = 0;
float p3_y = 0;
float p3_z = 0;
if (anim_xobj->At("p3") && anim_xobj->At("p3")->IsObject()) {
p3_t = anim_xobj->At("t")->AsXValue().GetDouble();
p3_x = anim_xobj->At("p3")->At("x")->AsXValue().GetDouble();
p3_y = anim_xobj->At("p3")->At("y")->AsXValue().GetDouble();
p3_z = anim_xobj->At("p3")->At("z")->AsXValue().GetDouble();
}
float p4_t = anim_xobj->At("t")->AsXValue().GetDouble();
float p4_x = anim_xobj->At("p4")->At("x")->AsXValue().GetDouble();
float p4_y = anim_xobj->At("p4")->At("y")->AsXValue().GetDouble();
float p4_z = anim_xobj->At("p4")->At("z")->AsXValue().GetDouble();
float p4_t = 0;
float p4_x = 0;
float p4_y = 0;
float p4_z = 0;
if (anim_xobj->At("p4") && anim_xobj->At("p4")->IsObject()) {
p4_t = anim_xobj->At("t")->AsXValue().GetDouble();
p4_x = anim_xobj->At("p4")->At("x")->AsXValue().GetDouble();
p4_y = anim_xobj->At("p4")->At("y")->AsXValue().GetDouble();
p4_z = anim_xobj->At("p4")->At("z")->AsXValue().GetDouble();
}
float p5_t = anim_xobj->At("t")->AsXValue().GetDouble();
float p5_x = anim_xobj->At("p5")->At("x")->AsXValue().GetDouble();
float p5_y = anim_xobj->At("p5")->At("y")->AsXValue().GetDouble();
float p5_z = anim_xobj->At("p5")->At("z")->AsXValue().GetDouble();
float p5_t = 0;
float p5_x = 0;
float p5_y = 0;
float p5_z = 0;
if (anim_xobj->At("p5") && anim_xobj->At("p5")->IsObject()) {
p5_t = anim_xobj->At("t")->AsXValue().GetDouble();
p5_x = anim_xobj->At("p5")->At("x")->AsXValue().GetDouble();
p5_y = anim_xobj->At("p5")->At("y")->AsXValue().GetDouble();
p5_z = anim_xobj->At("p5")->At("z")->AsXValue().GetDouble();
}
{
MetaData::Player* hero_meta = MetaMgr::Instance()->GetPlayer(hero_id);
@ -668,9 +686,12 @@ private:
float y = equip_xobj->At("y")->AsXValue().GetDouble();
float z = equip_xobj->At("z")->AsXValue().GetDouble();
float movex = equip_xobj->At("movex")->AsXValue().GetDouble();
float movey = equip_xobj->At("movey")->AsXValue().GetDouble();
float movez = equip_xobj->At("movez")->AsXValue().GetDouble();
float movex = equip_xobj->At("movex") ?
equip_xobj->At("movex")->AsXValue().GetDouble() : 0;
float movey = equip_xobj->At("movey") ?
equip_xobj->At("movey")->AsXValue().GetDouble() : 0;
float movez = equip_xobj->At("movez") ?
equip_xobj->At("movez")->AsXValue().GetDouble() : 0;
MetaData::Equip* equip_meta = MetaMgr::Instance()->GetEquip(equip_id);
if (equip_meta) {