Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Pokaż wątki - inż. Avallach

Strony: 1 2 3 [4] 5 6
61
Sprzęt, oprogramowanie / Wowozowi spalił się komp
« dnia: 2011-07-21, 16:49 »
Wowoz napisał mi przez telefon że w trakcie burzy u niego doszło do wyładowania i napięcie poszło po jego kablu sieciowym do kompa, tak więc na razie na forum nie będzie wchodził. Wie że padła mu karta sieciowa, ale chce zmienić cały zestaw oprócz peryferiów, napędu czy dysku. Łączny koszt do około 1600-1700zł.
Dysk nie musi być duży bo nie ogląda filmów i nie ściąga muzyki. Ma być do gier i do grafiki.

62
Wings 3D / Super prosty miecz
« dnia: 2011-06-24, 13:17 »

Wszystkie polecenia wybiera się z menu kontekstowego (klikając prawym przyciskiem myszy na danym obiekcie).
Patrząc od prawej:
1. Sześcian
2. Skaluj według osi X, później Y, później Z.
3. Tylne krawędzie: Tnij -> 2, przednie: Tnij -> 3, połącz powstałe punkty, przesuwaj według osi Z
4. Skrajne krawędzie: Zniweluj, 2 i 4 krawędź przednia: skaluj według osi Y
5. Skasuj środkową przednią krawędź pionową, zaznacz powstałe pole, Inset, zaznacz boczne krawędzie powstałego pola, zniweluj je, powstały romb skaluj według osi X, Y i Z.
6. Wyciągnij według osi Z.
7. Ponownie wyciągnij według osi Z.
8. Zniweluj.
9. Boczne kanty przesuń w tył według osi Z, boczne krawędzie zakończenia ostrza Tnij na 2, powstałe punkty przesuń według wektora normalnego.
10. Zaznacz pole z tyłu jelca, Inset, zaznacz krawędzie powstałego pola, Tnij je na 2, zaznacz krawędzie zmienionego pola, Circularise, skaluj według osi Y i X.
11. Wyciągnij, znowu wyciągnij, Skaluj równomiernie, znowu wyciągnij, Zniweluj.
12. Skasuj "ukośne" (te które nie leżą na osiach X, Y, Z) punkty ze środka zakończenia, połącz ze sobą pozostałe, środkowy punkt przesuń w do tyłu według osi Z, zaznacz boczne krawędzie zakończenia, Tnij je na 2, przesuń według wektorów normalnych.

Tutorial nie został stworzony jako tutorial, po prostu Rysa chciał zrobić sobie miecz i starałem się na żywo pokazać mu jak zrobić to najprościej unikając dziwnych kształtów, próbowania różnych funkcji i gromadzenia zbędnych trójkątów. Oznacza to że reklamacji nie przyjmuję, na pytania nie odpowiadam. Sam nigdy z żadnych tutoriali nie korzystałem, sugeruję głównie praktykować ;)

Model ze wszystkimi stadiami:
http://www.megaupload.com/?d=5NG8O0U9
http://www.speedyshare.com/files/29127117/tutorial_miecz.wings

63
Bitwy 3D / Ankieta 7a - Kusze i łuki
« dnia: 2011-06-19, 16:40 »

Kusze i łuki
czyli
Ręczna niepalna broń miotająca
[/font]





Dracon - 560 tris:





Arek - 972 tris:





Darth Faren - 1068 tris:






Avallach - 1374 tris:





Cedric - ~700 tris? :





KolegaZWojska - ~1600 tris? :

tekstury




Komuchpl#2 - 1708 tris:





Jedaith - 1924 tris:

Tekstury




MarkK - 2158 tris:





wietrzyk - 3028 tris:

Tekstury




LeePabis - 1926 POLY (~4000 tris? ) :

64
Skrypty / Parser: identyfikatory, symbole i ich indeksy
« dnia: 2011-03-01, 17:57 »
Jednym z kluczowych elementów skryptów są identyfikatory. To nazwy oznaczające jakieś byty w kodzie - klasy, prototypy, funkcje, zmienne, stałe. Wszystkie te rzeczy, po wywaleniu których moglibyśmy dostać dobrze znany komunikat "Unknown identifier", o ile były gdzieś używane.
Problemem osób piszących skrypty w Daedalusie jest to, że zwykle nie odróżniają identyfikatorów od obiektów na które wskazują. Na pytanie czym jest "pc_hero", większość odpowiedziałaby pewnie że obiektem klasy c_npc. Niestety nie jest to do końca prawda. To identyfikator który na taki obiekt wskazuje w trakcie gry. Ta różnica jest ważniejsza niż może się wydawać, o czym można łatwo przekonać się próbując dokonać przypisania jednego do drugiego:
var c_npc bezimienny; bezimienny = pc_hero; Taki kod spowoduje otrzymanie komunikatu o niezgodności typów. Aby zrozumieć o co chodzi, trzeba zapoznać się z tym co parser robi z identyfikatorami.

Parser przetwarzając skrypt, na podstawie każdego napotkanego identyfikatora tworzy nowy obiekt klasy zCPar_Symbol i zapisuje wskaźnik na niego pod kolejnym indeksem w tablicy zCParser.symtab_table_array. Pełną definicję klasy zCPar_Symbol z opisem można obecnie znaleźć w Ikarusie, wygląda ona w dużym skrócie tak:
class zCPar_Symbol
{
    var string name;       // identyfikator
    var int content;         // zawartość lub wskaźnik na zawartość
    var int offset;            // wskaźnik związany z zawartością
};
Przykładowo, zakładając że parser przetworzył dotąd 1000 identyfikatorów i napotkał taki kod:
class JakasKlasa { };
func void JakasFunkcja (var int argumentFunkcji) { var string zmiennaLokalna; };
instance JakisNpc (C_NPC) { };
const int stalaGlobalna = 42;
Stworzy kolejne symbole zapisze je pod odpowiednimi indeksami:
JakasKlasa -> 1001
JakasFunkcja -> 1002
JakasFunkcja.argumentFunkcji -> 1003
JakasFunkcja.zmiennaLokalna -> 1004
JakisNpc -> 1005
stalaGlobalna -> 1006
i tak dalej.
Symbole różnią się od siebie w zależności od tego co oznaczały, w przypadku większości rodzajów symboli można odczytać ich indeksy... tak po prostu:
print(IntToString(pc_hero));W praktyce wszyscy to robią, po prostu zwykle nie zwracają uwagi na to że to czym operują to właściwie liczby, a nie obiekty. Przykładem są wszelkie wywołania funkcji Hlp_GetNpc czy CreateInvItems. Obie jako argumenty przyjmują liczby (indeksy symboli) - można to łatwo sprawdzić w ich deklaracji.
W przypadku symboli instancji, istnieje też elegancki sposób na otrzymanie ich indeksów - funkcja Hlp_GetInstanceID.

Symbole oprócz swoich numerów i identyfikatorów, mają też zawartość. Będzie ona różnego rodzaju w zależności od tego co symbol reprezentuje. 
Stałe i zmienne:
 - content będzie zawierało wartość lub wskaźnik na wartość
 - offset będzie zawierało przesunięcie wewnątrz klasy, o ile dana zmienna należy do jakiejś klasy
Funkcje:
 - content będzie zawierało wskaźnik na kod na stosie
 - offset będzie zawierało wskaźnik na wynik
Prototypy (są w pewnym sensie funkcjami inicjalizującymi nowy obiekt wybranym zestawem danych):
 - content będzie, tak jak przy funkcjach, zawierało wskaźnik na kod na stosie
Instancje są specyficznym przypadkiem. Mają trochę ze zmiennych i prototypów, ale oba ich składniki są opcjonalne i mogą być puste
 - content może zawierać wskaźnik na kod inicjalizujący (jeśli istnieje) (jak przy prototypach)
 - offset może zawierać wskaźnik na obiekt stworzony na ich podstawie (zwykle ostatni) (jeśli istnieje) (trochę jak przy zmiennych)

Przykładowo:
instance jasio (c_npc) { name = "Jan"; };
Zakładając że nie stworzymy tego npc w grze, symbol o nazwie "jasio" będzie zawierał wskaźnik na kod inicjalizacyjny w polu content, ale pole offset będzie zawierało null pointera (bo nie istnieje żaden obiekt stworzony na podstawie tej instancji).

instance self (c_npc);
Taka deklaracja rzeczywiście znajduje się w constants.d. W przeciwieństwie do jasia, self nie posiada kodu inicjalizacyjnego - więc pole content będzie zawierało null pointera. Z drugiej strony, silnik przypisuje mu jako zawartość npc na których operuje - więc offset będzie zawierało wskaźnik na npc z którym ostatnio coś się działo.

instance nikt (c_npc);
Ten tutaj z kolei, będzie miał null pointery zarówno w content, jak i offset - nie ma funkcji inicjalizacyjnej i nie istnieje też żaden obiekt stworzony na podstawie tej instancji.

Normalnie nie mamy bezpośredniego dostępu do zawartości symboli, ale funkcje zewnętrzne którym podamy je jako argumenty, będą próbowały uzyskać do nich dostęp.
Przykładowo, Wld_InsertNpc oczekuje jako argumentu indeksu symbolu oznaczającego obiekt klasy c_npc. Z założenia jednak nie oczekuje ona że taki obiekt już istnieje, więc nie próbuje odczytać tego na co wskazuje "offset". Zamiast tego tworzy nowy obiekt i w jego kontekście wywołuje kod na który wskazuje wskaźnik w "content". Można to sprawdzić wywołując tą funkcję i podając self jako argument. Ponieważ ta instancja nie ma kodu inicjalizacyjnego, powinniśmy otrzymać crash. Z kolei podając jako argument naszego jasia, powinno obejść się bez problemów, pomimo że wcześniej nie istniał obiekt na który ten symbol mógłby wskazywać.

Przykładem odwrotnego zachowania jest funkcja Npc_IsDead. Ona z kolei nie potrzebuje tworzyć nowego npc, a jedynie odczytać wskaźnik na obiekt już istniejący. Dlatego możemy bez crasha wywołać Npc_IsDead(self). Wywołanie jej z nigdy nie stworzonym jasiem mogłoby spowodować crash, ale tego akurat nie jestem pewien.

Odkąd napisałem ten artykuł w 2011, dwa razy przepisywałem jego treść. Obecna wersja zawiera informacje zawdzięczane Sektenspinnerowi - cały kawałek o zawartości symboli. To co ja pierwotnie zauważyłem i o czym napisałem, to samo odróżnianie obiektów od identyfikatorów i posługiwanie się indeksami symboli :D

65
Skrypty / Lista klas - skrypty i engine
« dnia: 2011-02-25, 11:12 »
Daedalus:
[ramka]Content
  • Gothic (+externals)
    • C_NPC (\story\npc\*.d)
    • C_Mission (porzucone)
    • C_Item (\items\*.d)
    • C_Focus (\ai\ai_intern\focus.d)
    • C_Info (\story\*\*.d)
    • C_ItemReact (porzucone)
    • C_GilValues (zastosowany raz, \ai\ai_intern\species.d)
    • C_Spell (\ai\magic\spells\*.d)
    • C_SVM (\story\svm.d)
    • Fight
      • C_FightAI (\fai\*.d)
      [/list]System
      • Camera
        • CCamSys (\camera\caminst.d)
        • Menu
          • C_Menu_Item (\menu\*.d)
          • C_Menu(\menu\*.d)
          • Music
            • C_MusicSys_Cfg (zastosowany raz, \music\musicinst.d)
            • C_MusicTheme (\music\musicinst.d)
            • C_MusicJingle (\music\musicinst.d)
            • ParticleFX
              • C_ParticleFX (\pfx\*.d)
              • Sfx
                • C_SndSys_Cfg (zastosowany raz, \_intern\sfx.d)
                • C_SFX (\sfx\*.d)
                • VisualFX
                  • C_ParticleFXEmitKey (\visualfx\visualfxinst.d)
                  • CFX_Base (\visualfx\*.d)
                  [/list][/ramka]

                  zEngin:
                  [ramka]
                  • zCObject
                    • oCNpcTalent
                    • oCSavegameInfo
                    • oCSpell
                    • zCAIBase
                      • oCAICamera
                      • oCAIHuman_Stand
                      • oCAISound
                        • oCAIArrowBase
                          • oCAIArrow
                          • oCAIDrop
                          • oCAIVobMove
                            • oCAIVobMoveTorch
                            [/list]
                            • zCAIBaseSound
                            • zCAICamera
                            • zCAIPlayer
                              • oCAniCtrl_Human
                                • oCAIHuman
                                [/list][/list]
                                • zCArchiver
                                  • zCArchiverBinSafe
                                  • zCArchiverGeneric
                                  • zCCSBlockBase
                                    • zCCSAtomicBlock
                                    • zCCSBlock
                                      • zCCSSyncBlock
                                      • zCCutscene
                                        • zCCSCutsceneContext
                                        [/list][/list]
                                        • zCCSLib
                                        • zCCSManager
                                          • oCCSManager
                                          • zCCSPlayer
                                            • oCCSPlayer
                                            • zCCSPoolItem
                                            • zCCSProps
                                              • oCCSProps
                                              • zCCSRole
                                              • zCEventManager
                                                • zCNetEventManager
                                                • zCEventMessage
                                                  • oCMobMsg
                                                  • oCNpcMessage
                                                    • oCMsgAttack
                                                    • oCMsgConversation
                                                    • oCMsgDamage
                                                    • oCMsgMagic
                                                    • oCMsgManipulate
                                                    • oCMsgMovement
                                                    • oCMsgState
                                                    • oCMsgUseItem
                                                    • oCMsgWeapon
                                                    • zCCSCamera_EventMsg
                                                    • zCCSCamera_EventMsgActivate
                                                    • zCEvMsgCutscene
                                                    • zCEventCommon
                                                    • zCEventCore
                                                    • zCEventMover
                                                    • zCEventMusicControler
                                                    • zCEventScreenFX
                                                    • zCLensFlareFX
                                                    • zCLightMap
                                                    • zCMaterial
                                                    • zCModelAni
                                                    • zCModelMeshLib
                                                    • zCNetManager
                                                    • zCNetVobControl
                                                    • zCObjectFactory
                                                      • oCObjectFactory
                                                      • zCResource
                                                        • zCSoundFX
                                                        • zCTexture
                                                        • zCSkyControler
                                                          • zCSkyControler_Mid
                                                            • zCSkyControler_Indoor
                                                            • zCSkyControler_Outdoor
                                                            [/list]
                                                            • zCTextureFileFormat
                                                              • zCTextureFileFormatInternal
                                                              • zCTextureFileFormatTGA
                                                              • zCVertexBuffer
                                                              • zCViewObject
                                                                • zCViewDraw
                                                                  • zCViewFX
                                                                    • zCViewPrint
                                                                      • zCViewDialog
                                                                        • oCViewDialogInventory
                                                                        • oCViewDialogItem
                                                                        • oCViewDialogItemContainer
                                                                        • oCViewDialogStealContainer
                                                                        • oCViewDialogTrade
                                                                        • zCViewDialogChoice
                                                                        [/list][/list][/list][/list]
                                                                        • zCVisual
                                                                          • zCDecal
                                                                          • zCMesh
                                                                          • zCParticleFX
                                                                          • zCPolyStrip
                                                                          • zCProgMeshProto
                                                                            • zCMeshSoftSkin
                                                                            • zCQuadMark
                                                                            • zCVisualAnimate
                                                                              • zCModel
                                                                              • zCMorphMesh
                                                                              [/list]
                                                                              • zCVob
                                                                                • oCDummyVobGenerator
                                                                                • oCVob
                                                                                  • oCItem
                                                                                  • oCMOB
                                                                                    • oCMobInter
                                                                                      • oCMobBed
                                                                                      • oCMobFire
                                                                                      • oCMobItemSlot
                                                                                      • oCMobLadder
                                                                                      • oCMobLockable
                                                                                        • oCMobContainer
                                                                                        • oCMobDoor
                                                                                        • oCMobSwitch
                                                                                        • oCMobWheel
                                                                                        [/list]
                                                                                        • oCNpc
                                                                                        • zCCSCamera
                                                                                        • zCCamTrj_KeyFrame
                                                                                        • zCEffect
                                                                                          • oCVisualFX
                                                                                            • oCVisFX_Lightning
                                                                                            • oCVisFX_MultiTarget
                                                                                            • zCEarthquake
                                                                                            • zCMusicControler
                                                                                            • zCPFXControler
                                                                                            • zCTouchAnimate
                                                                                              • zCTouchAnimateSound
                                                                                              • zCTouchDamage
                                                                                                • oCTouchDamage
                                                                                                • zCVobAnimate
                                                                                                • zCVobLensFlare
                                                                                                • zCVobScreenFX
                                                                                                • zCTriggerBase
                                                                                                  • zCCodeMaster
                                                                                                  • zCMessageFilter
                                                                                                  • zCMoverControler
                                                                                                  • zCTrigger
                                                                                                    • oCCSTrigger
                                                                                                    • oCTriggerChangeLevel
                                                                                                    • oCTriggerScript
                                                                                                    • zCMover
                                                                                                    • zCTriggerList
                                                                                                    • zCTriggerTeleport
                                                                                                    • zCTriggerUntouch
                                                                                                    • zCTriggerWorldStart
                                                                                                    • zCVobLevelCompo
                                                                                                    • zCVobLight
                                                                                                    • zCVobSpot
                                                                                                    • zCVobStair
                                                                                                    • zCVobStartpoint
                                                                                                    • zCVobWaypoint
                                                                                                    • zCZone
                                                                                                      • oCZoneMusic
                                                                                                        • oCZoneMusicDefault
                                                                                                        • zCVobSound
                                                                                                          • zCVobSoundDaytime
                                                                                                          • zCZoneMusic
                                                                                                          • zCZoneReverb
                                                                                                            • zCZoneReverbDefault
                                                                                                            • zCZoneVobFarPlane
                                                                                                              • zCZoneVobFarPlaneDefault
                                                                                                              • zCZoneZFog
                                                                                                                • zCZoneZFogDefault
                                                                                                                [/list][/list]
                                                                                                                • zCVobLightPreset
                                                                                                                • zCWayNet
                                                                                                                • zCWaypoint
                                                                                                                • zCWorld
                                                                                                                  • oCWorld
                                                                                                                  [/list][/list][/ramka]
                                                                                                                  Lista nie jest całkowicie kompletna.

                                                                                                                  Tutaj kompletna, ale niestety nieposortowana według hierarchii, tylko alfabetyczna:
                                                                                                                  Spoiler
                                                                                                                  oCAIArrow
                                                                                                                  oCAIArrowBase
                                                                                                                  oCAICamera
                                                                                                                  oCAIDrop
                                                                                                                  oCAIHuman
                                                                                                                  oCAIHuman_Stand
                                                                                                                  oCAISound
                                                                                                                  oCAIVobMove
                                                                                                                  oCAIVobMoveTorch
                                                                                                                  oCAniCtrl_Human
                                                                                                                  oCAskBox
                                                                                                                  oCBinkPlayer
                                                                                                                  oCCollObjectCharacter
                                                                                                                  oCCSManager
                                                                                                                  oCCSPlayer
                                                                                                                  oCCSProps
                                                                                                                  oCCSTrigger
                                                                                                                  oCDoc
                                                                                                                  oCDocumentManager
                                                                                                                  oCDummyVobGenerator
                                                                                                                  oCGame
                                                                                                                  oCGameInfo
                                                                                                                  oCInfo
                                                                                                                  oCInfoManager
                                                                                                                  oCItem
                                                                                                                  oCItemContainer
                                                                                                                  oCLogScreen
                                                                                                                  oCMapScreen
                                                                                                                  oCMenu_ChgKeys
                                                                                                                  oCMenu_Log
                                                                                                                  oCMenu_Main
                                                                                                                  oCMenu_Status
                                                                                                                  oCMenuSavegame
                                                                                                                  oCMission
                                                                                                                  oCMissionManager
                                                                                                                  oCMOB
                                                                                                                  oCMobBed
                                                                                                                  oCMobContainer
                                                                                                                  oCMobDoor
                                                                                                                  oCMobFire
                                                                                                                  oCMobInter
                                                                                                                  oCMobItemSlot
                                                                                                                  oCMobLadder
                                                                                                                  oCMobLockable
                                                                                                                  oCMobMsg
                                                                                                                  oCMobSwitch
                                                                                                                  oCMobWheel
                                                                                                                  oCMsgAttack
                                                                                                                  oCMsgConversation
                                                                                                                  oCMsgDamage
                                                                                                                  oCMsgMagic
                                                                                                                  oCMsgManipulate
                                                                                                                  oCMsgMovement
                                                                                                                  oCMsgState
                                                                                                                  oCMsgUseItem
                                                                                                                  oCMsgWeapon
                                                                                                                  oCNews
                                                                                                                  oCNewsMemory
                                                                                                                  oCNpc
                                                                                                                  oCNpc_States
                                                                                                                  oCNpcContainer
                                                                                                                  oCNpcMessage
                                                                                                                  oCNpcTalent
                                                                                                                  oCObjectFactory
                                                                                                                  oCObjectGenerator
                                                                                                                  oCPlayerInfo
                                                                                                                  oCRtnCutscene
                                                                                                                  oCSavegameInfo
                                                                                                                  oCSavegameManager
                                                                                                                  oCShrinkHelper
                                                                                                                  oCSkyControler_Barrier
                                                                                                                  oCSpell
                                                                                                                  oCStatusScreen
                                                                                                                  oCStealContainer
                                                                                                                  oCSystemInfo
                                                                                                                  oCTouchDamage
                                                                                                                  oCTriggerChangeLevel
                                                                                                                  oCTriggerScript
                                                                                                                  oCViewDialogInventory
                                                                                                                  oCViewDialogItem
                                                                                                                  oCViewDialogItemContainer
                                                                                                                  oCViewDialogStealContainer
                                                                                                                  oCViewDialogTrade
                                                                                                                  oCViewDocument
                                                                                                                  oCViewDocumentMap
                                                                                                                  oCViewGothicProgressBar
                                                                                                                  oCViewStatusBar
                                                                                                                  oCVisFX_Lightning
                                                                                                                  oCVisFX_MultiTarget
                                                                                                                  oCVisualFX
                                                                                                                  oCVisualFXAI
                                                                                                                  oCVob
                                                                                                                  oCWay
                                                                                                                  oCWaypoint
                                                                                                                  oCWorld
                                                                                                                  oCZoneMusic
                                                                                                                  oCZoneMusicDefault
                                                                                                                  zCAIBase
                                                                                                                  zCAICamera
                                                                                                                  zCAIPlayer
                                                                                                                  zCAIPlayer
                                                                                                                  zCArchiver
                                                                                                                  zCArchiverBinSafe
                                                                                                                  zCArchiverFactory
                                                                                                                  zCArchiverGeneric
                                                                                                                  zCBBox3DSorterBase
                                                                                                                  zCBinkPlayer
                                                                                                                  zCBolt
                                                                                                                  zCBuffer
                                                                                                                  zCCache
                                                                                                                  zCCache
                                                                                                                  zCCacheAsk
                                                                                                                  zCCacheBase
                                                                                                                  zCCacheData
                                                                                                                  zCCacheData
                                                                                                                  zCCacheIndex
                                                                                                                  zCCallback
                                                                                                                  zCCamTrj_KeyFrame
                                                                                                                  zCCodeMaster
                                                                                                                  zCCollisionDetector
                                                                                                                  zCCollisionObject
                                                                                                                  zCCollisionReport
                                                                                                                  zCCollObjectBase
                                                                                                                  zCCollObjectBoxBlocker
                                                                                                                  zCCollObjectBoxPassThrough
                                                                                                                  zCCollObjectCharacter
                                                                                                                  zCCollObjectComplex
                                                                                                                  zCCollObjectLevelPolys
                                                                                                                  zCCollObjectPoint
                                                                                                                  zCCollObjectProjectile
                                                                                                                  zCCollObjectUndef
                                                                                                                  zCConsole
                                                                                                                  zCConvexCollisionCache
                                                                                                                  zCConvexPrimitive
                                                                                                                  zCConvexPrimitiveEllipsoid
                                                                                                                  zCConvexPrimitiveScaleTrans
                                                                                                                  zCConvexPrimitiveUnitSphere
                                                                                                                  zCCriticalSection
                                                                                                                  zCCSAtomicBlock
                                                                                                                  zCCSBlock
                                                                                                                  zCCSBlockBase
                                                                                                                  zCCSBlockPosition
                                                                                                                  zCCSCamera
                                                                                                                  zCCSCamera_EventMsg
                                                                                                                  zCCSCamera_EventMsgActivate
                                                                                                                  zCCSCutsceneContext
                                                                                                                  zCCSDebugger
                                                                                                                  zCCSLib
                                                                                                                  zCCSManager
                                                                                                                  zCCSPlayer
                                                                                                                  zCCSPoolItem
                                                                                                                  zCCSProps
                                                                                                                  zCCSRole
                                                                                                                  zCCSSyncBlock
                                                                                                                  zCDecal
                                                                                                                  zCEarthquake
                                                                                                                  zCEffect
                                                                                                                  zCEngine
                                                                                                                  zCEventCommon
                                                                                                                  zCEventCore
                                                                                                                  zCEventManager
                                                                                                                  zCEventMessage
                                                                                                                  zCEventMover
                                                                                                                  zCEventMusicControler
                                                                                                                  zCEventScreenFX
                                                                                                                  zCEvMsgCutscene
                                                                                                                  zCFileCSV
                                                                                                                  zCFlash
                                                                                                                  zCGameInfo
                                                                                                                  zCGameManager
                                                                                                                  zCInput
                                                                                                                  zCInput_Win32
                                                                                                                  zCInputCallback
                                                                                                                  zCLensFlareFX
                                                                                                                  zCLightMap
                                                                                                                  zCMalloc
                                                                                                                  zCMallocGeneric
                                                                                                                  zCMaterial
                                                                                                                  zCMenu
                                                                                                                  zCMenuItem
                                                                                                                  zCMenuItemButton
                                                                                                                  zCMenuItemChoice
                                                                                                                  zCMenuItemInput
                                                                                                                  zCMenuItemList
                                                                                                                  zCMenuItemSlider
                                                                                                                  zCMenuItemText
                                                                                                                  zCMesh
                                                                                                                  zCMessageFilter
                                                                                                                  zCModel
                                                                                                                  zCMorphMesh
                                                                                                                  zCMover
                                                                                                                  zCMoverControler
                                                                                                                  zCMusicControler
                                                                                                                  zCMusicJingle
                                                                                                                  zCMusicSys_DirectMusic
                                                                                                                  zCMusicSys_Dummy
                                                                                                                  zCMusicSystem
                                                                                                                  zCMusicTheme
                                                                                                                  zCMusicTheme_DM
                                                                                                                  zCMutex
                                                                                                                  zCNet
                                                                                                                  zCNetEventManager
                                                                                                                  zCNetHost
                                                                                                                  zCNetManager
                                                                                                                  zCNetMessage
                                                                                                                  zCNetSession
                                                                                                                  zCNetStatistics
                                                                                                                  zCNetVersion
                                                                                                                  zCNetVobControl
                                                                                                                  zCObject
                                                                                                                  zCObjectFactory
                                                                                                                  zCOption
                                                                                                                  zCParticleFX
                                                                                                                  zCPFXControler
                                                                                                                  zCPlayerGroup
                                                                                                                  zCPlayerInfo
                                                                                                                  zCPolyStrip
                                                                                                                  zCRenderer
                                                                                                                  zCResource
                                                                                                                  zCRnd_D3D
                                                                                                                  zCRndAlphaSortObject
                                                                                                                  zCRndAlphaSortObject_Vob
                                                                                                                  zCRoute
                                                                                                                  zCScanDir
                                                                                                                  zCScanDirFileHandler
                                                                                                                  zCShowMemCallback
                                                                                                                  zCSndDebugCallback
                                                                                                                  zCSndFX_MSS
                                                                                                                  zCSndSys_MSS
                                                                                                                  zCSoundFX
                                                                                                                  zCSoundFXDummy
                                                                                                                  zCSoundSystem
                                                                                                                  zCSoundSystemDummy
                                                                                                                  zCSparseArray
                                                                                                                  zCSparseArray
                                                                                                                  zCSparseArray
                                                                                                                  zCSparseArrayBase
                                                                                                                  zCSyncObject
                                                                                                                  zCSyncObject
                                                                                                                  zCSystemInfo
                                                                                                                  zCTex_D3D
                                                                                                                  zCTexConGeneric
                                                                                                                  zCTexture
                                                                                                                  zCTextureConvert
                                                                                                                  zCTextureExchange
                                                                                                                  zCTextureFileHandler
                                                                                                                  zCTouchAnimate
                                                                                                                  zCTouchAnimateSound
                                                                                                                  zCTouchDamage
                                                                                                                  zCTrigger
                                                                                                                  zCTriggerBase
                                                                                                                  zCTriggerList
                                                                                                                  zCTriggerTeleport
                                                                                                                  zCTriggerUntouch
                                                                                                                  zCTriggerWorldStart
                                                                                                                  zCVertexBuffer
                                                                                                                  zCVertexBuffer_D3D
                                                                                                                  zCVertexTransform
                                                                                                                  zCVideoPlayer
                                                                                                                  zCView
                                                                                                                  zCViewBase
                                                                                                                  zCViewDialog
                                                                                                                  zCViewDialogChoice
                                                                                                                  zCViewDraw
                                                                                                                  zCViewFX
                                                                                                                  zCViewObject
                                                                                                                  zCViewPrint
                                                                                                                  zCViewProgressBar
                                                                                                                  zCViewStatusBar
                                                                                                                  zCViewText
                                                                                                                  zCViewWindow
                                                                                                                  zCVisual
                                                                                                                  zCVisualAnimate
                                                                                                                  zCVob
                                                                                                                  zCVobAnimate
                                                                                                                  zCVobBBox3DSorter
                                                                                                                  zCVobCallback
                                                                                                                  zCVobCallback_PrintBigBBox
                                                                                                                  zCVobLensFlare
                                                                                                                  zCVobLevelCompo
                                                                                                                  zCVobLight
                                                                                                                  zCVobLightPreset
                                                                                                                  zCVobSound
                                                                                                                  zCVobSoundDaytime
                                                                                                                  zCVobSpot
                                                                                                                  zCVobStair
                                                                                                                  zCVobStartpoint
                                                                                                                  zCVobWaypoint
                                                                                                                  zCVolatileMemory
                                                                                                                  zCVolatileMemoryBase
                                                                                                                  zCWay
                                                                                                                  zCWayNet
                                                                                                                  zCWaypoint
                                                                                                                  zCWorld
                                                                                                                  zCWorldInfo
                                                                                                                  zCWorldPerFrameCallback
                                                                                                                  zCZone
                                                                                                                  zCZoneMusic
                                                                                                                  zCZoneReverb
                                                                                                                  zCZoneReverbDefault
                                                                                                                  zCZoneVobFarPlane
                                                                                                                  zCZoneVobFarPlaneDefault
                                                                                                                  zCZoneZFog
                                                                                                                  zCZoneZFogDefault

                                                                                                                  66
                                                                                                                  MDS i animacje / [G2nk] Jak zrobić tarczę
                                                                                                                  « dnia: 2011-02-07, 16:33 »
                                                                                                                  Ktoś mi przypomniał o fragmencie skryptu który dałem kilka postów temu, zapomniałem tam dopisać że przy zakładaniu trzeba dać pustą animkę zakładającą item na slot.
                                                                                                                  Jest druga, prostsza metoda - polega na zrobieniu tarczy na slocie kuszy. Napisałem właśnie gotowy skrypt, jednak jako że nie mam Gothica nie wiem czy nie ma w nim błędów.
                                                                                                                  Item:itsh_shield_01INSTANCE itsh_shield_01 (C_Item)
                                                                                                                  {
                                                                                                                  name = "Drewniana tarcza";

                                                                                                                  mainflag = 16;
                                                                                                                  flags = ITEM_CROSSBOW;
                                                                                                                  material = 0;

                                                                                                                  protection [PROT_EDGE] = 10; //Tylko te wartości edytujemy. Pozostałe są pobierane od nich.
                                                                                                                  protection [PROT_POINT] = 30;
                                                                                                                  protection [PROT_FIRE] = 0;
                                                                                                                  protection [PROT_MAGIC] = 0;

                                                                                                                  on_equip = Equip_itsh_shield_01;
                                                                                                                  on_unequip = UnEquip_itsh_shield_01;

                                                                                                                  value = 100;
                                                                                                                  visual = "itsh_shield_01.3ds";

                                                                                                                  description = name;
                                                                                                                  //TEXT[0]= ""; //COUNT[0] = 0;
                                                                                                                  TEXT[1] = NAME_Prot_Edge; COUNT[1] = protection [2];
                                                                                                                  TEXT[2] = NAME_Prot_Point; COUNT[2] = protection [6];
                                                                                                                  TEXT[3] = NAME_Prot_Fire; COUNT[3] = protection [3];
                                                                                                                  TEXT[4] = NAME_Prot_Magic; COUNT[4] = protection [5];
                                                                                                                  TEXT[5] = NAME_Value; COUNT[5] = value;
                                                                                                                  };

                                                                                                                  FUNC VOID Equip_itsh_shield_01()
                                                                                                                  {
                                                                                                                  self.protection [1] += item.protection [2];
                                                                                                                  self.protection [2] += item.protection [2];
                                                                                                                  self.protection [6] += item.protection [6];
                                                                                                                  self.protection [3] += item.protection [3];
                                                                                                                  self.protection [5] += item.protection [5];
                                                                                                                  Mdl_ApplyOverlayMds (self,"Humans_Shield.mds");
                                                                                                                  };

                                                                                                                  FUNC VOID UnEquip_itsh_shield_01()
                                                                                                                  {
                                                                                                                  self.protection [1] -= item.protection [2];
                                                                                                                  self.protection [2] -= item.protection [2];
                                                                                                                  self.protection [6] -= item.protection [6];
                                                                                                                  self.protection [3] -= item.protection [3];
                                                                                                                  self.protection [5] -= item.protection [5];
                                                                                                                  Mdl_RemoveOverlayMds (self,"Humans_Shield.mds");
                                                                                                                  };

                                                                                                                  OverlayMDS:Humans_Shield.mdsModel ("HuS"){
                                                                                                                  meshAndTree ("Hum_Body_Naked0.ASC" DONT_USE_MESH)
                                                                                                                  aniEnum { modelTag ("DEF_HIT_LIMB" "zs_RightHand")


                                                                                                                  ani ("t_1h_2_1hRun" 1 "s_1hRun" 0.0 0.1 M. "Hum_1hSDrawT2.asc" F 4 14)
                                                                                                                  {
                                                                                                                  *eventTag (4 "DEF_FIGHTMODE" "1H")
                                                                                                                  *eventTag (4 "DEF_DRAWSOUND")
                                                                                                                  *eventSwapMesh (5 "ZS_CROSSBOW" "ZS_LEFTHAND")
                                                                                                                  *EventTag (5 "DEF_SWAPMESH" "ZS_CROSSBOW" "ZS_LEFTHAND")
                                                                                                                  }

                                                                                                                  ani ("t_1hRun_2_1h" 1 "s_1h" 0.1 0.0 M. "Hum_1hSDrawT2.asc" R 4 14)
                                                                                                                  {
                                                                                                                  *eventTag (4 "DEF_FIGHTMODE" "")
                                                                                                                  *eventTag (4 "DEF_UNDRAWSOUND")
                                                                                                                  *eventSwapMesh (5 "ZS_LEFTHAND" "ZS_CROSSBOW")
                                                                                                                  *EventTag (5 "DEF_SWAPMESH" "ZS_LEFTHAND" "ZS_CROSSBOW")
                                                                                                                  }


                                                                                                                  ani ("t_1h_2_1hRun" 1 "s_1hRun" 0.0 0.1 M. "Hum_1hSDrawT3.asc" F 5 14)
                                                                                                                  {
                                                                                                                  *eventTag (5 "DEF_FIGHTMODE" "1H")
                                                                                                                  *eventTag (5 "DEF_DRAWSOUND")
                                                                                                                  *eventSwapMesh (5 "ZS_CROSSBOW" "ZS_LEFTHAND")
                                                                                                                  *EventTag (5 "DEF_SWAPMESH" "ZS_CROSSBOW" "ZS_LEFTHAND")
                                                                                                                  }

                                                                                                                  ani ("t_1hRun_2_1h" 1 "s_1h" 0.1 0.0 M. "Hum_1hSDrawT3.asc" R 5 14)
                                                                                                                  {
                                                                                                                  *eventTag (5 "DEF_FIGHTMODE" "")
                                                                                                                  *eventTag (5 "DEF_UNDRAWSOUND")
                                                                                                                  *eventSwapMesh (5 "ZS_LEFTHAND" "ZS_CROSSBOW")
                                                                                                                  *EventTag (5 "DEF_SWAPMESH" "ZS_LEFTHAND" "ZS_CROSSBOW")
                                                                                                                  }

                                                                                                                  }
                                                                                                                  }


                                                                                                                  Tak jak pisałem da się zrobić też niezależnie od kuszy, ale wtedy trzeba skorzystać z jednej dodatkowej niewidocznej animki z eventTagiem przy zakładaniu i ściąganiu. Wtedy trzeba użyć innych flagsów oraz załączyć zestaw warunków, na przykład takich jak w poprzednim skrypcie, z tym że var int shield_equipped; musi być POZA funkcją, a jeśli mają używać tarcz także npc to najlepiej całkiem to wywalić a w warunku zastąpić przez self.aivar[43] .
                                                                                                                  MDS który załączyłem zajmuje się tylko przekładaniem pomiędzy slotami, animacje trzeba załatwić we własnym zakresie.

                                                                                                                  //edit: jako że tematy z podobnym pytaniem są ciągle zakładane, na moją prośbę Wowoz wydzielił posta z dyskusji na osobny temat. Przypominam jednak że skrypt pisałem w okresie kiedy nie mogłem korzystać z Gothica i był pisany z pamięci, więc może posiadać drobne błędy. Ogólną zasadę jednak wcześniej wielokrotnie testowałem i z pewnością działa.

                                                                                                                  67
                                                                                                                  Forum / theWitcher
                                                                                                                  « dnia: 2011-02-03, 19:43 »
                                                                                                                  Proponowałem obie możliwości, musicie zdecydować tylko która będzie się lepiej prezentować. Co do kolorów tekstu to najlepiej gdyby były jak najjaśniejsze, ja zanim Zdunek to nadpisał aktualizując forum ustawiłem chyba kolorki podobne do obecnych, ale do wszystkich wartości kolorów w hex (rgb) pododawałem w pamięci jakąś wartość (czyli równomiernie rozjaśniłem).

                                                                                                                  68
                                                                                                                  Skrypty / Prosty dostęp do enginowej klasy oCNpc
                                                                                                                  « dnia: 2011-01-30, 15:58 »
                                                                                                                  NicoDE z Piranha Bytes udostępnił na potrzeby moddingu strukturę wykorzystywanej przez silnik klasy oCNpc (której okrojoną wersją jest c_npc) w Daedalusie, tak że za pomocą skryptów i funkcji Hlp_GetNPC można uzyskiwać dostęp do jej wartości i osiągać efekty będące poza zasięgiem zwykłych skryptów.

                                                                                                                  Wersja dla G1:
                                                                                                                  Spoiler
                                                                                                                  //
                                                                                                                  // Only for demonstration purposes. Usage at your own risk.
                                                                                                                  // Only for Gothic I version 1.08k_mod (current Player-Kit)
                                                                                                                  //

                                                                                                                  ////////////////////////////////////////////////////////////////////////////////
                                                                                                                  //                                                                            //
                                                                                                                  //                                  zCObject                                  //
                                                                                                                  //                                                                            //
                                                                                                                  ////////////////////////////////////////////////////////////////////////////////

                                                                                                                  //NOTE: Bit field mask consts:     BitCount    FirstBit
                                                                                                                  const int zCObject_hashIndex = ((1 << 16) - 1) << 0;

                                                                                                                  class zCObject {
                                                                                                                      var int    vfptr;          // 0x0000
                                                                                                                      var int    refCtr;         // 0x0004 int
                                                                                                                      var int    hashIndex;      // 0x0008 zWORD
                                                                                                                      var int    hashNext;       // 0x000C zCObject*
                                                                                                                      var string objectName;     // 0x0010 zSTRING
                                                                                                                  };
                                                                                                                  const int zCObject_Size = 36;  // 0x0024

                                                                                                                  ////////////////////////////////////////////////////////////////////////////////
                                                                                                                  //                                                                            //
                                                                                                                  //                                   zCVob                                    //
                                                                                                                  //                                                                            //
                                                                                                                  ////////////////////////////////////////////////////////////////////////////////

                                                                                                                  const int zCVob_bitfield0_showVisual                = ((1 << 1) - 1) <<  0;
                                                                                                                  const int zCVob_bitfield0_drawBBox3D                = ((1 << 1) - 1) <<  1;
                                                                                                                  const int zCVob_bitfield0_visualAlphaEnabled        = ((1 << 1) - 1) <<  2;
                                                                                                                  const int zCVob_bitfield0_physicsEnabled            = ((1 << 1) - 1) <<  3;
                                                                                                                  const int zCVob_bitfield0_staticVob                 = ((1 << 1) - 1) <<  4;
                                                                                                                  const int zCVob_bitfield0_ignoredByTraceRay         = ((1 << 1) - 1) <<  5;
                                                                                                                  const int zCVob_bitfield0_collDetectionStatic       = ((1 << 1) - 1) <<  6;
                                                                                                                  const int zCVob_bitfield0_collDetectionDynamic      = ((1 << 1) - 1) <<  7;
                                                                                                                  const int zCVob_bitfield0_castDynShadow             = ((1 << 2) - 1) <<  8;
                                                                                                                  const int zCVob_bitfield0_lightColorStatDirty       = ((1 << 1) - 1) << 10;
                                                                                                                  const int zCVob_bitfield0_lightColorDynDirty        = ((1 << 1) - 1) << 11;
                                                                                                                  const int zCVob_bitfield1_isInMovementMode          = ((1 << 2) - 1) <<  0;
                                                                                                                  const int zCVob_bitfield2_sleepingMode              = ((1 << 2) - 1) <<  0;
                                                                                                                  const int zCVob_bitfield2_mbHintTrafoLocalConst     = ((1 << 1) - 1) <<  2;
                                                                                                                  const int zCVob_bitfield2_mbInsideEndMovementMethod = ((1 << 1) - 1) <<  3;
                                                                                                                  const int zCVob_bitfield3_visualCamAlign            = ((1 << 2) - 1) <<  0;
                                                                                                                  const int zCVob_bitfield4_collButNoMove             = ((1 << 8) - 1) <<  0;
                                                                                                                  const int zCVob_bitfield4_dontWriteIntoArchive      = ((1 << 1) - 1) <<  8;

                                                                                                                  class zCVob {
                                                                                                                  //  zCObject {
                                                                                                                          var int    vfptr;
                                                                                                                          var int    refCtr;
                                                                                                                          var int    hashIndex;
                                                                                                                          var int    hashNext;
                                                                                                                          var string objectName;
                                                                                                                  //  }
                                                                                                                      var int        globalVobTreeNode;         // 0x0024 zCTree<zCVob>*
                                                                                                                      var int        lastTimeDrawn;             // 0x0028 zTFrameCtr
                                                                                                                      var int        lastTimeCollected;         // 0x002C zDWORD
                                                                                                                  //  zCArray<zCBspLeaf*> vobLeafList {
                                                                                                                          var int    vobLeafList_array;         // 0x0030 zCBspLeaf**
                                                                                                                          var int    vobLeafList_numAlloc;      // 0x0034 int
                                                                                                                          var int    vobLeafList_numInArray;    // 0x0038 int
                                                                                                                  //  }
                                                                                                                      var int        trafoObjToWorld[16];       // 0x003C zMATRIX4
                                                                                                                  //  zTBBox3D bbox3D {
                                                                                                                          var int    bbox3D_mins[3];            // 0x007C zPOINT3
                                                                                                                          var int    bbox3D_maxs[3];            // 0x0088 zPOINT3
                                                                                                                  //  }
                                                                                                                  //  zCArray<zCVob*> touchVobList {
                                                                                                                          var int    touchVobList_array;        // 0x0094 zCVob**
                                                                                                                          var int    touchVobList_numAlloc;     // 0x0098 int
                                                                                                                          var int    touchVobList_numInArray;   // 0x009C int
                                                                                                                  //  }
                                                                                                                      var int        type;                      // 0x00A0 zTVobType
                                                                                                                      var int        groundShadowSizePacked;    // 0x00A4 zDWORD
                                                                                                                      var int        homeWorld;                 // 0x00A8 zCWorld*
                                                                                                                      var int        groundPoly;                // 0x00AC zCPolygon*
                                                                                                                      var int        callback_ai;               // 0x00B0 zCAIBase*
                                                                                                                      var int        trafo;                     // 0x00B4 zMATRIX4*
                                                                                                                      var int        visual;                    // 0x00B8 zCVisual*
                                                                                                                      var int        visualAlpha;               // 0x00BC zREAL
                                                                                                                      var int        rigidBody;                 // 0x00C0 zCRigidBody*
                                                                                                                      var int        lightColorStat;            // 0x00C4 zCOLOR
                                                                                                                      var int        lightColorDyn;             // 0x00C8 zCOLOR
                                                                                                                      var int        lightDirectionStat[3];     // 0x00CC zVEC3
                                                                                                                      var int        vobPresetName;             // 0x00D8 zSTRING*
                                                                                                                      var int        eventManager;              // 0x00DC zCEventManager*
                                                                                                                      var int        nextOnTimer;               // 0x00E0 zREAL
                                                                                                                      var int        vob_bitfield[5];           // 0x00E4 zCVob_bitfieldX_Xxx
                                                                                                                      var int        m_poCollisionObjectClass;  // 0x00F8 zCCollisionObjectDef*
                                                                                                                      var int        m_poCollisionObject;       // 0x00FC zCCollisionObject*
                                                                                                                  };
                                                                                                                  const int zCVob_Size = 256;                   // 0x0100

                                                                                                                  ////////////////////////////////////////////////////////////////////////////////
                                                                                                                  //                                                                            //
                                                                                                                  //                                   oCNpc                                    //
                                                                                                                  //                                                                            //
                                                                                                                  ////////////////////////////////////////////////////////////////////////////////

                                                                                                                  const int oCMagFrontier_bitfield_isWarning  = ((1 << 1) - 1) << 0;
                                                                                                                  const int oCMagFrontier_bitfield_isShooting = ((1 << 1) - 1) << 1;

                                                                                                                  const int oCNpc_bitfield0_showaidebug          = ((1 <<  1) - 1) <<  0;
                                                                                                                  const int oCNpc_bitfield0_showNews             = ((1 <<  1) - 1) <<  1;
                                                                                                                  const int oCNpc_bitfield0_csAllowedAsRole      = ((1 <<  1) - 1) <<  2;
                                                                                                                  const int oCNpc_bitfield0_isSummoned           = ((1 <<  1) - 1) <<  3;
                                                                                                                  const int oCNpc_bitfield0_respawnOn            = ((1 <<  1) - 1) <<  4;
                                                                                                                  const int oCNpc_bitfield0_movlock              = ((1 <<  1) - 1) <<  5;
                                                                                                                  const int oCNpc_bitfield0_drunk                = ((1 <<  1) - 1) <<  6;
                                                                                                                  const int oCNpc_bitfield0_mad                  = ((1 <<  1) - 1) <<  7;
                                                                                                                  const int oCNpc_bitfield0_overlay_wounded      = ((1 <<  1) - 1) <<  8;
                                                                                                                  const int oCNpc_bitfield0_inOnDamage           = ((1 <<  1) - 1) <<  9;
                                                                                                                  const int oCNpc_bitfield0_autoremoveweapon     = ((1 <<  1) - 1) << 10;
                                                                                                                  const int oCNpc_bitfield0_openinventory        = ((1 <<  1) - 1) << 11;
                                                                                                                  const int oCNpc_bitfield0_askroutine           = ((1 <<  1) - 1) << 12;
                                                                                                                  const int oCNpc_bitfield0_spawnInRange         = ((1 <<  1) - 1) << 13;
                                                                                                                  const int oCNpc_bitfield1_body_TexVarNr        = ((1 << 16) - 1) <<  0;
                                                                                                                  const int oCNpc_bitfield1_body_TexColorNr      = ((1 << 16) - 1) << 16;
                                                                                                                  const int oCNpc_bitfield2_head_TexVarNr        = ((1 << 16) - 1) <<  0;
                                                                                                                  const int oCNpc_bitfield2_teeth_TexVarNr       = ((1 << 16) - 1) << 16;
                                                                                                                  const int oCNpc_bitfield3_guildTrue            = ((1 <<  8) - 1) <<  0;
                                                                                                                  const int oCNpc_bitfield3_drunk_heal           = ((1 <<  8) - 1) <<  8;
                                                                                                                  const int oCNpc_bitfield3_mad_heal             = ((1 <<  8) - 1) << 16;
                                                                                                                  const int oCNpc_bitfield3_spells               = ((1 <<  8) - 1) << 24;
                                                                                                                  const int oCNpc_bitfield4_bodyState            = ((1 << 19) - 1) <<  0;

                                                                                                                  const int oTRobustTrace_bitfield_stand                = ((1 << 1) - 1) << 0;
                                                                                                                  const int oTRobustTrace_bitfield_dirChoosed           = ((1 << 1) - 1) << 1;
                                                                                                                  const int oTRobustTrace_bitfield_exactPosition        = ((1 << 1) - 1) << 2;
                                                                                                                  const int oTRobustTrace_bitfield_targetReached        = ((1 << 1) - 1) << 3;
                                                                                                                  const int oTRobustTrace_bitfield_standIfTargetReached = ((1 << 1) - 1) << 4;
                                                                                                                  const int oTRobustTrace_bitfield_waiting              = ((1 << 1) - 1) << 5;
                                                                                                                  const int oTRobustTrace_bitfield_isObstVobSmall       = ((1 << 1) - 1) << 6;
                                                                                                                  const int oTRobustTrace_bitfield_targetVisible        = ((1 << 1) - 1) << 7;
                                                                                                                  const int oTRobustTrace_bitfield_useChasmChecks       = ((1 << 1) - 1) << 8;

                                                                                                                  class oCNpc
                                                                                                                  {
                                                                                                                  //  zCVob {
                                                                                                                  //      zCObject {
                                                                                                                              var int    vfptr;
                                                                                                                              var int    refCtr;
                                                                                                                              var int    hashIndex;
                                                                                                                              var int    hashNext;
                                                                                                                              var string objectName;
                                                                                                                  //      }
                                                                                                                          var int        globalVobTreeNode;
                                                                                                                          var int        lastTimeDrawn;
                                                                                                                          var int        lastTimeCollected;
                                                                                                                          var int        vobLeafList_array;
                                                                                                                          var int        vobLeafList_numAlloc;
                                                                                                                          var int        vobLeafList_numInArray;
                                                                                                                          var int        trafoObjToWorld[16];
                                                                                                                          var int        bbox3D_mins[3];
                                                                                                                          var int        bbox3D_maxs[3];
                                                                                                                          var int        touchVobList_array;
                                                                                                                          var int        touchVobList_numAlloc;
                                                                                                                          var int        touchVobList_numInArray;
                                                                                                                          var int        type;
                                                                                                                          var int        groundShadowSizePacked;
                                                                                                                          var int        homeWorld;
                                                                                                                          var int        groundPoly;
                                                                                                                          var int        callback_ai;
                                                                                                                          var int        trafo;
                                                                                                                          var int        visual;
                                                                                                                          var int        visualAlpha;
                                                                                                                          var int        rigidBody;
                                                                                                                          var int        lightColorStat;
                                                                                                                          var int        lightColorDyn;
                                                                                                                          var int        lightDirectionStat[3];
                                                                                                                          var int        vobPresetName;
                                                                                                                          var int        eventManager;
                                                                                                                          var int        nextOnTimer;
                                                                                                                          var int        vob_bitfield[5];
                                                                                                                          var int        m_poCollisionObjectClass;
                                                                                                                          var int        m_poCollisionObject;
                                                                                                                  //  }
                                                                                                                  //  C_NPC {
                                                                                                                          var int        idx;                                        // 0x0100 int
                                                                                                                          var string     name;                                       // 0x0104 zSTRING[5]
                                                                                                                          var string     name1;
                                                                                                                          var string     name2;
                                                                                                                          var string     name3;
                                                                                                                          var string     name4;
                                                                                                                          var string     slot;                                       // 0x0168 zSTRING
                                                                                                                          var int        npcType;                                    // 0x017C int
                                                                                                                          var int        variousFlags;                               // 0x0180 int
                                                                                                                          var int        attribute[8];                               // 0x0184 int[NPC_ATR_MAX]
                                                                                                                          var int        protection[8];                              // 0x01A4 int[oEDamageIndex_MAX]
                                                                                                                          var int        damage[8];                                  // 0x01C4 int[oEDamageIndex_MAX]
                                                                                                                          var int        damagetype;                                 // 0x01E4 int
                                                                                                                          var int        guild;                                      // 0x01E8 int
                                                                                                                          var int        level;                                      // 0x01EC int
                                                                                                                          var func       mission[5];                                 // 0x01F0 int[NPC_MIS_MAX]
                                                                                                                          var int        fighttactic;                                // 0x0204 int
                                                                                                                          var int        fmode;                                      // 0x0208 int
                                                                                                                          var int        voice;                                      // 0x020C int
                                                                                                                          var int        voicePitch;                                 // 0x0210 int
                                                                                                                          var int        mass;                                       // 0x0214 int
                                                                                                                          var func       daily_routine;                              // 0x0218 int
                                                                                                                          var func       startAIState;                               // 0x021C int
                                                                                                                          var string     spawnPoint;                                 // 0x0220 zSTRING
                                                                                                                          var int        spawnDelay;                                 // 0x0234 int
                                                                                                                          var int        senses;                                     // 0x0238 int
                                                                                                                          var int        senses_range;                               // 0x023C int
                                                                                                                          var int        aiscriptvars[50];                           // 0x0240 int[50]
                                                                                                                          var string     wpname;                                     // 0x0308 zSTRING
                                                                                                                          var int        experience_points;                          // 0x031C zUINT32
                                                                                                                          var int        experience_points_next_level;               // 0x0320 zUINT32
                                                                                                                          var int        learn_points;                               // 0x0324 zUINT32
                                                                                                                  //  }
                                                                                                                      var int            parserEnd;                                  // 0x0328 int
                                                                                                                      var int            bloodEnabled;                               // 0x032C int
                                                                                                                      var int            bloodDistance;                              // 0x0330 int
                                                                                                                      var int            bloodAmount;                                // 0x0334 int
                                                                                                                      var int            bloodFlow;                                  // 0x0338 int
                                                                                                                      var string         bloodEmitter;                               // 0x033C zSTRING
                                                                                                                      var string         bloodTexture;                               // 0x0350 zSTRING
                                                                                                                      var int            didHit;                                     // 0x0364 zBOOL
                                                                                                                      var int            didParade;                                  // 0x0368 zBOOL
                                                                                                                      var int            didShoot;                                   // 0x036C zBOOL
                                                                                                                      var int            hasLockedEnemy;                             // 0x0370 zBOOL
                                                                                                                      var int            isDefending;                                // 0x0374 zBOOL
                                                                                                                      var int            wasAiming;                                  // 0x0378 zBOOL
                                                                                                                      var int            enemy;                                      // 0x037C oCNpc*
                                                                                                                      var int            speedTurn;                                  // 0x0380 zREAL
                                                                                                                      var int            foundFleePoint;                             // 0x0384 zBOOL
                                                                                                                      var int            reachedFleePoint;                           // 0x0388 zBOOL
                                                                                                                      var int            vecFlee[3];                                 // 0x038C zVEC3
                                                                                                                      var int            posFlee[3];                                 // 0x0398 zVEC3
                                                                                                                      var int            waypointFlee;                               // 0x03A4 zCWaypoint*
                                                                                                                  //  oTRobustTrace rbt {
                                                                                                                          var int        rbt_bitfield;                               // 0x03A8 oTRobustTrace_bitfield_Xxx
                                                                                                                          var int        rbt_targetPos[3];                           // 0x03AC zVEC3
                                                                                                                          var int        rbt_targetVob;                              // 0x03B8 zCVob*
                                                                                                                          var int        rbt_obstVob;                                // 0x03BC zCVob*
                                                                                                                          var int        rbt_targetDist;                             // 0x03C0 zREAL
                                                                                                                          var int        rbt_lastTargetDist;                         // 0x03C4 zREAL
                                                                                                                          var int        rbt_maxTargetDist;                          // 0x03C8 zREAL
                                                                                                                          var int        rbt_dirTurn;                                // 0x03CC zREAL
                                                                                                                          var int        rbt_timer;                                  // 0x03D0 zREAL
                                                                                                                          var int        rbt_dirFirst[3];                            // 0x03D4 zVEC3
                                                                                                                          var int        rbt_dirLastAngle;                           // 0x03E0 zREAL
                                                                                                                  //      zCArray<oTDirectionInfo*> lastDirections {
                                                                                                                              var int    rbt_lastDirections_array;                   // 0x03E4 oTDirectionInfo**
                                                                                                                              var int    rbt_lastDirections_numAlloc;                // 0x03E8 int
                                                                                                                              var int    rbt_lastDirections_numInArray;              // 0x03EC int
                                                                                                                  //      }
                                                                                                                          var int        rbt_frameCtr;                               // 0x03F0 int
                                                                                                                          var int        rbt_targetPosArray[15];                     // 0x03F4 zVEC3[5]
                                                                                                                          var int        rbt_targetPosCounter;                       // 0x0430 int
                                                                                                                          var int        rbt_targetPosIndex;                         // 0x0434 int
                                                                                                                          var int        rbt_checkVisibilityTime;                    // 0x0438 zREAL
                                                                                                                          var int        rbt_positionUpdateTime;                     // 0x043C zREAL
                                                                                                                          var int        rbt_failurePossibility;                     // 0x0440 zREAL
                                                                                                                  //  }
                                                                                                                  //  zCList<oCNpcTimedOverlay> timedOverlays {
                                                                                                                          var int        timedOverlays_data;                         // 0x0444 oCNpcTimedOverlay*
                                                                                                                          var int        timedOverlays_next;                         // 0x0448 zCList<oCNpcTimedOverlay>*
                                                                                                                  //  }
                                                                                                                  //  zCArray<oCNpcTalent*> talents {
                                                                                                                          var int        talents_array;                              // 0x044C oCNpcTalent**
                                                                                                                          var int        talents_numAlloc;                           // 0x0450 int
                                                                                                                          var int        talents_numInArray;                         // 0x0454 int
                                                                                                                  //  }
                                                                                                                      var int            spellMana;                                  // 0x0458 int
                                                                                                                      var int            visualFX;                                   // 0x045C oCVisualFX*
                                                                                                                  //  oCMagFrontier magFrontier {
                                                                                                                          var int        magFrontier_warningFX;                      // 0x0460 oCVisualFX*
                                                                                                                          var int        magFrontier_shootFX;                        // 0x0464 oCVisualFX*
                                                                                                                          var int        magFrontier_npc;                            // 0x0468 oCNpc*
                                                                                                                          var int        magFrontier_bitfield;                       // 0x046C oCMagFrontier_bitfield_Xxx
                                                                                                                  //  }
                                                                                                                  //  oCNpc_States state {
                                                                                                                          var int        state_vfptr;                                // 0x0470
                                                                                                                          var string     state_name;                                 // 0x0474 zSTRING
                                                                                                                          var int        state_npc;                                  // 0x0488 oCNpc*
                                                                                                                  //      TNpcAIState curState {
                                                                                                                              var int    state_curState_index;                       // 0x048C int
                                                                                                                              var int    state_curState_loop;                        // 0x0490 int
                                                                                                                              var int    state_curState_end;                         // 0x0494 int
                                                                                                                              var int    state_curState_timeBehaviour;               // 0x0498 int
                                                                                                                              var int    state_curState_restTime;                    // 0x049C zREAL
                                                                                                                              var int    state_curState_phase;                       // 0x04A0 int
                                                                                                                              var int    state_curState_valid;                       // 0x04A4 zBOOL
                                                                                                                              var string state_curState_name;                        // 0x04A8 zSTRING
                                                                                                                              var int    state_curState_stateTime;                   // 0x04BC zREAL
                                                                                                                              var int    state_curState_prgIndex;                    // 0x04C0 int
                                                                                                                              var int    state_curState_isRtnState;                  // 0x04C4 zBOOL
                                                                                                                  //      }
                                                                                                                  //      TNpcAIState nextState {
                                                                                                                              var int    state_nextState_index;                      // 0x04C8 int
                                                                                                                              var int    state_nextState_loop;                       // 0x04CC int
                                                                                                                              var int    state_nextState_end;                        // 0x04D0 int
                                                                                                                              var int    state_nextState_timeBehaviour;              // 0x04D4 int
                                                                                                                              var int    state_nextState_restTime;                   // 0x04D8 zREAL
                                                                                                                              var int    state_nextState_phase;                      // 0x04DC int
                                                                                                                              var int    state_nextState_valid;                      // 0x04E0 zBOOL
                                                                                                                              var string state_nextState_name;                       // 0x04E4 zSTRING
                                                                                                                              var int    state_nextState_stateTime;                  // 0x04F8 zREAL
                                                                                                                              var int    state_nextState_prgIndex;                   // 0x04FC int
                                                                                                                              var int    state_nextState_isRtnState;                 // 0x0500 zBOOL
                                                                                                                  //      }
                                                                                                                          var int        state_lastAIState;                          // 0x0504 int
                                                                                                                          var int        state_hasRoutine;                           // 0x0508 zBOOL
                                                                                                                          var int        state_rtnChanged;                           // 0x050C zBOOL
                                                                                                                          var int        state_rtnBefore;                            // 0x0510 oCRtnEntry*
                                                                                                                          var int        state_rtnNow;                               // 0x0514 oCRtnEntry*
                                                                                                                          var int        state_rtnRoute;                             // 0x0518 zCRoute*
                                                                                                                          var int        state_rtnOverlay;                           // 0x051C zBOOL
                                                                                                                          var int        state_rtnOverlayCount;                      // 0x0520 int
                                                                                                                          var int        state_walkmode_routine;                     // 0x0524 int
                                                                                                                          var int        state_weaponmode_routine;                   // 0x0528 zBOOL
                                                                                                                          var int        state_startNewRoutine;                      // 0x052C zBOOL
                                                                                                                          var int        state_aiStateDriven;                        // 0x0530 int
                                                                                                                          var int        state_aiStatePosition[3];                   // 0x0534 zVEC3
                                                                                                                          var int        state_parOther;                             // 0x0540 oCNpc*
                                                                                                                          var int        state_parVictim;                            // 0x0544 oCNpc*
                                                                                                                          var int        state_parItem;                              // 0x0548 oCItem*
                                                                                                                          var int        state_rntChangeCount;                       // 0x054C int
                                                                                                                  //  }
                                                                                                                  //  oCNpcInventory {
                                                                                                                  //      oCItemContainer inventory2 {
                                                                                                                              var int    inventory2_vfptr;                           // 0x0550
                                                                                                                              var int    inventory2_contents;                        // 0x0554 zCListSort<oCItem>*
                                                                                                                              var int    inventory2_npc;                             // 0x0558 oCNpc*
                                                                                                                              var int    inventory2_selectedItem;                    // 0x055C int
                                                                                                                              var int    inventory2_offset;                          // 0x0560 int
                                                                                                                              var int    inventory2_drawItemMax;                     // 0x0564 int
                                                                                                                              var int    inventory2_itemListMode;                    // 0x0568 oTItemListMode
                                                                                                                              var int    inventory2_frame;                           // 0x056C zBOOL
                                                                                                                              var int    inventory2_right;                           // 0x0570 zBOOL
                                                                                                                              var int    inventory2_ownList;                         // 0x0574 zBOOL
                                                                                                                              var int    inventory2_prepared;                        // 0x0578 zBOOL
                                                                                                                              var int    inventory2_passive;                         // 0x057C zBOOL
                                                                                                                              var int    inventory2_viewCat;                         // 0x0580 zCView*
                                                                                                                              var int    inventory2_viewItem;                        // 0x0584 zCView*
                                                                                                                              var int    inventory2_viewItemActive;                  // 0x0588 zCView*
                                                                                                                              var int    inventory2_viewItemHightlighted;            // 0x058C zCView*
                                                                                                                              var int    inventory2_viewItemActiveHighlighted;       // 0x0590 zCView*
                                                                                                                              var int    inventory2_viewItemFocus;                   // 0x0594 zCView*
                                                                                                                              var int    inventory2_viewItemActiveFocus;             // 0x0598 zCView*
                                                                                                                              var int    inventory2_viewItemHightlightedFocus;       // 0x059C zCView*
                                                                                                                              var int    inventory2_viewItemActiveHighlightedFocus;  // 0x05A0 zCView*
                                                                                                                              var int    inventory2_viewItemInfo;                    // 0x05A4 zCView*
                                                                                                                              var int    inventory2_viewItemInfoItem;                // 0x05A8 zCView*
                                                                                                                              var int    inventory2_textView;                        // 0x05AC zCView*
                                                                                                                              var int    inventory2_viewArrowAtTop;                  // 0x05B0 zCView*
                                                                                                                              var int    inventory2_viewArrowAtBottom;               // 0x05B4 zCView*
                                                                                                                              var int    inventory2_rndWorld;                        // 0x05B8 zCWorld*
                                                                                                                              var int    inventory2_posx;                            // 0x05BC int
                                                                                                                              var int    inventory2_posy;                            // 0x05C0 int
                                                                                                                              var string inventory2_textCategoryStatic;              // 0x05C4 zSTRING
                                                                                                                              var int    inventory2_m_bManipulateItemsDisabled;      // 0x05D8 zBOOL
                                                                                                                              var int    inventory2_m_bCanTransferMoreThanOneItem;   // 0x05DC zBOOL
                                                                                                                              var int    inventory2_image_chroma;                    // 0x05E0 zCOLOR
                                                                                                                              var int    inventory2_blit_chroma;                     // 0x05E4 zCOLOR
                                                                                                                  //      }
                                                                                                                          var int        inventory2_owner;                           // 0x05E8 oCNpc*
                                                                                                                          var int        inventory2_packAbility;                     // 0x05EC zBOOL
                                                                                                                  //      zCListSort<oCItem>[INV_MAX] inventory {
                                                                                                                              var int    inventory2_inventory0_Compare;              // 0x05F0 int(_cdecl*)(oCItem*,oCItem*)
                                                                                                                              var int    inventory2_inventory0_data;                 // 0x05F4 oCItem*
                                                                                                                              var int    inventory2_inventory0_next;                 // 0x05F8 zCListSort<oCItem>*
                                                                                                                              var int    inventory2_inventory1_Compare;              // 0x05FC int(_cdecl*)(oCItem*,oCItem*)
                                                                                                                              var int    inventory2_inventory1_data;                 // 0x0600 oCItem*
                                                                                                                              var int    inventory2_inventory1_next;                 // 0x0604 zCListSort<oCItem>*
                                                                                                                              var int    inventory2_inventory2_Compare;              // 0x0608 int(_cdecl*)(oCItem*,oCItem*)
                                                                                                                              var int    inventory2_inventory2_data;                 // 0x060C oCItem*
                                                                                                                              var int    inventory2_inventory2_next;                 // 0x0610 zCListSort<oCItem>*
                                                                                                                              var int    inventory2_inventory3_Compare;              // 0x0614 int(_cdecl*)(oCItem*,oCItem*)
                                                                                                                              var int    inventory2_inventory3_data;                 // 0x0618 oCItem*
                                                                                                                              var int    inventory2_inventory3_next;                 // 0x061C zCListSort<oCItem>*
                                                                                                                              var int    inventory2_inventory4_Compare;              // 0x0620 int(_cdecl*)(oCItem*,oCItem*)
                                                                                                                              var int    inventory2_inventory4_data;                 // 0x0624 oCItem*
                                                                                                                              var int    inventory2_inventory4_next;                 // 0x0628 zCListSort<oCItem>*
                                                                                                                              var int    inventory2_inventory5_Compare;              // 0x062C int(_cdecl*)(oCItem*,oCItem*)
                                                                                                                              var int    inventory2_inventory5_data;                 // 0x0630 oCItem*
                                                                                                                              var int    inventory2_inventory5_next;                 // 0x0634 zCListSort<oCItem>*
                                                                                                                              var int    inventory2_inventory6_Compare;              // 0x0638 int(_cdecl*)(oCItem*,oCItem*)
                                                                                                                              var int    inventory2_inventory6_data;                 // 0x063C oCItem*
                                                                                                                              var int    inventory2_inventory6_next;                 // 0x0640 zCListSort<oCItem>*
                                                                                                                              var int    inventory2_inventory7_Compare;              // 0x0644 int(_cdecl*)(oCItem*,oCItem*)
                                                                                                                              var int    inventory2_inventory7_data;                 // 0x0648 oCItem*
                                                                                                                              var int    inventory2_inventory7_next;                 // 0x064C zCListSort<oCItem>*
                                                                                                                              var int    inventory2_inventory8_Compare;              // 0x0650 int(_cdecl*)(oCItem*,oCItem*)
                                                                                                                              var int    inventory2_inventory8_data;                 // 0x0654 oCItem*
                                                                                                                              var int    inventory2_inventory8_next;                 // 0x0658 zCListSort<oCItem>*
                                                                                                                  //      }
                                                                                                                          var string     inventory2_packString;                      // 0x065C zSTRING[INV_MAX]
                                                                                                                          var string     inventory2_packString1;
                                                                                                                          var string     inventory2_packString2;
                                                                                                                          var string     inventory2_packString3;
                                                                                                                          var string     inventory2_packString4;
                                                                                                                          var string     inventory2_packString5;
                                                                                                                          var string     inventory2_packString6;
                                                                                                                          var string     inventory2_packString7;
                                                                                                                          var string     inventory2_packString8;
                                                                                                                          var int        inventory2__offset[9];                      // 0x0710 int[INV_MAX]
                                                                                                                          var int        inventory2__itemnr[9];                      // 0x0734 int[INV_MAX]
                                                                                                                          var int        inventory2_maxSlots[9];                     // 0x0758 int[INV_MAX]
                                                                                                                          var int        inventory2_invnr;                           // 0x077C int
                                                                                                                  //  }
                                                                                                                      var int            trader;                                     // 0x0780 oCItemContainer*
                                                                                                                      var int            tradeNpc;                                   // 0x0784 oCNpc*
                                                                                                                      var int            rangeToPlayer;                              // 0x0788 zREAL
                                                                                                                  //  zCArray<zTSoundHandle> listOfVoiceHandles {
                                                                                                                          var int        listOfVoiceHandles_array;                   // 0x078C zTSoundHandle*
                                                                                                                          var int        listOfVoiceHandles_numAlloc;                // 0x0790 int
                                                                                                                          var int        listOfVoiceHandles_numInArray;              // 0x0794 int
                                                                                                                  //  }
                                                                                                                      var int            voiceIndex;                                 // 0x0798 int
                                                                                                                      var int            npc_bitfield[5];                            // 0x079C oCNpc_bitfieldX_Xxx
                                                                                                                      var int            instanz;                                    // 0x07B0 int
                                                                                                                      var string         mds_name;                                   // 0x07B4 zSTRING
                                                                                                                      var string         body_visualName;                            // 0x07C8 zSTRING
                                                                                                                      var string         head_visualName;                            // 0x07DC zSTRING
                                                                                                                      var int            model_scale[3];                             // 0x07F0 VEC3
                                                                                                                      var int            model_fatness;                              // 0x07FC zREAL
                                                                                                                      var int            namenr;                                     // 0x0800 int
                                                                                                                      var int            hpHeal;                                     // 0x0804 zREAL
                                                                                                                      var int            manaHeal;                                   // 0x0808 zREAL
                                                                                                                      var int            swimtime;                                   // 0x080C zREAL
                                                                                                                      var int            divetime;                                   // 0x0810 zREAL
                                                                                                                      var int            divectr;                                    // 0x0814 zREAL
                                                                                                                      var int            fireVob;                                    // 0x0818 zCVob*
                                                                                                                      var int            fireDamage;                                 // 0x081C int
                                                                                                                      var int            fireDamageTimer;                            // 0x0820 zREAL
                                                                                                                      var int            attitude;                                   // 0x0824 int
                                                                                                                      var int            tmp_attitude;                               // 0x0828 int
                                                                                                                      var int            attTimer;                                   // 0x082C zREAL
                                                                                                                      var int            knowsPlayer;                                // 0x0830 int
                                                                                                                      var int            percList[66];                               // 0x0834 TNpcPerc[NPC_PERC_MAX] { int percID; int percFunc }
                                                                                                                      var int            percActive;                                 // 0x093C int
                                                                                                                      var int            percActiveTime;                             // 0x0940 zREAL
                                                                                                                      var int            percActiveDelta;                            // 0x0944 zREAL
                                                                                                                      var int            overrideFallDownHeight;                     // 0x0948 zBOOL
                                                                                                                      var int            fallDownHeight;                             // 0x094C zREAL
                                                                                                                      var int            fallDownDamage;                             // 0x0950 int
                                                                                                                      var int            mag_book;                                   // 0x0954 oCMag_Book*
                                                                                                                  //  zCList<oCSpell> activeSpells {
                                                                                                                          var int        activeSpells_data;                          // 0x0958 oCSpell*
                                                                                                                          var int        activeSpells_next;                          // 0x095C int
                                                                                                                  //  }
                                                                                                                  //  zCArray<zSTRING> activeOverlays {
                                                                                                                          var int        activeOverlays_array;                       // 0x0960 zSTRING*
                                                                                                                          var int        activeOverlays_numAlloc;                    // 0x0964 int
                                                                                                                          var int        activeOverlays_numInArray;                  // 0x0968 int
                                                                                                                  //  }
                                                                                                                      var int            askbox;                                     // 0x096C oCAskBox*
                                                                                                                      var int            askYes;                                     // 0x0970 int
                                                                                                                      var int            askNo;                                      // 0x0974 int
                                                                                                                      var int            canTalk;                                    // 0x0978 zREAL
                                                                                                                      var int            talkOther;                                  // 0x097C oCNpc*
                                                                                                                      var int            info;                                       // 0x0980 oCInfo*
                                                                                                                      var int            news;                                       // 0x0984 oCNews*
                                                                                                                      var int            curMission;                                 // 0x0988 oCMission*
                                                                                                                  //  oCNewsMemory knownNews {
                                                                                                                          var int        knownNews_vfptr;                            // 0x098C
                                                                                                                  //      zCList<oCNews> iknow {
                                                                                                                              var int    knownNews_iknow_data;                       // 0x0990 oCNews*
                                                                                                                              var int    knownNews_iknow_next;                       // 0x0994 zCList<oCNews>*
                                                                                                                  //      }
                                                                                                                  //  }
                                                                                                                      var int            carry_vob;                                  // 0x0998 zCVob*
                                                                                                                      var int            interactMob;                                // 0x099C oCMobInter*
                                                                                                                      var int            interactItem;                               // 0x09A0 oCItem*
                                                                                                                      var int            interactItemCurrentState;                   // 0x09A4 int
                                                                                                                      var int            interactItemTargetState;                    // 0x09A8 int
                                                                                                                      var int            script_aiprio;                              // 0x09AC int
                                                                                                                      var int            old_script_state;                           // 0x09B0 int
                                                                                                                      var int            human_ai;                                   // 0x09B4 oCAIHuman*
                                                                                                                      var int            anictrl;                                    // 0x09B8 oCAniCtrl_Human*
                                                                                                                      var int            route;                                      // 0x09BC zCRoute*
                                                                                                                      var int            damageMul;                                  // 0x09C0 zREAL
                                                                                                                      var int            csg;                                        // 0x09C4 oCNpcMessage*
                                                                                                                      var int            lastLookMsg;                                // 0x09C8 oCNpcMessage*
                                                                                                                      var int            lastPointMsg;                               // 0x09CC oCNpcMessage*
                                                                                                                  //  zCArray<zCVob*> vobList {
                                                                                                                          var int        vobList_array;                              // 0x09D0 zCVob**
                                                                                                                          var int        vobList_numAlloc;                           // 0x09D4 int
                                                                                                                          var int        vobList_numInArray;                         // 0x09D8 int
                                                                                                                  //  }
                                                                                                                      var int            vobcheck_time;                              // 0x09DC zREAL
                                                                                                                      var int            pickvobdelay;                               // 0x09E0 zREAL
                                                                                                                      var int            focus_vob;                                  // 0x09E4 zCVob*
                                                                                                                  //  zCArray<TNpcSlot*> invSlot {
                                                                                                                          var int        invSlot_array;                              // 0x09E8 TNpcSlot**
                                                                                                                          var int        invSlot_numAlloc;                           // 0x09EC int
                                                                                                                          var int        invSlot_numInArray;                         // 0x09F0 int
                                                                                                                  //  }
                                                                                                                  //  zCArray<TNpcSlot*> tmpSlotList {
                                                                                                                          var int        tmpSlotList_array;                          // 0x09F4 TNpcSlot**
                                                                                                                          var int        tmpSlotList_numAlloc;                       // 0x09F8 int
                                                                                                                          var int        tmpSlotList_numInArray;                     // 0x09FC int
                                                                                                                  //  }
                                                                                                                      var int            fadeAwayTime;                               // 0x0A00 zREAL
                                                                                                                      var int            respawnTime;                                // 0x0A04 zREAL
                                                                                                                      var int            selfDist;                                   // 0x0A08 zREAL
                                                                                                                      var int            fightRangeBase;                             // 0x0A0C int
                                                                                                                      var int            fightRangeFist;                             // 0x0A10 int
                                                                                                                      var int            fight_waitTime;                             // 0x0A14 zREAL
                                                                                                                      var int            fight_waitForAniEnd;                        // 0x0A18 zTModelAniID
                                                                                                                      var int            fight_lastStrafeFrame;                      // 0x0A1C zREAL
                                                                                                                      var int            soundType;                                  // 0x0A20 int
                                                                                                                      var int            soundVob;                                   // 0x0A24 zCVob*
                                                                                                                      var int            soundPosition[3];                           // 0x0A28 zVEC3
                                                                                                                      var int            playerGroup;                                // 0x0A34 zCPlayerGroup*
                                                                                                                  };
                                                                                                                  const int oCNpc_Size = 2616;                                       // 0x0A38

                                                                                                                  ////////////////////////////////////////////////////////////////////////////////
                                                                                                                  //                                                                            //
                                                                                                                  //                                   oCNews                                   //
                                                                                                                  //                                                                            //
                                                                                                                  ////////////////////////////////////////////////////////////////////////////////

                                                                                                                  class oCNews {
                                                                                                                      var int    vfptr;         // 0x0000
                                                                                                                      var int    told;          // 0x0004 zBOOL
                                                                                                                      var int    spread_time;   // 0x0008 zREAL
                                                                                                                      var int    spreadType;    // 0x000C oTNewsSpreadType
                                                                                                                      var int    news_id;       // 0x0010 int
                                                                                                                      var int    gossip;        // 0x0014 zBOOL
                                                                                                                      var int    mNpcWitness;   // 0x0018 oCNpc*
                                                                                                                      var int    mNpcOffender;  // 0x001C oCNpc*
                                                                                                                      var int    mNpcVictim;    // 0x0020 oCNpc*
                                                                                                                      var string witnessName;   // 0x0024 zSTRING
                                                                                                                      var string offenderName;  // 0x0038 zSTRING
                                                                                                                      var string victimName;    // 0x004C zSTRING
                                                                                                                      var int    guildvictim;   // 0x0060 zBOOL
                                                                                                                  };
                                                                                                                  const int oCNews_Size = 100;  // 0x0064
                                                                                                                  Wersja dla G2NK:
                                                                                                                  Spoiler
                                                                                                                  [code]
                                                                                                                  //
                                                                                                                  // Only for demonstration purposes. Usage at your own risk.
                                                                                                                  // Only for Gothic II version 2.6 (Report-Version 2.6_rev1)
                                                                                                                  //

                                                                                                                  ////////////////////////////////////////////////////////////////////////////////
                                                                                                                  //                                                                            //
                                                                                                                  //                                  zCObject                                  //
                                                                                                                  //                                                                            //
                                                                                                                  ////////////////////////////////////////////////////////////////////////////////

                                                                                                                  //NOTE: Bit field mask consts:     BitCount    FirstBit
                                                                                                                  const int zCObject_hashIndex = ((1 << 16) - 1) << 0;

                                                                                                                  class zCObject {
                                                                                                                      var int    vfptr;          // 0x0000
                                                                                                                      var int    refCtr;         // 0x0004 int
                                                                                                                      var int    hashIndex;      // 0x0008 zWORD
                                                                                                                      var int    hashNext;       // 0x000C zCObject*
                                                                                                                      var string objectName;     // 0x0010 zSTRING
                                                                                                                  };
                                                                                                                  const int zCObject_Size = 36;  // 0x0024

                                                                                                                  ////////////////////////////////////////////////////////////////////////////////
                                                                                                                  //                                                                            //
                                                                                                                  //                                   zCVob                                    //
                                                                                                                  //                                                                            //
                                                                                                                  ////////////////////////////////////////////////////////////////////////////////

                                                                                                                  const int zCVob_bitfield0_showVisual                = ((1 << 1) - 1) <<  0;
                                                                                                                  const int zCVob_bitfield0_drawBBox3D                = ((1 << 1) - 1) <<  1;
                                                                                                                  const int zCVob_bitfield0_visualAlphaEnabled        = ((1 << 1) - 1) <<  2;
                                                                                                                  const int zCVob_bitfield0_physicsEnabled            = ((1 << 1) - 1) <<  3;
                                                                                                                  const int zCVob_bitfield0_staticVob                 = ((1 << 1) - 1) <<  4;
                                                                                                                  const int zCVob_bitfield0_ignoredByTraceRay         = ((1 << 1) - 1) <<  5;
                                                                                                                  const int zCVob_bitfield0_collDetectionStatic       = ((1 << 1) - 1) <<  6;
                                                                                                                  const int zCVob_bitfield0_collDetectionDynamic      = ((1 << 1) - 1) <<  7;
                                                                                                                  const int zCVob_bitfield0_castDynShadow             = ((1 << 2) - 1) <<  8;
                                                                                                                  const int zCVob_bitfield0_lightColorStatDirty       = ((1 << 1) - 1) << 10;
                                                                                                                  const int zCVob_bitfield0_lightColorDynDirty        = ((1 << 1) - 1) << 11;
                                                                                                                  const int zCVob_bitfield1_isInMovementMode          = ((1 << 2) - 1) <<  0;
                                                                                                                  const int zCVob_bitfield2_sleepingMode              = ((1 << 2) - 1) <<  0;
                                                                                                                  const int zCVob_bitfield2_mbHintTrafoLocalConst     = ((1 << 1) - 1) <<  2;
                                                                                                                  const int zCVob_bitfield2_mbInsideEndMovementMethod = ((1 << 1) - 1) <<  3;
                                                                                                                  const int zCVob_bitfield3_visualCamAlign            = ((1 << 2) - 1) <<  0;
                                                                                                                  const int zCVob_bitfield4_collButNoMove             = ((1 << 4) - 1) <<  0;
                                                                                                                  const int zCVob_bitfield4_dontWriteIntoArchive      = ((1 << 1) - 1) <<  4;
                                                                                                                  const int zCVob_bitfield4_bIsInWater                = ((1 << 1) - 1) <<  5;
                                                                                                                  const int zCVob_bitfield4_bIsAmbientVob             = ((1 << 1) - 1) <<  6;

                                                                                                                  class zCVob {
                                                                                                                  //  zCObject {
                                                                                                                          var int    vfptr;
                                                                                                                          var int    refCtr;
                                                                                                                          var int    hashIndex;
                                                                                                                          var int    hashNext;
                                                                                                                          var string objectName;
                                                                                                                  //  }
                                                                                                                      var int        globalVobTreeNode;         // 0x0024 zCTree<zCVob>*
                                                                                                                      var int        lastTimeDrawn;             // 0x0028 zTFrameCtr
                                                                                                                      var int        lastTimeCollected;         // 0x002C zDWORD
                                                                                                                  //  zCArray<zCBspLeaf*> vobLeafList {
                                                                                                                          var int    vobLeafList_array;         // 0x0030 zCBspLeaf**
                                                                                                                          var int    vobLeafList_numAlloc;      // 0x0034 int
                                                                                                                          var int    vobLeafList_numInArray;    // 0x0038 int
                                                                                                                  //  }
                                                                                                                      var int        trafoObjToWorld[16];       // 0x003C zMATRIX4
                                                                                                                  //  zTBBox3D bbox3D {
                                                                                                                          var int    bbox3D_mins[3];            // 0x007C zPOINT3
                                                                                                                          var int    bbox3D_maxs[3];            // 0x0088 zPOINT3
                                                                                                                  //  }
                                                                                                                  //  zTBSphere3D bsphere3D {
                                                                                                                          var int    bsphere3D_center[3];       // 0x0094 zPOINT3
                                                                                                                          var int    bsphere3D_radius;          // 0x00A0 zVALUE
                                                                                                                  //  }
                                                                                                                  //  zCArray<zCVob*> touchVobList {
                                                                                                                          var int    touchVobList_array;        // 0x00A4 zCVob**
                                                                                                                          var int    touchVobList_numAlloc;     // 0x00A8 int
                                                                                                                          var int    touchVobList_numInArray;   // 0x00AC int
                                                                                                                  //  }
                                                                                                                      var int        type;                      // 0x00B0 zTVobType
                                                                                                                      var int        groundShadowSizePacked;    // 0x00B4 zDWORD
                                                                                                                      var int        homeWorld;                 // 0x00B8 zCWorld*
                                                                                                                      var int        groundPoly;                // 0x00BC zCPolygon*
                                                                                                                      var int        callback_ai;               // 0x00C0 zCAIBase*
                                                                                                                      var int        trafo;                     // 0x00C4 zMATRIX4*
                                                                                                                      var int        visual;                    // 0x00C8 zCVisual*
                                                                                                                      var int        visualAlpha;               // 0x00CC zREAL
                                                                                                                      var int        m_fVobFarClipZScale;       // 0x00D0 zREAL
                                                                                                                      var int        m_AniMode;                 // 0x00D4 zTAnimationMode
                                                                                                                      var int        m_aniModeStrength;         // 0x00D8 zREAL
                                                                                                                      var int        m_zBias;                   // 0x00DC int
                                                                                                                      var int        rigidBody;                 // 0x00E0 zCRigidBody*
                                                                                                                      var int        lightColorStat;            // 0x00E4 zCOLOR
                                                                                                                      var int        lightColorDyn;             // 0x00E8 zCOLOR
                                                                                                                      var int        lightDirectionStat[3];     // 0x00EC zVEC3
                                                                                                                      var int        vobPresetName;             // 0x00F8 zSTRING*
                                                                                                                      var int        eventManager;              // 0x00FC zCEventManager*
                                                                                                                      var int        nextOnTimer;               // 0x0100 zREAL
                                                                                                                      var int        vob_bitfield[5];           // 0x0104 zCVob_bitfieldX_Xxx
                                                                                                                      var int        m_poCollisionObjectClass;  // 0x0118 zCCollisionObjectDef*
                                                                                                                      var int        m_poCollisionObject;       // 0x011C zCCollisionObject*
                                                                                                                  };
                                                                                                                  const int zCVob_Size = 288;                   // 0x0120

                                                                                                                  ////////////////////////////////////////////////////////////////////////////////
                                                                                                                  //                                                                            //
                                                                                                                  //                                   oCNpc                                    //
                                                                                                                  //                                                                            //
                                                                                                                  ////////////////////////////////////////////////////////////////////////////////

                                                                                                                  const int oCMagFrontier_bitfield_isWarning  = ((1 << 1) - 1) << 0;
                                                                                                                  const int oCMagFrontier_bitfield_isShooting = ((1 << 1) - 1) << 1;

                                                                                                                  const int oCNpc_bitfield0_showaidebug          = ((1 <<  1) - 1) <<  0;
                                                                                                                  const int oCNpc_bitfield0_showNews             = ((1 <<  1) - 1) <<  1;
                                                                                                                  const int oCNpc_bitfield0_csAllowedAsRole      = ((1 <<  1) - 1) <<  2;
                                                                                                                  const int oCNpc_bitfield0_isSummoned           = ((1 <<  1) - 1) <<  3;
                                                                                                                  const int oCNpc_bitfield0_respawnOn            = ((1 <<  1) - 1) <<  4;
                                                                                                                  const int oCNpc_bitfield0_movlock              = ((1 <<  1) - 1) <<  5;
                                                                                                                  const int oCNpc_bitfield0_drunk                = ((1 <<  1) - 1) <<  6;
                                                                                                                  const int oCNpc_bitfield0_mad                  = ((1 <<  1) - 1) <<  7;
                                                                                                                  const int oCNpc_bitfield0_overlay_wounded      = ((1 <<  1) - 1) <<  8;
                                                                                                                  const int oCNpc_bitfield0_inOnDamage           = ((1 <<  1) - 1) <<  9;
                                                                                                                  const int oCNpc_bitfield0_autoremoveweapon     = ((1 <<  1) - 1) << 10;
                                                                                                                  const int oCNpc_bitfield0_openinventory        = ((1 <<  1) - 1) << 11;
                                                                                                                  const int oCNpc_bitfield0_askroutine           = ((1 <<  1) - 1) << 12;
                                                                                                                  const int oCNpc_bitfield0_spawnInRange         = ((1 <<  1) - 1) << 13;
                                                                                                                  const int oCNpc_bitfield1_body_TexVarNr        = ((1 << 16) - 1) <<  0;
                                                                                                                  const int oCNpc_bitfield1_body_TexColorNr      = ((1 << 16) - 1) << 16;
                                                                                                                  const int oCNpc_bitfield2_head_TexVarNr        = ((1 << 16) - 1) <<  0;
                                                                                                                  const int oCNpc_bitfield2_teeth_TexVarNr       = ((1 << 16) - 1) << 16;
                                                                                                                  const int oCNpc_bitfield3_guildTrue            = ((1 <<  8) - 1) <<  0;
                                                                                                                  const int oCNpc_bitfield3_drunk_heal           = ((1 <<  8) - 1) <<  8;
                                                                                                                  const int oCNpc_bitfield3_mad_heal             = ((1 <<  8) - 1) << 16;
                                                                                                                  const int oCNpc_bitfield3_spells               = ((1 <<  8) - 1) << 24;
                                                                                                                  const int oCNpc_bitfield4_bodyState            = ((1 << 19) - 1) <<  0;
                                                                                                                  const int oCNpc_bitfield4_m_bAniMessageRunning = ((1 <<  1) - 1) << 19;

                                                                                                                  const int oTRobustTrace_bitfield_stand                = ((1 << 1) - 1) << 0;
                                                                                                                  const int oTRobustTrace_bitfield_dirChoosed           = ((1 << 1) - 1) << 1;
                                                                                                                  const int oTRobustTrace_bitfield_exactPosition        = ((1 << 1) - 1) << 2;
                                                                                                                  const int oTRobustTrace_bitfield_targetReached        = ((1 << 1) - 1) << 3;
                                                                                                                  const int oTRobustTrace_bitfield_standIfTargetReached = ((1 << 1) - 1) << 4;
                                                                                                                  const int oTRobustTrace_bitfield_waiting              = ((1 << 1) - 1) << 5;
                                                                                                                  const int oTRobustTrace_bitfield_isObstVobSmall       = ((1 << 1) - 1) << 6;
                                                                                                                  const int oTRobustTrace_bitfield_targetVisible        = ((1 << 1) - 1) << 7;
                                                                                                                  const int oTRobustTrace_bitfield_useChasmChecks       = ((1 << 1) - 1) << 8;

                                                                                                                  class oCNpc {
                                                                                                                  //  zCVob {
                                                                                                                  //      zCObject {
                                                                                                                              var int    vfptr;
                                                                                                                              var int    refCtr;
                                                                                                                              var int    hashIndex;
                                                                                                                              var int    hashNext;
                                                                                                                              var string objectName;
                                                                                                                  //      }
                                                                                                                          var int        globalVobTreeNode;
                                                                                                                          var int        lastTimeDrawn;
                                                                                                                          var int        lastTimeCollected;
                                                                                                                          var int        vobLeafList_array;
                                                                                                                          var int        vobLeafList_numAlloc;
                                                                                                                          var int        vobLeafList_numInArray;
                                                                                                                          var int        trafoObjToWorld[16];
                                                                                                                          var int        bbox3D_mins[3];
                                                                                                                          var int        bbox3D_maxs[3];
                                                                                                                          var int        bsphere3D_center[3];
                                                                                                                          var int        bsphere3D_radius;
                                                                                                                          var int        touchVobList_array;
                                                                                                                          var int        touchVobList_numAlloc;
                                                                                                                          var int        touchVobList_numInArray;
                                                                                                                          var int        type;
                                                                                                                          var int        groundShadowSizePacked;
                                                                                                                          var int        homeWorld;
                                                                                                                          var int        groundPoly;
                                                                                                                          var int        callback_ai;
                                                                                                                          var int        trafo;
                                                                                                                          var int        visual;
                                                                                                                          var int        visualAlpha;
                                                                                                                          var int        m_fVobFarClipZScale;
                                                                                                                          var int        m_AniMode;
                                                                                                                          var int        m_aniModeStrength;
                                                                                                                          var int        m_zBias;
                                                                                                                          var int        rigidBody;
                                                                                                                          var int        lightColorStat;
                                                                                                                          var int        lightColorDyn;
                                                                                                                          var int        lightDirectionStat[3];
                                                                                                                          var int        vobPresetName;
                                                                                                                          var int        eventManager;
                                                                                                                          var int        nextOnTimer;
                                                                                                                          var int        vob_bitfield[5];
                                                                                                                          var int        m_poCollisionObjectClass;
                                                                                                                          var int        m_poCollisionObject;
                                                                                                                  //  }
                                                                                                                  //  C_NPC {
                                                                                                                          var int        idx;                                       // 0x0120 int
                                                                                                                          var string     name;                                      // 0x0124 zSTRING[5]
                                                                                                                          var string     name1;
                                                                                                                          var string     name2;
                                                                                                                          var string     name3;
                                                                                                                          var string     name4;
                                                                                                                          var string     slot;                                      // 0x0188 zSTRING
                                                                                                                          var string     effect;                                    // 0x019C zSTRING
                                                                                                                          var int        npcType;                                   // 0x01B0 int
                                                                                                                          var int        variousFlags;                              // 0x01B4 int
                                                                                                                          var int        attribute[8];                              // 0x01B8 int[NPC_ATR_MAX]
                                                                                                                          var int        hitChance[5];                              // 0x01D8 int[NPC_HITCHANCE_MAX]
                                                                                                                          var int        protection[8];                             // 0x01EC int[oEDamageIndex_MAX]
                                                                                                                          var int        damage[8];                                 // 0x020C int[oEDamageIndex_MAX]
                                                                                                                          var int        damagetype;                                // 0x022C int
                                                                                                                          var int        guild;                                     // 0x0230 int
                                                                                                                          var int        level;                                     // 0x0234 int
                                                                                                                          var func       mission[5];                                // 0x0238 int[NPC_MIS_MAX]
                                                                                                                          var int        fighttactic;                               // 0x024C int
                                                                                                                          var int        fmode;                                     // 0x0250 int
                                                                                                                          var int        voice;                                     // 0x0254 int
                                                                                                                          var int        voicePitch;                                // 0x0258 int
                                                                                                                          var int        mass;                                      // 0x025C int
                                                                                                                          var func       daily_routine;                             // 0x0260 int
                                                                                                                          var func       startAIState;                              // 0x0264 int
                                                                                                                          var string     spawnPoint;                                // 0x0268 zSTRING
                                                                                                                          var int        spawnDelay;                                // 0x027C int
                                                                                                                          var int        senses;                                    // 0x0280 int
                                                                                                                          var int        senses_range;                              // 0x0284 int
                                                                                                                          var int        aiscriptvars[100];                         // 0x0288 int[100]
                                                                                                                          var string     wpname;                                    // 0x0418 zSTRING
                                                                                                                          var int        experience_points;                         // 0x042C zUINT32
                                                                                                                          var int        experience_points_next_level;              // 0x0430 zUINT32
                                                                                                                          var int        learn_points;                              // 0x0434 zUINT32
                                                                                                                          var int        bodyStateInterruptableOverride;            // 0x0438 int
                                                                                                                          var int        noFocus;                                   // 0x043C zBOOL
                                                                                                                  //  }
                                                                                                                      var int            parserEnd;                                 // 0x0440 int
                                                                                                                      var int            bloodEnabled;                              // 0x0444 int
                                                                                                                      var int            bloodDistance;                             // 0x0448 int
                                                                                                                      var int            bloodAmount;                               // 0x044C int
                                                                                                                      var int            bloodFlow;                                 // 0x0450 int
                                                                                                                      var string         bloodEmitter;                              // 0x0454 zSTRING
                                                                                                                      var string         bloodTexture;                              // 0x0468 zSTRING
                                                                                                                      var int            didHit;                                    // 0x047C zBOOL
                                                                                                                      var int            didParade;                                 // 0x0480 zBOOL
                                                                                                                      var int            didShoot;                                  // 0x0484 zBOOL
                                                                                                                      var int            hasLockedEnemy;                            // 0x0488 zBOOL
                                                                                                                      var int            isDefending;                               // 0x048C zBOOL
                                                                                                                      var int            wasAiming;                                 // 0x0490 zBOOL
                                                                                                                      var int            lastAction;                                // 0x0494 oCNpc::TFAction
                                                                                                                      var int            enemy;                                     // 0x0498 oCNpc*
                                                                                                                      var int            speedTurn;                                 // 0x049C zREAL
                                                                                                                      var int            foundFleePoint;                            // 0x04A0 zBOOL
                                                                                                                      var int            reachedFleePoint;                          // 0x04A4 zBOOL
                                                                                                                      var int            vecFlee[3];                                // 0x04A8 zVEC3
                                                                                                                      var int            posFlee[3];                                // 0x04B4 zVEC3
                                                                                                                      var int            waypointFlee;                              // 0x04C0 zCWaypoint*
                                                                                                                  //  oTRobustTrace rbt {
                                                                                                                          var int        rbt_bitfield;                              // 0x04C4 oTRobustTrace_bitfield_Xxx
                                                                                                                          var int        rbt_targetPos[3];                          // 0x04C8 zVEC3
                                                                                                                          var int        rbt_targetVob;                             // 0x04D4 zCVob*
                                                                                                                          var int        rbt_obstVob;                               // 0x04D8 zCVob*
                                                                                                                          var int        rbt_targetDist;                            // 0x04DC zREAL
                                                                                                                          var int        rbt_lastTargetDist;                        // 0x04E0 zREAL
                                                                                                                          var int        rbt_maxTargetDist;                         // 0x04E4 zREAL
                                                                                                                          var int        rbt_dirTurn;                               // 0x04E8 zREAL
                                                                                                                          var int        rbt_timer;                                 // 0x04EC zREAL
                                                                                                                          var int        rbt_dirFirst[3];                           // 0x04F0 zVEC3
                                                                                                                          var int        rbt_dirLastAngle;                          // 0x04FC zREAL
                                                                                                                  //      zCArray<oTDirectionInfo*> lastDirections {
                                                                                                                              var int    rbt_lastDirections_array;                  // 0x0500 oTDirectionInfo**
                                                                                                                              var int    rbt_lastDirections_numAlloc;               // 0x0504 int
                                                                                                                              var int    rbt_lastDirections_numInArray;             // 0x0508 int
                                                                                                                  //      }
                                                                                                                          var int        rbt_frameCtr;                              // 0x050C int
                                                                                                                          var int        rbt_targetPosArray[15];                    // 0x0510 zVEC3[5]
                                                                                                                          var int        rbt_targetPosCounter;                      // 0x054C int
                                                                                                                          var int        rbt_targetPosIndex;                        // 0x0550 int
                                                                                                                          var int        rbt_checkVisibilityTime;                   // 0x0554 zREAL
                                                                                                                          var int        rbt_positionUpdateTime;                    // 0x0558 zREAL
                                                                                                                          var int        rbt_failurePossibility;                    // 0x055C zREAL
                                                                                                                  //  }
                                                                                                                  //  zCList<oCNpcTimedOverlay> timedOverlays {
                                                                                                                          var int        timedOverlays_data;                        // 0x0560 oCNpcTimedOverlay*
                                                                                                                          var int        timedOverlays_next;                        // 0x0564 zCList<oCNpcTimedOverlay>*
                                                                                                                  //  }
                                                                                                                  //  zCArray<oCNpcTalent*> talents {
                                                                                                                          var int        talents_array;                             // 0x0568 oCNpcTalent**
                                                                                                                          var int        talents_numAlloc;                          // 0x056C int
                                                                                                                          var int        talents_numInArray;                        // 0x0570 int
                                                                                                                  //  }
                                                                                                                      var int            spellMana;                                 // 0x0574 int
                                                                                                                  //  oCMagFrontier mag Frontier {
                                                                                                                          var int        magFrontier_warningFX;                     // 0x0578 oCVisualFX*
                                                                                                                          var int        magFrontier_shootFX;                       // 0x057C oCVisualFX*
                                                                                                                          var int        magFrontier_npc;                           // 0x0580 oCNpc*
                                                                                                                          var int        magFrontier_bitfield;                      // 0x0584 oCMagFrontier_bitfield_Xxx
                                                                                                                  //  }
                                                                                                                  //  oCNpc_States state {
                                                                                                                          var int        state_vfptr;                               // 0x0588
                                                                                                                          var string     state_name;                                // 0x058C zSTRING
                                                                                                                          var int        state_npc;                                 // 0x05A0 oCNpc*
                                                                                                                  //      TNpcAIState curState {
                                                                                                                              var int    state_curState_index;                      // 0x05A4 int
                                                                                                                              var int    state_curState_loop;                       // 0x05A8 int
                                                                                                                              var int    state_curState_end;                        // 0x05AC int
                                                                                                                              var int    state_curState_timeBehaviour;              // 0x05B0 int
                                                                                                                              var int    state_curState_restTime;                   // 0x05B4 zREAL
                                                                                                                              var int    state_curState_phase;                      // 0x05B8 int
                                                                                                                              var int    state_curState_valid;                      // 0x05BC zBOOL
                                                                                                                              var string state_curState_name;                       // 0x05C0 zSTRING
                                                                                                                              var int    state_curState_stateTime;                  // 0x05D4 zREAL
                                                                                                                              var int    state_curState_prgIndex;                   // 0x05D8 int
                                                                                                                              var int    state_curState_isRtnState;                 // 0x05DC zBOOL
                                                                                                                  //      }
                                                                                                                  //      TNpcAIState nextState {
                                                                                                                              var int    state_nextState_index;                     // 0x05E0 int
                                                                                                                              var int    state_nextState_loop;                      // 0x05E4 int
                                                                                                                              var int    state_nextState_end;                       // 0x05E8 int
                                                                                                                              var int    state_nextState_timeBehaviour;             // 0x05EC int
                                                                                                                              var int    state_nextState_restTime;                  // 0x05F0 zREAL
                                                                                                                              var int    state_nextState_phase;                     // 0x05F4 int
                                                                                                                              var int    state_nextState_valid;                     // 0x05F8 zBOOL
                                                                                                                              var string state_nextState_name;                      // 0x05FC zSTRING
                                                                                                                              var int    state_nextState_stateTime;                 // 0x0610 zREAL
                                                                                                                              var int    state_nextState_prgIndex;                  // 0x0614 int
                                                                                                                              var int    state_nextState_isRtnState;                // 0x0618 zBOOL
                                                                                                                  //      }
                                                                                                                          var int        state_lastAIState;                         // 0x061C int
                                                                                                                          var int        state_hasRoutine;                          // 0x0620 zBOOL
                                                                                                                          var int        state_rtnChanged;                          // 0x0624 zBOOL
                                                                                                                          var int        state_rtnBefore;                           // 0x0628 oCRtnEntry*
                                                                                                                          var int        state_rtnNow;                              // 0x062C oCRtnEntry*
                                                                                                                          var int        state_rtnRoute;                            // 0x0630 zCRoute*
                                                                                                                          var int        state_rtnOverlay;                          // 0x0634 zBOOL
                                                                                                                          var int        state_rtnOverlayCount;                     // 0x0638 int
                                                                                                                          var int        state_walkmode_routine;                    // 0x063C int
                                                                                                                          var int        state_weaponmode_routine;                  // 0x0640 zBOOL
                                                                                                                          var int        state_startNewRoutine;                     // 0x0644 zBOOL
                                                                                                                          var int        state_aiStateDriven;                       // 0x0648 int
                                                                                                                          var int        state_aiStatePosition[3];                  // 0x064C zVEC3
                                                                                                                          var int        state_parOther;                            // 0x0658 oCNpc*
                                                                                                                          var int        state_parVictim;                           // 0x065C oCNpc*
                                                                                                                          var int        state_parItem;                             // 0x0660 oCItem*
                                                                                                                          var int        state_rntChangeCount;                      // 0x0664 int
                                                                                                                  //  }
                                                                                                                  //  oCNpcInventory {
                                                                                                                  //      oCItemContainer inventory2 {
                                                                                                                              var int    inventory2_vfptr;                          // 0x0668
                                                                                                                              var int    inventory2_contents;                       // 0x066C zCListSort<oCItem>*
                                                                                                                              var int    inventory2_npc;                            // 0x0670 oCNpc*
                                                                                                                              var string inventory2_titleText;                      // 0x0674 zSTRING
                                                                                                                              var int    inventory2_invMode;                        // 0x0688 int
                                                                                                                              var int    inventory2_selectedItem;                   // 0x068C int
                                                                                                                              var int    inventory2_offset;                         // 0x0690 int
                                                                                                                              var int    inventory2_maxSlotsCol;                    // 0x0694 int
                                                                                                                              var int    inventory2_maxSlotsColScr;                 // 0x0698 int
                                                                                                                              var int    inventory2_maxSlotsRow;                    // 0x069C int
                                                                                                                              var int    inventory2_maxSlotsRowScr;                 // 0x06A0 int
                                                                                                                              var int    inventory2_maxSlots;                       // 0x06A4 int
                                                                                                                              var int    inventory2_marginTop;                      // 0x06A8 int
                                                                                                                              var int    inventory2_marginLeft;                     // 0x06AC int
                                                                                                                              var int    inventory2_frame;                          // 0x06B0 zBOOL
                                                                                                                              var int    inventory2_right;                          // 0x06B4 zBOOL
                                                                                                                              var int    inventory2_ownList;                        // 0x06B8 zBOOL
                                                                                                                              var int    inventory2_prepared;                       // 0x06BC zBOOL
                                                                                                                              var int    inventory2_passive;                        // 0x06C0 zBOOL
                                                                                                                              var int    inventory2_TransferCount;                  // 0x06C4 zINT
                                                                                                                              var int    inventory2_viewTitle;                      // 0x06C8 zCView*
                                                                                                                              var int    inventory2_viewBack;                       // 0x06CC zCView*
                                                                                                                              var int    inventory2_viewItem;                       // 0x06D0 zCView*
                                                                                                                              var int    inventory2_viewItemActive;                 // 0x06D4 zCView*
                                                                                                                              var int    inventory2_viewItemHightlighted;           // 0x06D8 zCView*
                                                                                                                              var int    inventory2_viewItemActiveHighlighted;      // 0x06DC zCView*
                                                                                                                              var int    inventory2_viewItemInfo;                   // 0x06E0 zCView*
                                                                                                                              var int    inventory2_viewItemInfoItem;               // 0x06E4 zCView*
                                                                                                                              var int    inventory2_textView;                       // 0x06E8 zCView*
                                                                                                                              var int    inventory2_viewArrowAtTop;                 // 0x06EC zCView*
                                                                                                                              var int    inventory2_viewArrowAtBottom;              // 0x06F0 zCView*
                                                                                                                              var int    inventory2_rndWorld;                       // 0x06F4 zCWorld*
                                                                                                                              var int    inventory2_posx;                           // 0x06F8 int
                                                                                                                              var int    inventory2_posy;                           // 0x06FC int
                                                                                                                              var int    inventory2_m_bManipulateItemsDisabled;     // 0x0700 zBOOL
                                                                                                                              var int    inventory2_m_bCanTransferMoreThanOneItem;  // 0x0704 zBOOL
                                                                                                                  //      }
                                                                                                                          var int        inventory2_owner;                          // 0x0708 oCNpc*
                                                                                                                          var int        inventory2_packAbility;                    // 0x070C zBOOL
                                                                                                                  //      zCListSort<oCItem> inventory {
                                                                                                                              var int    inventory2_inventory_Compare;              // 0x0710 int(_cdecl*)(oCItem*,oCItem*)
                                                                                                                              var int    inventory2_inventory_data;                 // 0x0714 oCItem*
                                                                                                                              var int    inventory2_inventory_next;                 // 0x0718 zCListSort<oCItem>*
                                                                                                                  //      }
                                                                                                                          var string     inventory2_packString;                     // 0x071C zSTRING
                                                                                                                          var int        inventory2_maxSlots;                       // 0x0730 int
                                                                                                                  //  }
                                                                                                                      var int            trader;                                    // 0x0734 oCItemContainer*
                                                                                                                      var int            tradeNpc;                                  // 0x0738 oCNpc*
                                                                                                                      var int            rangeToPlayer;                             // 0x073C zREAL
                                                                                                                  //  zCArray<zTSoundHandle> listOfVoiceHandles {
                                                                                                                          var int        listOfVoiceHandles_array;                  // 0x0740 zTSoundHandle*
                                                                                                                          var int        listOfVoiceHandles_numAlloc;               // 0x0744 int
                                                                                                                          var int        listOfVoiceHandles_numInArray;             // 0x0748 int
                                                                                                                  //  }
                                                                                                                      var int            voiceIndex;                                // 0x074C int
                                                                                                                  //  zCArray<oCVisualFX*> effectList {
                                                                                                                          var int        effectList_array;                          // 0x0750 oCVisualFX**
                                                                                                                          var int        effectList_numAlloc;                       // 0x0754 int
                                                                                                                          var int        effectList_numInArray;                     // 0x0758 int
                                                                                                                  //  }
                                                                                                                      var int            npc_bitfield[5];                           // 0x075C oCNpc_bitfieldX_Xxx
                                                                                                                      var int            instanz;                                   // 0x0770 int
                                                                                                                      var string         mds_name;                                  // 0x0774 zSTRING
                                                                                                                      var string         body_visualName;                           // 0x0788 zSTRING
                                                                                                                      var string         head_visualName;                           // 0x079C zSTRING
                                                                                                                      var int            model_scale[3];                            // 0x07B0 VEC3
                                                                                                                      var int            model_fatness;                             // 0x07BC zREAL
                                                                                                                      var int            namenr;                                    // 0x07C0 int
                                                                                                                      var int            hpHeal;                                    // 0x07C4 zREAL
                                                                                                                      var int            manaHeal;                                  // 0x07C8 zREAL
                                                                                                                      var int            swimtime;                                  // 0x07CC zREAL
                                                                                                                      var int            divetime;                                  // 0x07D0 zREAL
                                                                                                                      var int            divectr;                                   // 0x07D4 zREAL
                                                                                                                      var int            fireVob;                                   // 0x07D8 zCVob*
                                                                                                                      var int            fireDamage;                                // 0x07DC int
                                                                                                                      var int            fireDamageTimer;                           // 0x07E0 zREAL
                                                                                                                      var int            attitude;                                  // 0x07E4 int
                                                                                                                      var int            tmp_attitude;                              // 0x07E8 int
                                                                                                                      var int            attTimer;                                  // 0x07EC zREAL
                                                                                                                      var int            knowsPlayer;                               // 0x07F0 int
                                                                                                                      var int            percList[66];                              // 0x07F4 TNpcPerc[NPC_PERC_MAX] { int percID; int percFunc }
                                                                                                                      var int            percActive;                                // 0x08FC int
                                                                                                                      var int            percActiveTime;                            // 0x0900 zREAL
                                                                                                                      var int            percActiveDelta;                           // 0

                                                                                                                  69
                                                                                                                  1. Nadpisywanie wartości z gothic.ini
                                                                                                                  Na potrzeby danej modyfikacji można tymczasowo nadpisywać ustawienia z pliku gothic.ini w momencie inicjowania gry. W tym celu w sekcji [OVERRIDES] należy zamieścić wpisy w formie SEKCJA.wlasciwosc = wartosc, jak w poniższym przykładzie:
                                                                                                                  [OVERRIDES]
                                                                                                                  GAME.useQuickSaveKeys = 1
                                                                                                                  ENGINE.zSubdivSurfacesEnabled=1
                                                                                                                  ENGINE.zVidEnableAntiAliasing=1
                                                                                                                  ENGINE.zTexAnisotropicFiltering=1
                                                                                                                  ENGINE.zEnvMappingEnabled=1
                                                                                                                  ENGINE.zEnvMapTextureName=sky.tga
                                                                                                                  2. Parametry startowe
                                                                                                                  Można podać je bezpośrednio w poleceniu uruchamiającym grę lub przekazać za pomocą właściwości force_parameters w sekcji [OPTIONS]. Przykład:
                                                                                                                  force_parameters= -nomenu -zwindowNie istniała dotąd żadna ich lista, więc przygotowałem ją na podstawie zdekompilowanego kodu silnika. Nawiasy kwadratowe wskazują przez jaką klasę silnika są obsługiwane dane parametry.
                                                                                                                  Spoiler
                                                                                                                  [CGameManager]
                                                                                                                  ZCONVERTALL
                                                                                                                  PLAYER
                                                                                                                  ZNOFASTEXIT
                                                                                                                  NOMENU
                                                                                                                  [InitOptions]
                                                                                                                  PARSE
                                                                                                                  3D
                                                                                                                  [zInitOptions]
                                                                                                                  ini
                                                                                                                  DEVMODE
                                                                                                                  GAME
                                                                                                                  VDFS
                                                                                                                  PHYSICALFIRST
                                                                                                                  [oCarsten_StartUp]
                                                                                                                  CHECKROUTINES
                                                                                                                  [oCVisualFX]
                                                                                                                  REPARSEVIS
                                                                                                                  [zCAICamera]
                                                                                                                  CONVERTDIALOGCAMS
                                                                                                                  [zCCBspTree]
                                                                                                                  ZSECTOR
                                                                                                                  ZSKIPSECTORS
                                                                                                                  [zCEngine]
                                                                                                                  ZMEMPROFILER
                                                                                                                  ZNORESTHREAD
                                                                                                                  ZTEXCONVERT
                                                                                                                  [zCFile3DS]
                                                                                                                  ZLOAD3DSOLDMETHOD
                                                                                                                  [zCMesh]
                                                                                                                  ZENSAVEOLDMETHOD
                                                                                                                  ZNOSHAREDFEATURES
                                                                                                                  [zCParticleFX]
                                                                                                                  ZNOPFX
                                                                                                                  [zCTexture]
                                                                                                                  ZTEXMAXSIZE
                                                                                                                  [zCWorld]
                                                                                                                  MERGEVOBSWITHLEVEL
                                                                                                                  [zDieter_StartUp]
                                                                                                                  ZMAXFRAMERATE
                                                                                                                  ZNOMEMPOOL
                                                                                                                  ZRND
                                                                                                                  ZRES
                                                                                                                  ZWINDOW
                                                                                                                  ZNOTEX
                                                                                                                  ZNOMUSIC
                                                                                                                  ZNOSOUND
                                                                                                                  ZAUTOCONVERTDATA
                                                                                                                  [zAccountInit]
                                                                                                                  ZACCOUNT
                                                                                                                  ZACCOUNTFULL
                                                                                                                  [oCNpc]
                                                                                                                  DEBUGFIGHTAI
                                                                                                                  [oCGame]
                                                                                                                  DEVMODE
                                                                                                                  TIME
                                                                                                                  CLIPRANGE
                                                                                                                  FOGRANGE
                                                                                                                  CAMLIGHTRANGE
                                                                                                                  LIGHTRANGE
                                                                                                                  OUTDOOR
                                                                                                                  [oCSpawnManager]
                                                                                                                  NOLAZYLOAD
                                                                                                                  [zUlfi_StartUp]
                                                                                                                  ZREPARSE
                                                                                                                  ZLOG
                                                                                                                  Nie podaję typów ani przykładów wartości. Należy je odgadnąć lub spróbować samemu znaleźć w kodzie, szukając wywołań funkcji zCOption::Parm.
                                                                                                                  Szczególnie interesujący jest parametr -game, pozwalający na wybór pliku .ini. Z oczywistego powodu umieszczanie go w pliku .ini jest pozbawione sensu, ale użycie go w poleceniu uruchamiającym grę (np skrócie) w formie
                                                                                                                  .../Gothic/System/Gothic.exe -game:nazwamoda.iniPozwala uruchomić modyfikację bez pośrednictwa Gothic Staretra lub nawet stworzyć własny launcher.

                                                                                                                  3. Sekcje [FILES], [OPTIONS] i [SETTINGS]
                                                                                                                  Pierwsza pozwala na wybór katalogów w których gra szuka plików. Raczej pozbawione zastosowania praktycznego oprócz kluczowego dla moda parametru "VDF". Sekcja [OPTIONS] pozwala dostosować szczegóły dotyczące interface'u, takie jak wyświetlanie informacji o wersji gry i moda, podświetlenia obiektów czy napisy:
                                                                                                                  Spoiler
                                                                                                                  show_Info
                                                                                                                  show_InfoX
                                                                                                                  show_InfoY
                                                                                                                  show_Version
                                                                                                                  show_VersionX
                                                                                                                  show_VersionY
                                                                                                                  show_Focus
                                                                                                                  show_FocusItm
                                                                                                                  show_FocusMob
                                                                                                                  show_FocusNpc
                                                                                                                  show_FocusBar
                                                                                                                  force_Subtitles
                                                                                                                  force_Parameters
                                                                                                                  Ostatnia sekcja, [SETTINGS], zawiera tylko dwa parametry. Pierwszy, Player, pozwala zmienić instance postaci gracza, co jednak może być złym pomysłem (niektóre skrypty mogą być ustawione na instance pc_hero zamiast na zmienną hero).
                                                                                                                  Drugi z parametrów, World, pozwala na wybór zena w którym rozpocznie się nowa gra.

                                                                                                                  70
                                                                                                                  MDS i animacje / MDS - eventy
                                                                                                                  « dnia: 2011-01-29, 16:15 »
                                                                                                                  Na razie jest to tylko lista, jak będę miał chwilę czasu może dodam krótkie opisy. Niestety nawet jeśli, to będę musiał pisać z pamięci bo Gothic od dawna mi nie działa.
                                                                                                                  Na początek, lista "głównych" poleceń (niekoniecznie najczęściej używanych. W nawiasach kwadratowych przykłady użycia. W kolejnych nawiasach ewentualne komentarze (z czasem może dodam więcej).
                                                                                                                  *eventCAMTREMOR (numer_klatki zasieg_w_cm czas_w_ms min_drgania_cm max_drgania_cm) - wstrząsy kamery, np: *eventCamTremor (12 1000 500 2 8)
                                                                                                                  *eventMMSTARTANI (numer_klatki "nazwa_animacji" "nazwa_slotu" I:intensywność H:czas_utrzymywania) - odtworzenie animacji MorphMesh, np: *eventMMStartAni (14 "T_HURT"), część parametrów jest opcjonalna: nazwa slotu, intensywność i czas utrzymywania
                                                                                                                  *eventSETMESH (numer_klatki "nazwa_slotu")
                                                                                                                  *eventPFX (numer_klatki identyfikator_efektu "identyfikator_pfx'a" "nazwa_slotu" attach) - efekt cząsteczkowy, np: *eventPFX (12 "ZMODELLANDDUST" "Bip01" ), część parametrów jest opcjonalna: identyfikator efektu służy do użycia z eventPFXSTOP, attach na końcu oznacza że efekt nie tylko powstaje w danym slocie, ale porusza się z nim, a nie podanie slotu spowoduje użycie "Bip01" (środka ciała)
                                                                                                                  *eventPFXGRND (numer_klatki)
                                                                                                                  *eventPFXSTOP (numer_klatki identyfikator_efektu) - zatrzymanie efektu cząsteczkowego o danym identyfikatorze, np: *eventPFXStop (45 1)
                                                                                                                  *eventSWAPMESH (numer_klatki "zs_źródłowy" "zs_docelowy") - przemieszczenie mesha między slotami, np *eventSwapMesh (5 "ZS_CROSSBOW" "ZS_LEFTARM")
                                                                                                                  *eventSFX (numer_klatki "nazwa_sfx_lub_pliku_wav" R:zasięg_w_cm EMPTY_SLOT - odtworzenie dźwięku, np *eventSFX (10 "Swim"), część parametrów jest opcjonalna: zasięg słyszalności i EMPTY_SLOT (którego nie użycie powoduje że poprzedni efekt dźwiękowy zostanie przerwany przez ten)
                                                                                                                  *eventSFXGRND (numer_klatki "nazwa_sfx_lub_pliku_wav") - np: *eventSFXGrnd (12 "Run")
                                                                                                                  *eventTag (klatka_animacji "nazwa_eventtagu" "parametr1" "parametr2" "parametr3" "parametr4") - lista dostępnych poniżej, parametry są opcjonalne
                                                                                                                  *modelTag (to co wyżej, ale odnosi się do wszystkich animek modelu)
                                                                                                                  *event (???)

                                                                                                                  eventTagi:
                                                                                                                  DEF_CREATE_ITEM [*eventTag (4 "DEF_CREATE_ITEM" "ZS_RIGHTHAND" "ItMw_1H_Sledgehammer_01")]
                                                                                                                  DEF_INSERT_ITEM [*eventTag (5 "DEF_INSERT_ITEM" "ZS_LEFTHAND")]
                                                                                                                  DEF_REMOVE_ITEM [*eventTag (0 "DEF_REMOVE_ITEM")]
                                                                                                                  DEF_DESTROY_ITEM [*eventTag (35 "DEF_DESTROY_ITEM")]
                                                                                                                  DEF_PLACE_ITEM [*eventTag (90 "DEF_PLACE_ITEM")]
                                                                                                                  DEF_EXCHANGE_ITEM [*eventTag (37 "DEF_EXCHANGE_ITEM" "ZS_LEFTHAND" "ItMiSwordrawhot")]
                                                                                                                  DEF_FIGHTMODE [*eventTag (5 "DEF_FIGHTMODE" "FIST")] ["", "FIST", "1H", "1HS", "2H", "2HS", "BOW", "CBOW", "MAG"]
                                                                                                                  DEF_PLACE_MUNITION [*eventTag (9 "DEF_PLACE_MUNITION" "ZS_RIGHTHAND")]
                                                                                                                  DEF_REMOVE_MUNITION [*eventTag (19 "DEF_REMOVE_MUNITION")]
                                                                                                                  DEF_DRAWSOUND [*eventTag (5 "DEF_DRAWSOUND")]
                                                                                                                  DEF_UNDRAWSOUND [*eventTag (5 "DEF_UNDRAWSOUND")]
                                                                                                                  DEF_SWAPMESH [nigdy nie użyte (?), *eventTag (5 "DEF_SWAPMESH" "ZS_CROSSBOW" "ZS_LEFTHAND")]

                                                                                                                  //eventTagi pochodni
                                                                                                                  DEF_DRAWTORCH [nigdy nie użyte (?), *eventTag (1 "DEF_DRAWTORCH")]
                                                                                                                  DEF_INV_TORCH [*eventTag (6 "DEF_INV_TORCH")]
                                                                                                                  DEF_DROP_TORCH [nigdy nie użyte (?), *eventTag(1 "DEF_DROP_TORCH")]

                                                                                                                  //eventTagi walki (szczegółowe omówienie Orcwarriora: http://themodders.org/index.php?showtopic=1381)
                                                                                                                  DEF_HIT_LIMB [*eventTag (0 "DEF_HIT_LIMB" "ZS_RIGHTHAND")] [atakująca kończyna]
                                                                                                                  DEF_DIR [nieużywane, *eventTag (0 "DEF_DIR" "L")] [kierunek ataku]
                                                                                                                  DEF_DAM_MULTIPLIER [*eventTag (0 "DEF_DAM_MULTIPLIER" "2.0")] [mnożnik obrażeń]
                                                                                                                  DEF_PAR_FRAME [nieużywane, *eventTag (0 "DEF_PAR_FRAME" "1 8")] [klatka na parowanie ciosu]
                                                                                                                  DEF_OPT_FRAME [*eventTag (0 "DEF_OPT_FRAME" "9 24")] [optymalna klatka na obrażenia]
                                                                                                                  DEF_HIT_END [*eventTag (0 "DEF_HIT_END" "15 29")] [klatka kończąca cios]
                                                                                                                  DEF_WINDOW [*eventTag (0 "DEF_WINDOW" "9 15 24 29")] [klatka w której można kontynuować combo]

                                                                                                                  Teraz ogólny schemat:
                                                                                                                  *eventTag (klatka_animacji "nazwa_tagu" "parametr1" "parametr2" "parametr3" "parametr4")Nie pamiętam dokładnie, ale chyba ilość parametrów nie zawsze jest sztywna - w zależności od sytuacji można nie korzystać z ostatnich.
                                                                                                                  Warto wiedzieć że istnieje też coś takiego jak *modelTag - używa się go tak jak *eventTagu, ale dotyczy on wszystkich animacji.

                                                                                                                  //edit: dodam jeszcze listę innych "słów kluczowych" jednak raczej nie będę w stanie opisać które do czego służą. Może komuś się do czegoś przyda:
                                                                                                                  aniComb
                                                                                                                  aniBatch
                                                                                                                  ANIDISABLE
                                                                                                                  aniSync
                                                                                                                  aniBlend
                                                                                                                  aniAlias
                                                                                                                  ani
                                                                                                                  aniMaxFps
                                                                                                                  registerMesh
                                                                                                                  startMesh
                                                                                                                  MeshAndTree
                                                                                                                  aniEnum
                                                                                                                  model
                                                                                                                  morphAni
                                                                                                                  morphMesh
                                                                                                                  meshEnum //przestarzałe?
                                                                                                                  MeshLib //przestarzałe?

                                                                                                                  Informacje wykorzystane w tutorialu pochodzą z oryginalnych skryptów gry, zdeassemblowanego silnika gry oraz artykułów Kerraxa i NicoDE.

                                                                                                                  71
                                                                                                                  Skrypty / BodyState - sprawdzanie wykonywanej "czynności"
                                                                                                                  « dnia: 2011-01-29, 13:28 »
                                                                                                                  Bardzo ciekawe efekty może dawać odpowiednie korzystanie z funkcji Npc_GetBodyState. Zwraca ona niejako "czynność" wykonywaną w danej chwili przez NPC. Oto ich lista:
                                                                                                                  Spoiler
                                                                                                                  BS_STAND
                                                                                                                  BS_WALK
                                                                                                                  BS_SNEAK
                                                                                                                  BS_RUN
                                                                                                                  BS_SPRINT
                                                                                                                  BS_SWIM
                                                                                                                  BS_CRAWL
                                                                                                                  BS_DIVE
                                                                                                                  BS_JUMP
                                                                                                                  BS_CLIMB
                                                                                                                  BS_FALL
                                                                                                                  BS_SIT
                                                                                                                  BS_LIE
                                                                                                                  BS_INVENTORY
                                                                                                                  BS_ITEMINTERACT
                                                                                                                  BS_MOBINTERACT
                                                                                                                  BS_MOBINTERACT_INTERRUPT
                                                                                                                  BS_TAKEITEM
                                                                                                                  BS_DROPITEM
                                                                                                                  BS_THROWITEM
                                                                                                                  BS_PICKPOCKET
                                                                                                                  BS_STUMBLE
                                                                                                                  BS_UNCONSCIOUS
                                                                                                                  BS_DEAD
                                                                                                                  BS_AIMNEAR
                                                                                                                  BS_AIMFAR
                                                                                                                  BS_HIT
                                                                                                                  BS_PARADE
                                                                                                                  BS_CASTING
                                                                                                                  BS_PETRIFIED
                                                                                                                  BS_CONTROLLING
                                                                                                                  BS_MOD_HIDDEN
                                                                                                                  BS_MOD_DRUNK
                                                                                                                  BS_MOD_NUTS
                                                                                                                  BS_MOD_BURNING
                                                                                                                  BS_MOD_CONTROLLED
                                                                                                                  BS_MOD_TRANSFORMED
                                                                                                                  Przykładowo, można wykorzystać BS_PARADE w warunku, aby kiedy npc/gracz ma wyciągniętą tarczę i w tym momencie się nią zasłania (ctrl+strzałka w tył, można tak chodzić trochę powoli) to jest odporny na strzały. Albo że w miarę jak napina łuk, siła strzału rośnie. Zastosowań jest mnóstwo.

                                                                                                                  Funkcją która zwraca aktualny stan lub jego sumę z "nakładkami" jest Npc_GetBodyState. Jednak normalnie lepiej używać wykorzystującej ją skryptowej, C_BodyStateContains.
                                                                                                                  Spoiler
                                                                                                                  func int C_BodyStateContains (var C_NPC slf, var int bodystate)
                                                                                                                  {
                                                                                                                  if ((Npc_GetBodyState(slf)&(BS_MAX|BS_FLAG_INTERRUPTABLE|BS_FLAG_FREEHANDS)) == (bodystate&(BS_MAX|BS_FLAG_INTERRUPTABLE|BS_FLAG_FREEHANDS)))
                                                                                                                  { return TRUE; }
                                                                                                                  else
                                                                                                                  { return FALSE; };
                                                                                                                  };

                                                                                                                  72
                                                                                                                  Skrypty / Wywoływanie funkcji
                                                                                                                  « dnia: 2011-01-29, 13:11 »
                                                                                                                  1. Funkcje wywoływane bezpośrednio przez engine
                                                                                                                  Pierwsza grupą, chyba najmniej znaną, wykorzystywaną tylko w kilku przypadkach i do raczej dość nieświadomie, są skryptowe funkcje wywoływane "bezpośrednio" przez engine. Część z nich chyba nie jest używana w oryginalnych skryptach.
                                                                                                                  B_NpcBye
                                                                                                                  B_RefreshArmor
                                                                                                                  B_RefreshAtInsert
                                                                                                                  B_SetCutscenePerceptions
                                                                                                                  B_SpreadAndMemorize
                                                                                                                  C_CanNewsBeSpread
                                                                                                                  C_CanNpcCollideWithSpell
                                                                                                                  C_DropUnconscious
                                                                                                                  G_CannotCast
                                                                                                                  G_CannotUse
                                                                                                                  G_CanSteal
                                                                                                                  G_NoKey
                                                                                                                  G_Picklock
                                                                                                                  G_Picklock
                                                                                                                  Init_ + WorldName
                                                                                                                  Init_Global
                                                                                                                  InitPerceptions
                                                                                                                  OnStateFunc + _S + State
                                                                                                                  Player_Hotkey_Lame_Potion
                                                                                                                  Player_Hotkey_Lame_Potion
                                                                                                                  Player_Hotkey_Screen_Map
                                                                                                                  Player_Mob_Another_Is_Using
                                                                                                                  Player_Mob_Missing_Item
                                                                                                                  Player_Mob_Missing_Key
                                                                                                                  Player_Mob_Missing_Key_Or_Lockpick
                                                                                                                  Player_Mob_Missing_Lockpick
                                                                                                                  Player_Mob_Never_Open
                                                                                                                  Player_Mob_Too_Far_Away
                                                                                                                  Player_Mob_Wrong_Side
                                                                                                                  Player_Plunder_Is_Empty
                                                                                                                  Player_Trade_Not_Enough_Gold
                                                                                                                  Player_Victim_Is_Immortal
                                                                                                                  Spell_Cast_ + SpellName, SpellLevel
                                                                                                                  Spell_ProcessMana
                                                                                                                  Spell_ProcessMana_Release
                                                                                                                  Startup_ + WorldName
                                                                                                                  Startup_Global

                                                                                                                  2. Zmysły NPC
                                                                                                                  Druga metoda to zmysły NPC. Za pomocą funkcji Npc_PercEnable możesz do każdego ze zmysłów danego NPC podpiąć jakąś funkcję. Zwykle korzysta się z tych standardowych i w nich daje wyzwalacze swoich własnych, ale nic nie stoi na przeszkodzie żeby modyfikować same oryginalne przypisania dla jakichś pojedynczych postaci.
                                                                                                                  Lista zmysłów:
                                                                                                                  PERC_ASSESSPLAYER
                                                                                                                  PERC_ASSESSENEMY
                                                                                                                  PERC_ASSESSFIGHTER
                                                                                                                  PERC_ASSESSBODY
                                                                                                                  PERC_ASSESSITEM
                                                                                                                  PERC_ASSESSMURDER
                                                                                                                  PERC_ASSESSDEFEAT
                                                                                                                  PERC_ASSESSDAMAGE
                                                                                                                  PERC_ASSESSOTHERSDAMAGE
                                                                                                                  PERC_ASSESSTHREAT
                                                                                                                  PERC_ASSESSREMOVEWEAPON
                                                                                                                  PERC_OBSERVEINTRUDER
                                                                                                                  PERC_ASSESSFIGHTSOUND
                                                                                                                  PERC_ASSESSQUIETSOUND
                                                                                                                  PERC_ASSESSWARN
                                                                                                                  PERC_CATCHTHIEF
                                                                                                                  PERC_ASSESSTHEFT
                                                                                                                  PERC_ASSESSCALL
                                                                                                                  PERC_ASSESSTALK
                                                                                                                  PERC_ASSESSGIVENITEM
                                                                                                                  PERC_ASSESSFAKEGUILD
                                                                                                                  PERC_MOVEMOB
                                                                                                                  PERC_MOVENPC
                                                                                                                  PERC_DRAWWEAPON
                                                                                                                  PERC_OBSERVESUSPECT
                                                                                                                  PERC_NPCCOMMAND
                                                                                                                  PERC_ASSESSMAGIC
                                                                                                                  PERC_ASSESSSTOPMAGIC
                                                                                                                  PERC_ASSESSCASTER
                                                                                                                  PERC_ASSESSSURPRISE
                                                                                                                  PERC_ASSESSENTERROOM
                                                                                                                  PERC_ASSESSUSEMOB

                                                                                                                  Chyba jednocześnie najczęściej używany i najbardziej niedoceniany jest PERC_ASSESSTALK. Nie jestem pewien czy pierwszy się tego domyśliłem (bo nigdy nie miałem okazji sprawdzić, od bardzo dawna nie działa mi Gothic), ale jest to zmysł który reaguje na kliknięcie na npc i NIE MUSI wyzwalać dialogu. Można polecić cokolwiek, albo kilka rzeczy jednocześnie. Przykładowo, gdyby zrobić NPC o wyglądzie konia, można by było zrobić żeby samo kliknięcie powodowało "wejście" na niego, bez żadnej zabawy w wydawanie polecenia przez dialog. A warto wiedzieć że obiekt typu NPC wcale nie musi być postacią z powszechnych wyobrażeń. Odpowiednie sztuczki mogą sprawić że nawet piec hutniczy czy wagonik będzie traktowany jako NPC i dzięki temu można np poruszać go skryptami po waynecie czy dowolnie manipulować.

                                                                                                                  3. Triggery w świecie gry
                                                                                                                  Trzeci rodzaj, to funkcje podpięte bezpośrednio do triggerów umieszczonych w świecie. Triggery to jak sama nazwa mówi, "wyzwalacze", które mogą być aktywowane na kilka sposobów. Może być to wyzwalanie co określoną ilość czasu (a dzięki wykorzystaniu Ikarusa nawet równo co klatkę), przez wejście bohatera w jakieś miejsce, przez zadanie obrażeń danemu obiektowi, użycie danego obiektu itd. Tutorial jak je tworzyć gdzieś już był, skrypty które są w nich wykorzystywane standardowo umieszcza się w Gothic\_Work\Data\Scripts\Content\Story\EVENTS, ale nie jest to wymagane.

                                                                                                                  4. Przedmioty
                                                                                                                  Można wykorzystywać do aktywowania funkcji parametry:
                                                                                                                  c_item.magic - niestety nie pamiętam co to mogło być, przestarzałe
                                                                                                                  c_item.on_equip   - wywoływanie przy zakładaniu itemu jak amulety, bronie, zbroje
                                                                                                                  c_item.on_unequip - wywoływanie przy ściąganiu itemu jak amulety, bronie, zbroje
                                                                                                                  c_item.on_state- wywoływanie przy używaniu itemów z parametrem scemename

                                                                                                                  5. Zachowania NPC
                                                                                                                  c_npc.mission - niestety nie pamiętam co to mogło być, przestarzałe
                                                                                                                  c_npc.daily_routine (przez funkcję TA_Min) - pętla rozkładu dnia
                                                                                                                  c_npc.start_aistate - chyba pojedyncza czynność na cały dzień

                                                                                                                  6. Dialogi
                                                                                                                  c_info.information - wywoływane po wybraniu danej opcji dialogowej

                                                                                                                  7. Inne
                                                                                                                  c_itemreact.reaction - wywoływane zdaje się w trakcie handlu, system porzucony, ale chyba da się go nadal użyć. Zainteresowanych szczegółami zapraszam na PW.

                                                                                                                  73
                                                                                                                  Forum / Lista banów
                                                                                                                  « dnia: 2011-01-08, 13:26 »
                                                                                                                  W ostatnim czasie posypało się całkiem sporo banów. Co prawda były one uzasadnione, jednak mimo to samo zjawisko wydaje się być dość niepokojące (chociaż trzeba zaznaczyć ze w porównaniu z większością istniejących forów i tak jesteśmy ostoją liberalizmu). Dlatego proponuję przy każdym wyroku opisywać go w formie posta w tym temacie, wpisując uzasadnienie, i jeśli jest on spowodowany dużym nagromadzeniem ostrzeżeń, doklejać je - najlepiej z listą samych warnujących żeby unikać nadużyć.

                                                                                                                  Może ja od razu zacznę:
                                                                                                                  Cytuj
                                                                                                                  Nazwa: Wiatrak
                                                                                                                  Powód: Multikonto wcześniej zbanowanego użytkownika Garaza

                                                                                                                  [mod=mea]Nie chce mi się brudzić postem więc napiszę tutaj. Miło by było żeby forum miast banować wróciło do starej, dobrej praktyki jechania ludzi aż będą sami prosić o bany.


                                                                                                                  ...i nie banować :D
                                                                                                                  Tak było zabawniej.[/mod]

                                                                                                                  74
                                                                                                                  Forum / Problem z maskami uprawnień
                                                                                                                  « dnia: 2010-12-31, 11:43 »
                                                                                                                  Mniej więcej wczoraj stało się coś dziwnego z maskami uprawnień, wygląda na błąd w bazie danych. Nie wiem jak bardzo jet rozległy, ale wygląda na to że część grup ma w różnych miejscach "pourywane" dostępy. Ciągną się normalnie do pewnego momentu, a potem wszędzie pusto, brak dostępu. W przypadku administratorów maska jest "postrzępiona", czyli czasami już nie mogą np wyświetlać tematów ale jeszcze długo ciągnie się pozwolenie odpisywania albo uploadowania plików itd. Ogólnie problemy zaczynają się w połowie archiwum tajnych działów i ciągną do samego końca. Kiedy próbuję założyć nową maskę z maksymalnymi uprawnieniami, ucinają się one równo, w połowie tajnego działu NT (przez równo mam na myśli że dalej jest zero na wszystkich czynnościach, czyli ani czytania, ani wyświetlania, ani uploadowania, ani pisania itd).
                                                                                                                  Problem jest tym poważniejszy że nie da się go naprawić przez edycję maski, cokolwiek by się wpisało od pewnego momentu zawsze są same zera. Będziemy starali się to naprawić, ale wydaje mi się że najlepszym rozwiązaniem będzie częściowe przywrócenie backupu bazy danych z momentu kiedy wszystko było ok. Tymczasowo żeby zorientować się jak duża jest skala problemu, prosiłbym o pisanie tutaj jeśli ktoś ma problemy z wykonywaniem jakiejkolwiek czynności którą normalnie powinien móc wykonywać.

                                                                                                                  Aha, admini nie muszą odpisywać, jak tutaj ma się sprawa wiem aż za dobrze :lol:

                                                                                                                  //edit: No i problemy nie muszą być od razu zauważone, bo użytkownicy którzy jakieś maski mają, to nieraz po kilka, więc mogą nawzajem "zasłaniać" swoje dziury.

                                                                                                                  //edit2: Jest jeszcze taki problem, że jak już komuś całkiem nawaliły maski to w ogóle nie zobaczy tego tematu :lol:

                                                                                                                  75
                                                                                                                  Samouczki / Wypakowywanie/dekompilacja zasobów Arcanii
                                                                                                                  « dnia: 2010-10-03, 19:16 »
                                                                                                                  Jak wypakowywać archiwa pak:
                                                                                                                  Pobieramy program SBPacker.exe. Potrzebna jest wersja konsolowa, musiałem się naprawdę namęczyć żeby ją znaleźć. Kto nie wierzy niech sam spróbuje jej poszukać :lol2:
                                                                                                                  Dla bardziej leniwych uploaduję: http://www.speedyshare.com/files/24527929/sbpacker.exe
                                                                                                                  Kopiujemy ten plik do folderu Arcania/data (tam gdzie są archiwa .pak). Następnie włączamy okno Uruchom i wpisujemy CMD. W konsoli która się pojawi wpisujemy:
                                                                                                                  cd ścieżka_do_arcanii/dataczyli npcd C:\Program Files\ArcaniA Demo\dataa następnie
                                                                                                                  sbpacker de -x nazwapaczki folderdocelowyczyli npsbpacker de -x basedata.pak basedata_work


                                                                                                                  Przypadki szczególne:
                                                                                                                  • Music.pak - aby otrzymać kompletne ścieżki dźwiękowe należy dodatkowo przerobić pliki wynikowe aplikacją ArcaniaMusicUnpacker którą kopiujemy do folderu z wypakowaną zawartością paczki i uruchamiamy. Automatycznie przetworzy pliki - każdy trwa 6 minut, połowa z nich to soundtracki, połowa odgłosy tła.
                                                                                                                  • Data0.pak - najciekawsze archiwum, jednak jako jedyne ma szczególne zabezpieczenia przed wypakowywaniem. Na szczęście jest narzędzie które pozwala je obejść - DataDump od NicoDE.
                                                                                                                    Należy wrzucić oba pliki (exe i dll) do folderu głównego Arcanii i odpalamy. Załączy się małe okienko i gra. Czekamy aż załączy się ona do końca (powinno pokazać się menu główne), przełączamy się wtedy z powrotem do okienka programu i klikamy OK. Gra wyłączy się sama bądź po chwili robimy to ręcznie. W folderze Arcania/data pojawi się plik data0.dmp - w rzeczywistości jest to data0.pak, tylko już pozbawiony zabezpieczeń. Jego możemy wypakować standardową metodą.
                                                                                                                  • Pliki .block - zawierają większość plików gier, są porozmieszczane po kilku paczkach. Niestety o ile wiem nie ma jeszcze metody rozpakowania/dekompilacji. Mogą być rozpakowane tym narzędziem: http://www.speedyshare.com/files/24570021/ExtractDataBlocks_Zlib1.zip


                                                                                                                  Są też inne programy, jednak żadnym z nich nie osiągnąłem nic sensownego. Gdyby ktoś mimo to był zainteresowany, oto one:Jeszcze raz linki do programów o potwierdzonej przydatności:

                                                                                                                  76
                                                                                                                  Dzień Screena #3 / Sieć
                                                                                                                  « dnia: 2010-08-26, 09:01 »
                                                                                                                  Cechami charakterystycznymi modyfikacji będą: zupełnie nowy świat, o bardzo malowniczych i klimatycznych lokacjach.

                                                                                                                  W świecie większym od NEWORLD z Gothic2NK będzie mocny akcent na obyczajowość wydarzeń gdzie będziemy się wzruszać, poczujemy zazdrość, zapałamy nienawiścią, zakochamy się a może nawet zabijemy. Historia będzie podzielona na rozdziały, gdzie każdy kolejny rozdział będzie przedstawiał losy naszego bohatera kolejno starszego o 5 lat a w pierwszym rozdziale wcielimy się w postać kobiety.
                                                                                                                  Spoiler
                                                                                                                  Na pewnej wyspie osiedla się garść zbiegłych mieszkańców Khorinis jak i również skazańców z Górniczej doliny. Zakładają tu nowe miasto by ustrzec się wojen które prowadzi Król Rhobar II.

                                                                                                                  Pewnego bardzo spokojnego dnia, gdy osadnicy jak zwykle oddają się w pocie czoła budowie swojego miasta, nagle z lasu wybiega odziana w strzępy ubrania tajemnicza kobieta z płaczącym dzieckiem w rękach. Dotychczas budowniczym miasta nie zakłócało nic spokoju, jedynie od czasu do czasu mężni drwale musieli przegnać wilka, a kobiety przechytrzyć lisa. Ze zdziwieniem i lekkim niepokojem mimo wszystko przyjmują kobietę z dzieckiem do siebie, gwarantując szałas i lekką pracę.
                                                                                                                  Kim jest młoda kobieta? przed czym uciekała ? co los gotuje dziecku,  czy osadnikom grozi niebezpieczeństwo i z czyjej tak na prawdę strony?

                                                                                                                  W grzę nie będzie dużo walki - nie ratujemy świata, bohater osiągnie max 10 lvl, świat Sieci nie jest światem magii, a jedynie alchemii. Gra będzie miała cechy klasycznych gier przygodowych.

                                                                                                                  Screeny pochodzą z części wyspy zaznaczonej na pierwszym na czerwono. Całość jest o około 30% większa od oryginalnego Newworlda.


                                                                                                                  Modyfikacja jest tworzona w całości samodzielne przez Emace'a.

                                                                                                                  77
                                                                                                                  Wydarzenia / Dzień screena 2010 - o głosowaniu
                                                                                                                  « dnia: 2010-08-25, 11:27 »
                                                                                                                  Jak zapewne wszyscy wiecie, system oceniania nie wypalił i z powodu durnoty przynajmniej kilku osób wyniki są zaburzone. Od początku byłem zwolennikiem głosowania w formie wielokrotnego wyboru, uważam że najlepiej byłoby albo przywrócić właśnie taką ankietę (była krótko wczoraj rano) albo od zrestartować obecną z włączoną jawnością głosów, tak aby każda osoba mogła zostać pociągnięta do odpowiedzialności. Jeśli cokolwiek miałoby być z tym jeszcze robione, to tylko dzisiaj i to jak najszybciej. Dlatego proszę o wypowiedź administrację, Seraila jako organizatora a także przedstawicieli grup biorących udział. Można też zastanowić się na wykluczeniem grupy Square Crusaders/Muzykanci, która jako jedyna dotąd nie dostarczyła choćby jednego obrazka.

                                                                                                                  78
                                                                                                                  Dzień Screena #3 / Konsultacje Prawne
                                                                                                                  « dnia: 2010-08-25, 09:56 »
                                                                                                                  Gracz ma okazje odetchnąć od zabijania potworów i epickich przygód i zasmakować czegoś nowego, nieznanego mu dotychczas, wcielając się w Zarewę, prostego zbira pracującego dla jednego z kilku pracodawców, m.in. Codringhera i Fenna, postaci, której fanom Sagi o Wiedźminie nie trzeba przedstawiać.
                                                                                                                  Spoiler
                                                                                                                   W naszej przygodzie gracz będzie miał okazje poznania świata łotrów i rzezimieszków z nowego punktu widzenia, zwiedzenia miasteczka Dorian, wykonywania wiele złożonych zadań, jak i równie ciekawych zadań losowych, pięcia się w hierarchii zbirów poprzez zdobywanie respektu, którego poziom będzie wpływał na cały otaczający świat, łącznie z dialogami i zadaniami.
                                                                                                                  A na końcu... Trochę przyjdzie wam poczekać na poznanie zakończenia, ale mniej niż myślicie. Koniec prac nad Konsultacjami zbliża się wielkimi krokami.
                                                                                                                  Cechy:
                                                                                                                  -Nietypowa, wciągająca fabuła w świecie łotrów i rzezimieszków
                                                                                                                  -Nowy system walki, przystosowany do walki zbirem, a nie akrobatą-wiedźminem
                                                                                                                  -Alchemia przystosowana dla zwyczajnych bywalców karczmy
                                                                                                                  -Co najmniej kilkanaście nowych modeli postaci
                                                                                                                  -Nowe karty w dużej ilości
                                                                                                                  -Doskonale odwzorowani książkowi Codringher i Fenn
                                                                                                                  -Wątek główny na minimum 7 godzin gry
                                                                                                                  -Dwie różniące się wszystkim ścieżki gry
                                                                                                                  -Podłożone głosy pod wszystkie postacie
                                                                                                                  -Nowa lokacja- Dorian, większe od Wyzimy!
                                                                                                                  -Zadania losowe! i to do tego spójne, a nie jak w wielu grach "przynieś 100 medalion" 
                                                                                                                   u nas będą to napady, włamania, kradzieże, zabójstwa i inne
                                                                                                                  -System respektu - teraz od naszych działań będzie zależało postrzeganie przez ludność miasta, jak i pracodawców


                                                                                                                  79
                                                                                                                  Dzień Screena #3 / Rzeka
                                                                                                                  « dnia: 2010-08-24, 08:30 »
                                                                                                                  Cechami charakterystycznymi modyfikacji będą: zupełnie nowy świat, o unikatowym klimacie i rozmiarach NewWorld z Gothic 2 oraz rozbudowana fabuła, uchwycająca losy każdego z uczestników plotu wydarzeń w indywidualny sposób, bo jak się będzie można przekonać, każdy z nich knuje własny plan aby wyjść na tej całej sytuacji najlepiej. Komu więc można zaufać - ta kwestia należy do gracza i tylko trafność jego decyzji prowadzi do szczęsliwego zakończenia.
                                                                                                                  Spoiler
                                                                                                                  Wyspie Nomburis zagraża niebezpieczeństwo - zbliżają się orkowie, przy jednoczesnym braku wsparcia ze strony palladynów. Czołowy mag miasta Aramid i pomocny mu najemnik Bazyli odprawiają rytuał przywołania, chcąc sprowadzić słynnego już Bezimiennego bohatera by ten pomógł w ich sprawie, jadnak coś poszło nie tak, a na wyspie pojawiła się inna postać z Khorinis, znacząco różniąca się charakterem od Beziego. Nowy przybysz nie z własnej woli zostaje wplątany w ciąg wydarzeń i dowiaduje się o trwającym na wyspie konflikcie pomiędzy mieszkańcami miasta a najemnikami. Aby nie pozbawiać przerażonych obywateli resztek nadzieji gubernator Larrymon nakazuje bohaterowi wcielenie się w postać znienawidzonego przez siebie Bezimiennego, co prowadzi do wielu kuriozalnych sytuacji, a na domiar złego na wyspę, w tajemniczych okolicznościach, przybywają "koledzy" z kolonii karnej...

                                                                                                                  80
                                                                                                                  Dzień Screena #3 / Inżynier Edek z fabryki kredek
                                                                                                                  « dnia: 2010-08-24, 08:25 »
                                                                                                                  "Kuuurwaa!"
                                                                                                                  Taką reakcję u naszego taty mogło wywołać tylko coś poważnego.

                                                                                                                  "Panowie, znowu KAL coś miesza."
                                                                                                                  Hmm, jednak nie, coś tu śmierdzi. Siódmego sierpnia zasypał nas i żółtków bluzgami.

                                                                                                                  "No, wreszcie! To jak, rozwalimy parę żółtych łbów, co?"
                                                                                                                  Tak, takie zdanie mógł wypowiedzieć tylko Psychol, i, jak zwykle, wypowiedział je, nie kryjąc radości...

                                                                                                                  "Spasuj, Sykes!"
                                                                                                                  Jednak Prorok również jak zwykle sprowadził Psychola na ziemię.

                                                                                                                  Nigdy ta zakichana armia nie powiadomi o celach od razu. Być może burkną coś w VTOL'u.

                                                                                                                  "Panowie, rozsądna rodzina zawsze pasy zapina, więc nie gadamy, tylko pasy zapinamy, hehe."
                                                                                                                  Ku mojemu zdziwieniu wszyscy posłuchali pilota.

                                                                                                                  Ja pierdolę, coś tu naprawdę śmierdzi, przecież nigdy nie zapinaliśmy pasów...

                                                                                                                  Standardowe ustawienia TOD:                                      U mnie:
                                                                                                                   

                                                                                                                  Screenshoty:

                                                                                                                  Strony: 1 2 3 [4] 5 6
                                                                                                                  Do góry