Ikarus (Pakiet skryptów) 415545 1020

O temacie

Autor orcwarrior

Zaczęty 11.06.2010 roku

Wyświetleń 415545

Odpowiedzi 1020

gothic1210
  • Gość

gothic1210
Gość

Ikarus (Pakiet skryptów)
#220 2014-05-08, 21:52(Ostatnia zmiana: 2014-05-09, 09:56)
Zastanawiałem się czy dałoby radę zrobić w G1 inny kolor światła globalnego żeby było klimatyczniej.
Czysto z ciekawości czy wie ktoś za co odpowiada ta zmienna  var int polyLightCLUTPtr (klasa zSkyController) ?

Patrzę, analizuje te skrypty i chyba się skompromitowałem. xD
 

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
apel do osób mających zainstalowanego ikarusa dla gothic 1.


czy możecie sprawdzić działanie tego skryptu (przykład z instrukcji ikarusa odnośnie otwierania zamknietych skrzyń bez klucza/wytrycha, do wykorzystania także np. przy tworzeniu zaklęcia otweirania zamków lub warunków czy mob jest zamknięty / otwarty).

u mnie wywołana funkcja w tick tocku powoduje inną rekację od zamierzonej tj. zawsze wyświetla się napis: mob.name " war gar nicht abgeschlossen!" bez względu czy dany mob jest skrzynią, łózkiem, ogniskiem. Nie wiem co jest powodem - czy wersja ikariusa czy może działa to tylko pod g2nk.

func void OpenFocussedChestOrDoor() { var oCNpc her;
her = Hlp_GetNpc (hero);

//Gar kein Fokusvob?
if (!her.focus_vob) {
Print ("Kein Fokus!");
return;
};

//Fokusvob kein verschließbares Vob?
if (!Hlp_Is_oCMobLockable(her.focus_vob)) {
Print ("Keine Truhe oder Tür im Fokus!");
return;
};

var oCMobLockable Lockable;
Lockable = MEM_PtrToInst (her.focus_vob);

if (Lockable.bitfield & oCMobLockable_bitfield_locked) {
Lockable.bitfield = Lockable.bitfield & ~



oCMobLockable_bitfield_locked;

Print (ConcatStrings (
"Folgendes Vob geöffnet: ",
Lockable._zCObject_objectName));
} else {
Print (ConcatStrings (
Lockable._zCObject_objectName,
" war gar nicht abgeschlossen!"));
};
};
 

Splash

Splash

Moderator
posty4212
Propsy3414
ProfesjaNierób
  • Moderator

Splash
Moderator

Ikarus (Pakiet skryptów)
#222 2014-05-15, 13:55(Ostatnia zmiana: 2014-05-15, 14:02)
Masz szczęście, że mam na Dropboxie wszystkie moje pliki do Gothica 2. Napisałem już kiedyś taki skrypt, który powinien działać też pod G1, bo klasa oCMob w G1 niczym się nie różni od tej z G2. Najwyżej klasa oCMob w G2 może zawierać nowe funkcje, choć wątpię. Chciałem zrobić czar otwierający zamki, który widziałem chyba w Risenie, ale nie zrobiłem tego, bo mi komputer padł.
func void OpenMob()
{
      var oCNpc her; her = Hlp_GetNpc(hero);
     
      if (Hlp_Is_oCMobContainer(her.focus_vob))
      {
      var oCMobContainer Locked_Chest; Locked_Chest = MEM_PtrToInst(her.focus_vob);
      Locked_Chest._oCMobLockable_bitfield = false;     
      };     

      if (Hlp_Is_oCMobDoor(her.focus_vob))
      {
      var oCMobDoor Locked_Door; Locked_Door = MEM_PtrToInst(her.focus_vob);
      Locked_Door._oCMobLockable_bitfield = false;     
      };
};
 
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
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy

pawbuj

Ikarus (Pakiet skryptów)
#223 2014-05-15, 21:40(Ostatnia zmiana: 2014-05-16, 13:32)
sam warunek dotyczący drzwi/skrzyń działa (sprawdzałem printem), jednak dalej trzeba je wytrychem otwierać.podejrzewam, że bez Orca tego nie zrobimy. Jakby  mi ktos pomógł to zrobić, nawet zapłacę.  :lol2:

//--------------------------------------
// Lockable
//--------------------------------------

const int oCMobLockable_bitfield_locked     = ((1 <<  1) - 1) << 0;
const int oCMobLockable_bitfield_autoOpen   = ((1 <<  1) - 1) << 1;
const int oCMobLockable_bitfield_pickLockNr = ((1 << 30) - 1) << 2;
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio

chicken
RaveN Studio

Ikarus (Pakiet skryptów)
#224 2014-05-16, 14:34(Ostatnia zmiana: 2014-05-16, 15:15)
Poświęciłem 5 min i napisałem taki skrypt ( sprawdziłem w g2:nk i działa, dla pewności hookowałem bo nie chciało mi się czaru robić :F)
func void open_chest()
{
    var oCNpc her; her = Hlp_GetNpc(hero);
    var oCMobLockable chest; chest = Mem_PtrToInst(her.focus_vob);
   
    if !Hlp_Is_oCMobLockable(her.focus_vob) { return; };
    if !her.focus_vob { return; };
   
    if (Hlp_Is_oCMobLockable(her.focus_vob) & oCMobLockable_bitfield_locked)
    {
        chest.bitfield = oCMobLockable_bitfield_autoOpen;
    };
};
Analogicznie do drzwi, ale trzeba zmienić SAME warunki i TYP jednej zmiennej, a jak ktoś się pokusi to jej nazwę też.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
sprawdzałem ten skrypt i warunek spełniany jest dla obiektów typu npc, wszelkie moby (załaczam foto).

kiedy w warunku zmieniam z "lockable" na "container" to działa tylko na skrzynie (bez względu czy są zamknięte czy otwarte).
http://ifotos.pl/zobacz/screenJPG_ensaaph.JPG/
func void open_chest()
{
    var oCNpc her; her = Hlp_GetNpc(hero);
    var oCMobLockable chest; chest = Mem_PtrToInst(her.focus_vob);
   
    if !Hlp_Is_oCMobLockable(her.focus_vob) { return; };
    if !her.focus_vob { return; };
   
    if (Hlp_Is_oCMobLockable(her.focus_vob) & oCMobLockable_bitfield_locked)
     {
          Print ("to mob lackable!"); 
   chest.bitfield = oCMobLockable_bitfield_autoOpen;
   }
          else
         {
Print ("to nie mob lockable!");   
      };
};
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
Dlatego, że większość mobów jest zrobiona jako MobLockable.

Splash

Splash

Moderator
posty4212
Propsy3414
ProfesjaNierób
  • Moderator

Splash
Moderator

Ikarus (Pakiet skryptów)
#227 2014-05-16, 18:22(Ostatnia zmiana: 2014-05-16, 18:37)
func void Open_Chest()
{
      var oCNpc her; her = Hlp_GetNpc(hero);
     
      if (Hlp_Is_oCMobContainer(her.focus_vob))
      {
      var oCMobContainer Locked_Chest; Locked_Chest = MEM_PtrToInst(her.focus_vob);

            if (Locked_Chest._oCMobLockable_bitfield == true)
            {
            Print ("To jest zamknięta skrzynia");
            }
            else
            {
            Print ("To nie jest zamknięta skrzynia");
            };   
      };     
};
 
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
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
@splash,

http://ifotos.pl/zobacz/screen2JP_ensaawp.JPG/

@chicken,

to co   tego nie da się zrobić?
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
func void open_chest_spell()
{
    var oCNpc her; her = Hlp_GetNpc(hero);
    var oCMobContainer chest; chest = Mem_PtrToInst(her.focus_vob);
    
    if !Hlp_Is_oCMobContainer(her.focus_vob) { return; };
    if !her.focus_vob { return; };
    
    if (Hlp_Is_oCMobContainer(her.focus_vob) & oCMobLockable_bitfield_locked)
    {
        if (chest._oCMobLockable_bitfield)
        {
            chest.bitfield = oCMobLockable_bitfield_autoOpen;
            Print("Skrzynia zamknięta!");
        }
        else
        {
            Print("Skrzynia otwarta!");
        };
    };
};

Splash

Splash

Moderator
posty4212
Propsy3414
ProfesjaNierób
  • Moderator
Już poprawiłem.
 
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
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy

pawbuj

Ikarus (Pakiet skryptów)
#231 2014-05-16, 18:54(Ostatnia zmiana: 2014-05-16, 19:02)
Już poprawiłem.
co poprawiłeś? aha, już widzę -sprawdzam

@chicken niestety (zaraz po otwarciu skrzyni)
http://ifotos.pl/zobacz/screen3JP_ensaqhe.JPG/

do tego edytowałem skrypt,bo nie chciał reparsować ten fragment (unknown identifier)
if (chest._oCMobLockable_bitfield)
        {
            //chest.bitfield = oCMobLockable_bitfield_autoOpen;
            Print("Skrzynia zamknięta!");



Post połączony: 2014-05-16, 19:02
@Splash, niestety czy skrzynia jest zamknięta bądź nie, to mamy:

http://ifotos.pl/zobacz/screen4JP_ensaqre.JPG/
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio

chicken
RaveN Studio

Ikarus (Pakiet skryptów)
#232 2014-05-16, 19:04(Ostatnia zmiana: 2014-05-16, 19:19)
Może poczekasz chwilę aż znikną stare napisy i wygenerują się nowe?
Chcesz mieć warunki sprawdzające czy skrzynia jest zamknięta lub otwarta, tak?
Edit @down: Zaraz coś napiszę.
Edit @2down: Tak, dla wytrychy i kluczy, testowałem. Żeby skrzynia była na klucz lub wytrych musi być po prostu zamknięta ( locked ).

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy

pawbuj

Ikarus (Pakiet skryptów)
#233 2014-05-16, 19:08(Ostatnia zmiana: 2014-05-16, 19:14)
Może poczekasz chwilę aż znikną stare napisy i wygenerują się nowe?
Chcesz mieć warunki sprawdzające czy skrzynia jest zamknięta lub otwarta, tak?
zgadza się i chcę mieć możliwość auto otwierania skrzyń/drzwi.

sprawdzę twój skrypt ponownie, ale zawsze jak to robię to przeskakuję na inny obiekt, aby nie popełnić błędu

jak uda się zrobić warunek odnośnie zamnkięcitej/otwartej skrzyni to auto otwarcie będzie już blisko

btw edytowałem twój element skryptu i teraz nie wywala błedów, choc nie powoduje autootwierania.
if (chest._oCMobLockable_bitfield)
        {
            chest._oCMobLockable_bitfield = oCMobLockable_bitfield_autoOpen;
            Print("Skrzynia zamknięta!");

Post połączony: 2014-05-16, 19:14
jescze jedno mi chodzi po głowie czy ten "locked" jest na pewno dla wytrychów i dla kluczy?

a może
const int oCMobLockable_bitfield_pickLockNr
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
func void open_chest()
{
    var oCNpc her; her = Hlp_GetNpc(hero);
    var oCMobLockable chest; chest = Mem_PtrToInst(her.focus_vob);
    
    if !Hlp_Is_oCMobContainer(her.focus_vob) { return; };
    if !her.focus_vob { return; };
    
    if Hlp_Is_oCMobContainer(her.focus_vob)
    {
        if (chest.bitfield & oCMobLockable_bitfield_locked)
        {
            //chest.bitfield = oCMobLockable_bitfield_autoOpen;
            Print("Skrzynia zamknięta!");
        }
        else
        {
            Print("Skrzynia otwarta!");
        };
    };
};

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
niestety zawsze łapie warunek  dla else czyli otwarta.
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
Niemożliwe. U siebie sprawdzałem i działało. G2:NK. Po otworzeniu skrzyni napis się zmieniał na skrzynia otwarta z napisu skrzynia zamknięta.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
dałem tak (wybacz za nazwę ale tych funkcji już mam dużo)
func void chicken()
{
    var oCNpc her; her = Hlp_GetNpc(hero);
    var oCMobLockable chest; chest = Mem_PtrToInst(her.focus_vob);
   
    if !Hlp_Is_oCMobContainer(her.focus_vob) { return; };
    if !her.focus_vob { return; };
   
    if Hlp_Is_oCMobContainer(her.focus_vob)
    {
        if (chest.bitfield & oCMobLockable_bitfield_locked)
        {
            //chest._oCMobLockable_bitfield = oCMobLockable_bitfield_autoOpen;
            Print("Skrzynia zamknięta!");
        }
        else
        {
            Print("Skrzynia otwarta!");
        };
    };
};

i fotos z zamkniętej skrzyni:
http://ifotos.pl/zobacz/screen5JP_ensqpne.JPG/

wierzę w szczere intencje pomocy, ale coś jest nie tak może z ikarusem dla gothic1?
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
Mi nazwa takiej funkcji ni przeszkadza :). Co do skrzyń to w g1 one są jako oCMobLockable czy jako oCMobContainer? Zaraz coś poradzę... chyba.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Mi nazwa takiej funkcji ni przeszkadza :). Co do skrzyń to w g1 one są jako oCMobLockable czy jako oCMobContainer? Zaraz coś poradzę... chyba.

poniżej ocMob.d z ikarusa

//######################################################
//
//  oCMob
//
//  Gothic II 2.60(fix) version                           
//
//######################################################

//--------------------------------------
// Normales Mob
//--------------------------------------

const int oCMob_bitfield_hitp           = ((1 << 12) - 1) <<  0;
const int oCMob_bitfield_damage         = ((1 << 12) - 1) << 12;
const int oCMob_bitfield_isDestroyed    = ((1 <<  1) - 1) << 24;
const int oCMob_bitfield_moveable       = ((1 <<  1) - 1) << 25;
const int oCMob_bitfield_takeable       = ((1 <<  1) - 1) << 26;
const int oCMob_bitfield_focusOverride  = ((1 <<  1) - 1) << 27;
const int oCMob_bitfield_sndMat         = ((1 <<  3) - 1) << 28; //oTSndMaterial

class oCMob {
 //  zCVob {
//      zCObject {
            var int    vfptr;
            var int    _zCObject_refCtr;
            var int    _zCObject_hashIndex;
            var int    _zCObject_hashNext;
            var string _zCObject_objectName;
//      }
        var int       _zCVob_globalVobTreeNode;
        var int       _zCVob_lastTimeDrawn;
        var int       _zCVob_lastTimeCollected;
        var int       _zCVob_vobLeafList_array;
        var int       _zCVob_vobLeafList_numAlloc;
        var int       _zCVob_vobLeafList_numInArray;
        var int       _zCVob_trafoObjToWorld[16];
        var int       _zCVob_bbox3D_mins[3];
        var int       _zCVob_bbox3D_maxs[3];
        var int       _zCVob_touchVobList_array;
        var int       _zCVob_touchVobList_numAlloc;
        var int       _zCVob_touchVobList_numInArray;
        var int       _zCVob_type;
        var int       _zCVob_groundShadowSizePacked;
        var int       _zCVob_homeWorld;
        var int       _zCVob_groundPoly;
        var int       _zCVob_callback_ai;
        var int       _zCVob_trafo;
        var int       _zCVob_visual;
        var int       _zCVob_visualAlpha;
        var int       _zCVob_rigidBody;
        var int       _zCVob_lightColorStat;
        var int       _zCVob_lightColorDyn;
        var int       _zCVob_lightDirectionStat[3];
        var int       _zCVob_vobPresetName;
        var int       _zCVob_eventManager;
        var int       _zCVob_nextOnTimer;
        var int       _zCVob_vob_bitfield[5];
        var int       _zCVob_m_poCollisionObjectClass;
        var int       _zCVob_m_poCollisionObject;
   
    //Mobeigenschaften:
    var string name;                //zSTRING Symbolischer Name, z.B. "MOBNAME_DOOR"
   
    var int bitfield;

    var string visualDestroyed;     //zSTRING
   
    var string ownerStr;            //zSTRING
    var string ownerGuildStr;       //zSTRING

    var int owner;                  //int
    var int ownerGuild;             //int
                                   
    var int focusNameIndex;         //int //Index des Parsersymbols, dass den Namen enthält, zum Beispiel Index des Symbols MOBNAME_DOOR.

    //zCList<zCVob>     ignoreVobList;
        var int ignoreVobList_data;     //zCVob*
        var int ignoreVobList_next;     //zCList<zCVob>*
};

//--------------------------------------
// Mobinter
//--------------------------------------

const int oCMobInter_bitfield_npcsMax       = ((1 << 8) -1) <<  0;
const int oCMobInter_bitfield_npcsNeeded    = ((1 << 8) -1) <<  8;
const int oCMobInter_bitfield_npcsCurrent   = ((1 << 8) -1) << 16;
const int oCMobInter_bitfield_tmpState      = ((1 << 8) -1) << 24;

class oCMobInter {
 //  zCVob {
//      zCObject {
            var int    vfptr;
            var int    _zCObject_refCtr;
            var int    _zCObject_hashIndex;
            var int    _zCObject_hashNext;
            var string _zCObject_objectName;
//      }
        var int       _zCVob_globalVobTreeNode;
        var int       _zCVob_lastTimeDrawn;
        var int       _zCVob_lastTimeCollected;
        var int       _zCVob_vobLeafList_array;
        var int       _zCVob_vobLeafList_numAlloc;
        var int       _zCVob_vobLeafList_numInArray;
        var int       _zCVob_trafoObjToWorld[16];
        var int       _zCVob_bbox3D_mins[3];
        var int       _zCVob_bbox3D_maxs[3];
        var int       _zCVob_touchVobList_array;
        var int       _zCVob_touchVobList_numAlloc;
        var int       _zCVob_touchVobList_numInArray;
        var int       _zCVob_type;
        var int       _zCVob_groundShadowSizePacked;
        var int       _zCVob_homeWorld;
        var int       _zCVob_groundPoly;
        var int       _zCVob_callback_ai;
        var int       _zCVob_trafo;
        var int       _zCVob_visual;
        var int       _zCVob_visualAlpha;
        var int       _zCVob_rigidBody;
        var int       _zCVob_lightColorStat;
        var int       _zCVob_lightColorDyn;
        var int       _zCVob_lightDirectionStat[3];
        var int       _zCVob_vobPresetName;
        var int       _zCVob_eventManager;
        var int       _zCVob_nextOnTimer;
        var int       _zCVob_vob_bitfield[5];
        var int       _zCVob_m_poCollisionObjectClass;
        var int       _zCVob_m_poCollisionObject;
   
    //oCMob
/*0x104*/      var string _oCMob_name;               
/*0x118*/       var int    _oCMob_bitfield;
/*0x11C*/      var string _oCMob_visualDestroyed;   
/*0x130*/       var string _oCMob_ownerStr;           
/*0x144*/       var string _oCMob_ownerGuildStr;     
/*0x158*/       var int    _oCMob_owner;             
/*0x15C*/       var int    _oCMob_ownerGuild;         
/*0x160*/       var int    _oCMob_focusNameIndex;     
/*0x164*/       var int    _oCMob_ignoreVobList_data;
/*0x168*/       var int    _oCMob_ignoreVobList_next;
     
    //oCMobInter:
   
   
    //Optimale Positionen sind wohl die, zu denen der Held bei der Benutzung hinploppt. Ich bin aber kein Animierer, hab wenig Ahnung davon.
    //zCList<TMobOptPos>    optimalPosList; // List of all Optimal Positions
/*0x16C*/      var int optimalPosList_data;      //TMobOptPos*
/*0x170*/      var int optimalPosList_next;      //zCList<TMobOptPos>*
   
    //wohlbekannte Eigenschaften:
/*0x174*/    var string triggerTarget;               //zSTRING
/*0x188*/   var string useWithItem;                 //zSTRING
/*0x19C*/    var string sceme;                       //zSTRING
/*0x1B0*/    var string conditionFunc;               //zSTRING
/*0x1C4*/    var string onStateFuncName;             //zSTRING
   
    //Zustand des Mobs
/*0x1D8*/    var int state;                          //int
/*0x1DC*/    var int state_num;                      //int
/*0x1E0*/    var int state_target;                   //int Zustand auf den gerade "hingearbeitet wird" ?
   
/*0x1E4*/    var int rewind;                         //zBOOL

/*0x1E8*/    var int mobStateAni;                    //int / zTModelAniID
/*0x1EC*/    var int npcStateAni;                    //int / zTModelAniID
   
/*0x1F0*/    var int bitfield; //siehe oben
/*0x1F4*/    var int tmpStateChanged;                //zBOOL
   
/*0x1F8*/    var int Direction;                      //TMobInterDirection "Richtung in die das Mob benutzt wird????", (0 = none, 1 = up, 2 = down)
   
/*0x1FC*/    var int onInterruptReturnToSlotPos;     //zBOOL
   
/*0x200*/    var int startPos[3];                    //zVEC3
/*0x20C*/    var int aniCombHeight;                  //zREAL
/*0x210*/    var int inUseVob;                       //zCVob*
/*0x214*/    var int timerEnd;                       //zREAL
};

//--------------------------------------
// Lockable
//--------------------------------------

const int oCMobLockable_bitfield_locked     = ((1 <<  1) - 1) << 0;
const int oCMobLockable_bitfield_autoOpen   = ((1 <<  1) - 1) << 1;
const int oCMobLockable_bitfield_pickLockNr = ((1 << 30) - 1) << 2;

class oCMobLockable
{
 //  zCVob {
//      zCObject {
            var int    vfptr;
            var int    _zCObject_refCtr;
            var int    _zCObject_hashIndex;
            var int    _zCObject_hashNext;
            var string _zCObject_objectName;
//      }
        var int       _zCVob_globalVobTreeNode;
        var int       _zCVob_lastTimeDrawn;
        var int       _zCVob_lastTimeCollected;
        var int       _zCVob_vobLeafList_array;
        var int       _zCVob_vobLeafList_numAlloc;
        var int       _zCVob_vobLeafList_numInArray;
        var int       _zCVob_trafoObjToWorld[16];
        var int       _zCVob_bbox3D_mins[3];
        var int       _zCVob_bbox3D_maxs[3];
        var int       _zCVob_touchVobList_array;
        var int       _zCVob_touchVobList_numAlloc;
        var int       _zCVob_touchVobList_numInArray;
        var int       _zCVob_type;
        var int       _zCVob_groundShadowSizePacked;
        var int       _zCVob_homeWorld;
        var int       _zCVob_groundPoly;
        var int       _zCVob_callback_ai;
        var int       _zCVob_trafo;
        var int       _zCVob_visual;
        var int       _zCVob_visualAlpha;
        var int       _zCVob_rigidBody;
        var int       _zCVob_lightColorStat;
        var int       _zCVob_lightColorDyn;
        var int       _zCVob_lightDirectionStat[3];
        var int       _zCVob_vobPresetName;
        var int       _zCVob_eventManager;
        var int       _zCVob_nextOnTimer;
        var int       _zCVob_vob_bitfield[5];
        var int       _zCVob_m_poCollisionObjectClass;
        var int       _zCVob_m_poCollisionObject;
   
    //oCMob
      var string _oCMob_name;               
      var int    _oCMob_bitfield;
      var string _oCMob_visualDestroyed;   
      var string _oCMob_ownerStr;           
      var string _oCMob_ownerGuildStr;     
      var int    _oCMob_owner;             
      var int    _oCMob_ownerGuild;         
      var int    _oCMob_focusNameIndex;     
      var int    _oCMob_ignoreVobList_data;
      var int    _oCMob_ignoreVobList_next;
     
    //oCMobInter:
      var int _oCMobInter_optimalPosList_data;
      var int _oCMobInter_optimalPosList_next;
      var string _oCMobInter_triggerTarget;
      var string _oCMobInter_useWithItem;       
      var string _oCMobInter_sceme;         
      var string _oCMobInter_conditionFunc;
      var string _oCMobInter_onStateFuncName;   
      var int _oCMobInter_state;               
      var int _oCMobInter_state_num;           
      var int _oCMobInter_state_target;     
      var int _oCMobInter_rewind;               
      var int _oCMobInter_mobStateAni;     
      var int _oCMobInter_npcStateAni;     
      var int _oCMobInter_bitfield;
      var int _oCMobInter_tmpStateChanged;
      var int _oCMobInter_Direction;       
      var int _oCMobInter_onInterruptReturnToSlotPos;   
      var int _oCMobInter_startPos[3];             
      var int _oCMobInter_aniCombHeight;               
      var int _oCMobInter_inUseVob;                 
/*0x214*/      var int _oCMobInter_timerEnd;                 
   
    //oCMobLockable 
   
/*0x218*/    var int bitfield;
   
/*0x21C*/    var string keyInstance;     // zSTRING //Schlüsselinstanzname
/*0x230*/    var string pickLockStr;     // zSTRING //linksrechtscombo
}; /*0x244*/

//--------------------------------------
// Door
//--------------------------------------

class oCMobDoor
{
//  zCVob {
//      zCObject {
            var int    vfptr;
            var int    _zCObject_refCtr;
            var int    _zCObject_hashIndex;
            var int    _zCObject_hashNext;
            var string _zCObject_objectName;
//      }
        var int       _zCVob_globalVobTreeNode;
        var int       _zCVob_lastTimeDrawn;
        var int       _zCVob_lastTimeCollected;
        var int       _zCVob_vobLeafList_array;
        var int       _zCVob_vobLeafList_numAlloc;
        var int       _zCVob_vobLeafList_numInArray;
        var int       _zCVob_trafoObjToWorld[16];
        var int       _zCVob_bbox3D_mins[3];
        var int       _zCVob_bbox3D_maxs[3];
        var int       _zCVob_touchVobList_array;
        var int       _zCVob_touchVobList_numAlloc;
        var int       _zCVob_touchVobList_numInArray;
        var int       _zCVob_type;
        var int       _zCVob_groundShadowSizePacked;
        var int       _zCVob_homeWorld;
        var int       _zCVob_groundPoly;
        var int       _zCVob_callback_ai;
        var int       _zCVob_trafo;
        var int       _zCVob_visual;
        var int       _zCVob_visualAlpha;
        var int       _zCVob_rigidBody;
        var int       _zCVob_lightColorStat;
        var int       _zCVob_lightColorDyn;
        var int       _zCVob_lightDirectionStat[3];
        var int       _zCVob_vobPresetName;
        var int       _zCVob_eventManager;
        var int       _zCVob_nextOnTimer;
        var int       _zCVob_vob_bitfield[5];
        var int       _zCVob_m_poCollisionObjectClass;
        var int       _zCVob_m_poCollisionObject;
   
    //oCMob
      var string _oCMob_name;               
      var int    _oCMob_bitfield;
      var string _oCMob_visualDestroyed;   
      var string _oCMob_ownerStr;           
      var string _oCMob_ownerGuildStr;     
      var int _oCMob_owner;             
      var int _oCMob_ownerGuild;         
      var int _oCMob_focusNameIndex;     
      var int _oCMob_ignoreVobList_data;   
      var int _oCMob_ignoreVobList_next;   
     
    //oCMobInter:
      var int _oCMobInter_optimalPosList_data;
      var int _oCMobInter_optimalPosList_next;
      var string _oCMobInter_triggerTarget;
      var string _oCMobInter_useWithItem;       
      var string _oCMobInter_sceme;         
      var string _oCMobInter_conditionFunc;
      var string _oCMobInter_onStateFuncName;   
      var int _oCMobInter_state;               
      var int _oCMobInter_state_num;           
      var int _oCMobInter_state_target;     
      var int _oCMobInter_rewind;               
      var int _oCMobInter_mobStateAni;     
      var int _oCMobInter_npcStateAni;     
      var int _oCMobInter_bitfield;
      var int _oCMobInter_tmpStateChanged;
      var int _oCMobInter_Direction;       
      var int _oCMobInter_onInterruptReturnToSlotPos;   
      var int _oCMobInter_startPos[3];             
      var int _oCMobInter_aniCombHeight;               
      var int _oCMobInter_inUseVob;                 
      var int _oCMobInter_timerEnd;                 
   
    //oCMobLockable 
      var int _oCMobLockable_bitfield;
      var string _oCMobLockable_keyInstance;
     var string _oCMobLockable_pickLockStr;
   
    //oCMobDoor
 /*0x244*/   var string addName;         // zSTRING // FRONT / BACK
}; /*0x258*/

//--------------------------------------
// Container
//--------------------------------------

class oCMobContainer
{
//  zCVob {
//      zCObject {
            var int    vfptr;
            var int    _zCObject_refCtr;
            var int    _zCObject_hashIndex;
            var int    _zCObject_hashNext;
            var string _zCObject_objectName;
//      }
        var int       _zCVob_globalVobTreeNode;
        var int       _zCVob_lastTimeDrawn;
        var int       _zCVob_lastTimeCollected;
        var int       _zCVob_vobLeafList_array;
        var int       _zCVob_vobLeafList_numAlloc;
        var int       _zCVob_vobLeafList_numInArray;
        var int       _zCVob_trafoObjToWorld[16];
        var int       _zCVob_bbox3D_mins[3];
        var int       _zCVob_bbox3D_maxs[3];
        var int       _zCVob_touchVobList_array;
        var int       _zCVob_touchVobList_numAlloc;
        var int       _zCVob_touchVobList_numInArray;
        var int       _zCVob_type;
        var int       _zCVob_groundShadowSizePacked;
        var int       _zCVob_homeWorld;
        var int       _zCVob_groundPoly;
        var int       _zCVob_callback_ai;
        var int       _zCVob_trafo;
        var int       _zCVob_visual;
        var int       _zCVob_visualAlpha;
        var int       _zCVob_rigidBody;
        var int       _zCVob_lightColorStat;
        var int       _zCVob_lightColorDyn;
        var int       _zCVob_lightDirectionStat[3];
        var int       _zCVob_vobPresetName;
        var int       _zCVob_eventManager;
        var int       _zCVob_nextOnTimer;
        var int       _zCVob_vob_bitfield[5];
        var int       _zCVob_m_poCollisionObjectClass;
        var int       _zCVob_m_poCollisionObject;
   
    //oCMob
      var string _oCMob_name;               
      var int    _oCMob_bitfield;
      var string _oCMob_visualDestroyed;   
      var string _oCMob_ownerStr;           
      var string _oCMob_ownerGuildStr;     
      var int    _oCMob_owner;             
      var int    _oCMob_ownerGuild;         
      var int    _oCMob_focusNameIndex;     
      var int    _oCMob_ignoreVobList_data;
      var int    _oCMob_ignoreVobList_next;
     
    //oCMobInter:
      var int _oCMobInter_optimalPosList_data;
      var int _oCMobInter_optimalPosList_next;
      var string _oCMobInter_triggerTarget;
      var string _oCMobInter_useWithItem;       
      var string _oCMobInter_sceme;         
      var string _oCMobInter_conditionFunc;
      var string _oCMobInter_onStateFuncName;   
      var int _oCMobInter_state;               
      var int _oCMobInter_state_num;           
      var int _oCMobInter_state_target;     
      var int _oCMobInter_rewind;               
      var int _oCMobInter_mobStateAni;     
      var int _oCMobInter_npcStateAni;     
      var int _oCMobInter_bitfield;
      var int _oCMobInter_tmpStateChanged;
      var int _oCMobInter_Direction;       
      var int _oCMobInter_onInterruptReturnToSlotPos;   
      var int _oCMobInter_startPos[3];             
      var int _oCMobInter_aniCombHeight;               
      var int _oCMobInter_inUseVob;                 
      var int _oCMobInter_timerEnd;                 
   
    //oCMobLockable 
      var int _oCMobLockable_bitfield;
      var string _oCMobLockable_keyInstance;
      var string _oCMobLockable_pickLockStr;
   
    //oCMobContainer
/*0x258*/    var string contains;                //zSTRING //Scriptinstanzen der Items. Nicht aktuelle gehalten! Original Spacereinstellung!
   
 /*0x26C*/   var int items;                      //oCItemContainer*
    //zCListSort<oCItem>    containList; //sollte die richtigen Daten beinhalten
/*0x270*/      var int containList_compareFunc;          //int (*Compare)(oCItem *ele1,oCItem *ele2);
/*0x274*/      var int containList_data;                 //oCItem*           
/*0x278*/      var int containList_next;                 //zCListSort<oCItem>*
};/*0x27C*/

class oCMobFire {
//  zCVob {
//      zCObject {
            var int    vfptr;
            var int    _zCObject_refCtr;
            var int    _zCObject_hashIndex;
            var int    _zCObject_hashNext;
            var string _zCObject_objectName;
//      }
        var int       _zCVob_globalVobTreeNode;
        var int       _zCVob_lastTimeDrawn;
        var int       _zCVob_lastTimeCollected;
        var int       _zCVob_vobLeafList_array;
        var int       _zCVob_vobLeafList_numAlloc;
        var int       _zCVob_vobLeafList_numInArray;
        var int       _zCVob_trafoObjToWorld[16];
        var int       _zCVob_bbox3D_mins[3];
        var int       _zCVob_bbox3D_maxs[3];
        var int       _zCVob_touchVobList_array;
        var int       _zCVob_touchVobList_numAlloc;
        var int       _zCVob_touchVobList_numInArray;
        var int       _zCVob_type;
        var int       _zCVob_groundShadowSizePacked;
        var int       _zCVob_homeWorld;
        var int       _zCVob_groundPoly;
        var int       _zCVob_callback_ai;
        var int       _zCVob_trafo;
        var int       _zCVob_visual;
        var int       _zCVob_visualAlpha;
        var int       _zCVob_rigidBody;
        var int       _zCVob_lightColorStat;
        var int       _zCVob_lightColorDyn;
        var int       _zCVob_lightDirectionStat[3];
        var int       _zCVob_vobPresetName;
        var int       _zCVob_eventManager;
        var int       _zCVob_nextOnTimer;
        var int       _zCVob_vob_bitfield[5];
        var int       _zCVob_m_poCollisionObjectClass;
        var int       _zCVob_m_poCollisionObject;
   
    //oCMob
      var string _oCMob_name;               
      var int    _oCMob_bitfield;
      var string _oCMob_visualDestroyed;   
      var string _oCMob_ownerStr;           
      var string _oCMob_ownerGuildStr;     
      var int    _oCMob_owner;             
      var int    _oCMob_ownerGuild;         
      var int    _oCMob_focusNameIndex;     
      var int    _oCMob_ignoreVobList_data;
      var int    _oCMob_ignoreVobList_next;
     
    //oCMobInter:
      var int _oCMobInter_optimalPosList_data;
      var int _oCMobInter_optimalPosList_next;
      var string _oCMobInter_triggerTarget;
      var string _oCMobInter_useWithItem;       
      var string _oCMobInter_sceme;         
      var string _oCMobInter_conditionFunc;
      var string _oCMobInter_onStateFuncName;   
      var int _oCMobInter_state;               
      var int _oCMobInter_state_num;           
      var int _oCMobInter_state_target;     
      var int _oCMobInter_rewind;               
      var int _oCMobInter_mobStateAni;     
      var int _oCMobInter_npcStateAni;     
      var int _oCMobInter_bitfield;
      var int _oCMobInter_tmpStateChanged;
      var int _oCMobInter_Direction;       
      var int _oCMobInter_onInterruptReturnToSlotPos;   
      var int _oCMobInter_startPos[3];             
      var int _oCMobInter_aniCombHeight;               
      var int _oCMobInter_inUseVob;                 
      var int _oCMobInter_timerEnd;

//oCMobFire
/*0x218*/ var string fireSlot; //zSTRING: z.B: "BIP01 FIRE"
/*0x22C*/ var string fireVobtreeName; //zSTRING: z.B. "FIRETREE_MEDIUM.ZEN"

/*0x240*/ var int fireVobtree; //zCVob*
};/*0x244*/
 


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