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