Pobieranie klatki animacji 9897 42

O temacie

Autor Siemekk

Zaczęty 14.05.2016 roku

Wyświetleń 9897

Odpowiedzi 42

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Problemy u mnie pojawiają się jak grzyby po deszczu  :lol2: :lol2: :lol2: (a raczej niedokończone skrypty  :lol2: )  Na dysku od dawna znajduje się nieukończony skrypt obrażeń obszarowych :F
Tworzenie voblisty mam, licznik obrażeń też prawie jest gotowy, jedynym problemem jest pobieranie klatki Hit_Anim. Przy próbie o takiej:
  if(i < heroVobList_arrMax)
    {
        vob = MEM_ReadIntArray(heroVobList_arr, i);
       
        if(Hlp_Is_oCNpc(vob))
        {
            _npc = _^(vob);
           
          //  if ((Npc_GetDistToNpc(hero, _npc) <= EquipMW.range))
// { narazie nie potrzebne
                if(Npc_canseenpc(hero,_npc))
                {
_npc.attribute[ATR_HITPOINTS]-=1;
Npc'tom nie zabiera 1 pż, lecz ok. 40-50 funkcja pobierania klatki wygląda tak:
func int HeroDamage_HeroCanDoHit() //Zrobione
{
//1st pass
var int BS;
//2nd pass
                const int anictri = 2432;
var int combo_frame; var int hit_begin_frame; var int hit_end_frame;
var int combonum; var int heroptr;

BS = Npc_GetBodyState(hero);
if(BS!=32794)//BS_HIT
{     
//recalculate hitID rite now
//cuz HeroDamage_Init func don't even init
if(HeroDamage_lastBS==32794)
{
HeroDamage_ComboCounter+=1;   
HeroDamage_NextCombo=TRUE;
//recalculate id
HeroDamage_DamageID = 10*HeroDamage_lastcombo + 100*HeroDamage_ComboCounter;   

};     
HeroDamage_lastBS = BS;       
return 0;
};

var oCNpc hiro;
hiro = Hlp_GetNpc (hero);
heroptr = MEM_InstToPtr(hiro);
heroptr = MEM_InstGetOffset(hero); 
HeroAniCtrl_Offset = MEM_ReadInt(heroptr+anictrl);//anictrl               
combonum = MEM_ReadInt(HeroAniCtrl_Offset+436);//combonr
combo_frame = truncf(MEM_ReadInt(HeroAniCtrl_Offset+444));
hit_begin_frame = MEM_ReadInt(HeroAniCtrl_Offset+460 + 4*6*combonum)-2 ;//-2y
hit_end_frame = MEM_ReadInt(HeroAniCtrl_Offset+464 + 4*6*combonum)+1;//+1
if (hit_begin_frame>combo_frame) || (hit_end_frame<combo_frame)
{//combo frame is out of bound of hit frames
return 0;     
};

//Sprint resetUpClick - toggle sprint on/off is unwelcome during fight combo
return 1;

};
I nie mam pojęcia jak można dobrze pobierać tą 1 klatkę. (I czy potem można by było pobierać klatki ściągania broni (stworzenie nowego slotu na broń D: ))
 

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.
Uhm... Ten skrypt wygląda jak skrypt z jakiegoś moda, którego porzucił jeden modder, z powodu przeprowadzki, który także był robiony przez jednego użytkownika tego forum i zawierał niezliczoną ilość bugów. Niezbyt pamiętam jak ten mod się nazywał. Skrypty tego moda są także udostępnione na tym forum. O! Prawie zapomniałem! Ten mod miał także przerobiony skrypt obrażeń, który się bugował praktycznie co chwilę.

Nie jestem pewien, ale nazwa tego moda to było coś z jakimś czasem i pieniędzmi.  :lol2:


Co do obrażeń, tworzy się pętla, która wywołuje skrypt bardzo dużo razy.
 
: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
Uhm... Ten skrypt wygląda jak skrypt z jakiegoś moda, którego porzucił jeden modder, z powodu przeprowadzki, który także był robiony przez jednego użytkownika tego forum i zawierał niezliczoną ilość bugów. Niezbyt pamiętam jak ten mod się nazywał. Skrypty tego moda są także udostępnione na tym forum. O! Prawie zapomniałem! Ten mod miał także przerobiony skrypt obrażeń, który się bugował praktycznie co chwilę.

Nie jestem pewien, ale nazwa tego moda to było coś z jakimś czasem i pieniędzmi.  :lol2:


Co do obrażeń, tworzy się pętla, która wywołuje skrypt bardzo dużo razy.
Kurdę za duża zagadka poczekaj... hmm może D:
-Dziedzictwo?
-Dzieje Khorinis?
-Złote Wrota II?
-Zagadka orków?
-Returning 2?
-Edycja rozszerzona?
-Global Mod?
-Dark Saga?
-Mroczne tajemnice?
Napewno któryś z tych D: Przychodzi mi jeszcze 1 ale wątpie że to ten. Nie ma on przecież takich super skryptów i podobno go jakieś nołnejmy robiły Czas Zapłaty. Ale na 100% to nie ten D:
Jak wyebać tą pętlę. (Bug w tym skrypcie z moda polegał na kolizji a ja chce NPC_CanSeeNpc)
 

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.
Możesz to zrobić na podstawie zmiennej, na początek dajesz
if zmienna
{
zmienna = false;
return;
};
a uzupełniać ja bedziesz na sam koniec skryptu.
 
: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
Do którego skryptu D: w vobliscie dałem i nie działa, zaś w wyzwalaczu jest tak:
func void Damage_Init(){

if(!HeroDamage_HeroCanDoHit()){return;};

Read_voblist();
HeroDamageInit();
};
 

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
Ponawiam :D Od miesiąca nie bawiłem się w tym, ale teraz naszła mnie ochota :D
func int HeroDamage_HeroCanDoHit()
{
//1st
var int once;
if(once)
{
once=0;
};
var int BS;
BS = Npc_GetBodyState(hero);
if(BS!=32794)//BS_HIT
{     
//recalculate hitID rite now
//cuz HeroDamage_Init func don't even init
if(HeroDamage_lastBS==32794)
{
HeroDamage_ComboCounter+=1;   
HeroDamage_NextCombo=TRUE;
//recalculate id
HeroDamage_DamageID = 10*HeroDamage_lastcombo + 100*HeroDamage_ComboCounter;   

};     
HeroDamage_lastBS = BS;       
return 0;
};
//2nd
var int HiroAniCtrl; HiroAniCtrl = MEM_ReadInt(_@(hero) + 2432);
var int OcomboNr; OcomboNr = MEM_ReadInt(HiroAniCtrl+436);//combonr
var int HitFrame; HitFrame=truncf(MEM_ReadInt(HiroAniCtrl+444));
var int hitBeginFrame; hitBeginFrame = MEM_ReadInt(HiroAniCtrl+460 + 4*6*OcomboNr)-2 ;//-2y
var int hit_end_frame; hit_end_frame = MEM_ReadInt(HiroAniCtrl+464 + 4*6*OcomboNr)+1;//+1

if (hitBeginFrame>HitFrame) || (hit_end_frame<HitFrame)
{//combo frame is out of bound of hit frames
return 0;     
};
return 1;
once=1;
};
Przy takim zapisie ciągle pobiera wszystkie klatki :/ Co należy zrobić aby działało to lepiej...
 

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.
Nie kopiować skryptów z G1.  :lol: :ok:
 
: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
Był wzorowany na tym z G1 :lol:
 

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.
W ogóle ta funkcja sprawdza tylko, czy hero może zadać cios, więc na pewno nie tu problem.
 
: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
:F
Bardziej prawdopodobne, że tutaj:
func void HeroDamageInit()//Zrobione :F
{
var int heroptr; var int combonum;
var c_item item;   
HeroDamage_NextCombo=FALSE;//reset

//combo chceck id
//init if null-ptr or wrong
heroptr = MEM_InstGetOffset(hero);     
HeroAniCtrl_Offset = MEM_ReadInt(heroptr+2432);//anictrl               
combonum = MEM_ReadInt(HeroAniCtrl_Offset+436);//combonr

HeroDamage_lastcombo = combonum;       
//BS - CHECK if !HIT =>quit
if((HeroDamage_lastBS==32794)//last bs was hit
&&(Npc_GetBodyState(hero)!=32794))//now bs isn't a hit
||(HeroDamage_lastcombo>combonum)
{
HeroDamage_ComboCounter+=1;   
HeroDamage_NextCombo=TRUE;
//recalculate id
//      HeroDamage_DamageID = 10*HeroDamage_lastcombo + 100*HeroDamage_ComboCounter;   
//      HeroDamage_DamageID += 1;             

};             
HeroDamage_lastBS = Npc_GetBodyState(hero);
if(Npc_GetBodyState(hero)!=32794)
{ return; };
var int herohitaniid;
herohitaniid = MEM_ReadInt(HeroAniCtrl_Offset+448);
if(HeroDamage_NextCombo==FALSE)
{             
if(HeroDamage_LastHeroHitAniID)
{
if(herohitaniid!=HeroDamage_LastHeroHitAniID)
{
HeroDamage_ComboCounter+=1;   
//recalculate id ->moved

};
};
};
HeroDamage_LastHeroHitAniID = herohitaniid;

//recalculate id
HeroDamage_DamageID = 10*HeroDamage_lastcombo + 100*HeroDamage_ComboCounter;   
//HeroDamage_DamageID += 1;                   

// debug - off
var int bla;
bla = MEM_ReadInt(HeroAniCtrl_Offset+448); 
var int val;

//---------------------
// RightSword
//---------------------       
if(item.damageTotal)
{
HeroDamage_Damage_Edge = item.damageTotal;
}
else
{
if(item.damage[DAM_INDEX_BLUNT])
{
HeroDamage_Damage_Blunt = item.damage[DAM_INDEX_BLUNT];       
}
else if (item.damage[DAM_INDEX_EDGE])
{
HeroDamage_Damage_Edge = item.damage[DAM_INDEX_EDGE];                 
}
else if (item.damage[DAM_INDEX_FIRE])
{
HeroDamage_Damage_Fire = item.damage[DAM_INDEX_FIRE];                         
}
else if (item.damage[DAM_INDEX_FLY])
{
HeroDamage_Damage_Fly = item.damage[DAM_INDEX_FLY];                           
}
else if (item.damage[DAM_INDEX_MAGIC])
{
HeroDamage_Damage_Magic = item.damage[DAM_INDEX_MAGIC];                       
};
};


if((item.flags & ITEM_AXE)==ITEM_AXE)||((item.flags & ITEM_AXE)==ITEM_SWD)
{
HeroDamage_CriticalChance =     hero.hitchance[1];
}
else
{
HeroDamage_CriticalChance =     hero.hitchance[2];                       
};
};

 

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.
Nie chcę być chujem, ale widzę, że nie rozumiesz tych "swoich" skryptów. :F
 
: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
Jak by to były moje :F
P.S hookiem też się duplikuje :P
 

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.
Jeśli chcesz zrobić system walki taki jak w CZ, to nie zrobisz tego jednym skryptem. W Gothic 2 jest to podzielone na parę partów:
- Wykrywanie kolizji
- Sprawdzanie pozycji celu i atakującego
- Sprawdzanie hitboxu przeciwnika
- Kalkulowanie obrażeń
Nie jestem pewien, ale punkt 2 i 3 chyba są w tej samej funkcji.
 
: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
Cytuj
Jeśli chcesz zrobić system walki taki jak w CZ, to nie zrobisz tego jednym skryptem.
Przecież to wiadomo. Jak miałbym upchnąć 1000 linijek w 1 skrypt ?
Cytuj
- Wykrywanie kolizji
Użyje warunku Npc_CanSeeNpc i będę sprawdzał dystans pomiędzy npc a hero.
Cytuj
-Kalkulowanie obrażeń
Użyje tej funkcji z WoG'a.(ta sama co zrobiłeś z niej tutorial)
Cytuj
- Sprawdzanie pozycji celu i atakującego
- Sprawdzanie hitboxu przeciwnika
Rozwiń trochę bardziej.
Ostatnie czego brakuje to pobieranie cholernej klatki animacji... w 100% siedzi to tutaj:
/*
    struct {
        zUINT8          canEnableNextCombo              : 1;
        zUINT8          endCombo                        : 1;
        zUINT8          comboCanHit                     : 1;
        zUINT8          hitPosUsed                      : 1;
        zUINT8          hitGraphical                    : 1;
        zUINT8          canDoCollisionFX                : 1;
    };*/
    var int bitfield; //so wie im Struct im Kommentar   432
   
    var int comboNr;           //int                  436
    var int comboMax;          //int              440   
    var int lastHitAniFrame;   //zREAL           444
    var int hitAniID;          //zTModelAniID 448
    var int hitTarget;         //zCVob*         

    /*
    typedef struct {
        zTModelAniID    hitAni;                             
        int             hitOptFrame;
        int             hitEndFrame;
        int             comboStartFrame;
        int             comboEndFrame;
        int             comboDir;
    } oTComboInfo;*/
   
    //oTComboInfo comboInfo[ANI_MAX_HIT]; //ANI_MAX_HIT = 10
    var int comboInfo[60];

    // Kampfsystem - Tuning
    var int anioffset_lastper;  //zREAL                 
    var int anioffset_thisper;  //zREAL                 
    var int anioffset;          //zREAL                 
    var int anioffset_ani;      //zTModelAniID     
W klasie oCAniControl, tylko co jest odpowiednim wskaźnikiem do tego magicznego coś'a co w MDS'ie jest nazywane tak:
DEF_OPT_FRAME
 

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.
Wykrywanie kolizji to nie sprawdzanie czy hero widzi kogoś. To pobieranie (skomplikowane pobieranie) ID atakującego i ofiary.

Sprawdzanie pozycji, to sprawdzanie pozycji. Pobierasz współrzędne obu npc oraz sprawdzasz, czy jest możliwość zahaczenia przeciwnika bronią. Określasz dystans między dwoma postaciami.

Sprawdzanie hitboxu to określanie jak duży i szeroki jest przeciwnik. Dokładne określanie, czy machanie mieczem będzie cokolwiek robiło, czy nie.

Pamiętaj, funkcje systemowe dzielą się funkcje wywołujące i funkcje "event", czyli takie które się wywołują przy danej czynności. Jeśli wprowadzony print wyświetla się parę razy, jest to event, jeśli raz, jest to funkcja wywołująca.
 
: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
Wyświetla w uj i jeszcze więcej, więc jest eventem. Jak przerobić to na wywołującą?
Co do reszty: Splash pisał, że pobieranie kolizji to pobieranie _zCVob_bbox3D_mins i _zCVob_bbox3D_maxs broni i NPC. I jako iż tego nie ogarniał to użył warunku NpcCanSee.
Ja chciałbym w taki sposób: Pobieram klatkę animacji, w trigerze co klatkowym ustawiam warunki, tworzę vobliste widzianych npc i sprawdzam dystans wroga od hero za pomocą warunku NPC_CanSee i (distancecośtam[nie pamiętam nazwy warunku] (hero,npc <=item.range)) I pyk magicznie licznik się odpala i dmg jest zadawany. Tylko jak piszę ta klatka ;-;
 

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.
I podczas używania takich skrótów typu Npc_CanSeeNpc są błędy typu niezadawanie obrażeń jak w CZ. :F

Nie da się zmienić eventu na funkcję wywołującą. W ogóle bboxy to są proste floaty.
 
: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
Cytuj
I podczas używania takich skrótów typu Npc_CanSeeNpc są błędy typu niezadawanie obrażeń jak w CZ. :F
Znów zacytuje Splash'a "Problem siedział w perceptionach które same sobie zaprzeczały xD"
Czyli tutaj:func int HeroDamage_CanDoHit_CNPCPass(var c_npc npc,var int hand) //zrobione :F
{
//Unusual events:
// *OR Attack, hero can't even hit non GIL_DMB
if(GrdNumSpawned)&&(npc.guild!=GIL_DMB)
{
return 0;
};



//Unconscious/dead -> skip
var int trgt; var int npc_ptr; var ocnpc her;
her = hlp_getnpc(hero);
if(Npc_GetAivar(npc,AIV_DAMAGEID)==HeroDamage_DamageID+1)
||((DualEquiped)&&(
((hand==RIGHTHAND_WEAPON)&&(Npc_GetAivar(npc,AIV_DAMAGEID)==HeroDamage_DamageID+1)) ||
((hand==LEFTHAND_WEAPON)&&(Npc_GetAivar(npc,AIV_DAMAGEID)==HeroDamage_DamageID+2))      ||
(Npc_GetAivar(npc,AIV_DAMAGEID)==HeroDamage_DamageID+3)
))
{
printdebug(">>>>>>>skip damage[cnpc]->hitten b4");
return 0;
};


if(Npc_IsInState(npc,ZS_Dead))||(Npc_IsInState(npc,ZS_Unconscious))
||      (Npc_IsInState(npc,ZS_MagicSleep))
{       var string msg;
msg = concatstrings(">>>>>>>skip damage[",npc.name);
msg = concatstrings(msg,"]");
printdebug(msg);
return 0;
}     
//exceptions: Snaf Molerat,...
else if(Npc_GetAivar(npc,AIV_MM_REAL_ID)==ID_SNAF_MOLERAT)
{
return 0;
}
else if((Npc_GetAttitude(npc,hero)==ATT_FRIENDLY)||(npc.flags == NPC_FLAG_FRIEND)||(Npc_GetAivar(npc,AIV_PARTYMEMBER)==true))&&(HeroDamage_HostileEnemies!=0)
{
trgt = her.focus_vob;
npc_ptr = oCNpc_GetPointer(npc);
if(trgt!=npc_ptr)//if npc is hero target - > add to pool
{
printdebug(">>F>>>>>>>>v!=hero.enemy");
return 0;             
};
}
else if(Npc_GetAttitude(npc,hero)==ATT_NEUTRAL)&&(HeroDamage_HostileEnemies!=0)&&(HeroDamage_TimeHeroAttackedNeutralFocus==0)
{
trgt = her.focus_vob;
npc_ptr = oCNpc_GetPointer(npc);
if(trgt!=npc_ptr)//if npc is hero target - > add to pool
{
printdebug(">>N>>>>>>>>v!=hero.enemy");
return 0;             
};     

//              h_ptr =  oCNpc_GetPointer(hero);
//              v_enemy_ptr =  oCNpc_GetPointer(npc)+892;//enemy
//              v_enemy_ptr = MEM_ReadInt(v_enemy_ptr);
//              if(h_ptr!=v_enemy_ptr)&&(Npc_IsInState(npc,ZS_Attack))//if his target is NOT hero an he is attacking   
//              {
//                      purge_CollPool(npc,idx);
//                      print(">>N>>>>>>>>>>>hero!=v.enemy&& attack");
//                      return 0;             
//              };     
}

else
{     
return 1;     
};

};
Cytuj
Nie da się zmienić eventu na funkcję wywołującą. W ogóle bboxy to są proste floaty.
Można wersję "Kali jeść Kali pić"? :lol:
Spoiler
Jak ork to zrobił :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.
Gothic 1 sporo się różni od G2. Jeśli nie wiesz co robisz, nie rób tego.

Spoilery zawierają przykłady, jak one są wywoływane.

Przykład funkcji wywołującej:
Funkcja, która coś zmienia w grze, np. kalkulowanie obrażeń.
Spoiler
Obliczam. Ok, skończyłem.

Przykład funkcji event:
Funkcja, która sprawdza, czy dana czynność jest wykonywana, czyli np. sprawdzanie, czy npc biega.
Spoiler
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
Jak się masz? Ja aktualnie biegam, czuję się dobrze, nawet lepiej niż przedtem.
 
: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
Znów zacytuje Splash'a "Problem siedział w perceptionach które same sobie zaprzeczały xD"
Warunkach.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie


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