Pobieranie klatki animacji 9885 42

O temacie

Autor Siemekk

Zaczęty 14.05.2016 roku

Wyświetleń 9885

Odpowiedzi 42

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
@Bogdan Zwei wiem ze oba Gothici się różnią. np. bariera w klasie zcskycontroller której w g2 nie ma. Albo przerywanie animacji ataku w g1...
@Splash możesz mi powiedzieć jedna rzecz (bo ty jako jeden z niewielu na tym globie masz takie obrażenia.) klatkę animacji pobierasz tak jak ja się staram czy używasz Enginehooks?
 

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

Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
Cytuj
klatkę animacji pobierasz tak jak ja się staram
Cytuj
tak jak ja się staram
Starasz się zrozumieć coś, czego nie będziesz w stanie zrozumieć dopóki nie będziesz próbował napisać coś od podstaw. Gapisz się w ten skrypt od miesięcy jak szpak w pizdę i nic ci to nie dało :F Wystarczy kilka linijek by otrzymać klatkę animacji ciosu. A wystarczy tylko zajrzeć do klas.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Halicor

Halicor

Użytkownicy
Hauptsturmfuhrer
posty365
Propsy57
ProfesjaNierób
  • Użytkownicy
  • Hauptsturmfuhrer
"Gapisz się w ten skrypt od miesięcy jak Szpak w pizde" XD sorry za offtop ale to mnie rozjebalo.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Cytuj
A wystarczy tylko zajrzeć do klas.
Tylko do których klas :F oCNPC, oCAniCtrl i coś jeszcze ?
Druga sprawa: Czy ten skrypt dało by się przerobić pod licznik DMG ??
func int DMG_OnDmg(var int victimPtr, var int attackerPtr, var int dmg) {
var c_npc slf; slf = _^(attackerptr); // atakujący
var c_npc oth; oth = _^(victimPtr); // ofiara
var C_Item EQWeapon; EQWeapon = Npc_GetReadiedWeapon(slf); // broń wyciągnięta

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;
};
Tzn. ten skrypt to na 100% licznik dmg tylko jak pobierać w nim npc z voblisty?
EDI = DMG_OnDmg(npc, MEM_ReadInt(MEM_ReadInt(ESP+644)+8), EDI); ? Coś takiego :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.
Musisz użyć loop i tablicę (array) npców. Trudno będzie ten skrypt przerobić tak jak chcesz (tzn. łatwo, jak wiesz jak).
 
: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.

Mark56

Mark56

Moderator
som veľký magič
posty1632
Propsy1846
ProfesjaAnimator
  • Moderator
  • som veľký magič

Tylko do których klas :F oCNPC, oCAniCtrl i coś jeszcze ?


Chcesz odzyskać klatkę i imię animacji która prawie npc wykonuje... zajrzał bym do oCAniCtrl
 


Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
@Mark56
https://www.youtube.com/watch?v=rTD-sAAO3PI

Ale tylko w kwestii klatki animacji ciosu.
 
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
No dobrze. Mam klasę oCAniCtrl_Human. Mam tam różne wskaźniki. I który z nich mógłby się nadawać ?
var oCNpc hiroptr;
var int ptr; ptr=MEM_ReadInt(hiroptr.anictrl);
var oCAniCtrl_Human AniPtr;
Taki zapis, ale nie wiem czy jest poprawny. Oraz wskaźniki i wykorzystanie tego w praktyce.
 

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.
var oCAniCtrl_Human her; her = Hlp_GetNpc(hero);
i teraz się bawisz (jeśli się nie pomyliłem).


var oCNpc oCHer; oCHer = Hlp_GetNpc(hero);
var zCAIPlayer modelState; modelState = _^(oCHer.anictrl);
 
: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
Ok. Czyli mam już dostęp do klasy oCAniCtrl:
var oCNpc oCHer; oCHer = Hlp_GetNpc(hero);
var zCAIPlayer modelState; modelState = _^(oCHer.anictrl);
I teraz jak bym chciał zrobić to pobieranie klatki to musiałbym szukać wskaźnika do combonr ?
modelState.combonr ?
HeroDamage_NextCombo=FALSE;//reset

var oCNpc oCHer; oCHer = Hlp_GetNpc(hero);
        var zCAIPlayer modelState; modelState = _^(oCHer.anictrl);           
combonum =modelState.combonr;//combonr

HeroDamage_lastcombo = combonum;       
//BS - CHECK if !HIT =>quit
if((HeroDamage_lastBS==32794)
&&(Npc_GetBodyState(hero)!=32794))
||(HeroDamage_lastcombo>combonum)
{
HeroDamage_ComboCounter+=1;   
HeroDamage_NextCombo=TRUE;
};             
Nie wiem, coś w takim stylu :F Ork to zaiście dziwnie napisał :/
 

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.
Jesteś pewien, że (Npc_GetBodyState(hero)!=32794)) działa poprawnie? Ja bym użył HasReadiedWEapon(hero) oraz IsInFightmode(FmodeMelee) czy jakoś tak.
 
: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
Dzieki pomocy Splash'a chyba udało mi się znaleźć. Tylko, że nie wiem jak mam rozumieć to:
var int hitAniID; //zTModelAniID
/*
typedef struct {
        zTModelAniID    hitAni;                             
        int             hitOptFrame;
        int             hitEndFrame;
        int             comboStartFrame;
        int             comboEndFrame;
        int             comboDir;
    }
*/
Jak mam podpiąć hitAniID pod hitOptFrame??? bo to zTModelAniID to raczej klasa nie jest ...
 

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.
var int hitAniID;          //zTModelAniID
...
var int anioffset_ani;      //zTModelAniID   
    /*
    typedef struct {
        zTModelAniID    hitAni;                             
        int             hitOptFrame; //0
        int             hitEndFrame; //1
        int             comboStartFrame; //2
        int             comboEndFrame; //3
        int             comboDir; //4
    } oTComboInfo;*/

hitAniID = zTModelAniID
anioffset_ani = zTModelAniID
 
: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
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
Cytuj
Dzieki pomocy Splash'a chyba udało mi się znaleźć. Tylko, że nie wiem jak mam rozumieć to:
To nie to, bo nie czytasz ze zrozumieniem tego, co piszę.
 
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
Teraz już rozumiem :wstyd:
lastHitAniFrame-float trzeba go dać do int'a czyli truncf lub roundf
Na chwilę obecną wygląda to tak:
var int lastHitFrame;
var oCNpc oCHer; oCHer = Hlp_GetNpc(hero);
var zCAIPlayer modelState; modelState = _^(oCHer.anictrl);   
         
lastHitFrame =modelState.lastHitAniFrame;//Hit ID
var int Combo_Frame; Combo_Frame=roundf(lastHitFrame); // dzięki Splash :)
if(Npc_HasRadiedMeleeWeapon(oCHer)&&(Npc_IsInFightMode(oCHer,FMODE_MELEE)))//ma wyciągniętą broń i jest w stanie ataku
{
[...]
Ale nie wiem czy jest dobrze i co potem, czego szukać :/
 

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.
To zastanawiaj się. Zrób to samo co ja z odczytywaniem godzin, minut, sekund i milisekund z WorldTimer. :F
Musisz sam dojść do tego, co chcesz zrobić. Jak na razie tylko bazujesz na skryptach CZ i naszej pomocy.
 
: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
Dzięki Splash'owi udało się osiągnąć zamierzany efekt :)
Jeszcze jedno... Czasem print pojawia się dwa razy tutaj już tylko pytanie czy może to być spowodowane wywoływaniem co klatkę ?
if (combo_frame==5)
{
Prints("Hit");
};
 

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.
Raczej nie. Chociaż może tak być. Jeśli chcesz to zablokować, dodaj zmienną, która będzie wynosiła 1 podczas chcianej klatki, a potem ją redukuj do 0 (tzn. w 5 klatce = 1, w 6 klatce = 0).
 
: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
Ok. I jeszcze jedno... Chodzi mi o funkcję z externals.d
Npc_GetDistToNpc();
Jak licznoy jest dystans??? Bo gdy dałem if ((Npc_GetDistToNpc(hero, _npc) <= EquipMW.range)) nie czytało mi voblisty, ale gdy wywaliłem warunek to normalnie śmiga...
 

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.
Range to cm. Na pewno czyta Ci twoją broń?
 
: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.


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