Vezetés bónuszok.

Indította gyertya, 2019-07-14, 10:23:00

Sziasztok, az érdekelne, hogy hol találom a vezetéshez a bónuszok értéket, skill_proto, vagy forrás, mivel nem tudom miért, de nem adják meg a normális bónuszokat. Pl:Nekem most a 1650 tp helyet 50 tp-t ad csak, hasonl a helyzet a többinél.

Forrásban kell h megadja, de adj még pár információt. Hanyas szinteken próbáltad ki a skillt és milyen karin?

2019-07-14, 12:53:42 #2 Utolsó szerkesztés: 2019-07-14, 12:56:58 Szerző: Chookez™
Van valami "PARTY FIX" kint valamelyik fórumon, ami lényegében egy ComputePoints(ha jól emlékszem!) vagy mi a tököm, ha azt berakod ez lesz az eredménye, ami neked.

Azt hiszem ez az: https://forum.turkmmo.com/konu/3419127-metin2-party-bug-fix-hp-bugu-cozumu/

2019-07-14, 14:28:54 #3 Utolsó szerkesztés: 2019-07-14, 18:23:25 Szerző: gyertya
Összes szinten ugyan azt adja és összes karakteren fabtam11.

Chookez ránézek.

party.cpp (Alap, én még nem szerkesztettem benne.)

void CParty::ComputeRolePoint(LPCHARACTER ch, BYTE bRole, bool bAdd)
{
if (!bAdd)
{
ch->PointChange(POINT_PARTY_ATTACKER_BONUS, -ch->GetPoint(POINT_PARTY_ATTACKER_BONUS));
ch->PointChange(POINT_PARTY_TANKER_BONUS, -ch->GetPoint(POINT_PARTY_TANKER_BONUS));
ch->PointChange(POINT_PARTY_BUFFER_BONUS, -ch->GetPoint(POINT_PARTY_BUFFER_BONUS));
ch->PointChange(POINT_PARTY_SKILL_MASTER_BONUS, -ch->GetPoint(POINT_PARTY_SKILL_MASTER_BONUS));
ch->PointChange(POINT_PARTY_DEFENDER_BONUS, -ch->GetPoint(POINT_PARTY_DEFENDER_BONUS));
ch->PointChange(POINT_PARTY_HASTE_BONUS, -ch->GetPoint(POINT_PARTY_HASTE_BONUS));
ch->ComputeBattlePoints();
return;
}

//SKILL_POWER_BY_LEVEL
float k = (float) ch->GetSkillPowerByLevel( MIN(SKILL_MAX_LEVEL, m_iLeadership ) )/ 100.0f;
//float k = (float) aiSkillPowerByLevel[MIN(SKILL_MAX_LEVEL, m_iLeadership)] / 100.0f;
//
//sys_log(0,"ComputeRolePoint %fi %d, %d ", k, SKILL_MAX_LEVEL, m_iLeadership );
//END_SKILL_POWER_BY_LEVEL

switch (bRole)
{
case PARTY_ROLE_ATTACKER:
{
//int iBonus = (int) (10 + 90 * k);
int iBonus = (int) (10 + 60 * k);

if (ch->GetPoint(POINT_PARTY_ATTACKER_BONUS) != iBonus)
{
ch->PointChange(POINT_PARTY_ATTACKER_BONUS, iBonus - ch->GetPoint(POINT_PARTY_ATTACKER_BONUS));
ch->ComputePoints();
}
}
break;

case PARTY_ROLE_TANKER:
{
int iBonus = (int) (50 + 1450 * k);

if (ch->GetPoint(POINT_PARTY_TANKER_BONUS) != iBonus)
{
ch->PointChange(POINT_PARTY_TANKER_BONUS, iBonus - ch->GetPoint(POINT_PARTY_TANKER_BONUS));
ch->ComputePoints();
}
}
break;

case PARTY_ROLE_BUFFER:
{
int iBonus = (int) (5 + 45 * k);

if (ch->GetPoint(POINT_PARTY_BUFFER_BONUS) != iBonus)
{
ch->PointChange(POINT_PARTY_BUFFER_BONUS, iBonus - ch->GetPoint(POINT_PARTY_BUFFER_BONUS));
}
}
break;

case PARTY_ROLE_SKILL_MASTER:
{
int iBonus = (int) (25 + 600 * k);

if (ch->GetPoint(POINT_PARTY_SKILL_MASTER_BONUS) != iBonus)
{
ch->PointChange(POINT_PARTY_SKILL_MASTER_BONUS, iBonus - ch->GetPoint(POINT_PARTY_SKILL_MASTER_BONUS));
ch->ComputePoints();
}
}
break;
case PARTY_ROLE_HASTE:
{
int iBonus = (int) (1+5*k);
if (ch->GetPoint(POINT_PARTY_HASTE_BONUS) != iBonus)
{
ch->PointChange(POINT_PARTY_HASTE_BONUS, iBonus - ch->GetPoint(POINT_PARTY_HASTE_BONUS));
ch->ComputePoints();
}
}
break;
case PARTY_ROLE_DEFENDER:
{
int iBonus = (int) (5+30*k);
if (ch->GetPoint(POINT_PARTY_DEFENDER_BONUS) != iBonus)
{
ch->PointChange(POINT_PARTY_DEFENDER_BONUS, iBonus - ch->GetPoint(POINT_PARTY_DEFENDER_BONUS));
ch->ComputePoints();
}
}
break;
}
}



Üzenet összefésülés: 2019-07-14, 18:23:25

Útközben megoldottam a problémát, a témát zárom.