Ikarus (Pakiet skryptów) 414542 1020

O temacie

Autor orcwarrior

Zaczęty 11.06.2010 roku

Wyświetleń 414542

Odpowiedzi 1020

Splash

Splash

Moderator
posty4211
Propsy3414
ProfesjaNierób
  • Moderator
Że też nikt o tym jeszcze nie trąbi tutaj xD Mud-Freak opublikował wersję 0.1.1 skryptu umożliwiającego swobodne celowanie bronią dystansową i zaklęciami. Sprawdziłem to i nadal nie mogę wyjść z podziwu, co ten człowiek potrafi i jakie możliwości oferują pakiety skryptowe :D
http://forum.worldofplayers.de/forum/threads/1473223-Skript-Freies-Zielen
 
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
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Cytuj
Że też nikt o tym jeszcze nie trąbi tutaj xD Mud-Freak opublikował wersję 0.1.1 skryptu umożliwiającego swobodne celowanie bronią dystansową i zaklęciami. Sprawdziłem to i nadal nie mogę wyjść z podziwu, co ten człowiek potrafi i jakie możliwości oferują pakiety skryptowe :D
Może to i lepiej że nie trąbią :F Bo zaraz w co drugim modzie będzie:
Mod oferuje:
-Zadania :O
-Wolne celowanie !!!1

Mniejsza... Fajnie można pobawić się właściwościami celownika :D np. Ja zrobiłem, że celownik ma kolor zależny od czaru. Zapewne można więcej, ale komu się chce :F
 

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.
Jestem chyba jedyny, który pobrał te skrypty tylko po to, żeby zajebać parę skryptów, które przydadzą mu się w przyszłości.

Jakoś nie jestem fanem wolnego celowania. Tym bardziej, że moim zdaniem to nie pasuje do takiej gry jak Gothic 1 i 2. Fakt, warto by było dodać taki bajer do moda, jeśli ktoś chciałby się tym pobawić.
 
: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.

Splash

Splash

Moderator
posty4211
Propsy3414
ProfesjaNierób
  • Moderator
Cytuj
Tym bardziej, że moim zdaniem to nie pasuje do takiej gry jak Gothic 1 i 2.
Strzelanie do tyłu zawsze na propsie :F
 
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
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Cytuj
Strzelanie do tyłu zawsze na propsie :F
Oj tam :F to tylko zEngine :F
Btw. piszę kilka skryptów które mam zamiar udostępnić(kołczany, pochwy, i Ikarusowe śmieci) Jednak z jednym mam problem :I Próbuję napisać funkcję zmiany gracza, jednak ciągle crashuje :/ Mimo iż kod jest poprawny:
func void Set_PlayerID(var int nptr)
{
const int oCNpc__SetPlayerOffset = 7612064;//0x007426A0
CALL__thiscall(MEM_InstToPtr(nptr),oCNpc__SetPlayerOffset);
};
 

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

Splash

Splash

Moderator
posty4211
Propsy3414
ProfesjaNierób
  • Moderator
Cytuj
Mimo iż kod jest poprawny
Nie jest:
MEM_InstToPtr(nptr)
Poza tym w dokumentacji Ikarusa jest poprawnie napisana funkcja:
func void SetAsPlayer (var C_NPC slf)
{
    const int oCNpc__SetAsPlayer = 7612064;
    CALL__thiscall (MEM_InstToPtr (slf), oCNpc__SetAsPlayer);
};
 
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
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Cytuj
Poza tym w dokumentacji Ikarusa jest poprawnie napisana funkcja
O tym nie wiedziałem :F Ale dzięki za pomoc ;)
 

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

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Ktoś wie jaki wskaźnik w kamerze odpowiada za zasięg widzenia? Chcialbym się z tym pobawić, lecz nie mam pojęcia który to wskaźnik (szukałem już ale niektóre tylko deformowały obraz) :| Prosiłbym o pomoc :/ Chodzi coś a'la efekt lornety.
 

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

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Chodzi ci o ogniskową - jej zmiana daje wizualny efekt powiększenia obrazu (ważne - tak naprawdę nic nie przybliża).
Jest ona zakodowana w macierzy transformacji obrazu w instancji zCCamera. Rzuciłbym okiem na metodę zCCamera::GetMatrix z g2ext - https://github.com/DaDummy/g2ext/blob/3777a8a22faa6435e4b962e920bb974b9627e801/api/g2/zccamera.h#L114 , ewentualnie na headery z Ikarusa.
Niestety, to jest jedna z tych nielicznych sytuacji w game devie gdzie naprawdę trzeba znać matematykę - tutaj trzeba wykonać przekształcenie matematyczne na macierzy.

Swoją drogą - jest w silniku już efekt graficzny który robił proste przekształcenia na tej macierzy. Pamiętasz efekt bagiennego ziela w G2?
Niestety nie jest sparametryzowany, ale może naprowadzić cię na jakiś trop. Efekt nosi w silniku nazwę fov morph i jest aktywowany przez ustawienie w VFXie visName_S na *.fov.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
GetMatrix to zMAT4 czyli w Daedalusie zapisuje się to jako array[16]; Ale całe szczęście jest on w Ikarusowej klasie zCAMERA
    //Transformationsmatrizzen:
    var int camMatrix   [16];       //zMATRIX4
    var int camMatrixInv[16];       //zMATRIX4
 

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

Splash

Splash

Moderator
posty4211
Propsy3414
ProfesjaNierób
  • Moderator
Możliwe, że znalazłem:
0054A960:    zCCamera::SetFOV(float,float)
0054A920:    zCCamera::SetFOV(float)
 
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
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
func void SetFOV(var int fl,var int fl2)
{
CALL_FloatParam(mkf(fl));
CALL_FloatParam(mkf(fl2));
Call__thiscall(_@(MEM_CAMERA),5548384);
};
Funkcja działa, tylko nie wiem jak interpretować argumenty :/
 

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

Splash

Splash

Moderator
posty4211
Propsy3414
ProfesjaNierób
  • Moderator
Zhookuj ją i zobacz jakie są wartości argumentów.
 
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
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Jak się Hookuje? Wiadomo że hooengine, ale jak pobrać argumenty?
EAX,ESP etc. ?
 

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

Splash

Splash

Moderator
posty4211
Propsy3414
ProfesjaNierób
  • Moderator
Print (ConcatStrings ("Pierwszy argument: ", IntToString (MEM_ReadInt (ESP+4))));
Print (ConcatStrings ("Drugi argument: ", IntToString (MEM_ReadInt (ESP+8))));
 
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
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Szukając wektorów do lotu vob'a znalazłem przez przypadek coś ciekawego... W klasie zCSkyState:
zVEC3 m_vRainColor; //1CCzyli można zrobić w **** szaro gdy pada deszcz :D  Przykład:
func void Set_RainCol(var int time, var int R, var int G, var int B)
{
    var int ptr; ptr = MEM_ReadInt (MEM_SkyController.stateList_array + time * 4); //by Splash
    MEM_WriteInt(ptr+28, R);
    MEM_WriteInt(ptr+32, G);
    MEM_WriteInt(ptr+36, B);
};
A później wywołać co klatkę ustawiając jakiś kolor :F Chyba powinno zadziałać...
Klasa z C++
zVEC3 m_vPolyColor; //4
zVEC3 m_vFogColor; //10
zVEC3 m_vRainColor; //1C
zVEC3 m_vSkyColor; //28
float m_fMinColorRange; //34
BOOL m_bDay; //38
BOOL m_bAlphaDir; //3C
zCSkyLayerData m_LayerData[2]; //40
Teraz chyba będzie można nawet zmienić alfę nieba :hmmm: @Splash?
 

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.
zVEC3 = R, G, B
zVEC4 = R, G, B, A

Jeśli mówimy o kolorach w tym skrypcie. Jak widać nie ma tam zVEC4. Nie zmienisz alfy. Te zmienne w kodzie odpowiadają za kolor, bez alfy.
 
: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.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Nie zapominaj o zCSkyLayerData.
class zCSkyLayerData
{
public:
zESkyLayerMode m_enuSkyMode; 
zCTexture* m_pTex;     
zSTRING m_sTexName;             
float m_fTexAlpha;
float m_fTexScale;               
zVEC2 m_vTexSpeed[2];
float         m_fTexAlpha;  !!!
Czyli
MEM_WriteInt(ptr+60,true);
MEM_WriteInt(ptr+68/*1 layer*/, mkf(180));
I wtedy chyba powinno działać...
 

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

Lehona

Lehona

Użytkownicy
posty196
Propsy190
  • Użytkownicy
zVEC3 = R, G, B
zVEC4 = R, G, B, A

Jeśli mówimy o kolorach w tym skrypcie. Jak widać nie ma tam zVEC4. Nie zmienisz alfy. Te zmienne w kodzie odpowiadają za kolor, bez alfy.

Colors are usually encoded using zCOLOR, which is just a single int. I find it unlikely to be different here, so it's probably three colors (for interpolating or sth), not just RGB.
 
Unless specified otherwise, my posts are always about Gothic 2 Night of the Raven.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Działa :D Dowód:

Przykład kodu:
func void SetSkyAlpha(var int time, var int l0a, var int l1a)
{
    var int ptr; ptr = MEM_ReadInt (MEM_SkyController.stateList_array + time * 4); //by Splash
var zCSkyState state; state = _^(ptr);
MEM_WriteInt(ptr+60,true);
state.layer0_texAlpha = mkf(l0a);
state.layer1_texAlpha = mkf(l0a);
};
 

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