Üdv. Valaki megtudná mondani forrásban hogy tudom lekorlátozni hogy például a "Védekezési esély harcos támadás ellen" 70% legyen. Úgy értem hogy minden cuccba teszel ugye és össze számolod lenne például 90, de a szerver csak 70-ig engedi hiába van a cuccaidba több.
Köszi előre is.
Találtam valamit, a battle.cpp-ben, de nem vagyok benne biztos hogy ez az.
Szerintetek?
else if (pkVictim->IsPC())
{
iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_HUMAN)) / 100;
switch (pkVictim->GetJob())
{
case JOB_WARRIOR:
iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_WARRIOR)) / 100;
break;
case JOB_ASSASSIN:
iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_ASSASSIN)) / 100;
break;
case JOB_SURA:
iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_SURA)) / 100;
break;
case JOB_SHAMAN:
iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_SHAMAN)) / 100;
break;
}
Én eleve leszűkíteném, hogy a Point ne mehessen X érték fölé, nem csak támadáskor számoltatnám másképp a szerverrel.
char.cpp:
case POINT_ATTBONUS_WARRIOR:
pár case-el alatta:
SetPoint(type, GetPoint(type) + amount);
val = GetPoint(type);
break;
Valahogy így módosítanám:
if (54 <= type && type <= 57 && (GetPoint(type) + amount >= 70))
{
SetPoint(type, 70);
}
else
{
SetPoint(type, GetPoint(type) + amount);
}
val = GetPoint(type);
break;
Aztán ha a védelmeket is akarod akkor még 1 kicsivel lejjebb:
case POINT_RESIST_WARRIOR :
case POINT_RESIST_ASSASSIN :
case POINT_RESIST_SURA :
case POINT_RESIST_SHAMAN :
SetPoint(type, GetPoint(type) + amount);
val = GetPoint(type);
break;