- Joined
- Oct 14, 2008
- Messages
- 85
- Reaction score
- 100
Dead project ?
No, pp are working on this. Private project, nothing to show off here.
Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!
Join Today!Dead project ?
Good, it's time to contrubute with something... this is my upgraded version of: 1.00.98 Original Webzen GameServer Sources to: 1.01.03, it's possible that this poop is not complete and etc, but at least is possible compile and have attached a detailed ChangeLog, maybe can be useful (to some person), less work or something how this...
GameServer 1.01.03 Rebuided-Partially Src:
You must be registered to see links
PS: ChangeLog it's on source but anyways:
You must be registered to see links
You must be registered to see links
PS 2: Since I only add all features that I know of Season 6.1/6.2/6.3 but is unfinished... maybe is lacking Master Skill Tree Passive Buffs and etc shits.
void SetAttackSpeed()
{
float AttackSpeed1 = (CharacterAttribute->AttackSpeed/15) * 0.004f; // ±â»ç, ŔϹݰř°Ý
if (GetBaseClass(CharacterAttribute->Class) == CLASS_KNIGHT)
{
AttackSpeed1 = (CharacterAttribute->AttackSpeed/15) * 0.008f;
}
float MagicSpeed1 = (CharacterAttribute->MagicSpeed/15) * 0.004f; // żäÁ¤
float MagicSpeed2 = (CharacterAttribute->MagicSpeed/15) * 0.002f; // ąý»ç
float RageAttackSpeed = (CharacterAttribute->AttackSpeed/15) * 0.01f;
if (GetBaseClass(CharacterAttribute->Class) == CLASS_WIZARD)
{
MagicSpeed2 = (CharacterAttribute->MagicSpeed/15) * 0.002f; // ąý»ç
}
else if (GetBaseClass(CharacterAttribute->Class) == CLASS_SUMMONER)
{
MagicSpeed2 = (CharacterAttribute->MagicSpeed/15) * 0.02f; // ąý»ç
}
#ifndef _VS2008PORTING // #ifndef
int i;
#endif // _VS2008PORTING
// ÁÖ¸Ô°ř°
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_FIST].PlaySpeed = 0.6f + AttackSpeed1;
// ŔϹݰř°Ý
#ifdef _VS2008PORTING
for(int i=PLAYER_ATTACK_SWORD_RIGHT1; i<=PLAYER_ATTACK_RIDE_CROSSBOW; i++)
#else // _VS2008PORTING
for(i=PLAYER_ATTACK_SWORD_RIGHT1; i<=PLAYER_ATTACK_RIDE_CROSSBOW; i++)
#endif // _VS2008PORTING
{
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.25f + AttackSpeed1;
}
//˝şĹł°ř°Ý
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SWORD1].PlaySpeed = 0.30f + AttackSpeed1; // ł»·ÁÂď±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SWORD2].PlaySpeed = 0.30f + AttackSpeed1; // Â±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SWORD3].PlaySpeed = 0.27f + AttackSpeed1; // żĂ·Áġ±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SWORD4].PlaySpeed = 0.30f + AttackSpeed1; // µą·Áġ±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SWORD5].PlaySpeed = 0.24f + AttackSpeed1; // şŁ±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_WHEEL ].PlaySpeed = 0.24f + AttackSpeed1; // ȸżŔ¸®şŁ±â
#ifdef YDG_ADD_SKILL_RIDING_ANIMATIONS
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_WHEEL_UNI ].PlaySpeed = 0.24f + AttackSpeed1;// ȸżŔ¸®şŁ±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_WHEEL_DINO ].PlaySpeed = 0.24f + AttackSpeed1;// ȸżŔ¸®şŁ±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_WHEEL_FENRIR].PlaySpeed = 0.24f + AttackSpeed1;// ȸżŔ¸®şŁ±â
#endif // YDG_ADD_SKILL_RIDING_ANIMATIONS
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_ONETOONE].PlaySpeed = 0.25f + AttackSpeed1; // şí·Îżě
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SPEAR].PlaySpeed = 0.30f + AttackSpeed1; // âÂ±â
// Ĺ» °Í Ĺş »óĹÂ
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_RIDER].PlaySpeed = 0.3f + AttackSpeed1; // ˝şĹĎ, ˝şĹĎÁ¦°Ĺ, Ĺő¸í, Ĺő¸íÇŘÁ¦, ¸¶łŞÁő°ˇ, ş¸Á¶¸¶ąý ŔĎ˝ĂÁ¦°Ĺ, ·ąŔ̵彸
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_RIDER_FLY].PlaySpeed = 0.3f + AttackSpeed1; // ˝şĹĎ, ˝şĹĎÁ¦°Ĺ, Ĺő¸í, Ĺő¸íÇŘÁ¦, ¸¶łŞÁő°ˇ, ş¸Á¶¸¶ąý ŔĎ˝ĂÁ¦°Ĺ, ·ąŔ̵彸
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_TWO_HAND_SWORD_TWO].PlaySpeed = 0.25f + AttackSpeed1; // ĆÄżö˝˝·ˇ˝¬
//Č°°ř°Ý
#ifdef _VS2008PORTING
for(int i=PLAYER_ATTACK_BOW;i<=PLAYER_ATTACK_FLY_CROSSBOW;i++)
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.30f + AttackSpeed1;
for(int i=PLAYER_ATTACK_RIDE_BOW;i<=PLAYER_ATTACK_RIDE_CROSSBOW;i++)
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.30f + AttackSpeed1;
#else // _VS2008PORTING
for(i=PLAYER_ATTACK_BOW;i<=PLAYER_ATTACK_FLY_CROSSBOW;i++)
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.30f + AttackSpeed1;
for(i=PLAYER_ATTACK_RIDE_BOW;i<=PLAYER_ATTACK_RIDE_CROSSBOW;i++)
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.30f + AttackSpeed1;
#endif // _VS2008PORTING
//żäÁ¤¸¶ąý
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_ELF1].PlaySpeed = 0.25f + MagicSpeed1;
//ŔϹݸ¶ąý
#ifdef _VS2008PORTING
for(int i=PLAYER_SKILL_HAND1; i<=PLAYER_SKILL_WEAPON2; i++)
#else // _VS2008PORTING
for(i=PLAYER_SKILL_HAND1; i<=PLAYER_SKILL_WEAPON2; i++)
#endif // _VS2008PORTING
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.29f + MagicSpeed2;
//±âŸ¸¶ąý
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_TELEPORT].PlaySpeed = 0.30f + MagicSpeed2; // Ľř°ŁŔ̵ż
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_FLASH ].PlaySpeed = 0.40f + MagicSpeed2; // ľĆÄíľĆÇĂ·ˇ˝¬
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_INFERNO ].PlaySpeed = 0.60f + MagicSpeed2; // ŔÎĆ丣łë
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_HELL ].PlaySpeed = 0.50f + MagicSpeed2; // ÇďĆÄŔĚľî
Models[MODEL_PLAYER].Actions[PLAYER_RIDE_SKILL ].PlaySpeed = 0.30f + MagicSpeed2; // Ĺ» °Í Ĺş »óĹÂżˇĽ ľ˛´Â ˝şĹł
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_HELL_BEGIN].PlaySpeed = 0.50f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_STRIKE].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_STRIKE].PlaySpeed = 0.2f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_HORSE_SWORD].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_ATTACK_FLASH].PlaySpeed = 0.40f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_ATTACK_MAGIC].PlaySpeed = 0.3f + MagicSpeed2;
//^ Ć渱 °řĽÓ °ü·Ă(Áßżä : °ř°Ý ĽÓµµżÍ °ü·Ă)
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_DARKLORD_STRIKE].PlaySpeed = 0.2f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_DARKLORD_SWORD].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_DARKLORD_FLASH].PlaySpeed = 0.40f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_TWO_SWORD].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_MAGIC].PlaySpeed = 0.37f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_CROSSBOW].PlaySpeed = 0.30f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_SPEAR].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_ONE_SWORD].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_BOW].PlaySpeed = 0.30f + AttackSpeed1;
// Č°·Î ÇĎ´Ă·Î ÇâÇĎ´Â °ř°Ý
#ifdef _VS2008PORTING
for ( int i=PLAYER_ATTACK_BOW_UP; i<=PLAYER_ATTACK_RIDE_CROSSBOW_UP; ++i )
#else // _VS2008PORTING
for ( i=PLAYER_ATTACK_BOW_UP; i<=PLAYER_ATTACK_RIDE_CROSSBOW_UP; ++i )
#endif // _VS2008PORTING
{
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.30f + AttackSpeed1;
}
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_ONE_FLASH].PlaySpeed = 0.4f + AttackSpeed1; // ±â¸¶°Ë ŔĎĽ¶°ř°Ý
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RUSH].PlaySpeed = 0.3f + AttackSpeed1; // ±â»ç µą°Ý ˝şĹł.
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_DEATH_CANNON].PlaySpeed = 0.2f + AttackSpeed1;
// ˝˝¸ł
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SLEEP].PlaySpeed = 0.3f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SLEEP_UNI].PlaySpeed = 0.3f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SLEEP_DINO].PlaySpeed = 0.3f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SLEEP_FENRIR].PlaySpeed = 0.3f + MagicSpeed2;
// ¶óŔĚĆ®´× żŔşę
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_LIGHTNING_ORB].PlaySpeed = 0.4f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_LIGHTNING_ORB_UNI].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_LIGHTNING_ORB_DINO].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_LIGHTNING_ORB_FENRIR].PlaySpeed = 0.25f + MagicSpeed2;
// ĂĽŔζóŔĚĆ®´×
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_CHAIN_LIGHTNING].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_CHAIN_LIGHTNING_UNI].PlaySpeed = 0.15f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_CHAIN_LIGHTNING_DINO].PlaySpeed = 0.15f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_CHAIN_LIGHTNING_FENRIR].PlaySpeed = 0.15f + MagicSpeed2;
// µĺ·ąŔζóŔĚÇÁ
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAIN_LIFE].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAIN_LIFE_UNI].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAIN_LIFE_DINO].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAIN_LIFE_FENRIR].PlaySpeed = 0.25f + MagicSpeed2;
#ifdef YDG_ADD_SKILL_GIGANTIC_STORM
// ±â°ŁĆ˝˝şĹč
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_GIGANTICSTORM].PlaySpeed = 0.55f + MagicSpeed1;
// ÇÁ·ąŔÓ˝şĆ®¶óŔĚĹ©
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_FLAMESTRIKE].PlaySpeed = 0.69f + MagicSpeed2;
#endif // YDG_ADD_SKILL_GIGANTIC_STORM
#ifdef YDG_ADD_SKILL_RIDING_ANIMATIONS
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_GIGANTICSTORM_UNI].PlaySpeed = 0.55f + MagicSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_GIGANTICSTORM_DINO].PlaySpeed = 0.55f + MagicSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_GIGANTICSTORM_FENRIR].PlaySpeed = 0.55f + MagicSpeed1;
#endif // YDG_ADD_SKILL_RIDING_ANIMATIONS
#ifdef YDG_ADD_SKILL_LIGHTNING_SHOCK
// ¶óŔĚĆ®´×ĽîĹ©
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_LIGHTNING_SHOCK].PlaySpeed = 0.35f + MagicSpeed2;
#endif // YDG_ADD_SKILL_LIGHTNING_SHOCK
// ĽĹ¸Ő
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SUMMON].PlaySpeed = 0.25f;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SUMMON_UNI].PlaySpeed = 0.25f;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SUMMON_DINO].PlaySpeed = 0.25f;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SUMMON_FENRIR].PlaySpeed = 0.25f;
#ifdef CSK_ADD_SKILL_BLOWOFDESTRUCTION
// Ćı«ŔÇ ŔĎ°Ý
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_BLOW_OF_DESTRUCTION].PlaySpeed = 0.3f;
#endif // CSK_ADD_SKILL_BLOWOFDESTRUCTION
#ifdef PJH_SEASON4_SPRITE_NEW_SKILL_RECOVER
// ȸşą
Models[MODEL_PLAYER].Actions[PLAYER_RECOVER_SKILL].PlaySpeed = 0.33f;
#endif //PJH_SEASON4_SPRITE_NEW_SKILL_RECOVER
#ifdef KJH_ADD_SKILL_SWELL_OF_MAGICPOWER // ¸¶·ÂÁő´ë
// ¸¶·ÂÁő´ë
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SWELL_OF_MP].PlaySpeed = 0.2f;
#endif // KJH_ADD_SKILL_SWELL_OF_MAGICPOWER
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_FURY_STRIKE].PlaySpeed = 0.38f; // şĐłëŔÇŔĎ°Ý
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_VITALITY].PlaySpeed = 0.34f; // ˝şŔŁ¶óŔĚÇÁ
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_HELL_START].PlaySpeed = 0.30f;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_TELEPORT].PlaySpeed = 0.28f;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_TELEPORT].PlaySpeed = 0.3f;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_DARKHORSE].PlaySpeed = 0.3f;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_DARKLORD_TELEPORT].PlaySpeed = 0.3f;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_REMOVAL].PlaySpeed = 0.28f;
#ifdef WORLDCUP_ADD
Models[MODEL_PLAYER].Actions[PLAYER_KOREA_HANDCLAP].PlaySpeed = 0.3f;
Models[MODEL_PLAYER].Actions[PLAYER_POINT_DANCE].PlaySpeed = 0.4f;
#endif // WORLDCUP_ADD
#ifdef PBG_ADD_NEWCHAR_MONK_SKILL
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_THRUST].PlaySpeed = 0.4f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_STAMP].PlaySpeed = 0.4f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_GIANTSWING].PlaySpeed = 0.4f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DARKSIDE_READY].PlaySpeed = 0.3f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DARKSIDE_ATTACK].PlaySpeed = 0.3f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAGONKICK].PlaySpeed = 0.4f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAGONLORE].PlaySpeed = 0.3f+RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_ATT_UP_OURFORCES].PlaySpeed = 0.35f;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_HP_UP_OURFORCES].PlaySpeed = 0.35f;
Models[MODEL_PLAYER].Actions[PLAYER_RAGE_FENRIR_ATTACK_RIGHT].PlaySpeed = 0.25f + RageAttackSpeed;
#endif //PBG_ADD_NEWCHAR_MONK_SKILL
}
void SetAttackSpeed()
{
float AttackSpeed1 = (CharacterAttribute->AttackSpeed) * 0.004f; // ±â»ç, ŔϹݰř°Ý
if (GetBaseClass(CharacterAttribute->Class) == CLASS_KNIGHT)
{
AttackSpeed1 = (CharacterAttribute->AttackSpeed) * 0.008f;
}
float MagicSpeed1 = (CharacterAttribute->MagicSpeed) * 0.004f; // żäÁ¤
float MagicSpeed2 = (CharacterAttribute->MagicSpeed) * 0.002f; // ąý»ç
float RageAttackSpeed = (CharacterAttribute->AttackSpeed) * 0.01f;
if (GetBaseClass(CharacterAttribute->Class) == CLASS_WIZARD)
{
MagicSpeed2 = (CharacterAttribute->MagicSpeed) * 0.002f; // ąý»ç
}
else if (GetBaseClass(CharacterAttribute->Class) == CLASS_SUMMONER)
{
MagicSpeed2 = (CharacterAttribute->MagicSpeed) * 0.02f; // ąý»ç
}
// -> Fix speed attack ELF & MG
if (GetBaseClass(CharacterAttribute->Class) == CLASS_ELF)
{
AttackSpeed1 = (CharacterAttribute->AttackSpeed) * 0.008f;
}
if (GetBaseClass(CharacterAttribute->Class) == CLASS_DARK)
{
MagicSpeed1 = (CharacterAttribute->MagicSpeed) * 0.006f; // żäÁ¤
}
//----------------------------------------------------------------------------------------
#ifndef _VS2008PORTING // #ifndef
int i;
#endif // _VS2008PORTING
// ÁÖ¸Ô°ř°
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_FIST].PlaySpeed = 0.6f + AttackSpeed1;
// ŔϹݰř°Ý
#ifdef _VS2008PORTING
for(int i=PLAYER_ATTACK_SWORD_RIGHT1; i<=PLAYER_ATTACK_RIDE_CROSSBOW; i++)
#else // _VS2008PORTING
for(i=PLAYER_ATTACK_SWORD_RIGHT1; i<=PLAYER_ATTACK_RIDE_CROSSBOW; i++)
#endif // _VS2008PORTING
{
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.25f + AttackSpeed1;
}
//˝şĹł°ř°Ý
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SWORD1].PlaySpeed = 0.30f + AttackSpeed1; // ł»·ÁÂď±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SWORD2].PlaySpeed = 0.30f + AttackSpeed1; // Â±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SWORD3].PlaySpeed = 0.27f + AttackSpeed1; // żĂ·Áġ±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SWORD4].PlaySpeed = 0.30f + AttackSpeed1; // µą·Áġ±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SWORD5].PlaySpeed = 0.24f + AttackSpeed1; // şŁ±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_WHEEL ].PlaySpeed = 0.24f + AttackSpeed1; // ȸżŔ¸®şŁ±â
#ifdef YDG_ADD_SKILL_RIDING_ANIMATIONS
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_WHEEL_UNI ].PlaySpeed = 0.24f + AttackSpeed1;// ȸżŔ¸®şŁ±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_WHEEL_DINO ].PlaySpeed = 0.24f + AttackSpeed1;// ȸżŔ¸®şŁ±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_WHEEL_FENRIR].PlaySpeed = 0.24f + AttackSpeed1;// ȸżŔ¸®şŁ±â
#endif // YDG_ADD_SKILL_RIDING_ANIMATIONS
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_ONETOONE].PlaySpeed = 0.25f + AttackSpeed1; // şí·Îżě
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SPEAR].PlaySpeed = 0.30f + AttackSpeed1; // âÂ±â
// Ĺ» °Í Ĺş »óĹÂ
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_RIDER].PlaySpeed = 0.3f + AttackSpeed1; // ˝şĹĎ, ˝şĹĎÁ¦°Ĺ, Ĺő¸í, Ĺő¸íÇŘÁ¦, ¸¶łŞÁő°ˇ, ş¸Á¶¸¶ąý ŔĎ˝ĂÁ¦°Ĺ, ·ąŔ̵彸
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_RIDER_FLY].PlaySpeed = 0.3f + AttackSpeed1; // ˝şĹĎ, ˝şĹĎÁ¦°Ĺ, Ĺő¸í, Ĺő¸íÇŘÁ¦, ¸¶łŞÁő°ˇ, ş¸Á¶¸¶ąý ŔĎ˝ĂÁ¦°Ĺ, ·ąŔ̵彸
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_TWO_HAND_SWORD_TWO].PlaySpeed = 0.25f + AttackSpeed1; // ĆÄżö˝˝·ˇ˝¬
//Č°°ř°Ý
#ifdef _VS2008PORTING
for(int i=PLAYER_ATTACK_BOW;i<=PLAYER_ATTACK_FLY_CROSSBOW;i++)
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.30f + AttackSpeed1;
for(int i=PLAYER_ATTACK_RIDE_BOW;i<=PLAYER_ATTACK_RIDE_CROSSBOW;i++)
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.30f + AttackSpeed1;
#else // _VS2008PORTING
for(i=PLAYER_ATTACK_BOW;i<=PLAYER_ATTACK_FLY_CROSSBOW;i++)
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.30f + AttackSpeed1;
for(i=PLAYER_ATTACK_RIDE_BOW;i<=PLAYER_ATTACK_RIDE_CROSSBOW;i++)
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.30f + AttackSpeed1;
#endif // _VS2008PORTING
//żäÁ¤¸¶ąý
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_ELF1].PlaySpeed = 0.25f + MagicSpeed1;
//ŔϹݸ¶ąý
#ifdef _VS2008PORTING
for(int i=PLAYER_SKILL_HAND1; i<=PLAYER_SKILL_WEAPON2; i++)
#else // _VS2008PORTING
for(i=PLAYER_SKILL_HAND1; i<=PLAYER_SKILL_WEAPON2; i++)
#endif // _VS2008PORTING
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.29f + MagicSpeed2;
//±âŸ¸¶ąý
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_TELEPORT].PlaySpeed = 0.30f + MagicSpeed2; // Ľř°ŁŔ̵ż
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_FLASH ].PlaySpeed = 0.40f + MagicSpeed2; // ľĆÄíľĆÇĂ·ˇ˝¬
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_INFERNO ].PlaySpeed = 0.60f + MagicSpeed2; // ŔÎĆ丣łë
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_HELL ].PlaySpeed = 0.50f + MagicSpeed2; // ÇďĆÄŔĚľî
Models[MODEL_PLAYER].Actions[PLAYER_RIDE_SKILL ].PlaySpeed = 0.30f + MagicSpeed2; // Ĺ» °Í Ĺş »óĹÂżˇĽ ľ˛´Â ˝şĹł
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_HELL_BEGIN].PlaySpeed = 0.50f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_STRIKE].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_STRIKE].PlaySpeed = 0.2f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_HORSE_SWORD].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_ATTACK_FLASH].PlaySpeed = 0.40f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_ATTACK_MAGIC].PlaySpeed = 0.3f + MagicSpeed2;
//^ Ć渱 °řĽÓ °ü·Ă(Áßżä : °ř°Ý ĽÓµµżÍ °ü·Ă)
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_DARKLORD_STRIKE].PlaySpeed = 0.2f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_DARKLORD_SWORD].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_DARKLORD_FLASH].PlaySpeed = 0.40f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_TWO_SWORD].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_MAGIC].PlaySpeed = 0.37f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_CROSSBOW].PlaySpeed = 0.30f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_SPEAR].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_ONE_SWORD].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_BOW].PlaySpeed = 0.30f + AttackSpeed1;
// Č°·Î ÇĎ´Ă·Î ÇâÇĎ´Â °ř°Ý
#ifdef _VS2008PORTING
for ( int i=PLAYER_ATTACK_BOW_UP; i<=PLAYER_ATTACK_RIDE_CROSSBOW_UP; ++i )
#else // _VS2008PORTING
for ( i=PLAYER_ATTACK_BOW_UP; i<=PLAYER_ATTACK_RIDE_CROSSBOW_UP; ++i )
#endif // _VS2008PORTING
{
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.30f + AttackSpeed1;
}
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_ONE_FLASH].PlaySpeed = 0.4f + AttackSpeed1; // ±â¸¶°Ë ŔĎĽ¶°ř°Ý
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RUSH].PlaySpeed = 0.3f + AttackSpeed1; // ±â»ç µą°Ý ˝şĹł.
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_DEATH_CANNON].PlaySpeed = 0.2f + AttackSpeed1;
// ˝˝¸ł
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SLEEP].PlaySpeed = 0.3f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SLEEP_UNI].PlaySpeed = 0.3f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SLEEP_DINO].PlaySpeed = 0.3f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SLEEP_FENRIR].PlaySpeed = 0.3f + MagicSpeed2;
// ¶óŔĚĆ®´× żŔşę
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_LIGHTNING_ORB].PlaySpeed = 0.4f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_LIGHTNING_ORB_UNI].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_LIGHTNING_ORB_DINO].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_LIGHTNING_ORB_FENRIR].PlaySpeed = 0.25f + MagicSpeed2;
// ĂĽŔζóŔĚĆ®´×
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_CHAIN_LIGHTNING].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_CHAIN_LIGHTNING_UNI].PlaySpeed = 0.15f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_CHAIN_LIGHTNING_DINO].PlaySpeed = 0.15f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_CHAIN_LIGHTNING_FENRIR].PlaySpeed = 0.15f + MagicSpeed2;
// µĺ·ąŔζóŔĚÇÁ
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAIN_LIFE].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAIN_LIFE_UNI].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAIN_LIFE_DINO].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAIN_LIFE_FENRIR].PlaySpeed = 0.25f + MagicSpeed2;
#ifdef YDG_ADD_SKILL_GIGANTIC_STORM
// ±â°ŁĆ˝˝şĹč
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_GIGANTICSTORM].PlaySpeed = 0.55f + MagicSpeed1;
// ÇÁ·ąŔÓ˝şĆ®¶óŔĚĹ©
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_FLAMESTRIKE].PlaySpeed = 0.69f + MagicSpeed2;
#endif // YDG_ADD_SKILL_GIGANTIC_STORM
#ifdef YDG_ADD_SKILL_RIDING_ANIMATIONS
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_GIGANTICSTORM_UNI].PlaySpeed = 0.55f + MagicSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_GIGANTICSTORM_DINO].PlaySpeed = 0.55f + MagicSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_GIGANTICSTORM_FENRIR].PlaySpeed = 0.55f + MagicSpeed1;
#endif // YDG_ADD_SKILL_RIDING_ANIMATIONS
#ifdef YDG_ADD_SKILL_LIGHTNING_SHOCK
// ¶óŔĚĆ®´×ĽîĹ©
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_LIGHTNING_SHOCK].PlaySpeed = 0.35f + MagicSpeed2;
#endif // YDG_ADD_SKILL_LIGHTNING_SHOCK
// ĽĹ¸Ő
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SUMMON].PlaySpeed = 0.25f;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SUMMON_UNI].PlaySpeed = 0.25f;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SUMMON_DINO].PlaySpeed = 0.25f;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SUMMON_FENRIR].PlaySpeed = 0.25f;
#ifdef CSK_ADD_SKILL_BLOWOFDESTRUCTION
// Ćı«ŔÇ ŔĎ°Ý
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_BLOW_OF_DESTRUCTION].PlaySpeed = 0.3f;
#endif // CSK_ADD_SKILL_BLOWOFDESTRUCTION
#ifdef PJH_SEASON4_SPRITE_NEW_SKILL_RECOVER
// ȸşą
Models[MODEL_PLAYER].Actions[PLAYER_RECOVER_SKILL].PlaySpeed = 0.33f;
#endif //PJH_SEASON4_SPRITE_NEW_SKILL_RECOVER
#ifdef KJH_ADD_SKILL_SWELL_OF_MAGICPOWER // ¸¶·ÂÁő´ë
// ¸¶·ÂÁő´ë
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SWELL_OF_MP].PlaySpeed = 0.2f;
#endif // KJH_ADD_SKILL_SWELL_OF_MAGICPOWER
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_FURY_STRIKE].PlaySpeed = 0.38f; // şĐłëŔÇŔĎ°Ý
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_VITALITY].PlaySpeed = 0.34f; // ˝şŔŁ¶óŔĚÇÁ
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_HELL_START].PlaySpeed = 0.30f;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_TELEPORT].PlaySpeed = 0.28f;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_TELEPORT].PlaySpeed = 0.3f;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_DARKHORSE].PlaySpeed = 0.3f;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_DARKLORD_TELEPORT].PlaySpeed = 0.3f;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_REMOVAL].PlaySpeed = 0.28f;
#ifdef WORLDCUP_ADD
Models[MODEL_PLAYER].Actions[PLAYER_KOREA_HANDCLAP].PlaySpeed = 0.3f;
Models[MODEL_PLAYER].Actions[PLAYER_POINT_DANCE].PlaySpeed = 0.4f;
#endif // WORLDCUP_ADD
#ifdef PBG_ADD_NEWCHAR_MONK_SKILL
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_THRUST].PlaySpeed = 0.4f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_STAMP].PlaySpeed = 0.4f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_GIANTSWING].PlaySpeed = 0.4f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DARKSIDE_READY].PlaySpeed = 0.3f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DARKSIDE_ATTACK].PlaySpeed = 0.3f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAGONKICK].PlaySpeed = 0.4f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAGONLORE].PlaySpeed = 0.3f+RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_ATT_UP_OURFORCES].PlaySpeed = 0.35f;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_HP_UP_OURFORCES].PlaySpeed = 0.35f;
Models[MODEL_PLAYER].Actions[PLAYER_RAGE_FENRIR_ATTACK_RIGHT].PlaySpeed = 0.25f + RageAttackSpeed;
#endif //PBG_ADD_NEWCHAR_MONK_SKILL
}
void CHARACTER_MACHINE::CalculateAttackSpeed()
{
WORD Dexterity;
///////////////////////////////////////////// Äł¸ŻĹÍ ±âş» ąÎø °č»ę /////////////////////////////////////////////
Dexterity= Character.Dexterity+ Character.AddDexterity;
int CharacterClass = GetBaseClass ( Character.Class );
if ( CharacterClass==CLASS_ELF ) // żäÁ¤.
{
Character.AttackSpeed = Dexterity/50;
Character.MagicSpeed = Dexterity/50;
}
else if ( CharacterClass==CLASS_KNIGHT || CharacterClass==CLASS_DARK ) // 20 --> 18 ±â»ç. ¸¶°Ë»ç.
{
Character.AttackSpeed = Dexterity/15;
Character.MagicSpeed = Dexterity/20;
}
else if ( CharacterClass==CLASS_DARK_LORD )
{
Character.AttackSpeed = Dexterity/10;
Character.MagicSpeed = Dexterity/10;
}
else if (CharacterClass == CLASS_SUMMONER)
{
Character.AttackSpeed = Dexterity/20;
Character.MagicSpeed = Dexterity/20;
}
#ifdef PBG_ADD_NEWCHAR_MONK
else if(CharacterClass == CLASS_RAGEFIGHTER)
{
Character.AttackSpeed = Dexterity/9;
Character.MagicSpeed = Dexterity/9;
}
#endif //PBG_ADD_NEWCHAR_MONK
else // ąý»ç.
{
Character.AttackSpeed = Dexterity/20;
Character.MagicSpeed = Dexterity/10;
}
Character.AttackSpeed = Character.AttackSpeed / 16.4f; // -> 16.8f (Fix 380lvl item)
Character.MagicSpeed = Character.MagicSpeed / 16.4f; // -> 16.8f (Fix 380lvl item)
if (Character.AttackSpeed == 0)
{
Character.AttackSpeed = 1;
}
if (Character.MagicSpeed == 0)
{
Character.MagicSpeed = 1;
}
......
I will complete the Fire sream patch for DL on the pet tomorrow.
If you find a problem with the speed of the attack, please let me know.
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_STRIKE].PlaySpeed = 0.175f + AttackSpeed1; //-> Fire Scream
For Fire Scream work while riding a pet.
PHP:Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_STRIKE].PlaySpeed = 0.175f + AttackSpeed1; //-> Fire Scream
I use thisYou must be registered to see links
Got this working and adapted to cross-platform and rebuild to Unity, thanks for this my friend!
Has someone already separated the chat from the system messages?
if (MsgType != TYPE_SYSTEM_MESSAGE)
{
CMessageText* pAllMsgText = new CMessageText;
if (!pAllMsgText->Create(strID, strText1, MsgType))
delete pAllMsgText;
else
{
m_vecAllMsgs.push_back(pAllMsgText);
}
}
if (MsgType == TYPE_SYSTEM_MESSAGE)
{
nScrollLinesNew++;
}else
if( (GetCurrentMsgType() == TYPE_ALL_MESSAGE || GetCurrentMsgType() == MsgType) && MsgType != TYPE_SYSTEM_MESSAGE)
{
nScrollLines++;
}
if (MsgType == TYPE_SYSTEM_MESSAGE)
{
pvecMsgs = GetMsgs(MsgType);
if (pvecMsgs == NULL)
{
assert(!"Error chat 4");
return;
}
if (nScrollLinesNew > 0 && ((pvecMsgs->size() - (m_iCurrentRenderEndLineMsg + 1) - nScrollLinesNew) < 3))
m_iCurrentRenderEndLineMsg = pvecMsgs->size() - 1;
else if (!m_bShowFrame)
m_iCurrentRenderEndLineMsg = pvecMsgs->size() - 1;
}
bool SEASON3B::CNewUIChatLogWindow::RenderMessagesNew()
{
float fRenderPosX = m_WndPos.x, fRenderPosY = m_WndPos.y - m_WndSize.cy + SCROLL_TOP_BOTTOM_PART_HEIGHT;
type_vector_msgs* pvecMsgs = GetMsgs(TYPE_SYSTEM_MESSAGE);
if (pvecMsgs == NULL)
{
assert(!"empty chat!");
return false;
}
int iRenderStartLine = 0;
if (GetCurrentRenderEndLineMsg() >= m_nShowingLinesMsg)
{
iRenderStartLine = GetCurrentRenderEndLineMsg() - m_nShowingLinesMsg + 1;
}
else
{
fRenderPosY = fRenderPosY + FONT_LEADING + (SCROLL_MIDDLE_PART_HEIGHT * (m_nShowingLinesMsg - GetCurrentRenderEndLineMsg() - 1));
}
fRenderPosY -= 270;
BYTE byAlpha = 150;
if (m_bShowFrame) byAlpha = 100;
EnableAlphaTest();
for (int i = iRenderStartLine, s = 0; i <= GetCurrentRenderEndLineMsg(); i++, s++)
{
if (i < 0 && i >= (int)pvecMsgs->size()) break;
bool bRenderMessage = true;
g_pRenderText->SetFont(g_hFont);
g_pRenderText->SetBgColor(0, 0, 0, 150);
g_pRenderText->SetTextColor(100, 150, 255, 255);
CMessageText* pMsgText = (*pvecMsgs)[i];
if (bRenderMessage && !pMsgText->GetText().empty())
{
POINT ptRenderPos = { (long)fRenderPosX + (long)WND_LEFT_RIGHT_EDGE, (long)fRenderPosY + (long)FONT_LEADING + ((long)SCROLL_MIDDLE_PART_HEIGHT * (long)s) };
if (!pMsgText->GetID().empty())
{
if (m_bPointedMessage == true && m_iPointedMessageIndex == i)
{
g_pRenderText->SetBgColor(30, 30, 30, 180);
g_pRenderText->SetTextColor(255, 128, 255, 255);
}
std::string strIDUTF8 = "";
g_pMultiLanguage->ConvertANSIToUTF8OrViceVersa(strIDUTF8, (pMsgText->GetID()).c_str());
type_string strLine = strIDUTF8 + " : " + pMsgText->GetText();
g_pRenderText->RenderText(ptRenderPos.x, ptRenderPos.y, strLine.c_str());
}
else
{
g_pRenderText->RenderText(ptRenderPos.x, ptRenderPos.y, pMsgText->GetText().c_str());
}
}
}
DisableAlphaBlend();
return true;
}
Code:if (MsgType != TYPE_SYSTEM_MESSAGE) { CMessageText* pAllMsgText = new CMessageText; if (!pAllMsgText->Create(strID, strText1, MsgType)) delete pAllMsgText; else { m_vecAllMsgs.push_back(pAllMsgText); } } if (MsgType == TYPE_SYSTEM_MESSAGE) { nScrollLinesNew++; }else if( (GetCurrentMsgType() == TYPE_ALL_MESSAGE || GetCurrentMsgType() == MsgType) && MsgType != TYPE_SYSTEM_MESSAGE) { nScrollLines++; } if (MsgType == TYPE_SYSTEM_MESSAGE) { pvecMsgs = GetMsgs(MsgType); if (pvecMsgs == NULL) { assert(!"Error chat 4"); return; } if (nScrollLinesNew > 0 && ((pvecMsgs->size() - (m_iCurrentRenderEndLineMsg + 1) - nScrollLinesNew) < 3)) m_iCurrentRenderEndLineMsg = pvecMsgs->size() - 1; else if (!m_bShowFrame) m_iCurrentRenderEndLineMsg = pvecMsgs->size() - 1; } bool SEASON3B::CNewUIChatLogWindow::RenderMessagesNew() { float fRenderPosX = m_WndPos.x, fRenderPosY = m_WndPos.y - m_WndSize.cy + SCROLL_TOP_BOTTOM_PART_HEIGHT; type_vector_msgs* pvecMsgs = GetMsgs(TYPE_SYSTEM_MESSAGE); if (pvecMsgs == NULL) { assert(!"empty chat!"); return false; } int iRenderStartLine = 0; if (GetCurrentRenderEndLineMsg() >= m_nShowingLinesMsg) { iRenderStartLine = GetCurrentRenderEndLineMsg() - m_nShowingLinesMsg + 1; } else { fRenderPosY = fRenderPosY + FONT_LEADING + (SCROLL_MIDDLE_PART_HEIGHT * (m_nShowingLinesMsg - GetCurrentRenderEndLineMsg() - 1)); } fRenderPosY -= 270; BYTE byAlpha = 150; if (m_bShowFrame) byAlpha = 100; EnableAlphaTest(); for (int i = iRenderStartLine, s = 0; i <= GetCurrentRenderEndLineMsg(); i++, s++) { if (i < 0 && i >= (int)pvecMsgs->size()) break; bool bRenderMessage = true; g_pRenderText->SetFont(g_hFont); g_pRenderText->SetBgColor(0, 0, 0, 150); g_pRenderText->SetTextColor(100, 150, 255, 255); CMessageText* pMsgText = (*pvecMsgs)[i]; if (bRenderMessage && !pMsgText->GetText().empty()) { POINT ptRenderPos = { (long)fRenderPosX + (long)WND_LEFT_RIGHT_EDGE, (long)fRenderPosY + (long)FONT_LEADING + ((long)SCROLL_MIDDLE_PART_HEIGHT * (long)s) }; if (!pMsgText->GetID().empty()) { if (m_bPointedMessage == true && m_iPointedMessageIndex == i) { g_pRenderText->SetBgColor(30, 30, 30, 180); g_pRenderText->SetTextColor(255, 128, 255, 255); } std::string strIDUTF8 = ""; g_pMultiLanguage->ConvertANSIToUTF8OrViceVersa(strIDUTF8, (pMsgText->GetID()).c_str()); type_string strLine = strIDUTF8 + " : " + pMsgText->GetText(); g_pRenderText->RenderText(ptRenderPos.x, ptRenderPos.y, strLine.c_str()); } else { g_pRenderText->RenderText(ptRenderPos.x, ptRenderPos.y, pMsgText->GetText().c_str()); } } } DisableAlphaBlend(); return true; }