1
This commit is contained in:
parent
fe2924f943
commit
64485476af
@ -419,12 +419,12 @@ void Bullet::MapServiceUpdate()
|
||||
Check(distance);
|
||||
}
|
||||
} while(!later_removed_ && move_length >= 0.0001f);
|
||||
#ifdef DEBUG1
|
||||
#ifdef DEBUG
|
||||
{
|
||||
if (sender.Get()->IsPlayer()) {
|
||||
if ((room->GetFrameNo() - create_frameno_) % 2 == 0) {
|
||||
float distance = (GetPos() - born_pos).Norm();
|
||||
a8::XPrintf("bullet_id:%d frame_no:%d speed:%f range:%f fly_distance:%f born_pos:%f,%f pos:%f,%f\n",
|
||||
a8::XPrintf("bullet_id:%d frame_no:%d speed:%f range:%f fly_distance:%f born_pos:%f,%f pos:%f,%f src_fly_distance:%f\n",
|
||||
{
|
||||
gun_meta->i->id(),
|
||||
(room->GetFrameNo() - create_frameno_) / 2,
|
||||
@ -434,7 +434,8 @@ void Bullet::MapServiceUpdate()
|
||||
born_pos.x,
|
||||
born_pos.y,
|
||||
GetPos().x,
|
||||
GetPos().y
|
||||
GetPos().y,
|
||||
fly_distance
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -609,6 +610,7 @@ void Bullet::Check(float distance)
|
||||
}
|
||||
float bullet_range = gun_meta->i->range();
|
||||
if (!objects.empty() || (!IsBomb() && distance > bullet_range) || eat ||
|
||||
(gun_meta->i->id() == 30918 && distance >= fly_distance) ||
|
||||
(IsBomb() && meta->i->_inventory_slot() != IS_RPG && distance >= fly_distance)
|
||||
) {
|
||||
if (IsBomb()) {
|
||||
|
@ -38,6 +38,7 @@
|
||||
#include "httpproxy.h"
|
||||
#include "skillhelper.h"
|
||||
#include "shot.h"
|
||||
#include "battledatacontext.h"
|
||||
|
||||
const int kReviveTimeAdd = 12;
|
||||
const int kSkinNum = 4;
|
||||
@ -248,7 +249,7 @@ void PlayerStats::SetHeroWeaponLv(int hero_id, int weapon_lv)
|
||||
MustBeHero(hero_id).weapon_lv = std::max(MustBeHero(hero_id).weapon_lv, weapon_lv);
|
||||
}
|
||||
|
||||
void PlayerStats::ParseReward(a8::XObject& xobj)
|
||||
void PlayerStats::ParseReward(Human* hum, a8::XObject& xobj)
|
||||
{
|
||||
if (!xobj.IsObject()) {
|
||||
AdjustRewardData();
|
||||
@ -265,6 +266,10 @@ void PlayerStats::ParseReward(a8::XObject& xobj)
|
||||
if (hero_xobj && hero_xobj->IsObject()) {
|
||||
over_reward.hero.obtain_gold = hero_xobj->At("obtain_ceg")->AsXValue().GetString();
|
||||
over_reward.hero.gold_limit = hero_xobj->At("ceg_uplimit")->AsXValue().GetString();
|
||||
if (hum->GetBattleContext()->hero_dto &&
|
||||
hum->GetBattleContext()->hero_dto->IsObject()) {
|
||||
over_reward.hero.id = hum->GetBattleContext()->hero_dto->At("hero_id")->AsXValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
@ -272,6 +277,10 @@ void PlayerStats::ParseReward(a8::XObject& xobj)
|
||||
if (weapon_xobj && weapon_xobj->IsObject()) {
|
||||
over_reward.weapon1.obtain_gold = weapon_xobj->At("obtain_ceg")->AsXValue().GetString();
|
||||
over_reward.weapon1.gold_limit = weapon_xobj->At("ceg_uplimit")->AsXValue().GetString();
|
||||
if (hum->GetBattleContext()->weapon_dto1 &&
|
||||
hum->GetBattleContext()->weapon_dto1->IsObject()) {
|
||||
over_reward.hero.id = hum->GetBattleContext()->weapon_dto1->At("gun_id")->AsXValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
@ -279,6 +288,10 @@ void PlayerStats::ParseReward(a8::XObject& xobj)
|
||||
if (weapon_xobj && weapon_xobj->IsObject()) {
|
||||
over_reward.weapon2.obtain_gold = weapon_xobj->At("obtain_ceg")->AsXValue().GetString();
|
||||
over_reward.weapon2.gold_limit = weapon_xobj->At("ceg_uplimit")->AsXValue().GetString();
|
||||
if (hum->GetBattleContext()->weapon_dto2 &&
|
||||
hum->GetBattleContext()->weapon_dto2->IsObject()) {
|
||||
over_reward.hero.id = hum->GetBattleContext()->weapon_dto2->At("gun_id")->AsXValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
@ -2409,7 +2422,7 @@ void Human::SendBattleReport()
|
||||
}
|
||||
hum->sending_battlereport_ = false;
|
||||
hum->already_report_battle_ = true;
|
||||
hum->stats.ParseReward(data);
|
||||
hum->stats.ParseReward(hum, data);
|
||||
hum->SendGameOver();
|
||||
};
|
||||
auto on_error =
|
||||
|
@ -41,6 +41,7 @@ struct HeroStats
|
||||
struct OverRewardItem
|
||||
{
|
||||
std::string uniid;
|
||||
int id = 0;
|
||||
std::string obtain_gold;
|
||||
std::string gold_limit;
|
||||
};
|
||||
@ -123,7 +124,7 @@ struct PlayerStats
|
||||
HeroStats& MustBeHero(int hero_id);
|
||||
void SetHeroSkillLv(int hero_id, int skill_lv);
|
||||
void SetHeroWeaponLv(int hero_id, int weapon_lv);
|
||||
void ParseReward(a8::XObject& xobj);
|
||||
void ParseReward(Human* hum, a8::XObject& xobj);
|
||||
void AdjustRewardData();
|
||||
void Statement(Human* hum);
|
||||
};
|
||||
|
@ -560,12 +560,14 @@ void Skill::ProcCMXD()
|
||||
Entity* e = std::any_cast<Entity*>(params.at(1));
|
||||
if (sender.Get() && e->IsCreature(sender.Get()->room)) {
|
||||
Creature* c = (Creature*)e;
|
||||
a8::Vec2 target_pos = sender.Get()->GetPos() +
|
||||
sender.Get()->GetAttackDir() * SkillHelper::GetCmxdRange(this_skill_meta) / 2;
|
||||
bool ret = Check2dRotationRectangle
|
||||
(c->GetPos().x,
|
||||
c->GetPos().y,
|
||||
20,
|
||||
sender.Get()->GetPos().x,
|
||||
sender.Get()->GetPos().y,
|
||||
target_pos.x,
|
||||
target_pos.y,
|
||||
shield_buff_meta->param4,
|
||||
SkillHelper::GetCmxdRange(this_skill_meta),
|
||||
sender.Get()->GetAttackDirRotate() * 180.0f
|
||||
|
Loading…
x
Reference in New Issue
Block a user