Minimalne obrażenia w Gothic 1 2510 6

O temacie

Autor Mercer-223

Zaczęty 24.07.2019 roku

Wyświetleń 2510

Odpowiedzi 6

Mercer-223

Mercer-223

Użytkownicy
posty44
Propsy1
Profesjabrak
  • Użytkownicy
Cześć!

Mam problem dotyczący dodania minimalnych obrażeń w Gothicu.
Próbowałem w pliku Balancing.d ale tam są tylko minimalne obrażenia zadawane bohaterowi.
A więc czy był by ktoś w stanie mi mniej więcej wytłumaczyć jak osiągnąć mój cel?

EDIT:
Na forum znalazłem skrypt niestety nie wiem za bardzo gdzie go umieścić.

**************************************************************

func int DMG_OnDmg(var int victimPtr, var int attackerPtr, var int dmg) {

    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;
};

***********************************************************

Z góry dzięki! :D
 

Splash

Splash

Moderator
posty4207
Propsy3403
ProfesjaNierób
  • Moderator
Cytuj
Na forum znalazłem skrypt niestety nie wiem za bardzo gdzie go umieścić.
Jeśli nie wiesz co z tym zrobić, to znaczy, że nie masz pojęcia o podstawach skryptów. Ten skrypt natomiast został stworzony za pomocą zaawansowanych pakietów skryptowych, pozwalających uzyskać dostęp do pamięci gry. Więc jeśli przerastają cię nawet podstawy, to odpuść sobie bardziej skomplikowane rzeczy.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Mercer-223

Mercer-223

Użytkownicy
posty44
Propsy1
Profesjabrak
  • Użytkownicy
Liczyłem na jakąkolwiek pomoc z waszej strony ale no cóż trudno.

Ewentualnie jeśli istnieje jakiś prostszy sposób niż Ikarus czy LeGo to może mnie ktoś nakierować jak mniej więcej to zrobić? Bardzo mi na tym zależy.
 

outlander

outlander

Użytkownicy
posty452
Propsy224
ProfesjaReżyser
  • Użytkownicy
Nie istnieje, jest to głęboka modyfikacja w gameplay i niestety nie da się tego zrobić w sposób łatwy.
 

Mercer-223

Mercer-223

Użytkownicy
posty44
Propsy1
Profesjabrak
  • Użytkownicy
Okej. Dzięki za odpowiedź :)
 

bogu9821

bogu9821

Użytkownicy
posty404
Propsy185
ProfesjaProgramista
  • Użytkownicy
@Mercer-223  Możesz spróbować tego (musisz mieć ikarusa i lego oraz dodać InitDamage(); do initu każdego świata w startupie):
const int MinimalDMG = 5;

func int DMG_OnDmg(var int victimPtr, var int attackerPtr, var int dmg) {

    if(!victimPtr)       { return dmg; }; //jeżeli npc, który dostaje dmg nie istnieje, to zostaw to silnikowi
    if(victimPtr && ! attackerPtr)    { return dmg; }; //jeżeli npc np. spada z ziemi albo dostaje w jakiś niekonwencjonalny sposób dmg, to też zostaw to silnikowi

    if(dmg < MinimalDMG ) // jeżeli orginalne dmg jest mniejsze, niż MinimalDMG
    {
    dmg = MinimalDMG ;    //dmg to minimalne obrażenia
    };

    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;
};
 
while(false) Do();

Mercer-223

Mercer-223

Użytkownicy
posty44
Propsy1
Profesjabrak
  • Użytkownicy
Dzięki za pomoc! Jestem wdzięczny :)
 


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