[G1]: Gotowiec: Skrypt dodający minimalne obrażenia do Gothica 1 27 0

O temacie

Autor Kirgo2

Zaczęty 12.02.2026 roku

Wyświetleń 27

Odpowiedzi 0

Kirgo2

Kirgo2

Użytkownicy
posty55
Propsy9
ProfesjaGracz
  • Użytkownicy
Podrzucam gotowca dodającego minimalne obrażenia do Gothica 1. Oznacza to, że od teraz nawet postać z 5 punktami siły może pokonać trolla - bo każdy cios będzie zadawał pewne minimalne obrażenia.

To jest właściwie zmodyfikowany skrypt @bogu9821 z kilkoma usprawnieniami:
- wyłączeniem dla nieumarłego szamana (by nie można go było pokonać bez Uriziela);
- wyłączeniem dla golemów, by lodowego pokonywać ogniem, ognistego lodem a nie np. łukiem, mieczem czy lagą;
- wyłączenia dla łuków i kusz by nie powalać wrogów na dystans z jakiegoś kamienia (czyli bez ryzyka) z najsłabszego łuku bo to rozwalałoby balans gry.

Można to wkleić nawet do pliku "B_InExtremo.d" w _work\DATA\scripts\Content\Story\B

UWAGA: Trzeba mieć wgranego IKARUS-a. Wbrew pozorom instalacja IKARUS-a jest prosta nawet dla całkowitego n00ba i nie trzeba się tego bać nawet jak się zaczyna przygodę z moddingiem, bo dzięki jego wgraniu można potem wklejać pewne gotowe skrypty jak choćby ten.

Jakby ktoś potrzebował to tutaj ma krok po kroku jak zainstalować IKARUS-a https://themodders.org/index.php?topic=43232.0



Wstawianie gotowca
Wklejamy poniższy kod przykładowo w tym pliku "B_InExtremo.d" w _work\DATA\scripts\Content\Story\B:

//#############################################################################################
//////////Minimal Damage
//////////
//////////Author: Bogu9821, https://themodders.org/index.php?topic=30154.0 (edited by Kirgo2)
///////////////////////////////////////////////////////////////////////////////////////////////

const int MinimalDMG = 5;

func int DMG_OnDmg(var int victimPtr, var int attackerPtr, var int dmg) {
    var c_npc victimNpc; victimNpc = _^(victimPtr);
   
    if(!victimPtr) { return dmg; };
    if(victimPtr && !attackerPtr) { return dmg; };

    // Pobiera instancję atakującego
    var c_npc attackerNpc; attackerNpc = _^(attackerPtr);

    // Sprawdza, czy obrażenia są mniejsze niż minimum
    if(dmg < MinimalDMG)

    && (Npc_HasReadiedRangedWeapon(attackerNpc) == FALSE)  // Sprawdza, czy atakujący nie używa broni dystansowej (łuk/kusza)
    && (Hlp_GetInstanceID (victimNpc) != ORC_Priest_5)  //sprawdza czy "ofiara" nie jest piątym szamanem czy golemami
    && (Hlp_GetInstanceID (victimNpc) != StoneGolem)
    && (Hlp_GetInstanceID (victimNpc) != StoneGolemXardas)
    && (Hlp_GetInstanceID (victimNpc) != SummonedByPC_StoneGolem)
    && (Hlp_GetInstanceID (victimNpc) != FireGolem)
    && (Hlp_GetInstanceID (victimNpc) != FireGolemXardas)
    && (Hlp_GetInstanceID (victimNpc) != IceGolem)
    && (Hlp_GetInstanceID (victimNpc) != IceGolemXardas)
    && (Hlp_GetInstanceID (victimNpc) != BridgeGolem)
    {
        dmg = MinimalDMG;
    };

    return dmg;
};

func void _DMG_OnDmg() {

    EAX = DMG_OnDmg(ECX, MEM_ReadInt(MEM_ReadInt(ESP+548)+4), EAX);
};
func void InitDamage() {
    const int dmg = 0;
    if (dmg) { return; };
    HookEngineF(7567329, 6, _DMG_OnDmg);
    dmg = 1;
};


Potem w pliku "Startup.d" trzeba wstawić "InitDamage();"

(Pamiętaj: najpierw instalacja IKARUS-a a potem ten skrypt - bo to w ramach instalacji IKARUS-a tworzy się funkcję "INIT_GLOBAL" w Startup.d)

Po wstawieniu będzie to wyglądać tak:

FUNC VOID INIT_GLOBAL()
{
    // Init Ikarus
    MEM_InitAll ();

    // Init LeGo
    LeGo_Init(LeGo_All);


InitDamage();
};

Potem standardowo odpalamy przez Gothic Starter z opcją "Reparse Scripts" (usuwając przedtem "OU.BIN" i "OU.CSL" z folderu "CUTSCENE" Z _work\DATA\scripts\Content\CUTSCENE).

Brawo. Od teraz masz w grze mechanikę minimalnych obrażeń :)


PS: Kod jest robiony z wykorzystaniem AI - ale to chyba nie ważne czy kot jest biały czy czarny - ważne by łapał myszy. To ma po prostu oszczędzić czas dla każdego kto w przyszłości będzie chciał dodać tę mechanikę do swojego moda a niekoniecznie ogarnia jeszcze bardziej zaawansowane rzeczy. Creditsy dla @bogu9821.
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry