*Descriere:
Pe scurt: schimbă felul în care se generează Paguba Medie și Paguba Abilităților pe armele care vin cu aceste bonusuri din start.
Cum e normal în Metin2:
Unele arme au în item_proto un addon_type, adică primesc automat PGM + PGC când apar (drop, craft) și când le rebonusezi.
Valorile sunt calculate cu o formulă aleatoare în item_addon.cpp, iar cele două sunt legate invers: cu cât e mai mare PC, cu atât e mai mică (sau negativă) PGM, și invers. Rezultatul e destul de imprevizibil, de la valori slabe la valori foarte mari.
Ce face codul ăsta:
Înlocuiește formula originală cu intervale fixe, alese de tine:
Varianta 1: ca sistemul clasic, unul dintre bonusuri e pozitiv și celălalt negativ, dar cu limite clare:
jumătate din cazuri: Medie +30…+60, Abilități -1…-30;
cealaltă jumătate: Abilități +15…+30, Medie -1…-30.
Varianta 2: arma primește doar unul dintre bonusuri, mereu pozitiv: ori Medie 30–60, ori Abilități 15–30, cu 50% șansă fiecare.
La ce folosește:
Controlezi exact cât de puternice pot fi armele. De exemplu, nu mai iese cineva cu 70+ Medie din noroc, deci echilibrezi PvP-ul.
Nimeni nu mai stă ore la rebonusat după o valoare extremă, pentru că maximul e cunoscut.
--
*Link download / Code:
Varianta 1 – Sistem clasic (cu minus)
Varianta 2 – Doar un bonus (fără minus)
*Link scanare VirusTotal (obligatoriu):
--
Pe scurt: schimbă felul în care se generează Paguba Medie și Paguba Abilităților pe armele care vin cu aceste bonusuri din start.
Cum e normal în Metin2:
Unele arme au în item_proto un addon_type, adică primesc automat PGM + PGC când apar (drop, craft) și când le rebonusezi.
Valorile sunt calculate cu o formulă aleatoare în item_addon.cpp, iar cele două sunt legate invers: cu cât e mai mare PC, cu atât e mai mică (sau negativă) PGM, și invers. Rezultatul e destul de imprevizibil, de la valori slabe la valori foarte mari.
Ce face codul ăsta:
Înlocuiește formula originală cu intervale fixe, alese de tine:
Varianta 1: ca sistemul clasic, unul dintre bonusuri e pozitiv și celălalt negativ, dar cu limite clare:
jumătate din cazuri: Medie +30…+60, Abilități -1…-30;
cealaltă jumătate: Abilități +15…+30, Medie -1…-30.
Varianta 2: arma primește doar unul dintre bonusuri, mereu pozitiv: ori Medie 30–60, ori Abilități 15–30, cu 50% șansă fiecare.
La ce folosește:
Controlezi exact cât de puternice pot fi armele. De exemplu, nu mai iese cineva cu 70+ Medie din noroc, deci echilibrezi PvP-ul.
Nimeni nu mai stă ore la rebonusat după o valoare extremă, pentru că maximul e cunoscut.
*Poze / Video:Nota: Afectează doar armele care au addon, adică cele care primesc oricum Medie/Abilități. Bonusurile normale (cele 5 de la bonusare) rămân neatinse.
--
*Link download / Code:
Varianta 1 – Sistem clasic (cu minus)
- 50% șansă: Daună Medie +30…+60 și Daună Abilități -1…-30.
- 50% șansă: Daună Abilități +15…+30 și Daună Medie -1…-30.
- Ambele bonusuri apar mereu, dar unul e pozitiv și celălalt negativ.
- Intervalele (plus și minus) se schimbă din valorile de lângă comentarii.
Cod: Selectaţi tot
#include "stdafx.h"
#include "constants.h"
#include "utils.h"
#include "item.h"
#include "item_addon.h"
CItemAddonManager::CItemAddonManager()
{
}
CItemAddonManager::~CItemAddonManager()
{
}
void CItemAddonManager::ApplyAddonTo(int iAddonType, LPITEM pItem)
{
if (!pItem)
{
sys_err("ITEM pointer null");
return;
}
pItem->RemoveAttributeType(APPLY_SKILL_DAMAGE_BONUS);
#ifdef ENABLE_AVG_PVM_DISABLE
pItem->RemoveAttributeType(APPLY_ATTBONUS_MEDI_PVM);
#else
pItem->RemoveAttributeType(APPLY_NORMAL_HIT_DAMAGE_BONUS);
#endif
#ifdef ENABLE_AVG_PVM
pItem->RemoveAttributeType(APPLY_ATTBONUS_MEDI_PVM);
#endif
int iAverageBonus = 0;
int iSkillBonus = 0;
if (number(1, 100) <= 50)
{
iAverageBonus = number(30, 60); // Dauna Medie: intre +30 si +60
iSkillBonus = -number(1, 30); // Dauna Abilitati: intre -1 si -30
}
else
{
iSkillBonus = number(15, 30); // Dauna Abilitati: intre +15 si +30
iAverageBonus = -number(1, 30); // Dauna Medie: intre -1 si -30
}
#ifdef ENABLE_AVG_PVM_DISABLE
pItem->AddAttribute(APPLY_ATTBONUS_MEDI_PVM, iAverageBonus);
#else
pItem->AddAttribute(APPLY_NORMAL_HIT_DAMAGE_BONUS, iAverageBonus);
#endif
pItem->AddAttribute(APPLY_SKILL_DAMAGE_BONUS, iSkillBonus);
}
- 50% șansă: doar Daună Medie 30–60.
- 50% șansă: doar Daună Abilități 15–30.
- Niciodată ambele și niciodată valori negative. La fiecare rebonusare se poate schimba între ele.
Cod: Selectaţi tot
#include "stdafx.h"
#include "constants.h"
#include "utils.h"
#include "item.h"
#include "item_addon.h"
CItemAddonManager::CItemAddonManager()
{
}
CItemAddonManager::~CItemAddonManager()
{
}
void CItemAddonManager::ApplyAddonTo(int iAddonType, LPITEM pItem)
{
if (!pItem)
{
sys_err("ITEM pointer null");
return;
}
pItem->RemoveAttributeType(APPLY_SKILL_DAMAGE_BONUS);
#ifdef ENABLE_AVG_PVM_DISABLE
pItem->RemoveAttributeType(APPLY_ATTBONUS_MEDI_PVM);
#else
pItem->RemoveAttributeType(APPLY_NORMAL_HIT_DAMAGE_BONUS);
#endif
#ifdef ENABLE_AVG_PVM
pItem->RemoveAttributeType(APPLY_ATTBONUS_MEDI_PVM);
#endif
int iChoice = number(1, 2); // 50% Dauna Medie / 50% Dauna Abilitati
if (iChoice == 1)
{
int iAverageBonus = number(30, 60); // Dauna Medie: 30-60
#ifdef ENABLE_AVG_PVM_DISABLE
pItem->AddAttribute(APPLY_ATTBONUS_MEDI_PVM, iAverageBonus);
#else
pItem->AddAttribute(APPLY_NORMAL_HIT_DAMAGE_BONUS, iAverageBonus);
#endif
}
else
{
int iSkillBonus = number(15, 30); // Dauna Abilitati: 15-30
pItem->AddAttribute(APPLY_SKILL_DAMAGE_BONUS, iSkillBonus);
}
}
--



