Kilka pytań (Gothic I) 361 17

O temacie

Autor BlackSwordsman

Zaczęty 29.12.2016 roku

Wyświetleń 361

Odpowiedzi 17

BlackSwordsman

BlackSwordsman

Użytkownicy
posty22
Propsy2
Profesjabrak
  • Użytkownicy

Po pierwsze czy istnieje możliwość modyfikacji ceny SPRZEDAŻY u kupców za pomocą jakiejś zmiennej (nie ogólnej wartości)np. na zamiast 1/2 na 1/3 albo 1/5 wartości.

2. Czy istnieje możliwość zmiany tekstury nieba w trakcie dialogu.

3. Jak wiadomo podczas ataku z łuku do obrażeń nie jest dodawana zręczność w przeciwieństwie do ataku wręcz gdzie dodawana jest siła. Czy jest jakiś sposób żeby to zmienić?

 

BlackSwordsman

BlackSwordsman

Użytkownicy
posty22
Propsy2
Profesjabrak
  • Użytkownicy
Naprawdę nikt nic nie wie?
 

Siemekk

Siemekk

Użytkownicy
Szlachcic
posty1379
Propsy318
ProfesjaSkrypter
  • Użytkownicy
  • online
  • Szlachcic
1)Tak
2)Tak
3)Tak

Wystarczy Ikarus i jego znajomość.
 
Jeżeli masz z czymś problem pisz na PW. Postaram się pomóc :)

Moje skrypty:
Dwa ostrza |Unbalance 1.2

Splash

Splash

The Modders
And i said...
posty3340
Propsy2264
ProfesjaSkrypter
  • The Modders
  • And i said...
 
Bardzo bym prosił o niezawracanie mi głowy na PW problemami dotyczącymi podstaw w moddingu. Nie jestem tu jedyną osobą, która potrafi pomóc.

Lehona

Lehona

Użytkownicy
posty157
Propsy156
  • Użytkownicy
3. Jak wiadomo podczas ataku z łuku do obrażeń nie jest dodawana zręczność w przeciwieństwie do ataku wręcz gdzie dodawana jest siła. Czy jest jakiś sposób żeby to zmienić?

Maybe I'm just understanding this wrong (Google Translate...), but ranged Attacks (Bows/Crossbows) get additional damage from dexterity, just like melee attacks get additional damage from strength.

The difference is that, essentially, ranged hits (iff they actually hit) always crit (really a critical strike is just "normal damage"), while melee attacks normally only do 1/10 of their actual damage.
 
Unless specified otherwise, my posts are always about Gothic 2 Night of the Raven.

pawbuj

pawbuj

Użytkownicy
posty1244
Propsy83
ProfesjaSkrypter
  • Użytkownicy
  • online

3. Jak wiadomo podczas ataku z łuku do obrażeń nie jest dodawana zręczność w przeciwieństwie do ataku wręcz gdzie dodawana jest siła. Czy jest jakiś sposób żeby to zmienić?
Tak.
 Tylko trzeba to zrobić z głową,np masz 100 dext. i zadajesz z łuku extra 100 damage? bez sensu.
 
Gothic 1 UpdatePack fixmod 0.1 wkrótce!

BlackSwordsman

BlackSwordsman

Użytkownicy
posty22
Propsy2
Profesjabrak
  • Użytkownicy
pawbuj dokładnie o to chodzi symetrycznie jak broń do walki wręcz (pamiętaj że mówimy o Gothic 1 nie 2). Dzięki chłopaki powinienem sobie poradzić teraz.
 

pawbuj

pawbuj

Użytkownicy
posty1244
Propsy83
ProfesjaSkrypter
  • Użytkownicy
  • online
pawbuj dokładnie o to chodzi symetrycznie jak broń do walki wręcz (pamiętaj że mówimy o Gothic 1 nie 2). Dzięki chłopaki powinienem sobie poradzić teraz.
punkt 3  nie zrobisz hookiem, przykład dotyczy Splasha dla g2nk, ja zrobiłem to inaczej. wg mnie nadal jednak nie ma to sensu, tak jak jest mi pasuje.
 
Gothic 1 UpdatePack fixmod 0.1 wkrótce!

BlackSwordsman

BlackSwordsman

Użytkownicy
posty22
Propsy2
Profesjabrak
  • Użytkownicy
W takim razie jak?
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Suck my dick.
posty1498
Propsy374
Profesjabrak
  • Użytkownicy
  • Suck my dick.
Zrobi hookiem. Jeśli znasz assemblera, albo kogoś, kto go ogarnia - easy.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

BlackSwordsman

BlackSwordsman

Użytkownicy
posty22
Propsy2
Profesjabrak
  • Użytkownicy
Nie znam :(

Post połączony: 2017-01-11, 14:44
Trochę zmodyfikowałem skrypt, ale wiadomo że nie będzie działać. Musi być jakieś "połączenie" między tym, a skryptem który oblicza obrażenia, a wiadomo że nie ma go w zwykłych skryptach. A ja wogóle nie ogarniam Ikarusa. Zdaje sobie sprawe, że to forum jest do nauki, a nie wyręczania się ludzmi, ale proszę o pomoc. Podejrzewam, że tu wystarczy zmienić parę linijek. Dla kogoś ogarniętego to jest moment. Ja nie mam pojęcia od której strony to ugryźć.


func int DMG_OnDmg(var int victimPtr, var int attackerPtr, var int dmg)
{
// Diese Funktion anpassen, wenn ihr den Schaden verändern wollt! 'dmg' ist der von Gothic berechnete Schaden.

//dmg = 10; ///jeder Angriff = 10 Schaden just testing

//Var c_npc slf; slf = attackerptr;
//Var c_npc oth; slf = victimPtr;
var int meleedamage;

var c_item tmpItm; tmpItm = Npc_GetEquippedRangedWeapon(self);
var c_item wpn; wpn = Npc_GetEquippedRangedWeapon(self);

var int wpnDmg; wpnDmg = tmpItm.damageTotal;

if (Npc_HasReadiedRangedWeapon(self)) //Fernkampf  ist buggy
{
//var c_item wpn; wpn = Npc_GetEquippedRangedWeapon(self);
//var int rangecritchance;
    //if wpn2.flags & ITEM_BOW { rangecritchance = slf.HitChance[NPC_TALENT_BOW]; }
//else if wpn2.flags & ITEM_CROSSBOW { rangecritchance = slf.HitChance[NPC_TALENT_CROSSBOW]; };


meleedamage = (wpnDmg + self.attribute[ATR_DEXTERITY]);  /////testing ändern

};

dmg = meleedamage;
return dmg;
};


func void _DMG_OnDmg()
{
EDI = DMG_OnDmg(EBP, MEM_ReadInt(MEM_ReadInt(ESP+644)+8), EDI);
};

func void InitDamage()
{
const int dmg = 0;
if (dmg) { return; };
//HookEngineF(6736583/*0x66CAC7*/, 5, _DMG_OnDmg);
dmg = 1;
};
 

pawbuj

pawbuj

Użytkownicy
posty1244
Propsy83
ProfesjaSkrypter
  • Użytkownicy
  • online
nie zadziała, ja to obeszłem uzywając perców przy assessdamage.ale chyba chicken publikował ten skrypt do g1, powinien być w temacie z ikariusem.
 
Gothic 1 UpdatePack fixmod 0.1 wkrótce!

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Suck my dick.
posty1498
Propsy374
Profesjabrak
  • Użytkownicy
  • Suck my dick.
To jest potrzebne. Określa npc, który dostaje po dupie i npc który atakuje.
   //Var c_npc slf; slf = attackerptr;
   //Var c_npc oth; slf = victimPtr;

W tym skrypcie jedyne co robisz to pisanie swojej funkcji damage.

--------------------------------------------------------------------------------------------------------

func void _DMG_OnDmg()
{
EDI = DMG_OnDmg(EBP, MEM_ReadInt(MEM_ReadInt(ESP+644)+8), EDI);
};
Tutaj, EDI to ilość zadawanych obrażeń. Jak widać, wcześniejsza funkcja podmienia wartość obrażeń (albo nic nie podmienia). W tym hooku, EDI może Ci posłużyć do zmieniania obrażeń zadawanych albo do pokazywania (używając printów) ilości zadawanych obrażeń.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

BlackSwordsman

BlackSwordsman

Użytkownicy
posty22
Propsy2
Profesjabrak
  • Użytkownicy
Cytuj
  //Var c_npc slf; slf = attackerptr;
   //Var c_npc oth; slf = victimPtr;
Nie działa. Wywala błąd i wyrzuca do pulpitu.

To samo z tym drugim skryptem.
 

Splash

Splash

The Modders
And i said...
posty3340
Propsy2264
ProfesjaSkrypter
  • The Modders
  • And i said...
Ta funkcja i tak nie zadziała, bo jest ona do drugiej części Gothica.
 
Bardzo bym prosił o niezawracanie mi głowy na PW problemami dotyczącymi podstaw w moddingu. Nie jestem tu jedyną osobą, która potrafi pomóc.

Lehona

Lehona

Użytkownicy
posty157
Propsy156
  • Użytkownicy
Sorry for the misunderstanding, I did not notice this is about G1.

Trochę zmodyfikowałem skrypt, ale wiadomo że nie będzie działać. Musi być jakieś "połączenie" między tym, a skryptem który oblicza obrażenia, a wiadomo że nie ma go w zwykłych skryptach. A ja wogóle nie ogarniam Ikarusa. Zdaje sobie sprawe, że to forum jest do nauki, a nie wyręczania się ludzmi, ale proszę o pomoc. Podejrzewam, że tu wystarczy zmienić parę linijek. Dla kogoś ogarniętego to jest moment. Ja nie mam pojęcia od której strony to ugryźć.
Again, bear with if I'm misunderstanding you, but the connection to the actual damage calculation from the engine comes from this line:
   HookEngineF(6736583/*0x66CAC7*/, 5, _DMG_OnDmg);
This magic number is specific to G2, so someone will have to look it up for Gothic 1 (which is non-trivial). This line probably needs to be changes as well:
   EDI = DMG_OnDmg(EBP, MEM_ReadInt(MEM_ReadInt(ESP+644)+8), EDI);
Although once you have the proper address, finding the correct offsets (the numbers in this line) will be comparatively easy.

And lastly I just want to leave this link: https://app.assembla.com/spaces/lego2/subversion/commits/list
Make of it what you want, but I'm sure some of you will figure out what I mean by this :)



 
Unless specified otherwise, my posts are always about Gothic 2 Night of the Raven.

Splash

Splash

The Modders
And i said...
posty3340
Propsy2264
ProfesjaSkrypter
  • The Modders
  • And i said...
Here is for G1:
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;
};
 
Bardzo bym prosił o niezawracanie mi głowy na PW problemami dotyczącymi podstaw w moddingu. Nie jestem tu jedyną osobą, która potrafi pomóc.

BlackSwordsman

BlackSwordsman

Użytkownicy
posty22
Propsy2
Profesjabrak
  • Użytkownicy
Działa! Tak wgląda gotowy skrypt:

func int DMG_OnDmg(var int victimPtr, var int attackerPtr, var int dmg)
{
// Diese Funktion anpassen, wenn ihr den Schaden verändern wollt! 'dmg' ist der von Gothic berechnete Schaden.

//dmg = 10; ///jeder Angriff = 10 Schaden just testing

var c_npc slf; slf = _^(attackerptr);
var c_npc oth; oth = _^(victimPtr);
var int meleedamage;


var c_item tmpItm;
var c_item wpn;

var int wpnDmg;
       
    var int armRes;
If tmpItm.damagetype == DAM_EDGE { armRes = oth.protection[PROT_EDGE]; }
else if tmpItm.damagetype == DAM_BLUNT { armRes = oth.protection[PROT_BLUNT]; }
else if tmpItm.damagetype == DAM_POINT { armRes = oth.protection[PROT_POINT]; };

if (Npc_HasReadiedRangedWeapon(slf)) //Fernkampf  ist buggy
{

tmpItm = Npc_GetReadiedWeapon(slf);
wpn = Npc_GetEquippedRangedWeapon(slf);
wpnDmg = tmpItm.damageTotal;

meleedamage = ((wpnDmg + slf.attribute[ATR_DEXTERITY])-armRes);  /////testing ändern

}
else
{
tmpItm = Npc_GetReadiedWeapon(slf);
wpn = Npc_GetReadiedWeapon(slf);
wpnDmg = tmpItm.damageTotal;

meleedamage = wpnDmg ;  /////testing ändern
};

dmg = meleedamage;
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;
};

Oczywiście lecą propsy!
Teraz tylko muszę ogarnąć pozostałe rzeczy.
 


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