Ikarus (Pakiet skryptów) 283835 1020

O temacie

Autor orcwarrior

Zaczęty 11.06.2010 roku

Wyświetleń 283835

Odpowiedzi 1020

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Adresy i offsety, są tylko do Gothic 2!!! Testowałem krótki czas, ale powinno działać w 99%.

@pawbuj
 
: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.

pawbuj

pawbuj

Użytkownicy
posty1623
Propsy135
ProfesjaSkrypter
  • Użytkownicy

pawbuj

Ikarus (Pakiet skryptów)
#981 2017-12-21, 10:43(Ostatnia zmiana: 2018-01-13, 10:17)
@Bohdan

Deadulus hooks nic do tego nie ma.
 

inż. Avallach

inż. Avallach

Administrator
posty7662
Propsy5238
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Ikarus (Pakiet skryptów)
#982 2017-12-21, 12:38(Ostatnia zmiana: 2017-12-21, 14:58)
@Siemekk
Bardzo dobry pomysł, użyłem podobnego projektując automatyczny build system dla SoulFire (https://forum.worldofplayers.de/forum/threads/1482976-Build-system).
W pliku .ini moda:
[OPTIONS]
force_parameters= -nomenu -3d:bootstrap
W skryptach zamiast Init_bootstrap możesz prawdopodobnie użyć wywoływanego wcześniej (a więc szybciej) InitPerceptions, o ile dodasz warunek upewniający się że robimy to tylko raz. Oryginalne InitPerceptions w tym przypadku olewamy (upewniamy się tylko że wywoła się przy wczytywaniu prawdziwego świata), co także oszczędza nam czas (w menu perceptiony NPC nie są nam jeszcze potrzebne).
func void InitPerceptions()
{
    // najpierw sprawdź w Ikarusie czy nie jesteśmy już zainicjalizowani
    MEM_InitAll();
    // tutaj reszta Ikarusowego stuffu - lekkie animowane tło, kursor, kontrolki menu itd
};

W ten sposób:
 - świat nowej gry pozostanie normalny (NewWorld.zen) i nie trzeba go podmieniać w pamięci Ikarusem
 - nie musisz tworzyć żadnego zena (gra nie znajdzie bootstrap.zen więc załaduje pusty czarny świat, który uzupełniasz już skryptami w lepszy sposób)
 - nie musisz tworzyć specjalnego launchera dodającego nowe parametry do .exe
 - całość prawdopodobnie załaduje się szybciej

pawbuj

pawbuj

Użytkownicy
posty1623
Propsy135
ProfesjaSkrypter
  • Użytkownicy
@Splash, poniżej twój kod na skalowanie choice boxa.

MEM_WriteInt (ptr+56, 0); odpowiada za współrzędne przesunięcia w osi x .
chcę to nieco zmodyfikować w osi Y. Rozumiem , że zmieniamy ptr+?. Nie bardzo to rozumiem.
func void SetChoiceBoxScale ()
{
    var int ptr; ptr = MEM_ReadInt(MEMINT_oCInformationManager_Address+28);
    MEM_WriteInt (ptr+64, STR_ToInt (MEM_GetGothOpt ("VIDEO", "zVidResFullscreenx")));   
   
    MEM_WriteInt (ptr+56, 120);
   
};
 

Siemekk

Siemekk

Złote Wrota
Untersturmfuhrer
posty2143
Propsy1151
ProfesjaProgramista
  • Złote Wrota
  • Untersturmfuhrer
Te liczby dodawane do pointera to offsety klasy oCViewDialog(?)
Offset + 56 to startowa pozycja X, + 64 to końcowa. Z znajomosci matematyki wiadomo, ze współrzędne są zapisywane jako x, y. Wiec offset 60 to pozycja startowa okna, a 68 to końcowa) (Dla osi Y)
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

pawbuj

pawbuj

Użytkownicy
posty1623
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Te liczby dodawane do pointera to offsety klasy oCViewDialog(?)
Offset + 56 to startowa pozycja X, + 64 to końcowa. Z znajomosci matematyki wiadomo, ze współrzędne są zapisywane jako x, y. Wiec offset 60 to pozycja startowa okna, a 68 to końcowa) (Dla osi Y)

zapisałem to w nast sposób, ale rezultatu nie dało.

MEM_WriteInt (ptr+68, 120); 
    MEM_WriteInt (ptr+60, 120);
 

Siemekk

Siemekk

Złote Wrota
Untersturmfuhrer
posty2143
Propsy1151
ProfesjaProgramista
  • Złote Wrota
  • Untersturmfuhrer
Pozycje nie mogą być takie same. Daj 0 i np. 120 i zobacz czy działa.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
MEM_WriteInt (ptr+68, 120); 
    MEM_WriteInt (ptr+60, 120);

Musisz poszukać odpowiednie pointery, my możemy Ci powiedzieć, że to 68 i 60, a w rzeczywistości może to być 64 i 72 (poszukaj w odpowiedniej klasie albo szukaj samemu, w zasięgu 56 - 72). W Gothic 2 to faktycznie 60 (dla pozycji) i 68 (dla rozmiaru).
 
: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.

pawbuj

pawbuj

Użytkownicy
posty1623
Propsy135
ProfesjaSkrypter
  • Użytkownicy
ok,znalazłem, wygląda zajebiście.

pytanie kolejne: jak mogę edytować inne tzw. infoboxy, chociażby te , które są w smalltalkach.

na pewno musimy edytować ten wpis.
var int ptr; ptr = MEM_ReadInt(MEMINT_oCInformationManager_Address+28);
 

Splash

Splash

Moderator
posty4207
Propsy3403
ProfesjaNierób
  • Moderator
Nie chcę być upierdliwy, ale pytasz o te same rzeczy od lat i nadal nie wiesz jak to zrobić?
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Siemekk

Siemekk

Złote Wrota
Untersturmfuhrer
posty2143
Propsy1151
ProfesjaProgramista
  • Złote Wrota
  • Untersturmfuhrer
@inż. Avallach Nie wiesz może, jakie funkcje są wywołane podczas initu gry? Chodzi mi o funkcje ładowane przed Init_Globals.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.


pawbuj

pawbuj

Użytkownicy
posty1623
Propsy135
ProfesjaSkrypter
  • Użytkownicy
witam,

mam problem z FrameFunctions. Korzystając z tej funkcji zauważyłem bugowanie się dialogów tzn. niekiedy dialogi wypowiadane przez npc kończą się wcześniej niż powinny. Dzieje się tak jeżeli wcześniej korzystałem z FF. Być może źle są wyłączane przez FF_Remove. Ktoś kiedyś o tym pisał, nie wiem czy nie @Siemekk
 

Siemekk

Siemekk

Złote Wrota
Untersturmfuhrer
posty2143
Propsy1151
ProfesjaProgramista
  • Złote Wrota
  • Untersturmfuhrer
Nie pamiętam, abym miał takie błędy.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

pawbuj

pawbuj

Użytkownicy
posty1623
Propsy135
ProfesjaSkrypter
  • Użytkownicy
 

Splash

Splash

Moderator
posty4207
Propsy3403
ProfesjaNierób
  • Moderator
Postaram się wkrótce napisać poradnik, bo to naprawdę fajna rzecz. SystemPack 1.7 pozwala implementować do modyfikacji własne skrypty bez potrzeby ich dekompilacji.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

pawbuj

pawbuj

Użytkownicy
posty1623
Propsy135
ProfesjaSkrypter
  • Użytkownicy
3. Workaround (G2: Ninja_Workaround.vdf)
This Ninja patch is especially useful to introduce workarounds to common story bugs in mods; Close a dead quest, reset a dialog that was spoken too early, change the value of a variable, etc. Until the mod team can provide a fix, this Ninja patch is a great temporary solution for pressing bugs. For more information check out the readme file inside the VDF.

to chyba najbardziej ciekawa opcja. Rozumiem, że tworzymy paczkę VDF i nasze zmiany w modzie sa widoczne w innych modach? Czyli paczka nadpisuje cześciowo skrypty moda?
 

Splash

Splash

Moderator
posty4207
Propsy3403
ProfesjaNierób
  • Moderator
Cytuj
to chyba najbardziej ciekawa opcja. Rozumiem, że tworzymy paczkę VDF i nasze zmiany w modzie sa widoczne w innych modach? Czyli paczka nadpisuje cześciowo skrypty moda?
Tak.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

pawbuj

pawbuj

Użytkownicy
posty1623
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Postaram się wkrótce napisać poradnik, bo to naprawdę fajna rzecz. SystemPack 1.7 pozwala implementować do modyfikacji własne skrypty bez potrzeby ich dekompilacji.
to nie do końca tak działa.

mozemy ustawiać wartość zmiennej z konsoli, ustawić status zadania i uruchamiać funkcje z externala jak i te z moda.

chodzi o to, że jeżeli mamy bug w modzie to sami możemy (do czasu oficjalnej łatki) popchnąć fabułę dalej.
 

Siemekk

Siemekk

Złote Wrota
Untersturmfuhrer
posty2143
Propsy1151
ProfesjaProgramista
  • Złote Wrota
  • Untersturmfuhrer
To są gotowe rzeczy które mud-freak udostępnił. Można dodawać wszystko do dowolnej modyfikacji (Paski kinowe, Obrażenia obszarowe, zmienny przelicznik sprzedaży) Wystarczy tylko ogarnąć jak to działa.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.


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