Ikarus (Pakiet skryptów) 298581 1020

O temacie

Autor orcwarrior

Zaczęty 11.06.2010 roku

Wyświetleń 298581

Odpowiedzi 1020

Splash

Splash

Moderator
posty4207
Propsy3404
ProfesjaNierób
  • Moderator
Przecież wystarczy zrobić czar na podstawie kuli ognia i zmienić animację.
 
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
Dobra kij z tym xD napiszę nowe zaklęcie do meteoru tylko kolizję zostawię :P
To jeszcze jak można prosić to o to (jakąś podpowiedź) jak zrobić tą samą pozycję na kilku różnych rozdziałkach :) Oraz o odp. na pytanie które dawno mi siedzi w głowie (czemu pasek wytrzymałości nie znika (bez skryptu if (MEM_Game.pause_screen || !InfoManager_HasFinished())
    {
    Bar_Delete (Stamina_Bar);
Bar_Hide (Stamina_Bar);
    }
    else
    {
    StaminaBarfunc();
    };
)
Lub się nie uzupełnia gdy mam ten skrypt dafuq!?
Oczywiście co klatkę :P myślę że to wszystko xD)
 

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

Splash

Splash

Moderator
posty4207
Propsy3404
ProfesjaNierób
  • Moderator
Prawdopodobnie coś jest nie tak z funkcją StaminaBarfunc.
 
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
instance Bar_4(GothicBar)         
{      x = 108; //100               
     y = Print_Screen[PS_Y] - 46;
     width = 180;   //180         
     height = 20;   //20
   backTex = "BAR_BACK_ORG.tga"; 
      barTex = "BAR_Stamina.tga";

};

func void StaminaBarfunc()
{
    if(!Hlp_IsValidHandle(Stamina_Bar))
    {
    Stamina_Bar = Bar_Create(Bar_4);   
    StaminBar = 1;
Bar_SetMax(Stamina_Bar,  40); 
    Bar_SetValue(Stamina_Bar, stamina);
};
};
No nie wiem xD wydaje się dobrze, kiedyś działał właściwie :F, jedynym błędem było pojawianie się go w innym miejscu na różnej rozdziałce tak jak i teraz za cholerę tego nie ogarniam :wstyd: .
 

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

Splash

Splash

Moderator
posty4207
Propsy3404
ProfesjaNierób
  • Moderator
      x = 108; //100         
    if(!Hlp_IsValidHandle(Stamina_Bar))
    {
    Stamina_Bar = Bar_Create(Bar_4);   
    StaminBar = 1;
Bar_SetMax(Stamina_Bar,  40); 
    Bar_SetValue(Stamina_Bar, stamina);
};
Boże, widzisz i nie grzmisz :|
 
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
@Splash nie bij proszę :wstyd: Boże co ja napisałem xD zapomniałem że w tym kiedyś kombinowałem i zostawiłem a teraz zapomniałem spojrzeć na skrypt zanim go wysłałem :F
Co do pozycji Akurat pozycja X jest zawsze właściwa na każdej rozdziałce, ale pozycja Y za uja nie jest dobra bo pasek wytrzymałości, jest zakrywany przez pasek HP którego przesunięcie (działa dobrze ) wygląda tak : bar_hp.zCView_vposy = 7470; (zmienna z pCVoewStatusBar jest przypisana to MEM_GAME)
 

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

pawbuj

pawbuj

Użytkownicy
posty1622
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Nie będę odkopywał znowu tamtego tematu, bo mało kto by tam zaglądał. Do dziś chyba nikt nie wymyślił sensownego sposobu, by zmiana koloru czcionki zaznaczonej opcji dialogowej działała zgodnie z oczekiwaniami bez pojebanego kombinowania. Dzisiaj przypomniałem sobie o tamtym problemie i wykombinowałem. Było to prostsze, niż myślałem.
Ciekawe jest to, że wskaźnik zaznaczonej opcji jest wskaźnikiem obiektu klasy zCViewText2 (Lehona udostępnił ją na niemieckim forum), która praktycznie nie różni się niczym od klasy zCViewText poza dodatkową zmienną unknown. Próba przypisania go do zCViewText kończy się crashem bez żadnego komunikatu. Good guy Piranha Bytes.

Funkcję należy wywołać co klatkę. Tak, działa w obu częściach Gothica.

class zCViewText2 {
    var int unknown;
     /* zCViewText text; */
        var int _vtbl;
       
        var int posx;
        var int posy;
       
        var string text;    //zSTRING //Die Entscheidende Eigenschaft.
        var int font;       //zCFont*
        var int timer;      //zREAL //übrige Zeit für PrintScreen anzeigen die nur eine bestimmte Zeit dauern?
        var int inPrintWin; //zBOOL //vermutlich für anzeigen mit "Print", die nach oben weggeschoben werden.
 
        var int color;      //zCOLOR
        var int timed;      //zBOOL
        var int colored;    //zBOOL     //klingt interessant. Vielleicht kann man hiermit was anfangen.
};

func void ChangeSelectionColor (var int col)
{
    var zCArray arr; arr = _^ (MEM_InformationMan.DlgChoice+172);

    if (arr.array)
    {
    const int null = 0;
    CALL__fastcall (MEM_InformationMan.DlgChoice, _@ (null), MEMINT_SwitchG1G2 (7705536, 6878528));
    var zCViewText2 txt; txt = _^ (CALL_RetValAsPtr());
    txt.color = col;
    txt.colored = true;
    };
};


Niestety nie udało mi się znaleźć konkretnego adresu by można by było fajnie to funkcję wywołać za pomocą HookEngine.

ja tez próbowalem zrobic to hookiem, niestety był zawsze crash. Lehona pomogła mi to zrobić za pomocą FF i tj klasy zcviewtext 2
 

Siemekk

Siemekk

Złote Wrota
Untersturmfuhrer
posty2143
Propsy1151
ProfesjaProgramista
  • Złote Wrota
  • Untersturmfuhrer
Istnieje może jakiś magiczny warunek który pozwoli nam sprawdzić czy NPC (Hero) ma otwarty ekwipunek? Chcę usunąć focus.bar gdy jesteśmy w ekwipunku i inne mniejsze duperele poprawić ale nie mogę znaleźć warunku :/
 

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.
Musisz odszukać funkcję silnikową. Nie jestem pewien, czy jest możliwość bez Ikarusa, ale raczej nie. Możesz także poszukać w oCNpc.
 
: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
posty1622
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Istnieje może jakiś magiczny warunek który pozwoli nam sprawdzić czy NPC (Hero) ma otwarty ekwipunek? Chcę usunąć focus.bar gdy jesteśmy w ekwipunku i inne mniejsze duperele poprawić ale nie mogę znaleźć warunku :/
nps in state BS_INVENTORY. dodawałem do expa za skrzynie po ich otwarciu
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Tyle, że to działa na Twój cel. Nie na ekwipunek hero.
 
: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.

kaczka

kaczka

RaveN Studio
Definitely not kaczka!
posty2281
Propsy2392
NagrodyV
ProfesjaLvl designer
  • RaveN Studio
  • Definitely not kaczka!
Mógłbyś wzorować się tym.

    if(!_QS_Wld) {
        _QS_Wld = create(oWorld@);
        CALL__thiscall(_QS_Wld, zCWorld__zCWorld);
        var oWorld w; w = MEM_PtrToInst(_QS_Wld);
        w.m_bIsInventoryWorld = 1;

        HookEngine(oCGame__RenderX, 6, "_Quickslots_Hook");
        HookEngine(oCNpc__CloseInventory, 6, "_QS_CloseInv");
        HookEngine(oCNpc__OpenInventory, 6, "_QS_OpenInv");
        // Neue Quest: Vernichte die Runenmagie
        MemoryProtectionOverride(7577148, 5);
        MEM_WriteByte(7577148+0, 233/*E9*/);
        MEM_WriteByte(7577148+1, 229/*E5*/);
        MEM_WriteByte(7577148+2, 001/*01*/);
        MEM_WriteByte(7577148+3, 000/*00*/);
        MEM_WriteByte(7577148+4, 000/*00*/);
        // Quest Erfolg: Vernichte die Runenmagie
    };
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
 
: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
Untersturmfuhrer
posty2143
Propsy1151
ProfesjaProgramista
  • Złote Wrota
  • Untersturmfuhrer

Siemekk
Złote Wrota

Ikarus (Pakiet skryptów)
#353 2016-04-16, 12:38(Ostatnia zmiana: 2016-04-16, 23:23)
Double (Starą część usunąłem.)
Sekundki kombinowania, i efekt mnie zadowala xD
func void barInventory_Open()
{
var oCViewStatusBar bar_focus; bar_focus = MEM_PtrToInst (MEM_GAME.focusBar);
   bar_focus.zCView_vposy = 100000;
};

func void barInventory_Close(){
var oCViewStatusBar bar_focus; bar_focus = MEM_PtrToInst (MEM_GAME.focusBar);
  bar_focus.zCView_vposy = 300; 
};


func void Init_Inventory(){
HookEngine(oCNpc__CloseInventory, 6, "barInventory_Close");
HookEngine(oCNpc__OpenInventory, 6, "barInventory_Open");
};
Inicjować w startup przez Init_Inventory();
Ogólnie skrypt będę chciał ulepszać, np. przesunięcie okna z informacjami lekko w dół, wyrzucenie napisu z ilością pieniędzy na dól i obniżeniu kolumn (Chcę zrobić 2 cinemascope tylko o innym wyglądzie do ekwipunku :3 )
Tak więc myślę że funkcja się przyda :)
(Jeżeli ktoś chce aby działało do g1 należy zmienić adresy, co jest rzeczą oczywistą :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.
func void barInventory_Open()
{
var oCViewStatusBar bar_focus; bar_focus = MEM_PtrToInst (MEM_GAME.focusBar);
  bar_focus.zCView_vposy = 100000;
};

Nie lepiej zmienić na 0?  :F albo -10 jeśli jeszcze widać.

[/color]
func void barInventory_Close(){
var oCViewStatusBar bar_focus; bar_focus = MEM_PtrToInst (MEM_GAME.focusBar);
  bar_focus.zCView_vposy = 300; 
};

Sprawdzałeś, czy nie ustawia się domyślnie na swoją wartość? Tzn. po wyłączeniu ekwipunku.
 
: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
Untersturmfuhrer
posty2143
Propsy1151
ProfesjaProgramista
  • Złote Wrota
  • Untersturmfuhrer
Z ciekawości sprawdziłem, i nie wraca na pozycję poprzednią.
Daje cinematic na ekwipunek, problemem jest to że nie chce zniknąć, jak ktoś to ogarnie niech napisze :)
Vfx:
INSTANCE InventoryScope_FX(CFx_Base_Proto)
{
visname_s = "screenblend.scx";
userstring[0] = "0";
userstring[1] = "0 0 0 0";
userstring[2] = "0.1";
userstring[3] = "DIALOG_SCOPE_A0";
userstring[4] = "0";
visalphablendfunc_s = "NONE";
};
Poprawiony skrypt ekwipunku:func void CinematicInventory_Open()
{
Wld_PlayEffect("InventoryScope_FX",hero,hero,0,0,0,FALSE);
var oCViewStatusBar bar_focus; bar_focus = MEM_PtrToInst (MEM_GAME.focusBar);
   bar_focus.zCView_vposy = 100000; //-10 i niżej dawało taki sam efekt jak 0
};


func void CinematicInventory_Close(){
Wld_StopEffect("InventoryScope_FX");
var oCViewStatusBar bar_focus; bar_focus = MEM_PtrToInst (MEM_GAME.focusBar);
  bar_focus.zCView_vposy = 200;  //wedle upodobania
};


func void Init_Inventory(){
HookEngine(oCNpc__CloseInventory, 6, "CinematicInventory_Close");
HookEngine(oCNpc__OpenInventory, 6, "CinematicInventory_Open");
};

Jedynie co trzeba poprawić to wywalanie VFX bo u mnie nie chce działać...
Tekstura:
http://www.speedyshare.com/aHfCb/Desktop.rar<--- Z r2.0
I to chyba wszystko, jak ogarnę przesunięcie informacji to znowu odświeżę :F
Tak btw. adres oCNpc__CloseInventory jest inny od tego z tablicy adresów z WoG'a. Dziwne trochę, albo mam złe adresy :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.
Wld_StopEffect("INVENTORYSCOPE_FX"); <- musi być z dużej.
 
: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
Untersturmfuhrer
posty2143
Propsy1151
ProfesjaProgramista
  • Złote Wrota
  • Untersturmfuhrer
Faktycznie, zadziałało. Trzeba dodać parę warunków, ale to zrobię kiedy będę miał chęci :F
Tak przy okazji @Bogdan Zwei  zrób vfx dodaj WLD_Play i stop do ZS_TALK i masz swoje wymarzone CinemaScope :F (tylko to wersja uboga xD)
 

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.
Mi starczą chęci do poszukania właściwego adresu. Jak na razie nie ma u mnie czegoś takiego (no i czas też ucieka).
 
: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
posty1622
Propsy135
ProfesjaSkrypter
  • Użytkownicy
czy jest możłiwośc za pomocą Lego/Ikarus stworzenie własnego boxa (na wzór jak w dialogach)?

i czy funkcję Print można edytować jej współrzędne jak i kolor i rodzaj fonta. są to dane zawarte w silniku.
 


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