Administrator
Administrator
  • Mesaje: 5001
    Membru din: 07 Aug 2024, 18:53
  • Reacții: 126501
  • Mesaje utile: 47
  • Status: Pe aici.. 🤠
    Server: Saga2 - Soon
  • Regat: Jinno
  • [ID Discord]
  • *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.
    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.
    *Poze / Video:
    --

    *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);
    }
    
    Varianta 2 – Doar un bonus (fără minus)
    • 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);
    	}
    }
    
    *Link scanare VirusTotal (obligatoriu):
    --
    Fii primul care reacționează

    Nou Cum descarc de pe TeraBox?

    Afișează detalii Ascunde detalii
    • Este asemănător cu Mega.nz
    • Instalați-vă clientul lor de Download de aici
    • Faceți-vă un cont (vă puteți loga cu Facebook / Google / etc)
    • Nou Dacă nu vreți să descărcați clientul de Download, folosiți acest site
    • Gata! Acum puteți descărca resursele rapid & simplu.

    De ce folosim TeraBox?

    • Este gratuit
    • Primești 1TB de spațiu gratuit la orice cont creat!
    • Este ușor de folosit și varianta premium este foarte ieftină
    • Fișierele nu sunt șterse niciodată
    TeraBox logo
    See full signature
    • Subiecte similare

    Înapoi la “Îmbunătățiri”

    Informații

    Utilizatori ce navighează pe acest forum: 0NeXuS0, Demonul, Dragos, edwinnebunu, SCOOB și 9 vizitatori

    Discord ID copiat: