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]
  • Avatar utilizator - SCOOB
    Administrator
    Administrator
    *Descriere:
    Facut de @DynCast

    DynCast Combat Inspector
    Urmărești o lovitură. Inspectezi un efect. Compari două evenimente.

    Ai schimbat o formulă de rezistență sau de skill și nu înțelegi de ce lovitura finală arată greșit? Combat Inspector afișează într-o fereastră in-game, pentru GM, valorile înregistrate de game core. Alegi un eveniment și vezi ce s-a trimis clientului, cât HP a pierdut de fapt ținta și pașii de calcul înregistrați.
    Dauna afișată și HP-ul pierdut sunt valori separate. O lovitură poate arăta mai multă daună decât HP-ul rămas al țintei. Inspectorul le arată pe amândouă, plus HP-ul țintei înainte și după.
    Ce poți inspecta
    • Daune: atacuri normale și de la distanță, skill-uri ofensive și daune periodice suportate, fiecare cu tipul de daună stabilit de server.
    • Efecte de skill: aplicare, reîmprospătare, eliminare și expirare, inclusiv buff-uri primite de la alt jucător (sursă, țintă, valoare bonus, durată).
    • Detalii de calcul: pașii în ordinea serverului, cu valori intermediare și șanse/roll-uri, când verificarea respectivă a rulat.
    • Comparare și export: fixezi un eveniment ca A, alegi altul ca B și vezi valorile una lângă alta. Opțional, poți copia raportul în clipboard.

    Tooltip-uri explicative
    • Aproape fiecare element are explicație la hover: butoane, filtre, istoric, statistici, rânduri de calcul, comparații.
    • Rândurile de calcul arată valoarea completă chiar dacă tabelul e compact.
    • La comparare, o liniuță (-) înseamnă că pasul nu a fost înregistrat, nu că valoarea e 0.
    • Are un ghid rapid integrat și păstrează stilul vizual original Metin2.

    De unde vin valorile
    • Game core-ul înregistrează evenimentele pe parcursul calculului de luptă și al efectelor. Clientul doar le afișează; nu încearcă să ghicească formula din cifra de deasupra personajului.
    • Fiecare eveniment arată doar pașii prin care a trecut. Nu există o formulă universală.
    • Skill-urile custom, sistemele de luptă rescrise sau alte ID-uri de point-uri pot cere adaptarea hook-urilor.

    Utilizare
    Necesită cont IMPLEMENTOR.

    Cod: Selectaţi tot

    /combat_inspector
    /combat_inspector self
    /combat_inspector NumeCaracter
    /combat_inspector stop
    
    1. Alegi caracterul (gol = tu) și apeși Capture. O captură nouă șterge istoricul vechi.
    2. Ataci, folosești un skill sau primești un buff; evenimentele apar în istoric.
    3. Selectezi un eveniment: citești rezumatul, apoi pașii de calcul.
    4. Pin A fixează un eveniment de referință, apoi alegi altul ca B. Clear pin revine la raportul normal.
    5. Stop oprește captura și păstrează istoricul. Copy report copiază raportul (dacă ai binding-ul de clipboard).

    Exemplu: capturezi un atac înainte de un buff defensiv, îl fixezi ca A, apoi capturezi unul după buff și compari pașii de apărare și HP-ul pierdut. Rețineți că roll-urile aleatoare și loviturile critice pot diferi și ele.


    Compatibilitate și limite
    • Făcut pentru source-uri game în C++23 și client Python 3. Files-urile mai vechi necesită adaptare.
    • Fără SQL, modul DB sau quest; folosește canalul de comenzi existent.
    • Capturile sunt locale pe un singur core, durează maxim 10 minute și păstrează ultimele 120 de evenimente.
    • Maxim 20 evenimente/secundă per observator și 16 observatori per core. Evenimentele sărite sunt semnalate.

    Test
    Testat cu un GM și un jucător normal: GM-ul a capturat un atac normal, dauna de la Shooting Dragon și un Blessing primit de la celălalt jucător. Contul normal nu a putut deschide inspectorul.
    • 01 · Shooting Dragon – daună magică și HP pierdut
    • 02 · Blessing – sursă, țintă, bonus și durată
    • 03 · Comparare A/B – atac normal vs. skill ofensiv
    Descriere originala in engleza:
    DynCast Combat Inspector
    Trace a hit. Inspect an effect. Compare two events.



    Leave a feedback if this system helps you: Metin2Dev Feedback

    Ever changed a resistance or skill formula and still wondered why the final hit looked wrong? Combat Inspector puts the numbers recorded by the Metin2 Game core into an in-game window for GMs. Select an event to see what was sent to the client, what actually happened to the target’s HP, and the calculation stages that were recorded.

    The goal is to make combat debugging easier to follow: what happened, who caused it, and which recorded steps led to the result. It is useful when testing balance changes, checking defensive bonuses, investigating a skill or comparing a character before and after receiving a buff.
    Damage and HP loss are separate values.
    A hit can display more damage than the target had left. The inspector shows both values alongside the target’s HP before and after.

    What you can inspect

    Damage. Normal and ranged attacks, offensive skills, and supported periodic damage. Each entry shows the server’s damage classification.
    Skill effects. Follow application, refresh, removal and expiration, including buffs cast by another character. Inspect the source, target, bonus value and duration when recorded.
    Calculation details. Follow the recorded stages in server order, including intermediate values and chance/roll information when the corresponding check ran.
    Compare and share. Pin one event as A, select B and read the values side by side. The optional clipboard binding lets you copy the report.

    Informative tooltips throughout the interface

    The interface is designed to explain its controls and results as you use it. Hover explanations are provided for the character field, capture controls, filters, section headers, capture status, event counter, history entries, skill icon, overview metrics, calculation rows, comparison controls and scrollbar controls. A built-in quick guide also walks through capturing, inspecting and comparing events.

    Controls explain their behavior. For example, Stop explains that it ends collection while keeping the current history available.
    History entries identify the event. Hover to read its outcome, source and target before opening the full report.
    Metrics explain the number you are reading. Overview tooltips distinguish the displayed result from the actual change and the target’s state.
    Calculation rows include their recorded value and an explanation. You can read the full value even when the compact table has limited space.
    Comparison tooltips include both events. They show A and B values and explain differences in context where the recorded stages differ. A dash means that the event did not record that step; it does not mean zero.

    Tooltips and reports use the included Python table renderer, with a compact layout, scrollable history and calculation details, and a standard Metin2 BoardWithTitleBar. The interface keeps the original Metin2 visual style and uses its image resources at their native scale.

    Where the numbers come from

    The Game core records events along the instrumented combat and affect paths. The client displays those records; it does not try to reconstruct the server’s damage formula from the number floating above a character. Buff events can identify another character as the source, so you can inspect effects received from someone else as well as your own actions.
    Read the recorded path, not a universal formula.
    Different attacks can take different paths. Only stages recorded for that event appear in its report, and damage labels follow the server’s classification. Custom skills, combat rewrites and different point IDs may require adapting the integration hooks and labels to your source.

    Start a capture

    Use an IMPLEMENTOR account. The first command opens the board. Leave the character field blank to watch yourself, or enter a name to watch a player on the same Game core.

    /combat_inspector
    /combat_inspector self
    /combat_inspector CharacterName
    /combat_inspector stop

    Choose a character and press Capture. A new capture clears the previous history.
    Perform an attack, use a skill or receive a buff. Events involving the watched character appear in the history.
    Select an entry. Read the overview first, then scroll through its recorded calculation details. Hover a control or report row whenever you need an explanation.
    Pin a reference with Pin A. Select another event to compare it as B. Clear pin returns to the normal report.
    Stop and review. Stopping preserves the visible history. Copy report exports the complete selected report and the pinned reference, if present, when the clipboard binding is installed.

    Example: capture an attack before a defensive buff, pin it, then capture another attack after the buff. Compare the recorded defensive stages and HP loss. Other variables, such as random rolls or critical hits, may also differ; the report helps you see which values were actually recorded for each event.
    Compatibility and capture limits
    The supplied implementation targets C++23 Game sources and a Python 3 client. Older forks need adaptation. It uses the existing server command channel and requires no SQL migration, DB module or quest. Captures are local to one Game core, last up to ten minutes and retain the latest 120 events in the client. Live reporting is limited to 20 events per second per observer, with up to 16 observers per core. Skipped events are indicated in the capture status.

    Three screenshots from a two-client test session

    01 · Shooting Dragon · magic damage and HP loss

    02 · Blessing · source, target, bonus and duration

    03 · A/B comparison · normal attack versus offensive skill
    Tested with a GM and a regular player.
    The GM captured a normal attack, Shooting Dragon damage and a Blessing applied by the other character. The regular account could not open the inspector.

    This is a development and GM inspection tool. Access is checked by the server and requires IMPLEMENTOR privileges. Test the integration on your development server before deploying it, especially if your combat formulas or affect handling differ from the reference source.

    If you hit a porting issue, share your fork, the event type and the relevant calculation path so it can be reproduced.


    *Poze / Video:
    [C++/Py] Combat Inspector - Mesaj 1 - Imagine 1
    clipboard-1794521482816-1.png (288.79 KiB) Vizualizat de 28 ori
    [C++/Py] Combat Inspector - Mesaj 1 - Imagine 2
    clipboard-1794521490108-2.png (288.94 KiB) Vizualizat de 28 ori
    [C++/Py] Combat Inspector - Mesaj 1 - Imagine 3
    clipboard-1794521494886-3.png (296.33 KiB) Vizualizat de 28 ori
    *Link download / Code:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    *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

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

    Informații

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

    Discord ID copiat: