mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-22 20:33:01 +00:00
Compare commits
23 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 37e66b5c01 | |||
| bf798c0561 | |||
| 6ec577f241 | |||
| 672e6766c7 | |||
| b3eb11d068 | |||
| 55c61ddc78 | |||
| c131eca57f | |||
| a6dbba5380 | |||
| d2f1a3097b | |||
| 6c522e0e76 | |||
| cba068bfe8 | |||
| 28c8af96e3 | |||
| c684709712 | |||
| 225b3fffbd | |||
| 0b790342e7 | |||
| 690621268b | |||
| 725d080cac | |||
| a3ffa7e262 | |||
| 344682e6ff | |||
| c927fec803 | |||
| 3b23477139 | |||
| ea49422ff7 | |||
| 9ccd9b80bb |
@@ -35,3 +35,8 @@ Build_64/
|
||||
build_64/
|
||||
log/
|
||||
logs/
|
||||
|
||||
submodules/
|
||||
.idea/
|
||||
cmake-build-debug
|
||||
EQEmu.cbp
|
||||
@@ -144,7 +144,7 @@ void EQEmuLogSys::ProcessGMSay(uint16 debug_level, uint16 log_category, const st
|
||||
return;
|
||||
|
||||
/* Check to see if the process that actually ran this is zone */
|
||||
if (EQEmuLogSys::log_platform == EQEmuExePlatform::ExePlatformZone)
|
||||
if (GetExecutablePlatformInt() == EQEmuExePlatform::ExePlatformZone)
|
||||
on_log_gmsay_hook(log_category, message);
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+224
-8
@@ -305,6 +305,16 @@ bool Mob::CheckHitChance(Mob* other, EQEmu::skills::SkillType skillinuse, int Ha
|
||||
|
||||
float tohit_roll = zone->random.Real(0, 100);
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::CheckHitChance] Chance [%.2f] ToHitRoll [%.2f] Hit? [%s]",
|
||||
GetCleanName(),
|
||||
chancetohit,
|
||||
tohit_roll,
|
||||
(tohit_roll <= chancetohit) ? "true" : "false"
|
||||
);
|
||||
|
||||
Log.Out(Logs::Detail, Logs::Attack, "Final hit chance: %.2f%%. Hit roll %.2f", chancetohit, tohit_roll);
|
||||
|
||||
return(tohit_roll <= chancetohit);
|
||||
@@ -522,6 +532,16 @@ void Mob::MeleeMitigation(Mob *attacker, int32 &damage, int32 minhit, ExtraAttac
|
||||
float aa_mit = (aabonuses.CombatStability + itembonuses.CombatStability +
|
||||
spellbonuses.CombatStability) / 100.0f;
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::MeleeMitigation] Stability Bonuses | AA [%i] Item [%i] Spell [%i] ",
|
||||
GetCleanName(),
|
||||
aabonuses.CombatStability,
|
||||
itembonuses.CombatStability,
|
||||
spellbonuses.CombatStability
|
||||
);
|
||||
|
||||
if (RuleB(Combat, UseIntervalAC)) {
|
||||
float softcap = (GetSkill(EQEmu::skills::SkillDefense) + GetLevel()) *
|
||||
RuleR(Combat, SoftcapFactor) * (1.0 + aa_mit);
|
||||
@@ -534,6 +554,14 @@ void Mob::MeleeMitigation(Mob *attacker, int32 &damage, int32 minhit, ExtraAttac
|
||||
float monkweight = RuleI(Combat, MonkACBonusWeight);
|
||||
monkweight = mod_monk_weight(monkweight, attacker);
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::MeleeMitigation] Soft Cap [%.2f]",
|
||||
GetCleanName(),
|
||||
softcap
|
||||
);
|
||||
|
||||
if (IsClient()) {
|
||||
armor = CastToClient()->GetRawACNoShield(shield_ac);
|
||||
weight = (CastToClient()->CalcCurrentWeight() / 10.0);
|
||||
@@ -637,6 +665,17 @@ void Mob::MeleeMitigation(Mob *attacker, int32 &damage, int32 minhit, ExtraAttac
|
||||
|
||||
attack_rating = attacker->mod_attack_rating(attack_rating, this);
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::MeleeMitigation] Attack Rating [%.2f] Mitigation Rating [%.2f] Damage [%i] MinDmg [%i]",
|
||||
GetCleanName(),
|
||||
attack_rating,
|
||||
mitigation_rating,
|
||||
damage,
|
||||
minhit
|
||||
);
|
||||
|
||||
damage = GetMeleeMitDmg(attacker, damage, minhit, mitigation_rating, attack_rating);
|
||||
} else {
|
||||
////////////////////////////////////////////////////////
|
||||
@@ -697,6 +736,14 @@ void Mob::MeleeMitigation(Mob *attacker, int32 &damage, int32 minhit, ExtraAttac
|
||||
|
||||
if (damage < 0)
|
||||
damage = 0;
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::MeleeMitigation] Final Damage [%i]",
|
||||
GetCleanName(),
|
||||
damage
|
||||
);
|
||||
}
|
||||
|
||||
// This is called when the Mob is the one being hit
|
||||
@@ -707,6 +754,15 @@ int32 Mob::GetMeleeMitDmg(Mob *attacker, int32 damage, int32 minhit,
|
||||
float mit_roll = zone->random.Real(0, mit_rating);
|
||||
float atk_roll = zone->random.Real(0, atk_rating);
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::GetMeleeMitDmg] MitigationRoll [%.2f] AtkRoll [%.2f]",
|
||||
GetCleanName(),
|
||||
mit_roll,
|
||||
atk_roll
|
||||
);
|
||||
|
||||
if (atk_roll > mit_roll) {
|
||||
float a_diff = atk_roll - mit_roll;
|
||||
float thac0 = atk_rating * RuleR(Combat, ACthac0Factor);
|
||||
@@ -731,10 +787,50 @@ int32 Mob::GetMeleeMitDmg(Mob *attacker, int32 damage, int32 minhit,
|
||||
d = 20.0;
|
||||
|
||||
float interval = (damage - minhit) / 20.0;
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::GetMeleeMitDmg] Interval [%.2f] d [%.2f]",
|
||||
GetCleanName(),
|
||||
interval,
|
||||
d
|
||||
);
|
||||
|
||||
damage -= ((int)d * interval);
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::GetMeleeMitDmg] Damage [%.2f] Post Interval",
|
||||
GetCleanName(),
|
||||
damage
|
||||
);
|
||||
|
||||
damage -= (minhit * itembonuses.MeleeMitigation / 100);
|
||||
damage -= (damage * (spellbonuses.MeleeMitigationEffect + itembonuses.MeleeMitigationEffect + aabonuses.MeleeMitigationEffect) / 100);
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::GetMeleeMitDmg] Damage [%.2f] Mitigation [%i] Post Mitigation MinDmg",
|
||||
GetCleanName(),
|
||||
damage,
|
||||
itembonuses.MeleeMitigation
|
||||
);
|
||||
|
||||
damage -= (damage * (spellbonuses.MeleeMitigationEffect + itembonuses.MeleeMitigationEffect + aabonuses.MeleeMitigationEffect) / 100);
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::GetMeleeMitDmg] Damage [%.2f] SpellMit [%i] ItemMit [%i] AAMit [%i] Post All Mit Bonuses",
|
||||
GetCleanName(),
|
||||
damage,
|
||||
spellbonuses.MeleeMitigationEffect,
|
||||
itembonuses.MeleeMitigationEffect,
|
||||
aabonuses.MeleeMitigationEffect
|
||||
);
|
||||
|
||||
return damage;
|
||||
}
|
||||
|
||||
@@ -1090,8 +1186,28 @@ bool Client::Attack(Mob* other, int Hand, bool bRiposte, bool IsStrikethrough, b
|
||||
return (true);
|
||||
|
||||
int min_hit = 1;
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Client::Attack] Damage Table [%u] WeaponDMG [%i]",
|
||||
GetCleanName(),
|
||||
GetDamageTable(skillinuse),
|
||||
weapon_damage
|
||||
);
|
||||
|
||||
int max_hit = (2*weapon_damage*GetDamageTable(skillinuse)) / 100;
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [ClientAttack] DamageDone [%i] BaseDamage [%i] HitSkill [%i]",
|
||||
GetCleanName(),
|
||||
max_hit,
|
||||
weapon_damage,
|
||||
skillinuse
|
||||
);
|
||||
|
||||
if(GetLevel() < 10 && max_hit > RuleI(Combat, HitCapPre10))
|
||||
max_hit = (RuleI(Combat, HitCapPre10));
|
||||
else if(GetLevel() < 20 && max_hit > RuleI(Combat, HitCapPre20))
|
||||
@@ -3773,12 +3889,32 @@ void Mob::TryPetCriticalHit(Mob *defender, uint16 skill, int32 &damage)
|
||||
int32 CritPetChance = owner->aabonuses.PetCriticalHit + owner->itembonuses.PetCriticalHit + owner->spellbonuses.PetCriticalHit;
|
||||
int32 CritChanceBonus = GetCriticalChanceBonus(skill);
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::TryPetCriticalHit] CritPetChance [%i] CritChanceBonus [%i] | Bonuses AA [%i] Item [%i] Spell [%i]",
|
||||
GetCleanName(),
|
||||
CritPetChance,
|
||||
CritChanceBonus,
|
||||
owner->aabonuses.PetCriticalHit,
|
||||
owner->itembonuses.PetCriticalHit,
|
||||
owner->spellbonuses.PetCriticalHit
|
||||
);
|
||||
|
||||
if (CritPetChance || critChance) {
|
||||
|
||||
//For pets use PetCriticalHit for base chance, pets do not innately critical with without it
|
||||
//even if buffed with a CritChanceBonus effects.
|
||||
critChance += CritPetChance;
|
||||
critChance += critChance*CritChanceBonus/100.0f;
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::TryPetCriticalHit] critChance [%.2f] PostCalcs",
|
||||
GetCleanName(),
|
||||
critChance
|
||||
);
|
||||
}
|
||||
|
||||
if(critChance > 0){
|
||||
@@ -3789,9 +3925,27 @@ void Mob::TryPetCriticalHit(Mob *defender, uint16 skill, int32 &damage)
|
||||
{
|
||||
critMod += GetCritDmgMob(skill) * 2; // To account for base crit mod being 200 not 100
|
||||
damage = (damage * critMod) / 100;
|
||||
entity_list.FilteredMessageClose_StringID(this, false, 200,
|
||||
MT_CritMelee, FilterMeleeCrits, CRITICAL_HIT,
|
||||
GetCleanName(), itoa(damage));
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::TryPetCriticalHit] critMod [%.2f] DmgMod [%i] DamageDone [%i]",
|
||||
GetCleanName(),
|
||||
critMod,
|
||||
GetCritDmgMob(skill),
|
||||
damage
|
||||
);
|
||||
|
||||
entity_list.FilteredMessageClose_StringID(
|
||||
this,
|
||||
false,
|
||||
200,
|
||||
MT_CritMelee,
|
||||
FilterMeleeCrits,
|
||||
CRITICAL_HIT,
|
||||
GetCleanName(),
|
||||
itoa(damage)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3879,18 +4033,38 @@ void Mob::TryCriticalHit(Mob *defender, uint16 skill, int32 &damage, ExtraAttack
|
||||
|
||||
//Get Base CritChance from Dex. (200 = ~1.6%, 255 = ~2.0%, 355 = ~2.20%) Fall off rate > 255
|
||||
//http://giline.versus.jp/shiden/su.htm , http://giline.versus.jp/shiden/damage_e.htm
|
||||
if (GetDEX() <= 255)
|
||||
if (GetDEX() <= 255) {
|
||||
critChance += (float(GetDEX()) / 125.0f);
|
||||
else if (GetDEX() > 255)
|
||||
critChance += (float(GetDEX()-255)/ 500.0f) + 2.0f;
|
||||
critChance += critChance*(float)CritChanceBonus /100.0f;
|
||||
}
|
||||
else if (GetDEX() > 255) {
|
||||
critChance += (float(GetDEX() - 255) / 500.0f) + 2.0f;
|
||||
}
|
||||
critChance += critChance * (float) CritChanceBonus / 100.0f;
|
||||
}
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::TryCriticalHit] CritChance [%.2f] CritChanceBonus [%i] Dex [%i] Post-Dex-Block",
|
||||
GetCleanName(),
|
||||
critChance,
|
||||
CritChanceBonus,
|
||||
GetDEX()
|
||||
);
|
||||
|
||||
if(opts) {
|
||||
critChance *= opts->crit_percent;
|
||||
critChance += opts->crit_flat;
|
||||
}
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::TryCriticalHit] CritChance [%.2f]",
|
||||
GetCleanName(),
|
||||
critChance
|
||||
);
|
||||
|
||||
if(critChance > 0) {
|
||||
|
||||
critChance /= 100;
|
||||
@@ -3915,6 +4089,18 @@ void Mob::TryCriticalHit(Mob *defender, uint16 skill, int32 &damage, ExtraAttack
|
||||
}
|
||||
|
||||
critMod += GetCritDmgMob(skill) * 2; // To account for base crit mod being 200 not 100
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::TryCriticalHit] CritChance [%.2f] CritMod [%u] GetCritDmgMod [%i] CripSuccess [%s]",
|
||||
GetCleanName(),
|
||||
critChance,
|
||||
critMod,
|
||||
GetCritDmgMob(skill),
|
||||
crip_success ? "true" : "false"
|
||||
);
|
||||
|
||||
damage = damage * critMod / 100;
|
||||
|
||||
bool deadlySuccess = false;
|
||||
@@ -4044,6 +4230,15 @@ void Mob::ApplyMeleeDamageBonus(uint16 skill, int32 &damage,ExtraAttackOptions *
|
||||
if (opts)
|
||||
dmgbonusmod += opts->melee_damage_bonus_flat;
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::ApplyMeleeDamageBonus] DmgBonusMod [%i] Dmg [%i]",
|
||||
GetCleanName(),
|
||||
dmgbonusmod,
|
||||
damage
|
||||
);
|
||||
|
||||
damage += damage * dmgbonusmod / 100;
|
||||
}
|
||||
|
||||
@@ -4408,7 +4603,28 @@ void Mob::CommonOutgoingHitSuccess(Mob* defender, int32 &damage, EQEmu::skills::
|
||||
return;
|
||||
|
||||
ApplyMeleeDamageBonus(skillInUse, damage, opts);
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::CommonOutgoingHitSuccess] Dmg [%i] Post ApplyMeleeDamageBonus",
|
||||
GetCleanName(),
|
||||
damage
|
||||
);
|
||||
|
||||
damage += (damage * defender->GetSkillDmgTaken(skillInUse, opts) / 100) + (GetSkillDmgAmt(skillInUse) + defender->GetFcDamageAmtIncoming(this, 0, true, skillInUse));
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::CommonOutgoingHitSuccess] Dmg [%i] SkillDmgTaken [%i] SkillDmgtAmt [%i] FcDmgAmtIncoming [%i] Post DmgCalcs",
|
||||
GetCleanName(),
|
||||
damage,
|
||||
defender->GetSkillDmgTaken(skillInUse, opts),
|
||||
GetSkillDmgAmt(skillInUse),
|
||||
defender->GetFcDamageAmtIncoming(this, 0, true, skillInUse)
|
||||
);
|
||||
|
||||
TryCriticalHit(defender, skillInUse, damage,opts);
|
||||
CheckNumHitsRemaining(NumHit::OutgoingHitSuccess);
|
||||
}
|
||||
|
||||
@@ -2232,5 +2232,17 @@ int Client::GetRawACNoShield(int &shield_ac) const
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Client::GetRawACNoShield] AC [%i] ItemAC [%i] SpellAC [%i] AAAC [%i]",
|
||||
GetName(),
|
||||
ac,
|
||||
itembonuses.AC,
|
||||
spellbonuses.AC,
|
||||
aabonuses.AC
|
||||
);
|
||||
|
||||
return ac;
|
||||
}
|
||||
|
||||
+2
-2
@@ -247,8 +247,8 @@ void Embperl::init_eval_file(void)
|
||||
" return;"
|
||||
"} else {"
|
||||
//we 'my' $filename,$mtime,$package,$sub to prevent them from changing our state up here.
|
||||
" eval(\"package $package; my(\\$filename,\\$mtime,\\$package,\\$sub); \\$isloaded = 1; require '$filename'; \");"
|
||||
/* "local *FH;open FH, $filename or die \"open '$filename' $!\";"
|
||||
" eval(\"package $package; my(\\$filename,\\$mtime,\\$package,\\$sub); \\$isloaded = 1; require './$filename'; \");"
|
||||
/* "local *FH;open FH, $filename or die \"open '$filename' $!\";"
|
||||
"local($/) = undef;my $sub = <FH>;close FH;"
|
||||
"my $eval = qq{package $package; sub handler { $sub; }};"
|
||||
"{ my($filename,$mtime,$package,$sub); eval $eval; }"
|
||||
|
||||
@@ -99,6 +99,10 @@ XS(XS_EQEmuIO_PRINT)
|
||||
/* Strip newlines from log message 'str' */
|
||||
*std::remove(str, str + strlen(str), '\n') = '\0';
|
||||
|
||||
std::string log_string = str;
|
||||
if (log_string.find("did not return a true") != std::string::npos)
|
||||
return;
|
||||
|
||||
int i;
|
||||
int pos = 0;
|
||||
int len = 0;
|
||||
|
||||
+30
-6
@@ -4603,11 +4603,16 @@ int16 Mob::GetCritDmgMob(uint16 skill)
|
||||
int critDmg_mod = 0;
|
||||
|
||||
// All skill dmg mod + Skill specific
|
||||
critDmg_mod += itembonuses.CritDmgMob[EQEmu::skills::HIGHEST_SKILL + 1] + spellbonuses.CritDmgMob[EQEmu::skills::HIGHEST_SKILL + 1] + aabonuses.CritDmgMob[EQEmu::skills::HIGHEST_SKILL + 1] +
|
||||
itembonuses.CritDmgMob[skill] + spellbonuses.CritDmgMob[skill] + aabonuses.CritDmgMob[skill];
|
||||
critDmg_mod += itembonuses.CritDmgMob[EQEmu::skills::HIGHEST_SKILL + 1] +
|
||||
spellbonuses.CritDmgMob[EQEmu::skills::HIGHEST_SKILL + 1] +
|
||||
aabonuses.CritDmgMob[EQEmu::skills::HIGHEST_SKILL + 1] +
|
||||
itembonuses.CritDmgMob[skill] +
|
||||
spellbonuses.CritDmgMob[skill] +
|
||||
aabonuses.CritDmgMob[skill];
|
||||
|
||||
if(critDmg_mod < -100)
|
||||
if (critDmg_mod < -100) {
|
||||
critDmg_mod = -100;
|
||||
}
|
||||
|
||||
return critDmg_mod;
|
||||
}
|
||||
@@ -4648,11 +4653,30 @@ int16 Mob::GetCriticalChanceBonus(uint16 skill)
|
||||
int critical_chance = 0;
|
||||
|
||||
// All skills + Skill specific
|
||||
critical_chance += itembonuses.CriticalHitChance[EQEmu::skills::HIGHEST_SKILL + 1] + spellbonuses.CriticalHitChance[EQEmu::skills::HIGHEST_SKILL + 1] + aabonuses.CriticalHitChance[EQEmu::skills::HIGHEST_SKILL + 1] +
|
||||
itembonuses.CriticalHitChance[skill] + spellbonuses.CriticalHitChance[skill] + aabonuses.CriticalHitChance[skill];
|
||||
critical_chance += itembonuses.CriticalHitChance[EQEmu::skills::HIGHEST_SKILL + 1] +
|
||||
spellbonuses.CriticalHitChance[EQEmu::skills::HIGHEST_SKILL + 1] +
|
||||
aabonuses.CriticalHitChance[EQEmu::skills::HIGHEST_SKILL + 1] +
|
||||
itembonuses.CriticalHitChance[skill] +
|
||||
spellbonuses.CriticalHitChance[skill] +
|
||||
aabonuses.CriticalHitChance[skill];
|
||||
|
||||
if(critical_chance < -100)
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::GetCriticalChanceBonus] Bonuses | Item [%i] Spell [%i] AA [%i] | 2nd Item [%i] Spell [%i] AA [%i] Final Chance [%i]",
|
||||
GetCleanName(),
|
||||
itembonuses.CriticalHitChance[EQEmu::skills::HIGHEST_SKILL + 1],
|
||||
spellbonuses.CriticalHitChance[EQEmu::skills::HIGHEST_SKILL + 1],
|
||||
aabonuses.CriticalHitChance[EQEmu::skills::HIGHEST_SKILL + 1],
|
||||
itembonuses.CriticalHitChance[skill],
|
||||
spellbonuses.CriticalHitChance[skill],
|
||||
aabonuses.CriticalHitChance[skill],
|
||||
critical_chance
|
||||
);
|
||||
|
||||
if (critical_chance < -100) {
|
||||
critical_chance = -100;
|
||||
}
|
||||
|
||||
return critical_chance;
|
||||
}
|
||||
|
||||
+3
-3
@@ -280,13 +280,13 @@ public:
|
||||
|
||||
if (message.find("\n") != std::string::npos){
|
||||
auto message_split = SplitString(message, '\n');
|
||||
entity_list.MessageStatus(0, 80, Log.GetGMSayColorFromCategory(log_category), "%s", message_split[0].c_str());
|
||||
entity_list.MessageStatus(0, 0, Log.GetGMSayColorFromCategory(log_category), "%s", message_split[0].c_str());
|
||||
for (size_t iter = 1; iter < message_split.size(); ++iter) {
|
||||
entity_list.MessageStatus(0, 80, Log.GetGMSayColorFromCategory(log_category), "--- %s", message_split[iter].c_str());
|
||||
entity_list.MessageStatus(0, 0, Log.GetGMSayColorFromCategory(log_category), "--- %s", message_split[iter].c_str());
|
||||
}
|
||||
}
|
||||
else{
|
||||
entity_list.MessageStatus(0, 80, Log.GetGMSayColorFromCategory(log_category), "%s", message.c_str());
|
||||
entity_list.MessageStatus(0, 0, Log.GetGMSayColorFromCategory(log_category), "%s", message.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user