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 - lucki666

Strony: [1] 2
1
Często się zdarza, że przypadkiem klikniemy na przywołanego sługę, a on ginie. Więc zrobiłem, aby po kliknięciu na niego uaktywniał się dialog. Wszystko wyświetla się prawie poprawnie. Można z dialogu wyjść bez problemu i kontynuować grę, ale gdy chce się go odwołać/zniszczyć to pojawia się problem. On ginie, ale kamera nadal jest ustawiona jak w przypadku dialogu i nie można wejść ESC do menu, ani kontynuować gry.

Skrypt:
Spoiler
///////////////////////////////////////////////////////////////////////
//   Summoned_Gobbo_Skeleton
///////////////////////////////////////////////////////////////////////
INSTANCE DIA_Addon_Summoned_Gobbo_Skeleton_EXIT   (C_INFO)
{
   npc         = Summoned_Gobbo_Skeleton;
   nr          = 1;
   condition   = DIA_Addon_Summoned_Gobbo_Skeleton_EXIT_Condition;
   information = DIA_Addon_Summoned_Gobbo_Skeleton_EXIT_Info;
   permanent   = TRUE;
   description = DIALOG_ENDE;
};
FUNC INT DIA_Addon_Summoned_Gobbo_Skeleton_EXIT_Condition()
{
   return TRUE;
};
FUNC VOID DIA_Addon_Summoned_Gobbo_Skeleton_EXIT_Info()
{
   AI_StopProcessInfos (self);
};

///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
instance DIA_Addon_Summoned_Gobbo_Skeleton_End      (C_INFO)
{
   npc       =    Summoned_Gobbo_Skeleton;
   nr       =    2;
   condition    =    DIA_Addon_Summoned_Gobbo_Skeleton_End_Condition;
   information    =    DIA_Addon_Summoned_Gobbo_Skeleton_End_Info;
   permanent    =    TRUE;

   description    =    "Odwołaj przywołańca!";
};

func int DIA_Addon_Summoned_Gobbo_Skeleton_End_Condition ()
{
   return TRUE;
};

func void DIA_Addon_Summoned_Gobbo_Skeleton_End_Info ()
{
   AI_StopProcessInfos (self);
   B_KillNpc(Summoned_Gobbo_Skeleton);


};

Próba zmiany kolejności AI_StopProcessInfos (self); i B_KillNpc(Summoned_Gobbo_Skeleton); również nic nie dają.
Ale gdy zamienię AI_StopProcessInfos (self); na AI_StopProcessInfos (other); to już kamera prawidłowo reaguje, ale za to inne potwory nie atakują bohatera, zanim on nie zacznie dialogu z innym NPC.

Spoiler
instance DIA_Addon_Summoned_Gobbo_Skeleton_End      (C_INFO)
{
   npc       =    Summoned_Gobbo_Skeleton;
   nr       =    2;
   condition    =    DIA_Addon_Summoned_Gobbo_Skeleton_End_Condition;
   information    =    DIA_Addon_Summoned_Gobbo_Skeleton_End_Info;
   permanent    =    TRUE;

   description    =    "Odwołaj przywołańca!";
};

func int DIA_Addon_Summoned_Gobbo_Skeleton_End_Condition ()
{
   return TRUE;
};

func void DIA_Addon_Summoned_Gobbo_Skeleton_End_Info ()
{
   AI_StopProcessInfos (other);
   B_KillNpc(Summoned_Gobbo_Skeleton);

};

Jakieś pomysły jak to rozwiązać?

2
Pytania i problemy / Problem przy pakowaniu modyfikacji
« dnia: 2021-04-19, 19:22 »
W najnowszej wersji modyfikacji dodałem dźwięki dialogów - jest ich sporo. I przy próbie spakowania modyfikacji GothicVDFS zielony pasek "ładowania" jest od razu cały zapełniony. Plik modyfikacji się tworzy, gra odpala się, ale zawiesza się przy pasku wczytywania.
Usuwając folder SOUND i pakując całą modyfikację raz jeszcze, wszystko jest OK i działa.

Gdzie może występować błąd? Czy jakiś plik jest zepsuty? Ma złą nazwę? Czy w czym może być problem?
Jak to wychwycić?

Folder:
Spoiler
Plik:DIA_ADDON_LARES_GILDE_KDF_15_03.wav
   172 KB    2021-04-16    20:44:20
Plik:DIA_ADDON_NEFARIUS_RUNESDEF_05_01.wav
   483 KB    2021-02-24    21:17:15
Plik:DIA_ADDON_NEFARIUS_RUNESDEF_05_02.wav
   267 KB    2021-02-24    21:17:15
Plik:DIA_ADDON_NEFARIUS_RUNESDEF_05_03.wav
   391 KB    2021-02-24    21:17:15
Plik:DIA_ADDON_NEFARIUS_RUNESDEF_05_04.wav
   343 KB    2021-02-24    21:17:15
Plik:DIA_ADDON_NEFARIUS_RUNESDEF_05_05.wav
   335 KB    2021-02-24    21:17:15
Plik:DIA_ADDON_NEFARIUS_RUNESDEF_05_06.wav
   306 KB    2021-04-14    17:37:32
Plik:DIA_ADDON_RIORDIAN_ADW_TEACHPOTION_10_01.wav
   377 KB    2021-04-16    20:32:30
Plik:DIA_ADDON_RIORDIAN_ADW_TEACHPOTION_10_02.wav
   527 KB    2021-04-16    20:32:30
Plik:DIA_ADDON_RIORDIAN_ADW_TEACHPOTION_10_03.wav
   324 KB    2021-04-16    20:32:30
Plik:DIA_ADDON_RIORDIAN_ADW_TEACHPOTION_10_04.wav
   557 KB    2021-04-16    20:32:30
Plik:DIA_ADDON_RIORDIAN_ADW_TEACHPOTION_10_05.wav
   315 KB    2021-04-16    20:32:30
Plik:DIA_ADDON_RIORDIAN_ADW_TEACHPOTION_10_06.wav
   268 KB    2021-04-16    20:32:30
Plik:DIA_ADDON_RIORDIAN_ADW_TEACHPOTION_10_07.wav
   543 KB    2021-04-16    20:32:30
Plik:DIA_ADDON_RIORDIAN_ADW_TEACHPOTION_10_08.wav
   638 KB    2021-04-16    20:32:30
Plik:DIA_ADDON_RIORDIAN_ADW_TEACHPOTION_10_09.wav
   605 KB    2021-04-16    20:32:30
Plik:DIA_ADDON_RIORDIAN_ADW_TEACHPOTION_10_10.wav
   456 KB    2021-04-16    20:32:30
Plik:DIA_ADDON_RIORDIAN_ADW_TEACHPOTION_10_11.wav
   503 KB    2021-04-16    20:32:30
Plik:DIA_ADDON_RIORDIAN_ADW_TEACHPOTION_10_12.wav
   485 KB    2021-04-16    20:32:30
Plik:DIA_ADDON_SATURAS_NOGUILD_14_02.wav
   455 KB    2021-02-24    21:17:15
Plik:DIA_ADDON_SATURAS_NOGUILD_14_03.wav
   585 KB    2021-02-24    21:17:15
Plik:DIA_ADDON_SATURAS_NOGUILD_14_04.wav
   314 KB    2021-02-24    21:17:15
Plik:DIA_ADDON_SATURAS_NOGUILD_15_01.wav
   331 KB    2021-02-24    21:17:15
Plik:DIA_ADDON_VATRAS_NOGIULD_05_02.wav
   435 KB    2021-02-24    19:13:02
Plik:DIA_ADDON_VATRAS_NOGIULD_05_03.wav
   167 KB    2021-02-24    19:13:02
Plik:DIA_ADDON_VATRAS_NOGIULD_05_04.wav
   573 KB    2021-02-24    19:13:02
Plik:DIA_ADDON_VATRAS_NOGIULD_05_05.wav
   708 KB    2021-02-24    19:13:02
Plik:DIA_ADDON_VATRAS_NOGIULD_05_06.wav
   549 KB    2021-02-24    19:13:03
Plik:DIA_ADDON_VATRAS_NOGIULD_05_07.wav
   635 KB    2021-02-24    19:13:03
Plik:DIA_ADDON_VATRAS_NOGIULD_05_08.wav
   550 KB    2021-02-24    19:13:03
Plik:DIA_ADDON_VATRAS_NOGIULD_15_01.wav
   286 KB    2021-02-24    19:13:03
Plik:DIA_ALLIGATORJACK_TROPHY_11_01.wav
   429 KB    2021-03-01    18:18:56
Plik:DIA_ALLIGATORJACK_TROPHY_11_02.wav
   551 KB    2021-03-01    18:18:56
Plik:DIA_ALLIGATORJACK_TROPHY_11_03.wav
   723 KB    2021-03-01    18:18:56
Plik:DIA_ALLIGATORJACK_TROPHY_11_04.wav
   683 KB    2021-03-01    18:18:56
Plik:DIA_ALLIGATORJACK_TROPHY_11_05.wav
   647 KB    2021-03-01    18:18:56
Plik:DIA_ALLIGATORJACK_TROPHY_11_06.wav
   588 KB    2021-03-01    18:18:56
Plik:DIA_ALLIGATORJACK_TROPHY_11_07.wav
   646 KB    2021-03-01    18:18:56
Plik:DIA_ANDRE_JOINM_08_10.wav
   350 KB    2021-02-25    18:07:26
Plik:DIA_ANDRE_JOINM_08_11.wav
   287 KB    2021-02-25    18:07:26
Plik:DIA_ANDRE_JOINM_08_12.wav
   302 KB    2021-02-25    18:07:26
Plik:DIA_ANDRE_JOINM_15_09.wav
   195 KB    2021-02-25    18:07:26
Plik:DIA_ANDRE_JOINT_08_10.wav
   549 KB    2021-02-25    18:07:26
Plik:DIA_ANDRE_JOINT_08_11.wav
   389 KB    2021-02-25    18:07:26
Plik:DIA_ANDRE_JOINT_08_12.wav
   520 KB    2021-02-25    18:07:26
Plik:DIA_ANDRE_JOINT_15_09.wav
   246 KB    2021-02-25    18:07:26
Plik:DIA_BOSPER_TROPHY_11_01.wav
   591 KB    2021-02-24    17:27:59
Plik:DIA_BOSPER_TROPHY_11_02.wav
   621 KB    2021-02-24    17:27:59
Plik:DIA_BOSPER_TROPHY_11_03.wav
   697 KB    2021-02-24    17:27:59
Plik:DIA_BOSPER_TROPHY_11_04.wav
   825 KB    2021-02-24    17:27:59
Plik:DIA_BOSPER_TROPHY_11_05.wav
   707 KB    2021-02-24    17:27:59
Plik:DIA_BOSPER_TROPHY_11_07.wav
   784 KB    2021-02-24    17:27:59
Plik:DIA_CARL_SMITHWEAPON_05_01.wav
   964 KB    2021-04-16    21:39:17
Plik:DIA_CARL_SMITHWEAPON_05_02.wav
   630 KB    2021-04-16    21:39:17
Plik:DIA_CARL_SMITHWEAPON_05_03.wav
   722 KB    2021-04-16    21:39:17
Plik:DIA_CARL_SMITH_05_01.wav
   189 KB    2021-04-17    13:02:07
Plik:DIA_CARL_SMITH_05_02.wav
   413 KB    2021-04-17    13:02:07
Plik:DIA_CARL_SMITH_05_03.wav
   277 KB    2021-04-17    13:02:07
Plik:DIA_CONSTANTINO_SELL_11_01.wav
   232 KB    2021-03-06    13:44:25
Plik:DIA_CONSTANTINO_SELL_11_02.wav
   138 KB    2021-03-06    13:44:25
Plik:DIA_CONSTANTINO_SELL_11_03.wav
   178 KB    2021-03-06    13:44:25
Plik:DIA_CONSTANTINO_SELL_11_04.wav
   258 KB    2021-03-06    13:44:25
Plik:DIA_CONSTANTINO_SELL_11_05.wav
   122 KB    2021-03-06    13:44:25
Plik:DIA_CONSTANTINO_SELL_11_06.wav
   147 KB    2021-03-06    13:44:26
Plik:DIA_CONSTANTINO_SELL_11_07.wav
   357 KB    2021-03-06    13:44:26
Plik:DIA_CONSTANTINO_SELL_11_08.wav
   269 KB    2021-03-06    13:44:26
Plik:DIA_CONSTANTINO_SELL_11_09.wav
   194 KB    2021-03-06    13:44:26
Plik:DIA_CONSTANTINO_SELL_11_10.wav
   164 KB    2021-03-06    13:44:26
Plik:DIA_CONSTANTINO_SELL_11_11.wav
   217 KB    2021-03-06    13:44:26
Plik:DIA_CONSTANTINO_SELL_11_12.wav
   173 KB    2021-03-06    13:44:26
Plik:DIA_CONSTANTINO_SELL_11_13.wav
   264 KB    2021-03-06    13:44:26
Plik:DIA_CONSTANTINO_SELL_11_14.wav
   84 KB    2021-03-06    13:44:26
Plik:DIA_CONSTANTINO_SELL_11_15.wav
   108 KB    2021-03-06    13:44:26
Plik:DIA_CONSTANTINO_SELL_11_16.wav
   136 KB    2021-03-06    13:44:26
Plik:DIA_CONSTANTINO_SELL_11_17.wav
   225 KB    2021-03-06    13:44:26
Plik:DIA_CONSTANTINO_SELL_11_18.wav
   235 KB    2021-03-06    13:44:26
Plik:DIA_CONSTANTINO_SELL_11_19.wav
   307 KB    2021-03-06    13:44:26
Plik:DIA_CONSTANTINO_SELL_11_20.wav
   447 KB    2021-03-06    13:44:26
Plik:DIA_CONSTANTINO_SELL_11_21.wav
   292 KB    2021-03-06    13:44:26
Plik:DIA_CONSTANTINO_SELL_15_00.wav
   147 KB    2021-03-06    13:44:26
Plik:DIA_CONSTANTINO_TROPHY_10_01.wav
   525 KB    2021-03-06    13:44:26
Plik:DIA_CONSTANTINO_TROPHY_10_02.wav
   486 KB    2021-03-06    13:44:26
Plik:DIA_CONSTANTINO_TROPHY_10_03.wav
   351 KB    2021-03-06    13:44:26
Plik:DIA_CONSTANTINO_TROPHY_15_00.wav
   107 KB    2021-03-06    13:44:26
Plik:DIA_DRAGOMIR_SHIELD_12_01.wav
   290 KB    2021-02-28    16:28:27
Plik:DIA_DRAGOMIR_SHIELD_12_02.wav
   312 KB    2021-02-28    16:28:27
Plik:DIA_DRAGOMIR_SHIELD_12_03.wav
   493 KB    2021-02-28    16:28:27
Plik:DIA_DRAGOMIR_TEACHER_12_01.wav
   221 KB    2021-02-28    16:28:27
Plik:DIA_DRAGOMIR_TEACHER_12_02.wav
   420 KB    2021-02-28    16:28:27
Plik:DIA_DRAGOMIR_TEACHER_15_00.wav
   294 KB    2021-02-28    16:28:27
Plik:DIA_ELIRENA_R5_3_15_03.WAV
   12 KB    2005-01-14    04:40:46
Plik:DIA_Elirena_AW_My_Trophy_99_01.wav
   330 KB    2021-01-06    12:49:25
Plik:DIA_Elirena_Hello_15_00.wav
   93 KB    2021-01-05    18:29:17
Plik:DIA_Elirena_Hello_99_01.wav
   635 KB    2021-01-05    18:29:52
Plik:DIA_Elirena_Hello_99_02.wav
   647 KB    2021-01-05    18:30:16
Plik:DIA_Elirena_Hello_99_03.wav
   147 KB    2021-01-05    18:30:44
Plik:DIA_Elirena_Hello_99_04.wav
   504 KB    2021-01-05    18:31:55
Plik:DIA_Elirena_Hello_99_05.wav
   504 KB    2021-01-05    18:32:19
Plik:DIA_Elirena_Hello_99_06.wav
   224 KB    2021-01-05    18:32:33
Plik:DIA_Elirena_Hello_AW_15_00.wav
   82 KB    2021-01-06    11:13:20
Plik:DIA_Elirena_Hello_AW_99_01.wav
   444 KB    2021-01-06    13:02:19
Plik:DIA_Elirena_Hello_AW_99_02.wav
   522 KB    2021-01-06    11:14:59
Plik:DIA_Elirena_Hello_AW_99_03.wav
   277 KB    2021-01-06    11:16:24
Plik:DIA_Elirena_Hello_AW_99_04.wav
   269 KB    2021-01-06    11:18:11
Plik:DIA_Elirena_Hello_AW_99_05.wav
   468 KB    2021-01-06    11:18:30
Plik:DIA_Elirena_Hello_AW_99_06.wav
   290 KB    2021-01-06    11:18:59
Plik:DIA_Elirena_Hello_OW_15_00.wav
   80 KB    2021-01-06    11:36:25
Plik:DIA_Elirena_Hello_OW_99_01.wav
   442 KB    2021-01-06    11:37:35
Plik:DIA_Elirena_Hello_OW_99_02.wav
   501 KB    2021-01-06    11:38:10
Plik:DIA_Elirena_Hello_OW_99_03.wav
   472 KB    2021-01-06    11:39:08
Plik:DIA_Elirena_Hello_OW_99_04.wav
   270 KB    2021-01-06    11:39:26
Plik:DIA_Elirena_Hello_OW_99_05.wav
   424 KB    2021-01-06    11:39:41
Plik:DIA_Elirena_Hello_OW_99_06.wav
   157 KB    2021-01-06    11:40:45
Plik:DIA_Elirena_Hi_15_00.wav
   74 KB    2021-01-05    18:24:19
Plik:DIA_Elirena_Hi_99_01.wav
   428 KB    2021-01-05    18:18:32
Plik:DIA_Elirena_Hi_99_02.wav
   448 KB    2021-01-05    18:20:08
Plik:DIA_Elirena_Hi_99_03.wav
   898 KB    2021-01-05    18:21:03
Plik:DIA_Elirena_Hi_99_04.wav
   351 KB    2021-01-05    18:21:42
Plik:DIA_Elirena_Hi_99_05.wav
   535 KB    2021-01-05    18:22:06
Plik:DIA_Elirena_Hi_99_06.wav
   668 KB    2021-01-05    18:23:20
Plik:DIA_Elirena_My_Trophy10_15_00.wav
   181 KB    2021-01-06    13:17:25
Plik:DIA_Elirena_My_Trophy11_15_00.wav
   195 KB    2021-01-06    13:19:03
Plik:DIA_Elirena_My_Trophy12_15_00.wav
   144 KB    2021-01-06    13:20:05
Plik:DIA_Elirena_My_Trophy13_15_00.wav
   134 KB    2021-01-06    13:21:32
Plik:DIA_Elirena_My_Trophy14_15_00.wav
   135 KB    2021-01-06    13:23:50
Plik:DIA_Elirena_My_Trophy15_15_00.wav
   179 KB    2021-01-06    13:25:36
Plik:DIA_Elirena_My_Trophy16_15_00.wav
   177 KB    2021-01-06    13:26:58
Plik:DIA_Elirena_My_Trophy17_15_00.wav
   175 KB    2021-01-06    13:28:41
Plik:DIA_Elirena_My_Trophy18_15_00.wav
   172 KB    2021-01-06    13:30:08
Plik:DIA_Elirena_My_Trophy19_15_00.wav
   185 KB    2021-01-06    13:34:43
Plik:DIA_Elirena_My_Trophy1_15_00.wav
   148 KB    2021-01-06    12:48:26
Plik:DIA_Elirena_My_Trophy20_15_00.wav
   128 KB    2021-01-06    13:36:00
Plik:DIA_Elirena_My_Trophy21_15_00.wav
   158 KB    2021-01-06    13:37:30
Plik:DIA_Elirena_My_Trophy22_15_00.wav
   165 KB    2021-01-06    13:38:57
Plik:DIA_Elirena_My_Trophy23_15_00.wav
   145 KB    2021-01-06    13:40:53
Plik:DIA_Elirena_My_Trophy24_15_00.wav
   189 KB    2021-01-06    13:42:11
Plik:DIA_Elirena_My_Trophy25_15_00.wav
   170 KB    2021-01-06    13:43:44
Plik:DIA_Elirena_My_Trophy26_15_00.wav
   169 KB    2021-01-06    13:45:32
Plik:DIA_Elirena_My_Trophy27_15_00.wav
   184 KB    2021-01-06    13:46:48
Plik:DIA_Elirena_My_Trophy28_15_00.wav
   179 KB    2021-01-06    13:48:19
Plik:DIA_Elirena_My_Trophy29_15_00.wav
   192 KB    2021-01-06    13:50:07
Plik:DIA_Elirena_My_Trophy2_15_00.wav
   134 KB    2021-01-06    13:05:38
Plik:DIA_Elirena_My_Trophy30_15_00.wav
   138 KB    2021-01-06    13:51:19
Plik:DIA_Elirena_My_Trophy31_15_00.wav
   164 KB    2021-01-06    13:52:28
Plik:DIA_Elirena_My_Trophy32_15_00.wav
   187 KB    2021-02-25    22:07:59
Plik:DIA_Elirena_My_Trophy33_15_00.wav
   187 KB    2021-02-25    22:09:33
Plik:DIA_Elirena_My_Trophy3_15_00.wav
   176 KB    2021-01-06    13:07:01
Plik:DIA_Elirena_My_Trophy4_15_00.wav
   178 KB    2021-01-06    13:08:10
Plik:DIA_Elirena_My_Trophy5_15_00.wav
   135 KB    2021-01-06    13:09:20
Plik:DIA_Elirena_My_Trophy6_15_00.wav
   135 KB    2021-01-06    13:10:24
Plik:DIA_Elirena_My_Trophy7_15_00.wav
   163 KB    2021-01-06    13:11:31
Plik:DIA_Elirena_My_Trophy8_15_00.wav
   133 KB    2021-01-06    13:13:19
Plik:DIA_Elirena_My_Trophy9_15_00.wav
   150 KB    2021-01-06    13:15:15
Plik:DIA_Elirena_My_Trophy_99_01.wav
   330 KB    2021-01-06    12:49:25
Plik:DIA_Elirena_OW_My_Trophy_99_01.wav
   330 KB    2021-01-06    12:49:25
Plik:DIA_Elirena_R1_1_15_00.wav
   93 KB    2021-01-05    18:38:01
Plik:DIA_Elirena_R1_1_99_01.wav
   518 KB    2021-01-05    18:40:59
Plik:DIA_Elirena_R1_1_99_02.wav
   387 KB    2021-01-05    18:41:38
Plik:DIA_Elirena_R1_1_99_03.wav
   289 KB    2021-01-05    18:42:40
Plik:DIA_Elirena_R1_1_End_15_00.wav
   139 KB    2021-01-05    18:44:44
Plik:DIA_Elirena_R1_1_End_99_01.wav
   283 KB    2021-01-05    18:45:13
Plik:DIA_Elirena_R1_2_15_00.wav
   131 KB    2021-01-05    18:45:57
Plik:DIA_Elirena_R1_2_99_01.wav
   450 KB    2021-01-05    18:46:57
Plik:DIA_Elirena_R1_2_99_02.wav
   560 KB    2021-01-05    18:47:22
Plik:DIA_Elirena_R1_2_99_03.wav
   199 KB    2021-01-05    18:47:41
Plik:DIA_Elirena_R1_2_99_04.wav
   303 KB    2021-01-05    18:47:58
Plik:DIA_Elirena_R1_2_End_15_00.wav
   201 KB    2021-01-05    18:49:47
Plik:DIA_Elirena_R1_2_End_99_01.wav
   274 KB    2021-01-05    18:50:05
Plik:DIA_Elirena_R1_3_15_00.wav
   132 KB    2021-01-05    18:51:05
Plik:DIA_Elirena_R1_3_99_01.wav
   392 KB    2021-01-05    18:52:03
Plik:DIA_Elirena_R1_3_99_02.wav
   345 KB    2021-01-05    18:52:18
Plik:DIA_Elirena_R1_3_99_03.wav
   257 KB    2021-01-05    18:52:51
Plik:DIA_Elirena_R1_3_99_04.wav
   306 KB    2021-01-05    18:53:34
Plik:DIA_Elirena_R1_3_99_05.wav
   386 KB    2021-01-05    18:53:57
Plik:DIA_Elirena_R1_3_99_06.wav
   299 KB    2021-01-05    18:54:30
Plik:DIA_Elirena_R1_3_End_15_00.wav
   158 KB    2021-01-05    18:55:59
Plik:DIA_Elirena_R1_3_End_99_01.wav
   263 KB    2021-01-05    18:56:17
Plik:DIA_Elirena_R2_1_15_00.wav
   132 KB    2021-01-05    18:51:05
Plik:DIA_Elirena_R2_1_99_01.wav
   430 KB    2021-01-05    18:57:59
Plik:DIA_Elirena_R2_1_99_02.wav
   219 KB    2021-01-05    18:58:27
Plik:DIA_Elirena_R2_1_99_03.wav
   381 KB    2021-04-16    21:48:09
Plik:DIA_Elirena_R2_1_99_04.wav
   169 KB    2021-04-16    21:51:32
Plik:DIA_Elirena_R2_1_99_05.wav
   475 KB    2021-01-05    19:03:41
Plik:DIA_Elirena_R2_1_99_06.wav
   335 KB    2021-01-05    19:06:42
Plik:DIA_Elirena_R2_1_99_07.wav
   299 KB    2021-01-05    18:54:30
Plik:DIA_Elirena_R2_1_End_15_00.wav
   200 KB    2021-01-05    19:08:29
Plik:DIA_Elirena_R2_1_End_99_01.wav
   263 KB    2021-01-05    18:56:17
Plik:DIA_Elirena_R2_2_15_00.wav
   132 KB    2021-01-05    18:51:05
Plik:DIA_Elirena_R2_2_99_01.wav
   232 KB    2021-01-05    19:38:32
Plik:DIA_Elirena_R2_2_99_02.wav
   408 KB    2021-01-05    19:39:12
Plik:DIA_Elirena_R2_2_99_03.wav
   292 KB    2021-01-05    19:40:42
Plik:DIA_Elirena_R2_2_99_04.wav
   378 KB    2021-01-05    19:40:23
Plik:DIA_Elirena_R2_2_99_05.wav
   318 KB    2021-01-05    19:41:03
Plik:DIA_Elirena_R2_2_99_06.wav
   262 KB    2021-01-05    19:41:21
Plik:DIA_Elirena_R2_2_99_07.wav
   299 KB    2021-01-05    18:54:30
Plik:DIA_Elirena_R2_2_End_15_00.wav
   155 KB    2021-01-05    19:43:03
Plik:DIA_Elirena_R2_2_End_99_01.wav
   82 KB    2021-01-05    19:43:17
Plik:DIA_Elirena_R2_2_End_99_02.wav
   663 KB    2021-01-05    19:45:11
Plik:DIA_Elirena_R2_2_End_99_03.wav
   146 KB    2021-01-05    19:45:32
Plik:DIA_Elirena_R2_3_15_00.wav
   132 KB    2021-01-05    18:51:05
Plik:DIA_Elirena_R2_3_99_01.wav
   496 KB    2021-01-06    11:41:36
Plik:DIA_Elirena_R2_3_99_02.wav
   583 KB    2021-01-06    11:41:53
Plik:DIA_Elirena_R2_3_99_03.wav
   502 KB    2021-01-06    11:44:04
Plik:DIA_Elirena_R2_3_99_04.wav
   638 KB    2021-01-06    11:44:53
Plik:DIA_Elirena_R2_3_99_05.wav
   578 KB    2021-01-06    11:45:35
Plik:DIA_Elirena_R2_3_99_06.wav
   299 KB    2021-01-05    18:54:30
Plik:DIA_Elirena_R2_3_End_15_00.wav
   167 KB    2021-01-06    11:47:04
Plik:DIA_Elirena_R2_3_End_99_01.wav
   78 KB    2021-01-06    11:47:17
Plik:DIA_Elirena_R2_3_End_99_02.wav
   600 KB    2021-01-06    11:47:54
Plik:DIA_Elirena_R2_3_End_99_03.wav
   141 KB    2021-01-06    11:48:05
Plik:DIA_Elirena_R3_1_15_00.wav
   132 KB    2021-01-05    18:51:05
Plik:DIA_Elirena_R3_1_99_01.wav
   378 KB    2021-01-05    19:47:40
Plik:DIA_Elirena_R3_1_99_02.wav
   291 KB    2021-01-05    19:48:07
Plik:DIA_Elirena_R3_1_99_03.wav
   156 KB    2021-01-05    19:49:18
Plik:DIA_Elirena_R3_1_99_04.wav
   263 KB    2021-01-05    19:49:35
Plik:DIA_Elirena_R3_1_99_05.wav
   443 KB    2021-01-05    19:49:55
Plik:DIA_Elirena_R3_1_99_06.wav
   299 KB    2021-01-05    18:54:30
Plik:DIA_Elirena_R3_1_End_15_00.wav
   158 KB    2021-01-05    19:51:37
Plik:DIA_Elirena_R3_1_End_99_01.wav
   85 KB    2021-01-05    19:51:53
Plik:DIA_Elirena_R3_1_End_99_02.wav
   409 KB    2021-01-05    19:54:27
Plik:DIA_Elirena_R3_1_End_99_03.wav
   296 KB    2021-01-05    19:55:26
Plik:DIA_Elirena_R3_1_End_99_04.wav
   149 KB    2021-01-05    19:55:38
Plik:DIA_Elirena_R3_2_15_00.wav
   132 KB    2021-01-05    18:51:05
Plik:DIA_Elirena_R3_2_99_01.wav
   416 KB    2021-01-06    11:20:29
Plik:DIA_Elirena_R3_2_99_02.wav
   120 KB    2021-01-06    11:20:48
Plik:DIA_Elirena_R3_2_99_03.wav
   493 KB    2021-01-06    11:21:08
Plik:DIA_Elirena_R3_2_99_04.wav
   332 KB    2021-01-06    11:22:02
Plik:DIA_Elirena_R3_2_99_05.wav
   340 KB    2021-01-06    11:22:18
Plik:DIA_Elirena_R3_2_99_06.wav
   617 KB    2021-01-06    11:22:40
Plik:DIA_Elirena_R3_2_99_07.wav
   299 KB    2021-01-05    18:54:30
Plik:DIA_Elirena_R3_2_End_15_00.wav
   206 KB    2021-01-06    11:24:35
Plik:DIA_Elirena_R3_2_End_99_01.wav
   263 KB    2021-01-05    18:56:17
Plik:DIA_Elirena_R3_3_15_00.wav
   132 KB    2021-01-05    18:51:05
Plik:DIA_Elirena_R3_3_99_01.wav
   404 KB    2021-01-06    11:25:45
Plik:DIA_Elirena_R3_3_99_02.wav
   586 KB    2021-01-06    11:26:02
Plik:DIA_Elirena_R3_3_99_03.wav
   288 KB    2021-01-06    11:26:33
Plik:DIA_Elirena_R3_3_99_04.wav
   728 KB    2021-01-06    11:26:55
Plik:DIA_Elirena_R3_3_99_05.wav
   221 KB    2021-01-06    11:27:17
Plik:DIA_Elirena_R3_3_99_06.wav
   487 KB    2021-01-06    11:29:05
Plik:DIA_Elirena_R3_3_99_07.wav
   504 KB    2021-01-06    11:30:13
Plik:DIA_Elirena_R3_3_99_08.wav
   299 KB    2021-01-05    18:54:30
Plik:DIA_Elirena_R3_3_End_15_00.wav
   168 KB    2021-01-06    11:31:37
Plik:DIA_Elirena_R3_3_End_99_01.wav
   84 KB    2021-01-06    11:31:51
Plik:DIA_Elirena_R3_3_End_99_02.wav
   841 KB    2021-01-06    11:33:28
Plik:DIA_Elirena_R3_3_End_99_03.wav
   144 KB    2021-01-06    11:33:55
Plik:DIA_Elirena_R4_1_15_00.wav
   132 KB    2021-01-05    18:51:05
Plik:DIA_Elirena_R4_1_99_01.wav
   443 KB    2021-01-06    11:49:40
Plik:DIA_Elirena_R4_1_99_02.wav
   380 KB    2021-01-06    11:50:15
Plik:DIA_Elirena_R4_1_99_03.wav
   434 KB    2021-01-06    11:50:31
Plik:DIA_Elirena_R4_1_99_04.wav
   602 KB    2021-01-06    11:51:13
Plik:DIA_Elirena_R4_1_99_05.wav
   407 KB    2021-01-06    11:52:27
Plik:DIA_Elirena_R4_1_End_15_00.wav
   161 KB    2021-01-06    11:53:58
Plik:DIA_Elirena_R4_1_End_99_01.wav
   263 KB    2021-01-05    18:56:17
Plik:DIA_Elirena_R4_2_15_00.wav
   132 KB    2021-01-05    18:51:05
Plik:DIA_Elirena_R4_2_99_01.wav
   463 KB    2021-01-06    11:56:00
Plik:DIA_Elirena_R4_2_99_02.wav
   762 KB    2021-01-06    11:57:14
Plik:DIA_Elirena_R4_2_99_03.wav
   442 KB    2021-01-06    11:57:34
Plik:DIA_Elirena_R4_2_99_04.wav
   612 KB    2021-01-06    11:58:23
Plik:DIA_Elirena_R4_2_99_05.wav
   345 KB    2021-01-06    11:58:40
Plik:DIA_Elirena_R4_2_99_06.wav
   573 KB    2021-01-06    11:59:32
Plik:DIA_Elirena_R4_2_99_07.wav
   531 KB    2021-01-06    12:00:26
Plik:DIA_Elirena_R4_2_99_08.wav
   299 KB    2021-01-05    18:54:30
Plik:DIA_Elirena_R4_2_End_15_00.wav
   141 KB    2021-01-06    12:01:44
Plik:DIA_Elirena_R4_2_End_99_01.wav
   263 KB    2021-01-05    18:56:17
Plik:DIA_Elirena_R4_3_15_00.wav
   132 KB    2021-01-05    18:51:05
Plik:DIA_Elirena_R4_3_99_01.wav
   277 KB    2021-01-06    12:03:07
Plik:DIA_Elirena_R4_3_99_02.wav
   599 KB    2021-01-06    12:03:31
Plik:DIA_Elirena_R4_3_99_03.wav
   619 KB    2021-01-06    12:04:30
Plik:DIA_Elirena_R4_3_99_04.wav
   317 KB    2021-01-06    12:04:53
Plik:DIA_Elirena_R4_3_99_05.wav
   947 KB    2021-01-06    12:06:21
Plik:DIA_Elirena_R4_3_99_06.wav
   713 KB    2021-01-06    12:07:21
Plik:DIA_Elirena_R4_3_99_07.wav
   299 KB    2021-01-05    18:54:30
Plik:DIA_Elirena_R4_3_End_15_00.wav
   189 KB    2021-01-06    12:08:46
Plik:DIA_Elirena_R4_3_End_99_01.wav
   88 KB    2021-01-06    12:08:59
Plik:DIA_Elirena_R4_3_End_99_02.wav
   660 KB    2021-01-06    12:11:24
Plik:DIA_Elirena_R4_3_End_99_03.wav
   146 KB    2021-01-06    12:11:37
Plik:DIA_Elirena_R5_1_15_00.wav
   132 KB    2021-01-05    18:51:05
Plik:DIA_Elirena_R5_1_99_01.wav
   475 KB    2021-01-05    19:57:09
Plik:DIA_Elirena_R5_1_99_02.wav
   353 KB    2021-01-05    19:57:30
Plik:DIA_Elirena_R5_1_99_03.wav
   614 KB    2021-01-05    20:06:11
Plik:DIA_Elirena_R5_1_99_04.wav
   502 KB    2021-01-05    20:06:31
Plik:DIA_Elirena_R5_1_99_05.wav
   490 KB    2021-01-05    20:06:48
Plik:DIA_Elirena_R5_1_99_06.wav
   561 KB    2021-01-05    20:07:24
Plik:DIA_Elirena_R5_1_99_07.wav
   320 KB    2021-01-05    20:07:59
Plik:DIA_Elirena_R5_1_99_08.wav
   473 KB    2021-01-05    20:08:20
Plik:DIA_Elirena_R5_1_99_09.wav
   299 KB    2021-01-05    18:54:30
Plik:DIA_Elirena_R5_1_End_15_00.wav
   245 KB    2021-01-05    20:10:35
Plik:DIA_Elirena_R5_1_End_99_01.wav
   83 KB    2021-01-05    20:10:57
Plik:DIA_Elirena_R5_1_End_99_02.wav
   475 KB    2021-01-05    20:11:19
Plik:DIA_Elirena_R5_1_End_99_03.wav
   147 KB    2021-01-05    20:11:35
Plik:DIA_Elirena_R5_2_15_00.wav
   132 KB    2021-01-05    18:51:05
Plik:DIA_Elirena_R5_2_99_01.wav
   351 KB    2021-01-06    12:13:55
Plik:DIA_Elirena_R5_2_99_02.wav
   446 KB    2021-01-06    12:14:17
Plik:DIA_Elirena_R5_2_99_03.wav
   677 KB    2021-01-06    12:15:12
Plik:DIA_Elirena_R5_2_99_04.wav
   539 KB    2021-01-06    12:15:46
Plik:DIA_Elirena_R5_2_99_05.wav
   387 KB    2021-01-06    12:16:00
Plik:DIA_Elirena_R5_2_99_06.wav
   367 KB    2021-01-06    12:16:18
Plik:DIA_Elirena_R5_2_99_07.wav
   741 KB    2021-01-06    12:17:03
Plik:DIA_Elirena_R5_2_99_08.wav
   260 KB    2021-01-06    12:17:18
Plik:DIA_Elirena_R5_2_99_09.wav
   965 KB    2021-01-06    12:18:42
Plik:DIA_Elirena_R5_2_99_10.wav
   377 KB    2021-01-06    12:19:16
Plik:DIA_Elirena_R5_2_99_11.wav
   299 KB    2021-01-05    18:54:30
Plik:DIA_Elirena_R5_2_End_15_00.wav
   221 KB    2021-01-06    12:22:45
Plik:DIA_Elirena_R5_2_End_99_01.wav
   263 KB    2021-01-05    18:56:17
Plik:DIA_Elirena_R5_3_15_00.wav
   132 KB    2021-01-05    18:51:05
Plik:DIA_Elirena_R5_3_99_01.wav
   358 KB    2021-01-06    12:23:44
Plik:DIA_Elirena_R5_3_99_02.wav
   389 KB    2021-01-06    12:24:14
Plik:DIA_Elirena_R5_3_99_03.wav
   35 KB    2021-01-06    12:26:10
Plik:DIA_Elirena_R5_3_99_04.wav
   553 KB    2021-01-06    12:26:45
Plik:DIA_Elirena_R5_3_99_05.wav
   559 KB    2021-01-06    12:27:39
Plik:DIA_Elirena_R5_3_99_06.wav
   300 KB    2021-01-06    12:28:22
Plik:DIA_Elirena_R5_3_99_07.wav
   373 KB    2021-01-06    12:28:48
Plik:DIA_Elirena_R5_3_99_08.wav
   374 KB    2021-01-06    12:29:50
Plik:DIA_Elirena_R5_3_99_09.wav
   232 KB    2021-01-06    12:30:35
Plik:DIA_Elirena_R5_3_99_10.wav
   284 KB    2021-01-06    12:31:01
Plik:DIA_Elirena_R5_3_99_11.wav
   299 KB    2021-01-05    18:54:30
Plik:DIA_Elirena_R5_3_End_15_00.wav
   156 KB    2021-01-06    12:32:48
Plik:DIA_Elirena_R5_3_End_99_01.wav
   263 KB    2021-01-06    12:37:12
Plik:DIA_Elirena_R5_3_End_99_02.wav
   510 KB    2021-01-06    12:40:23
Plik:DIA_Elirena_R5_3_End_99_03.wav
   490 KB    2021-01-06    12:40:43
Plik:DIA_Elirena_R5_3_End_99_04.wav
   306 KB    2021-01-06    12:40:59
Plik:DIA_Elirena_Trophy_15_00.wav
   136 KB    2021-01-05    18:33:56
Plik:DIA_Elirena_Trophy_99_01.wav
   366 KB    2021-01-05    18:34:23
Plik:DIA_Elirena_Trophy_99_02.wav
   403 KB    2021-01-05    18:34:46
Plik:DIA_Elirena_Trophy_99_03.wav
   175 KB    2021-01-05    18:35:01
Plik:DIA_Elirena_Trophy_99_04.wav
   227 KB    2021-01-05    18:35:19
Plik:DIA_Elirena_Trophy_99_05.wav
   330 KB    2021-01-05    18:35:34
Plik:DIA_Elirena_Trophy_99_06.wav
   296 KB    2021-01-05    18:35:57
Plik:DIA_JAN_ZUSTIMMUNG_11_04.wav
   1235 KB    2021-03-04    18:28:36
Plik:DIA_LANCE_HI_08_01.wav
   175 KB    2021-04-18    11:14:28
Plik:DIA_LANCE_HI_08_03.wav
   99 KB    2021-04-18    11:15:50
Plik:DIA_LANCE_HI_08_05.wav
   83 KB    2021-04-18    11:16:16
Plik:DIA_LANCE_HI_15_00.wav
   216 KB    2021-04-18    11:06:34
Plik:DIA_LANCE_HI_15_02.wav
   102 KB    2021-04-18    11:07:00
Plik:DIA_LANCE_HI_15_04.wav
   82 KB    2021-04-18    11:08:09
Plik:DIA_LANCE_TRADE_08_01.wav
   177 KB    2021-04-17    15:04:19
Plik:DIA_LANCE_TRADE_08_02.wav
   434 KB    2021-04-17    15:25:46
Plik:DIA_LANCE_TRADE_08_03.wav
   206 KB    2021-04-17    15:01:09
Plik:DIA_LANCE_TRADE_08_04.wav
   441 KB    2021-04-17    15:29:44
Plik:DIA_LANCE_TRADE_08_05.wav
   164 KB    2021-04-17    15:06:08
Plik:DIA_LANCE_TRADE_08_06.wav
   318 KB    2021-04-17    15:19:44
Plik:DIA_LANCE_TRADE_08_07.wav
   208 KB    2021-04-17    15:08:36
Plik:DIA_LANCE_TRADE_08_08.wav
   305 KB    2021-04-17    15:17:49
Plik:DIA_LANCE_TRADE_08_09.wav
   171 KB    2021-04-17    15:11:11
Plik:DIA_LANCE_TRADE_08_10.wav
   319 KB    2021-04-17    15:15:20
Plik:DIA_LANCE_TRADE_15_11.WAV
   27 KB    2003-03-27    20:43:14
Plik:DIA_LANCE_WHAT_08_01.wav
   121 KB    2021-04-18    11:20:44
Plik:DIA_LANCE_WHAT_08_03.wav
   108 KB    2021-04-18    11:21:05
Plik:DIA_LANCE_WHAT_08_05.wav
   315 KB    2021-04-18    11:21:28
Plik:DIA_LANCE_WHAT_15_00.wav
   91 KB    2021-04-18    11:11:22
Plik:DIA_LANCE_WHAT_15_02.wav
   57 KB    2021-04-18    11:12:04
Plik:DIA_LANCE_WHAT_15_04.wav
   83 KB    2021-04-18    11:12:59
Plik:DIA_LANCE_WHAT_15_06.wav
   113 KB    2021-04-18    11:13:43
Plik:DIA_LANCE_WHO_08_01.wav
   104 KB    2021-04-18    11:19:01
Plik:DIA_LANCE_WHO_08_03.wav
   99 KB    2021-04-18    11:19:35
Plik:DIA_LANCE_WHO_08_05.wav
   112 KB    2021-04-18    11:19:52
Plik:DIA_LANCE_WHO_15_00.wav
   71 KB    2021-04-18    11:08:47
Plik:DIA_LANCE_WHO_15_02.wav
   94 KB    2021-04-18    11:10:08
Plik:DIA_LANCE_WHO_15_04.wav
   137 KB    2021-04-18    11:10:46
Plik:DIA_MATTEO_LEHRLING_11_01.wav
   432 KB    2021-02-23    20:13:38
Plik:DIA_MATTEO_LEHRLING_11_02.wav
   220 KB    2021-02-23    20:13:38
Plik:DIA_MATTEO_LEHRLING_11_03.wav
   280 KB    2021-02-23    20:13:38
Plik:DIA_MATTEO_LEHRLING_11_04.wav
   353 KB    2021-02-23    20:13:38
Plik:DIA_MATTEO_LEHRLING_11_05.wav
   245 KB    2021-02-23    20:13:38
Plik:DIA_MATTEO_LEHRLING_11_06.wav
   297 KB    2021-02-23    20:13:38
Plik:DIA_MATTEO_LEHRLING_11_07.wav
   223 KB    2021-02-23    20:13:38
Plik:DIA_MATTEO_LEHRLING_11_08.wav
   500 KB    2021-02-23    20:13:38
Plik:DIA_MATTEO_LEHRLING_11_09.wav
   486 KB    2021-02-23    20:13:38
Plik:DIA_MATTEO_LEHRLING_11_10.wav
   290 KB    2021-02-23    20:13:38
Plik:DIA_MATTEO_LEHRLING_11_11.wav
   230 KB    2021-02-23    20:13:38
Plik:DIA_MATTEO_LEHRLING_11_12.wav
   366 KB    2021-02-23    20:13:37
Plik:DIA_MATTEO_LEHRLING_11_13.wav
   198 KB    2021-02-23    20:13:37
Plik:DIA_MATTEO_LEHRLING_11_14.wav
   141 KB    2021-02-23    20:13:37
Plik:DIA_MATTEO_LEHRLING_11_15.wav
   364 KB    2021-02-23    20:13:37
Plik:DIA_MATTEO_LEHRLING_11_16.wav
   592 KB    2021-02-23    20:13:37
Plik:DIA_MATTEO_LEHRLING_11_17.wav
   432 KB    2021-02-23    20:13:37
Plik:DIA_MATTEO_LEHRLING_11_18.wav
   386 KB    2021-02-23    20:13:37
Plik:DIA_MATTEO_LEHRLING_11_19.wav
   415 KB    2021-02-23    20:13:37
Plik:DIA_MATTEO_LEHRLING_11_20.wav
   250 KB    2021-02-23    20:13:37
Plik:DIA_MATTEO_LEHRLING_11_21.wav
   508 KB    2021-02-23    20:13:37
Plik:DIA_MATTEO_LEHRLING_11_22.wav
   283 KB    2021-02-23    20:13:37
Plik:DIA_MATTEO_LEHRLING_11_23.wav
   321 KB    2021-02-23    20:13:37
Plik:DIA_MATTEO_LEHRLING_LATER_11_01.wav
   402 KB    2021-02-23    20:13:37
Plik:DIA_MATTEO_LEHRLING_OK_11_01.wav
   408 KB    2021-02-23    20:13:37
Plik:DIA_MATTEO_WARUMNICHTBEIDIR2_11_01.wav
   406 KB    2021-02-23    20:13:38
Plik:DIA_MATTEO_WARUMNICHTBEIDIR2_11_02.wav
   253 KB    2021-02-23    20:13:38
Plik:DIA_MATTEO_WARUMNICHTBEIDIR2_11_03.wav
   636 KB    2021-02-23    20:13:38
Plik:DIA_MATTEO_WARUMNICHTBEIDIR2_15_00.wav
   303 KB    2021-02-23    20:13:38
Plik:DIA_MATTEO_ZUSTIMMUNG_11_01.wav
   705 KB    2021-02-23    20:13:38
Plik:DIA_MATTEO_ZUSTIMMUNG_11_02.wav
   643 KB    2021-02-23    20:13:38
Plik:DIA_MATTEO_ZUSTIMMUNG_11_03.wav
   706 KB    2021-02-23    20:13:38
Plik:DIA_MATTEO_ZUSTIMMUNG_11_04.wav
   764 KB    2021-02-23    20:13:38
Plik:DIA_MATTEO_ZUSTIMMUNG_11_05.wav
   663 KB    2021-02-23    20:13:38
Plik:DIA_NONE_GOMEZ_ASS_15_00.WAV
   97 KB    2001-06-19    22:09:02
Plik:DIA_NONE_GOMEZ_ASS_15_01.WAV
   98 KB    2001-06-19    22:09:02
Plik:DIA_ORG_833_BUSTER3_02_01.WAV
   89 KB    2001-06-19    22:09:02
Plik:DIA_ORG_833_BUSTER3_02_02.WAV
   73 KB    2001-06-19    22:09:02
Plik:DIA_ORG_833_BUSTER3_02_03.WAV
   179 KB    2001-06-19    22:09:02
Plik:DIA_ORG_833_BUSTER3_02_04.WAV
   207 KB    2001-06-19    22:09:02
Plik:DIA_ORG_833_BUSTER_02_01.WAV
   93 KB    2001-06-19    22:09:02
Plik:DIA_ORIC_DRAGONPLETTBERICHT_USUNIETO_11_03.wav
   767 KB    2021-04-16    21:39:17
Plik:DIA_PAL_205_TORWACHE_PASSASNONE_12_01.wav
   350 KB    2021-02-25    18:07:27
Plik:DIA_PAL_205_TORWACHE_PASSASNONE_15_00.wav
   130 KB    2021-02-25    18:07:26
Plik:DIA_TALBIN_WASMACHTIHR_07_03.wav
   231 KB    2021-02-25    18:07:27
Plik:DIA_THORBEN_LEHRLING_11_02.wav
   323 KB    2021-02-22    19:43:47
Plik:DIA_THORBEN_LEHRLING_11_03.wav
   319 KB    2021-02-22    19:43:47
Plik:DIA_THORBEN_LEHRLING_11_04.wav
   228 KB    2021-02-22    19:43:47
Plik:DIA_THORBEN_LEHRLING_11_05.wav
   281 KB    2021-02-22    19:43:47
Plik:DIA_THORBEN_LEHRLING_11_06.wav
   389 KB    2021-02-22    19:43:48
Plik:DIA_THORBEN_LEHRLING_11_07.wav
   288 KB    2021-02-22    19:43:48
Plik:DIA_THORBEN_LEHRLING_11_08.wav
   203 KB    2021-02-22    19:43:48
Plik:DIA_THORBEN_LEHRLING_11_09.wav
   326 KB    2021-02-22    19:43:48
Plik:DIA_THORBEN_LEHRLING_11_10.wav
   436 KB    2021-02-22    19:43:48
Plik:DIA_THORBEN_LEHRLING_11_11.wav
   147 KB    2021-02-22    19:43:46
Plik:DIA_THORBEN_LEHRLING_11_12.wav
   211 KB    2021-02-22    19:43:46
Plik:DIA_THORBEN_LEHRLING_11_19.wav
   354 KB    2021-02-22    19:43:46
Plik:DIA_THORBEN_LEHRLING_11_20.wav
   504 KB    2021-02-22    19:43:46
Plik:DIA_THORBEN_LEHRLING_11_21.wav
   299 KB    2021-02-22    19:43:46
Plik:DIA_THORBEN_LEHRLING_11_22.wav
   446 KB    2021-02-22    19:43:46
Plik:DIA_THORBEN_LEHRLING_11_23.wav
   393 KB    2021-02-22    19:43:46
Plik:DIA_THORBEN_LEHRLING_11_24.wav
   388 KB    2021-02-22    19:43:46
Plik:DIA_THORBEN_LEHRLING_12_13.wav
   363 KB    2021-02-22    19:43:46
Plik:DIA_THORBEN_LEHRLING_12_14.wav
   391 KB    2021-02-22    19:43:46
Plik:DIA_THORBEN_LEHRLING_12_15.wav
   264 KB    2021-02-22    19:43:46
Plik:DIA_THORBEN_LEHRLING_12_16.wav
   376 KB    2021-02-22    19:43:46
Plik:DIA_THORBEN_LEHRLING_12_17.wav
   356 KB    2021-02-22    19:43:46
Plik:DIA_THORBEN_LEHRLING_12_18.wav
   209 KB    2021-02-22    19:43:46
Plik:DIA_THORBEN_LEHRLING_LATER_11_01.wav
   372 KB    2021-02-22    19:43:46
Plik:DIA_THORBEN_LEHRLING_OK_11_01.wav
   255 KB    2021-02-22    19:43:46
Plik:DIA_THORBEN_LEHRLING_TEACHJEWELERY_11_02.wav
   569 KB    2021-02-22    19:43:47
Plik:DIA_THORBEN_LEHRLING_TEACHJEWELERY_11_03.wav
   188 KB    2021-02-22    19:43:47
Plik:DIA_THORBEN_LEHRLING_TEACHJEWELERY_11_04.wav
   585 KB    2021-02-22    19:43:47
Plik:DIA_THORBEN_LEHRLING_TEACHJEWELERY_11_05.wav
   370 KB    2021-02-22    19:43:47
Plik:DIA_THORBEN_LEHRLING_TEACHJEWELERY_11_06.wav
   305 KB    2021-02-22    19:43:47
Plik:DIA_THORBEN_LEHRLING_TEACHJEWELERY_11_07.wav
   615 KB    2021-02-22    19:43:47
Plik:DIA_THORBEN_LEHRLING_TEACHJEWELERY_11_08.wav
   285 KB    2021-02-22    19:43:47
Plik:DIA_THORBEN_LEHRLING_TEACHJEWELERY_15_01.wav
   155 KB    2021-02-22    19:43:47
Plik:DIA_THORBEN_MYMASTERS_06_01.wav
   149 KB    2021-02-22    19:43:47
Plik:DIA_THORBEN_MYMASTERS_06_02.wav
   223 KB    2021-02-22    19:43:47
Plik:DIA_THORBEN_MYMASTERS_15_00.wav
   311 KB    2021-02-22    19:43:47
Plik:DIA_THORBEN_OTHERMASTERS1_15_00.wav
   183 KB    2021-02-22    19:43:47
Plik:DIA_THORNEN_WARUMNICHTBEIDIR2_09_01.wav
   472 KB    2021-02-22    19:43:47
Plik:DIA_THORNEN_WARUMNICHTBEIDIR2_09_02.wav
   459 KB    2021-02-22    19:43:47
Plik:DIA_THORNEN_WARUMNICHTBEIDIR2_09_03.wav
   621 KB    2021-02-22    19:43:47
Plik:DIA_THORNEN_WARUMNICHTBEIDIR2_09_04.wav
   804 KB    2021-02-22    19:43:47
Plik:DIA_THORNEN_WARUMNICHTBEIDIR2_09_05.wav
   520 KB    2021-02-22    19:43:47
Plik:DIA_THORNEN_WARUMNICHTBEIDIR2_09_06.wav
   505 KB    2021-02-22    19:43:47
Plik:DIA_THORNEN_WARUMNICHTBEIDIR2_15_00.wav
   268 KB    2021-02-22    19:43:47
Plik:DIA_Thorben_LEHRLING_11_01.wav
   286 KB    2021-02-22    19:43:47
Plik:DIA_Uroboros_Fight_99_00.wav
   771 KB    2021-02-01    19:31:02
Plik:DIA_Uroboros_Fight_99_01.wav
   196 KB    2021-02-01    19:31:25
Plik:SVM_15_ADDONBANDITTRADER.wav
   805 KB    2021-04-09    21:36:11
Plik:SVM_15_ADDONGREGSLOGBUCHMIS.wav
   1065 KB    2021-04-10    16:17:09
Plik:SVM_15_ADDONGREGSLOGBUCHMIS2.wav
   792 KB    2021-04-10    16:17:55
Plik:SVM_15_ADDONGREGSLOGBUCHMIS3.wav
   946 KB    2021-04-10    16:21:25
Plik:SVM_15_ADDONGREGSLOGBUCHMIS4.wav
   1083 KB    2021-04-10    16:23:25
Plik:SVM_15_ADDONHEALTH04.wav
   1038 KB    2021-04-08    17:52:03
Plik:SVM_15_ADDONHINWEIS01.wav
   1081 KB    2021-04-08    17:59:20
Plik:SVM_15_ADDONHINWEIS02.wav
   857 KB    2021-04-08    17:46:18
Plik:SVM_15_ADDONJOINT01.wav
   1277 KB    2021-04-08    18:16:37
Plik:SVM_15_ADDONLOUREZEPT.wav
   957 KB    2021-04-08    18:20:42
Plik:SVM_15_ADDONMANA04.wav
   942 KB    2021-04-08    17:55:07
Plik:SVM_15_ADDONMCELIXIER01.wav
   1307 KB    2021-04-08    18:07:24
Plik:SVM_15_ADDONPIRATENTOD.wav
   888 KB    2021-04-08    18:32:20
Plik:SVM_15_ADDONPIRATENTOD2.wav
   630 KB    2021-04-08    18:33:15
Plik:SVM_15_ADDONPIRATES01.wav
   838 KB    2021-04-10    17:59:56
Plik:SVM_15_ADDONSTONE01.wav
   663 KB    2021-04-10    15:59:56
Plik:SVM_15_ADDONSTONE02.wav
   1258 KB    2021-04-10    16:08:07
Plik:SVM_15_ADDONSTONE03.wav
   534 KB    2021-04-10    16:03:40
Plik:SVM_15_ADDONSTONE04.wav
   569 KB    2021-04-10    16:05:49
Plik:SVM_15_ADDONSTONE05.wav
   782 KB    2021-04-10    16:01:54
Plik:SVM_15_ADDONWILLIAM01.wav
   1353 KB    2021-04-08    18:03:51
Plik:SVM_15_ASTRONOMYMIS.wav
   857 KB    2021-04-09    18:28:31
Plik:SVM_15_ASTRONOMYMIS2.wav
   1025 KB    2021-04-09    18:28:56
Plik:SVM_15_ASTRONOMYMIS3.wav
   1071 KB    2021-04-09    18:29:28
Plik:SVM_15_BABOSLETTERMIS.wav
   753 KB    2021-04-09    18:23:07
Plik:SVM_15_BABOSLETTERMIS2.wav
   887 KB    2021-04-09    18:24:04
Plik:SVM_15_BANDITLETTERMIS.wav
   808 KB    2021-04-08    21:16:20
Plik:SVM_15_BANDITLETTERMIS2.wav
   934 KB    2021-04-08    21:17:16
Plik:SVM_15_BLACKWEAPON.wav
   913 KB    2021-04-07    22:20:25
Plik:SVM_15_BLACKWEAPON2.wav
   988 KB    2021-04-07    22:23:52
Plik:SVM_15_BLACKWEAPON3.wav
   814 KB    2021-04-07    22:26:36
Plik:SVM_15_BLACKWEAPON4.wav
   994 KB    2021-04-07    22:28:50
Plik:SVM_15_BLOODYMIS.wav
   952 KB    2021-04-08    21:40:44
Plik:SVM_15_BLOODYMIS2.wav
   898 KB    2021-04-08    21:41:27
Plik:SVM_15_BOWBUCH.wav
   1038 KB    2021-04-07    21:50:42
Plik:SVM_15_BOWBUCH2.wav
   1366 KB    2021-04-07    21:57:26
Plik:SVM_15_CANTHARSKOMPROBRIEFMIS.wav
   1256 KB    2021-04-08    18:39:12
Plik:SVM_15_CBOWBUCH.wav
   1015 KB    2021-04-07    22:02:25
Plik:SVM_15_CBOWBUCH2.wav
   845 KB    2021-04-07    22:04:11
Plik:SVM_15_CBOWBUCH3.wav
   1240 KB    2021-04-07    22:05:16
Plik:SVM_15_CORNELIUSTAGEBUCHMIS.wav
   1144 KB    2021-04-08    22:10:59
Plik:SVM_15_CORNELIUSTAGEBUCHMIS2.wav
   989 KB    2021-04-08    22:13:05
Plik:SVM_15_CORNELIUSTAGEBUCHMIS3.wav
   1204 KB    2021-04-08    22:14:30
Plik:SVM_15_DIARYBLACKNOVICEMIS.wav
   1108 KB    2021-04-09    20:16:47
Plik:SVM_15_DIARYBLACKNOVICEMIS2.wav
   949 KB    2021-04-09    20:17:25
Plik:SVM_15_DIARYBLACKNOVICEMIS3.wav
   1236 KB    2021-04-09    20:18:14
Plik:SVM_15_DIEGOSLETTERMIS.wav
   665 KB    2021-04-09    18:34:34
Plik:SVM_15_DIEGOSLETTERMIS2.wav
   1356 KB    2021-04-09    18:35:19
Plik:SVM_15_EINHANDBUCH.wav
   896 KB    2021-04-07    20:50:31
Plik:SVM_15_EINHANDBUCH2.wav
   444 KB    2021-04-07    20:36:53
Plik:SVM_15_EINHANDBUCH3.wav
   961 KB    2021-04-07    21:33:05
Plik:SVM_15_FORGEDSHIPLETTERMIS.wav
   633 KB    2021-04-09    19:44:09
Plik:SVM_15_GILBERTLETTER.wav
   1113 KB    2021-04-08    21:59:04
Plik:SVM_15_HALLSOFIRDORATHOPENMIS.wav
   520 KB    2021-04-09    19:17:05
Plik:SVM_15_HALLSOFIRDORATHOPENMIS2.wav
   920 KB    2021-04-09    19:17:30
Plik:SVM_15_HALVORMESSAGE.wav
   480 KB    2021-04-08    18:57:10
Plik:SVM_15_KDWLETTER.wav
   983 KB    2021-04-08    21:52:08
Plik:SVM_15_KRAEUTERLISTE.wav
   1188 KB    2021-04-08    18:46:08
Plik:SVM_15_KRYPTAGARON.wav
   714 KB    2021-04-09    19:52:19
Plik:SVM_15_KRYPTAGARON2.wav
   805 KB    2021-04-09    19:52:52
Plik:SVM_15_KRYPTAGARON3.wav
   1344 KB    2021-04-09    19:51:32
Plik:SVM_15_LASTDOORTOUNDEADDRGDIMIS.wav
   354 KB    2021-04-09    19:56:39
Plik:SVM_15_LETTERFORGORNMIS.wav
   712 KB    2021-04-08    21:32:00
Plik:SVM_15_LUCIASLOVELETTERADDON1.wav
   468 KB    2021-04-09    21:27:30
Plik:SVM_15_LUCIASLOVELETTERADDON2.wav
   1125 KB    2021-04-09    21:32:17
Plik:SVM_15_MANAREZEPT.wav
   763 KB    2021-04-08    18:51:15
Plik:SVM_15_MANOWAR.wav
   1242 KB    2021-04-08    21:49:44
Plik:SVM_15_MARTINMILIZEMPFEHLUNGADDON.wav
   1205 KB    2021-04-09    21:02:13
Plik:SVM_15_MINENANTEILMIS.wav
   1160 KB    2021-04-09    18:39:47
Plik:SVM_15_MINENANTEILMIS2.wav
   1290 KB    2021-04-09    18:43:27
Plik:SVM_15_MORGAHARDTIP.wav
   867 KB    2021-04-09    18:56:00
Plik:SVM_15_PALADINLETTERMIS.wav
   755 KB    2021-04-08    21:27:35
Plik:SVM_15_PALADINLETTERMIS2.wav
   946 KB    2021-04-08    21:28:49
Plik:SVM_15_PASSAGEMIS.wav
   1064 KB    2021-04-08    21:08:18
Plik:SVM_15_PASSAGEMIS2.wav
   604 KB    2021-04-08    21:09:23
Plik:SVM_15_PASSAGEMIS3.wav
   1016 KB    2021-04-08    21:11:30
Plik:SVM_15_PASSIERSCHEIN.wav
   751 KB    2021-04-08    18:54:45
Plik:SVM_15_PERMISSIONTOWEARINNOSEYEMIS.wav
   875 KB    2021-04-08    22:04:07
Plik:SVM_15_PERMISSIONTOWEARINNOSEYEMIS2.wav
   897 KB    2021-04-08    22:05:04
Plik:SVM_15_PFANDBRIEFMIS.wav
   1018 KB    2021-04-08    21:46:17
Plik:SVM_15_PYROKARSOBSESSIONLIST.wav
   308 KB    2021-04-09    18:08:29
Plik:SVM_15_PYROKARSOBSESSIONLIST2.wav
   128 KB    2021-04-09    18:16:08
Plik:SVM_15_PYROKARSOBSESSIONLIST3.wav
   112 KB    2021-04-09    18:16:33
Plik:SVM_15_RAVENSKIDNAPPERMISSIONADDON.wav
   961 KB    2021-04-09    21:18:15
Plik:SVM_15_RAVENSKIDNAPPERMISSIONADDON2.wav
   718 KB    2021-04-09    21:16:13
Plik:SVM_15_RAVENSKIDNAPPERMISSIONADDON3.wav
   1098 KB    2021-04-09    21:17:07
Plik:SVM_15_REZEPTMEGADRINKMIS.wav
   1242 KB    2021-04-09    20:02:36
Plik:SVM_15_REZEPTMEGADRINKMIS2.wav
   1233 KB    2021-04-09    20:00:36
Plik:SVM_15_RICHTERKOMPROBRIEFMIS.wav
   919 KB    2021-04-09    18:49:33
Plik:SVM_15_RICHTERKOMPROBRIEFMIS2.wav
   1296 KB    2021-04-10    17:57:26
Plik:SVM_15_RUSTCHESTLIST.wav
   1431 KB    2021-04-07    22:15:25
Plik:SVM_15_SATURASFIRSTMESSAGEADDONSEALED.wav
   1235 KB    2021-04-09    20:32:20
Plik:SVM_15_SATURASFIRSTMESSAGEADDONSEALED2.wav
   1153 KB    2021-04-09    20:33:36
Plik:SVM_15_SATURASFIRSTMESSAGEADDONSEALED3.wav
   1155 KB    2021-04-09    20:57:08
Plik:SVM_15_SCHULDENBUCH.wav
   1099 KB    2021-04-08    21:23:07
Plik:SVM_15_SILVESTROMIS.wav
   804 KB    2021-04-08    21:35:55
Plik:SVM_15_SILVESTROMIS2.wav
   967 KB    2021-04-08    21:37:07
Plik:SVM_15_STONEPLATECOMMONADDON.wav
   1071 KB    2021-04-10    15:56:34
Plik:SVM_15_USELAMPIDIOTMIS.wav
   210 KB    2021-04-09    19:41:34
Plik:SVM_15_VATRAS2SATURASFINDRAVEN.wav
   1288 KB    2021-04-09    21:44:08
Plik:SVM_15_VATRAS2SATURASFINDRAVEN2.wav
   1250 KB    2021-04-09    21:44:40
Plik:SVM_15_VATRAS2SATURASFINDRAVEN3.wav
   1182 KB    2021-04-09    21:46:10
Plik:SVM_15_VATRASKDFEMPFEHLUNGADDON.wav
   1163 KB    2021-04-09    21:23:45
Plik:SVM_15_VATRASMESSAGE.wav
   1141 KB    2021-04-08    19:28:15
Plik:SVM_15_VINOSKELLERGEISTERMIS.wav
   1045 KB    2021-04-09    19:04:07
Plik:SVM_15_VINOSKELLERGEISTERMIS2.wav
   1256 KB    2021-04-09    19:03:29
Plik:SVM_15_XARDASERMAHNUNGFUERIDIOTENMIS.wav
   1153 KB    2021-04-09    19:47:26
Plik:SVM_15_XARDASLETTERTOOPENBOOKMIS.wav
   1235 KB    2021-04-09    19:10:51
Plik:SVM_15_XARDASLETTERTOOPENBOOKMIS2.wav
   1257 KB    2021-04-09    19:12:18
Plik:SVM_15_XARDASSEAMAPBOOKMIS.wav
   810 KB    2021-04-09    19:27:41
Plik:SVM_15_XARDASSEAMAPBOOKMIS2.wav
   1021 KB    2021-04-09    19:28:46
Plik:SVM_15_XARDASSEAMAPBOOKMIS3.wav
   1185 KB    2021-04-09    19:30:43
Plik:SVM_15_XARDASSEAMAPBOOKMIS4.wav
   1157 KB    2021-04-09    19:31:51
Plik:SVM_15_XARDASSEAMAPBOOKMIS5.wav
   750 KB    2021-04-09    19:32:45
Plik:SVM_15_XARDASSEAMAPBOOKMIS6.wav
   1156 KB    2021-04-09    19:33:40
Plik:SVM_15_XARDASSEAMAPBOOKMIS7.wav
   356 KB    2021-04-09    19:34:12
Plik:SVM_15_XARDASSEAMAPBOOKMIS8.wav
   1103 KB    2021-04-09    19:34:47
Plik:SVM_15_XARDASSEAMAPBOOKMIS9.wav
   1058 KB    2021-04-09    19:37:45
Plik:SVM_15_ZUGBRUECKEMIS.wav
   568 KB    2021-04-09    20:23:47
Plik:SVM_15_ZUGBRUECKEMIS2.wav
   949 KB    2021-04-09    20:24:35
Plik:SVM_15_ZWEIHANDBUCH.wav
   1075 KB    2021-04-07    21:44:30

3
Pytania i problemy / Pochodnia w kategorii broń
« dnia: 2021-04-06, 17:56 »
Zawsze szukam tej pochodni w całej liście na końcu ekwipunku, a ona zawsze zmienia swoje położenie. Więc pomyślałem, że super byłoby mieć np. w kategorii broń na samym końcu - wygodne, nie trzeba skrolować tak daleko i zawsze wiadomo gdzie jest.

Sądziłem, że wystarczy zmienić:
       mainflag          =   ITEM_KAT_NF;

i to wszystko załatwi. Ale niestety. Pochodnia znajduje się na końcu wszystkich broni, ale nie zapala się. Można ją wybrać i "oznaczyć" jak broń, ale nie można jej wyciągnąć.

Macie jakiś pomysł jak to zrobić? Lub chociaż jak jak zmienić skrypy, aby działała i zawsze była w konkretnym miejscu ekwipunku?

4
Robię coś na podobieństwo "bossów", gdzie podczas walki przeciwnik używa różnych czarów i przyzywa kompanów do pomocy.

Wszystko działa tak jak trzeba - gdy punkty życia przeciwnika spadną poniżej określonego poziomu, jest animacja czaru, zadawane obrażenia bohaterowi czy przyzwanie pomocnika. Problem pojawia się w momencie, gdy za pomocą bryły lodu/ lodowej fali zamrozimy "ów bossa". Wtedy określone efekty zwyczajnie nie występują.

Myślę, że może to być spowodowane miejscem w pliku, gdzie umiejscowiłem funkcję. Plik: ZS_MM_Attack . Próbowałem potem przenieść to gdzie indzie, ale w ogóle efekty nie działały. Jakieś rady? Bo wprowadzenie odporności na zamrożenie konkretnego potwora raczej nie wchodzi w grę.

Może w innym pliku umiejscowić tą funkcję lub stworzyć jakiś nowy plik i jak miałby on wyglądać?

Mój plik: Gothic II\_Work\Data\Scripts\Content\AI\Monster\ZS_Monster\ZS_MM_Attack
Dodanie linijki na czerwono.
Spoiler
// ********************
// ZS_MM_Attack
// ------------
// für Monster und Orks
// ********************

func void B_MM_AssessSurprise()
{
   Npc_SetTarget (self, other); //Ziel wechseln
};


func void ZS_MM_Attack ()
{                                    
   Npc_SetPercTime    (self, 1);
   
   Npc_PercEnable      (self, PERC_ASSESSBODY         ,    B_MM_AssessBody);   //wenn Monster in Attack leckeren Body wittert
      
   Npc_PercEnable      (self, PERC_ASSESSMAGIC         ,     B_AssessMagic);          //selbe Rkt wie Humans
   Npc_PercEnable      (self, PERC_ASSESSDAMAGE      ,   B_MM_AssessDamage);
   Npc_PercEnable      (self, PERC_ASSESSWARN         ,    B_MM_AssessWarn);
   
   // ------ lokale Wahrnehmung für verwandelten SC ------
   Npc_PercEnable (self, PERC_ASSESSSURPRISE , B_MM_AssessSurprise);

   B_ValidateOther();

   // EXIT IF...
   
   // ------ Schafe fliehen immer ------
   if (self.guild == GIL_SHEEP)
   {
      Npc_ClearAIQueue    (self);
      B_ClearPerceptions    (self);
      Npc_SetTarget      (self, other);
      AI_StartState       (self, ZS_MM_Flee, 0, "");
      return;
   };
   
   // FUNC
      
   AI_StandUp      (self);
   AI_SetWalkmode    (self, NPC_RUN);
   
   // ------ Hilfe anfordern ------
   Npc_SendPassivePerc   (self, PERC_ASSESSWARN,   other, self); //Opfer,Täter   
   
   // ------ init aivars -------
   self.aivar[AIV_PursuitEnd] = FALSE;
   self.aivar[AIV_StateTime] = 0;
   self.aivar[AIV_HitByOtherNpc] = 0;
   self.aivar[AIV_SelectSpell] = 0; //Für Magier
   self.aivar[AIV_TAPOSITION] = 0; //für Regeneration

};

func int ZS_MM_Attack_Loop ()
{
   Npc_GetTarget (self); // other = target
   
   // ------ Regeneration ------

//--------------------------------Boss Figth-----------------------------------
var int SShadowbeastBoss;
var int SShadowbeastBoss2;
var int SShadowbeastBoss3;

   if  Hlp_GetInstanceID (self) == Hlp_GetInstanceID (SShadowbeast_Skeleton)
   {         
      if (self.attribute[ATR_HITPOINTS] < 900)
      && (SShadowbeastBoss == FALSE)
      {   
         Wld_SpawnNpcRange   (hero,   Shadowbeast_Skeleton,   1,   700);
         SShadowbeastBoss = TRUE;
      };
      if (self.attribute[ATR_HITPOINTS] < 1350)
      && (SShadowbeastBoss2 == FALSE)
      {   
         Wld_PlayEffect("spellFX_FireRain_RAIN",  hero, hero, 0, 0, 0, FALSE );
         hero.attribute[ATR_HITPOINTS] -= 100;
         SShadowbeastBoss2 = TRUE;
      };
      if (self.attribute[ATR_HITPOINTS] < 1800)
      && (SShadowbeastBoss3 == FALSE)
      {   
         Wld_SpawnNpcRange   (hero,   BeachShadowbeast1,   1,   700);
         SShadowbeastBoss3 = TRUE;
      };
   };
//-----------------------------------------------------------------------------

   
   //ADDON>
   if (RavenIsDead == TRUE)
   && (self.guild == GIL_STONEGUARDIAN)
   {   
      B_KillNpc (self);
   };
   //ADDON<
      
   // EXIT LOOP IF...
   
   // ------ HACK: Orks nicht in die Burg ------
   if (CurrentLevel == OLDWORLD_ZEN) //Joly: verbessert Performance in anderen Leveln
   {
      if (Npc_GetDistToWP (self, "OC_RAMP_07") <= 500)
      {
         Npc_ClearAIQueue(self);
         AI_StandUp      (self);
         AI_PlayAni      (self, "T_WARN");    //nochmal zum Abschied Drohen
         self.aivar[AIV_PursuitEnd] = TRUE;
         return LOOP_END;
      };
   };      
   // ------ Kampfabbruch, wenn zu weit weg ------
   if (Npc_GetDistToNpc (self, other) > FIGHT_DIST_CANCEL)
   {
      Npc_ClearAIQueue(self);
      AI_StandUp      (self);
      self.aivar[AIV_PursuitEnd] = TRUE;
      return LOOP_END;
   };
   
   // ------ Gegner wird schon zu lange verfolgt ------
   if (Npc_GetStateTime (self) > self.aivar[AIV_MM_FollowTime])
   && (self.aivar[AIV_PursuitEnd] == FALSE)
   {
      Npc_ClearAIQueue(self);
      AI_StandUp      (self);
      self.aivar[AIV_PursuitEnd] = TRUE;
      self.aivar[AIV_Dist] = Npc_GetDistToNpc(self, other);
      self.aivar[AIV_StateTime] = Npc_GetStateTime (self);
         
      AI_PlayAni      (self, "T_WARN");    //nochmal zum Abschied Drohen
   };
   
   // ------ Warten, ob Feind auch wirklich flieht ------
   if (self.aivar[AIV_PursuitEnd] == TRUE)
   {
      // ------ weit genug weg ------
      if (Npc_GetDistToNpc (self, other) > self.senses_range)
      {
         return LOOP_END;
      };
            
      // ------ einmal pro Sekunde ------   
      if (Npc_GetStateTime (self) > self.aivar[AIV_StateTime])
      {
         // ------ Feind kommt zurück ODER bleibt stehen ------
         if (Npc_GetDistToNpc(self, other) < self.aivar[AIV_Dist])
         || ( (!C_BodyStateContains(other,BS_RUN)) && (!C_BodyStateContains(other, BS_JUMP)) )
         {
            self.aivar[AIV_PursuitEnd] = FALSE;
            Npc_SetStateTime (self, 0);
            self.aivar[AIV_StateTime] = 0;
            // --> und weiter im Text!   
         }
         else
         {
            AI_TurnToNpc (self, other);
            self.aivar[AIV_Dist] = Npc_GetDistToNpc(self, other);
            self.aivar[AIV_StateTime] = Npc_GetStateTime (self);
         };
      };
      
      return LOOP_CONTINUE;
   };
   
   // ------ Gegner geht ins Wasser und ich will nicht schwimmen ------
   if (C_BodyStateContains(other,BS_SWIM) || C_BodyStateContains(other,BS_DIVE))
   && (self.aivar[AIV_MM_FollowInWater] == FALSE)
   {
      Npc_ClearAIQueue(self);
      AI_StandUp      (self);
      return LOOP_END;
   };
   
   
   // LOOP FUNC
   
   // ------ Vor Attacke kurz warten (bei Angriff aus Dialog) ------
   if (self.aivar[AIV_WaitBeforeAttack] == 1) //nur einmal
   {
      AI_Wait (self, 0.8);
      self.aivar[AIV_WaitBeforeAttack] = 0;
   };
   
   // ------ Summon Time ------
   if (self.level == 0)
   {
      if (Npc_GetStateTime (self) > self.aivar[AIV_StateTime])
      {
         self.aivar[AIV_SummonTime] = (self.aivar[AIV_SummonTime] + 1);
      
         self.aivar[AIV_StateTime] = Npc_GetStateTime (self);
      };
      
      if (self.aivar[AIV_SummonTime] >= MONSTER_SUMMON_TIME)
      {
         Npc_ChangeAttribute (self, ATR_HITPOINTS, -self.attribute[ATR_HITPOINTS_MAX]);
      };
   };

   // ------ Verfolgungstimer resetten ------
   if ( (!C_BodyStateContains(other,BS_RUN)) && (!C_BodyStateContains(other,BS_JUMP)) )
   && (Npc_GetStateTime (self) > 0)
   {
      Npc_SetStateTime (self, 0);
      self.aivar[AIV_StateTime] = 0;
   };
   
   // ------ Wenn Max-Entfernung zum WP angegeben ------
   if (self.aivar[AIV_MaxDistToWp] > 0)
   {
      if (Npc_GetDistToWP(self, self.wp) > self.aivar[AIV_MaxDistToWp])
      && (Npc_GetDistToWP(other, self.wp) > self.aivar[AIV_MaxDistToWp])
      {
         self.fight_tactic = FAI_NAILED;
      }
      else //einer von beiden nah genug am self.wp
      {
         self.fight_tactic = self.aivar[AIV_OriginalFightTactic];
      };
   };
   
   // ------ MonsterMage zieht Spruch / Orc zieht Waffe ------
   if (C_NpcIsMonsterMage(self))
   || (self.guild == GIL_SKELETON)
   || (self.guild == GIL_SUMMONED_SKELETON)
   || (self.guild > GIL_SEPERATOR_ORC)
   {
      B_CreateAmmo   (self);   //ggf. Muni generieren
      Npc_ChangeAttribute   (self, ATR_MANA, ATR_MANA_MAX); //immer volles MANA
      B_SelectWeapon    (self, other);
   };
   
   // ------ ATTACK ------   
   if (Hlp_IsValidNpc(other))             // wenn target da ist, ist hier auch other valid
   && (!C_NpcIsDown(other))             // sonst "attackiert" der NPC ein z.B. totes Opfer weiter
   {
      if (other.aivar[AIV_INVINCIBLE] == FALSE)    // Nur NSCs angreifen, die NICHT im Talk sind
      {
         AI_Attack (self);    //In der Funktion, in der AI_Attack aufgerufen wird DARF KEIN AI_ Befehl VOR AI_Attack kommen, da sonst AI_Attack ignoriert wird
                        //(AI-Attack funktioniert NUR, wenn die AIqueue leer ist!)
      }
      else
      {
         Npc_ClearAIQueue(self); //killt den letzten AI_Attack-Befehl, verhindert z.B. stumpfes weiterrennen.
      };
      
      self.aivar[AIV_LASTTARGET] = Hlp_GetInstanceID (other);
      
      return LOOP_CONTINUE;
   }
   else                               // NPC_GetTarget(self) == FALSE, also tot - other hier automatisch gelöscht
   {
      // ------ Monster auf der Jagd --> Beute fressen kommt VOR NextTarget ------
      if (self.aivar[AIV_MM_PRIORITY] == PRIO_EAT)
      && (C_WantToEat (self, other))
      {
         Npc_ClearAIQueue(self);
         AI_StandUp      (self);
         return LOOP_END;
      };
      
      // ------ Monster NICHT auf der Jagd - weitere Feinde Attacken ------
      Npc_PerceiveAll   (self);               // nötig, da Npc_GetNextTarget() auf der Liste der zuletzt Wahrgenommenen VOBs beruht, und das kann hier schon ne Weile her sein, denn ZS_Attack hat keine aktiven Wahrnehmungen
      Npc_GetNextTarget (self);             // wenn True, wird hier target neu ermittelt (NUR die zu denen ich Hostile bin!)
      
      // ----- ist neues Ziel gefunden, in Reichweite, nicht down, nicht im Dialog? Dann neues Ziel, sonst End ------
      if (Hlp_IsValidNpc(other))
      && (!C_NpcIsDown(other))
      && ( (Npc_GetDistToNpc(self, other) < PERC_DIST_INTERMEDIAT) || (Npc_IsPlayer(other)) ) //Bei Nicht-Player Enemies nur auf 1000m reagieren (sonst ACTIVE_MAX)
      && (other.aivar[AIV_INVINCIBLE] == FALSE)
      {
         self.aivar[AIV_LASTTARGET] = Hlp_GetInstanceID (other);
         return LOOP_CONTINUE;
      }
      else                            // wenn false, wird other gelöscht!
      {
         Npc_ClearAIQueue(self);
         AI_StandUp      (self);
         return LOOP_END;
      };
   };
};

func void ZS_MM_Attack_End ()
{
   // ------ other wieder holen, ist hier auf jeden Fall gelöscht! ------
   other = Hlp_GetNpc(self.aivar[AIV_LASTTARGET]);

   // ------ MonsterMage steckt Spruch weg / Orc steckt Waffe weg ------
   if (C_NpcIsMonsterMage(self))
   || (self.guild == GIL_SKELETON)
   || (self.guild == GIL_SUMMONED_SKELETON)
   || (self.guild > GIL_SEPERATOR_ORC)
   {
      AI_RemoveWeapon (self);
   };
         
   // ------ Beute fressen ------
   if (Npc_IsDead(other))
   && (C_WantToEat (self, other))               
   {
      Npc_ClearAIQueue(self);
      AI_StartState    (self, ZS_MM_EatBody, 0, "");
      return;
   };
};



   

5
Pytania i problemy / Odliczanie Mini-Bossów do zabicia
« dnia: 2021-01-24, 20:37 »
W świecie umieściłem określoną liczbę Mini-bossów, powiedzmy 10 i chcę wykorzystać odliczanie ile zostało, podobnie jak miało to miejsce przy zabijaniu brzytwiaków w kanionie. Niemniej wyskakują błędy i nie potrafię ogarnąć jak to naprawić.

Plik: Gothic II\_Work\Data\Scripts\Content\Story\B_Content\B_CountMiniBoss

Spoiler
FUNC INT C_AllMiniBossDead ()
{
   if Npc_IsDead (SMeatbug)
   && Npc_IsDead (SGiant_DesertRat)
   && Npc_IsDead (SKeiler)
   && Npc_IsDead (SSwamprat)
   && Npc_IsDead (SBlattcrawler)
   && Npc_IsDead (SScavenger_Demon)
   && Npc_IsDead (SOrcBiter)
   && Npc_IsDead (SSwampDrone)
   && Npc_IsDead (SHarpie)
   && Npc_IsDead (SSwampshark)
   {
      return TRUE;
   }
   else
   {
      return FALSE;
   };   
};

FUNC int C_IAmMiniBoss (var C_NPC slf)
{
   var C_NPC BOSS01;    BOSS01 = Hlp_GetNpc(SMeatbug);
   var C_NPC BOSS02;    BOSS02 = Hlp_GetNpc(SGiant_DesertRat);
   var C_NPC BOSS03;    BOSS03 = Hlp_GetNpc(SKeiler);
   var C_NPC BOSS04;    BOSS04 = Hlp_GetNpc(SSwamprat);
   var C_NPC BOSS05;    BOSS05 = Hlp_GetNpc(SBlattcrawler);
   var C_NPC BOSS06;    BOSS06 = Hlp_GetNpc(SScavenger_Demon);
   var C_NPC BOSS07;    BOSS07 = Hlp_GetNpc(SOrcBiter);
   var C_NPC BOSS08;    BOSS08 = Hlp_GetNpc(SSwampDrone);
   var C_NPC BOSS09;    BOSS09 = Hlp_GetNpc(SHarpie);
   var C_NPC BOSS10;    BOSS10 = Hlp_GetNpc(SSwampshark);
   

   if ((Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(BOSS01))
   ||   (Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(BOSS02))
   ||   (Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(BOSS03))
   ||   (Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(BOSS04))
   ||   (Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(BOSS05))
   ||   (Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(BOSS06))
   ||   (Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(BOSS07))
   ||   (Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(BOSS08))
   ||   (Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(BOSS09))
   ||   (Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(BOSS10)))
   {
      return TRUE;
   }
   else
   {   
      return FALSE;
   };      
   
};


FUNC VOID B_CountMiniBoss ()
{
   var string MiniBossText;
   var string MiniBossLeft;
   MiniBossLeft = IntToString (10 - MiniBossBodyCount);
   MiniBossText = ConcatStrings(MiniBossLeft, PRINT_MiniBosLeft);
   AI_PrintScreen   (MiniBossText, -1, YPOS_GOLDGIVEN, FONT_ScreenSmall, 2);
};


Oraz dodana linijka do pliku: Gothic II\_Work\Data\Scripts\Content\AI\Human\ZS_Human\ZS_Dead (i tutaj pojawia się błąd podczas sprawdzania)

Spoiler
   // ------ Greg ------
   if C_IAmCanyonRazor (self) == TRUE
   {
      CanyonRazorBodyCount = CanyonRazorBodyCount +1;
      if (MIS_Addon_Greg_ClearCanyon == LOG_RUNNING)
      {
         B_CountCanyonRazor ();
      };
   };
   if C_IAmMiniBoss (self) == TRUE                  <---Linijka 35/ Line 35
   {
      MiniBossBodyCount = MiniBossBodyCount +1;
      if (MIS_MiniBoss == LOG_RUNNING)
      {
         B_CountMiniBoss ();
      };
   };

   
   // ------ Sumpfdrohne -------
   if (self.aivar[AIV_MM_REAL_ID] == ID_SWAMPDRONE)
   {
      if (Npc_GetDistToNpc(self, other) < 300)
      {
         other.attribute[ATR_HITPOINTS] -= 50;
         //Npc_ChangeAttribute(other, ATR_HITPOINTS, -50);
      };
   };

Oraz linijki do:
Gothic II\_Work\Data\Scripts\Content\Story\Story_Globals
Spoiler
var int MIS_MiniBoss;

Gothic II\_Work\Data\Scripts\Content\Story\Log_Entries\B_CloseTopics_Hoshi
Spoiler
B_CloseTopic   (TOPIC_INNOSEYE,MIS_MiniBoss,0,6);

Gothic II\_Work\Data\Scripts\Content\Story\Dialoge\DIA_NONE_100_Xardas
Spoiler
instance DIA_Xardas_TODO (C_INFO)       //E1
{
   npc          =    NONE_100_Xardas;
   nr          =    1;
   condition    =    DIA_Xardas_TODO_Condition;
   information    =    DIA_Xardas_TODO_Info;
   Permanent     =  FALSE;
   description    =    "Co możemy zrobić?";
};

func int DIA_Xardas_TODO_Condition ()
{   
   if (Kapitel < 3)   
   {
      return TRUE;
   };
};

func void DIA_Xardas_TODO_Info ()
{
   AI_Output (other, self, "DIA_Xardas_TODO_15_00"); //Co możemy zrobić?
   AI_Output (self, other, "DIA_Xardas_TODO_14_01"); //Tym razem sami sobie nie poradzimy. W walce ze smokami może nam pomóc tylko moc Innosa.
   AI_Output (self, other, "DIA_Xardas_TODO_14_02"); //W pobliskim mieście Khorinis stacjonuje oddział paladynów.
   AI_Output (self, other, "DIA_Xardas_TODO_14_03"); //W ich posiadaniu znajduje się pewien potężny artefakt, dzięki któremu możemy pokonać paskudne gady.
   AI_Output (self, other, "DIA_Xardas_TODO_14_04"); //Nazywają go 'Okiem Innosa'. Musisz koniecznie zdobyć to Oko.
   AI_Output (self, other, "DIA_Xardas_TODO_14_05"); //Ostrzeż paladynów o smokach i za wszelką cenę przekonaj ich dowódcę, by nam pomógł.
   AI_Output (self, other, "DIA_Addon_Xardas_Add_14_07"); //Gdy tylko z nim porozmawiasz, musisz odszukać artefakt Beliara.
   AI_Output (self, other, "DIA_Addon_Xardas_Add_14_08"); //To odpowiednik Oka Innosa - nie wolno dopuścić, aby wpadł w ręce sług zła.

   MIS_MiniBoss = LOG_RUNNING;

   Log_CreateTopic (TOPIC_INNOSEYE, LOG_MISSION);
   Log_SetTopicStatus(TOPIC_INNOSEYE, LOG_RUNNING);
   B_LogEntry (TOPIC_INNOSEYE,"W mieście Khorinis przebywa grupa paladynów. Mają ze sobą potężny artefakt, Oko Innosa, którego moc pomoże nam pokonać smoki. Muszę tylko przekonać paladynów, aby wsparli naszą sprawę.");
};


Błąd pojawia się w pliku ZS_Dead, od momentu dodanych przeze mnie linijek. Gdzie jest błąd, bo mi wydaje się, że ogarnąłem wszystko?

6

Widziałem w jednym z modów, że podczas zdobycia doświadczenia, pokazuje się obok również stan obecnego XP oraz limit do następnego poziomu. Jest to bardzo fajna opcja, bo sam co kilkanaście minut zawsze sprawdzam "ile do poziomu".

tak jak na zdjęciu

Chciałbym tylko zmienić, że "Stan" pokazywałby się niżej, a nie obok. Jak to przyjaciele uzyskać?

Mój skrypt pliku B_GivePlayerXP, ale zamiast stanu pokazuje się napis w cudzysłowie.
Dołączam zdjęcie.
Spoiler
// **************
// B_GivePlayerXP
// **************

func void B_GivePlayerXP (var int add_xp)
{
   if (hero.level == 0)
   {
      hero.exp_next = 500;
   };
   //----------------------------------------------------------------------------
   hero.exp = hero.exp + add_xp;

   //----------------------------------------------------------------------------
   var string concatText;
   concatText = PRINT_XPGained;
   concatText = ConcatStrings (concatText,   IntToString(add_xp));
   PrintScreen   (concatText, 2, 62, FONT_ScreenSmall, 3);
   PrintScreen   (" hero.exp/hero.exp_next ", 2, 64, FONT_ScreenSmall, 3);

   //----------------------------------------------------------------------------
   if ( hero.exp >= hero.exp_next ) // ( XP > (500*((hero.level+2)/2)*(hero.level+1)) )
   {
      hero.level = hero.level+1;
      hero.exp_next = hero.exp_next +((hero.level+1)*500);
      
      hero.attribute[ATR_HITPOINTS_MAX]    = hero.attribute[ATR_HITPOINTS_MAX]   + HP_PER_LEVEL;
      hero.attribute[ATR_HITPOINTS]       = hero.attribute[ATR_HITPOINTS]      + HP_PER_LEVEL;
      
      hero.LP = hero.LP + LP_PER_LEVEL;
            
      PrintScreen (PRINT_LevelUp, 2, 50, FONT_Screen, 6);            
      Snd_Play ("LevelUp");
   };
   B_Checklog ();
};

7
Ukończone modyfikacje / [G2NK] Gothic 2 Plus v1.1
« dnia: 2020-10-23, 20:30 »
Gothic 2 Plus

Aktualizacja 15.07.2021r. - v1.1 - finalna

Informacje:
Nazwa modyfikacji: Gothic 2 Plus
Platforma: Gothic 2: Noc Kruka
Język modyfikacji: Polski
Aktualna wersja: 1.1
Wielkość modyfikacji: 2,1GB
Autor: Lucki

Wykorzystane elementy modyfikacji:
Returning - modele i tekstury
L'Hiver - modele, tekstury, podpatrzone skrypty
Uniwersalny System Walki Tarczą (USWT) - walka tarczą (zmodyfikowana)
Wasteland - powiększony świat Górniczej Doliny
Vurt's Gothic II Graphics Overhaul - modele i tekstury świata w wysokiej rozdzielczości
...wiele udostępnionych projektów niezależnych twórców.

Opis:

Modyfikacja nie ma na celu być rewolucyjna. Opiera się przede wszystkim na zachowaniu ducha oryginału i utrzymaniu przyjemność czerpania z rozgrywki w takim samym stopniu jak pierwowzór. Zmiany nie są inwazyjne. Nie ma tutaj rozbudowanych nowych światów, fabuły ani zadań. Każdy rozpoczynający rozgrywkę bez problemu dostosuje się do nowości, które są przejrzyste i stopniowo napotykane. Wprowadzone nowe elementy są alternatywne dla prowadzonej rozgrywki, dające więcej możliwości do rozwoju postaci. Natomiast elementy będące już w grze dostały udoskonalone zastosowanie i powiew świeżości nawet w kwestii wizualnej. Poprawienie balansu było bardzo ważna kwestią – zarazem trudności rozgrywki jak i napotykanych przeciwników i nagród, które temu towarzyszą – udało się to doskonale.

Prezentacja:

https://www.youtube.com/watch?v=cGxziwxAafg


Główne zmiany v1.0 + v1.1:

- Rozwój postaci jest bardziej płynny na całej przestrzeni gry. Bohater zaczyna z siłą i zręcznością na poziomie 20 oraz umiejętnościami bojowymi na poziomie 15%. Każdy punkt kosztuje 2 punkty nauki na całej przestrzeni gry. Oczywiście odpowiednio jest to zbalansowane znajdowanymi tabliczkami, roślinami i innymi sposobami na zwiększenie statystyk. (Nie ma już sytuacji, że trzyma się pół gry tabliczki, mikstury w ekwipunku czy skrzyni, by użyć ich dopiero, gdy umiejętności staną się droższe) Tylko mana kosztuje 1/1PN zawsze!

- Dodano dwustopniowy system walki tarczą, jak i 24 tarcze do zdobycia.

- Dodano ponad 25 nowych pancerzy do zdobycia podczas eksploracji świata, a szaty maga zapewniają mu premię do regeneracji many. Niezależni NPC posiadają nowy sprzęt, przez co nie ma już wrażenia, że większość wygląda podobnie.

- Dodano możliwość przejścia gry bez konieczności wyboru gildii.

- Dodano możliwość zostania czeladnikiem w Matteo, który specjalizuje się w wytwarzaniu i ulepszaniu pancerzy.

- Dodano możliwość zostania czeladnikiem w Thorbena, który nauczy bohatera wytwarzania wyrtychów, menzurek, pochodni...a także przetapiać złote oraz srebrne kosztowności na uncje z których można potem ulepszyć wyjątkowy pierścień.

- Dodano górnictwo bez konieczności uczenia się go i inwestowania punktów nauki. Pozyskiwane materiały (głównie ruda żelaza i magiczna ruda) jest wykorzystywana w wielu dziedzinach rzemieślniczych.

- Dodano gotowanie, które nie wymaga nauki, a jedynie składniki w ekwipunku.

- Dodano w świecie 35 mini-bossów dla rozdziałów 2-5. Są to bardzo silne wersje znanych potworów, broniących ponadprzeciętnego ekwipunku.

- Mini-bossowie, smoki, jak i inne wyjątkowe potwory maja swoje kilkustopniowe mechaniki walki. Rzucaja zaklęcia, przywołują sługi oraz nakładają dodatkowe efekty.

- Wszystkie runy teleportacyjne zostały zastapione jedna runą multi-teleportacyjną, gdzie miejsca należy odblokować.

- Rośliny w świecie występują rzadziej, lecz są w bardziej zbitych grupach. Towarzyszy tym miejscom nieznaczna poświata, która znika po zebraniu połaci.

- Nowe przedmioty. Więcej kosturów dla maga, broni wymagających zręczności, magicznych łuków i kusz.

- Do tworzenie wyrobów z alchemii, kowalstwa, tworzenia run są wymagane nowe składniki - głównie wykorzystano siarkę, smołę, węgiel, akwamaryn, kwarcyt, skałę krystaliczną, rudę i tym podobne.

- Zbalansowano poziom trudności potworów i przedmiotów. Pancerze mają odporności zmniejszone o ok. 15%. Ceny u kupców wzrosły, jak i samego złota znajduje się mniej. Za to ekwipunku jest dużo więcej w świecie do znalezienia - trzeba eksplorować i

stawiać czoła wyzwaniom.

- Wróciły tereny zza palisady z Gothic 1, które były wcześniej niedostępne oraz zagospodarowano wiele wolnych przestrzeni w świecie i dodano tam potwory i ekwipunek.

- Dodano zawaloną kopalnię, jako łącznik między Khorinis, a Górniczą doliną.

- Dodano nowego NPC - łowczynię Elirenę - która daje 15 zleceń na grupy potworów w zamian za wybór nagrody. Jak i przyjmuje trofea z pokonanych mini-bossów.

- Wszystkie nowe kwestie dialogowe zostały udźwiękowione dzięki platformie Mekatron oraz GothicBot. Podobnie jak czytanie ksiąg, pism i notatek przez boharera.

Screeny:

Spoiler

Pełna lista zmian v1.0 + v1.1:

Spoiler
Techniczne:

- Maksymalny zasięg widzenia zwiększony 3-krotnie.

- Modyfikacja w pełni kompatybilna z DirectX 11

- Informacje o zdobytym doświadczeniu, zdobytym poziomie, wpisy w dzienniku i wymianie towaru wyświetla się po lewej stronie ekranu, Ponadto podczas wpisu w dzienniku, pokazuje się również nazwa zadania.

- Usunięto „FOGY” ze świata gry, powodujące brzydką i sztuczna mgłę w lasach i znikanie tekstur przy Directx 11.

- Wszystkie nowe kwestie dialogowe dostały dubbing, jak również pisma, listy oraz notatki są czytane przez głównego bohatera - wszystko dzięki platformie Makatron oraz  GothicBot.

- Wykorzystano sporą część modeli i tekstur o wyższych rozdzielczościach z oprawy graficznejVurt'sGothic II Graphics Overhaul

Ogólne/świat:

- Usunięto większą część przedmiotów w świecie i raz jeszcze rozmieszczono je na nowo, w bardziej przemyślany sposób. Eksploracja jest bardzo nagradzana.

- Rośliny w świecie NIE są już porozrzucane dosłownie wszędzie, lecz występują rzadziej w bardziej zbitych grupach. Towarzyszy tym miejscom nieznaczna poświata, która znika po zebraniu połaci.

- Rozwój postaci jest bardziej płynny na całej przestrzeni gry. Bohater zaczyna z siłą i zręcznością na poziomie 20 oraz umiejętnościami bojowymi na poziomie 15%. Każdy punkt kosztuje 2 punkty nauki na całej przestrzeni gry. Oczywiście odpowiednio jest to zbalansowane znajdowanymi tabliczkami, roślinami i innymi sposobami na zwiększenie statystyk. (Nie ma już sytuacji, że trzyma się pół gry tabliczki/ mikstury w ekwipunku czy skrzyni, by użyć ich dopiero, gdy umiejętności staną się droższe) Tylko mana kosztuje 1/1PN zawsze!

- Zmiany w punktach życia. Kamienne tabliczki życia zostały całkowicie usunięte ze świata, a bohater zyskuje co poziom 10 punktów trafień zamiast 12. Zrekompensowano tą stratę 200 punktami życia na początku gry oraz bierną regeneracją życia 1/10s i many 1/60s.

- Dodano dwustopniowy system walki tarczą, jak i 25 tarcz do zdobycia. Tarcze obciążają bohatera powodując karę siły od 2 do 10.
Nauczyciele: poziom I (broń jednoręczna: 35%, 10PN) – Wulfgar, Cord, Morgan, Keroloth.
Nauczyciele: poziom II (broń jednoręczna: 65%, 10PN) – Morgan, Keroloth.
Nauczyciele: poziom I (broń jednoręczna: 35%, 10PN) – Dragomir (tylko w przypadku braku gildii).
Nauczyciele: poziom I (broń jednoręczna: 30%, 5PN) – Sergio  (tylko dla nowicjusza/maga ognia).

- Dodano ponad 20 nowych pancerzy do zdobycia podczas eksploracji świata, a szaty maga zapewniają mu premię do regeneracji many. Niezależni NPC posiadają nowy sprzęt, przez co nie ma już wrażenia, że większość wygląda podobnie. (Razem ponad 160 nowych modeli pancerzy).

- Stworzono zdecydowanie większą liczbę przedmiotów. Wiele nowych jak i starych rzeczy dostało nowe tekstury pasujące do klimatu Gothic. Nieznacznie uległy zmianie również statystyki oraz wymagania.

- Dodano w świecie 36 mini-bossów z własnymi teksturami dla rozdziałów 2-5, którzy stanowią sprawdzian umiejętności dla bohatera, równocześnie strzegąc lepszego ekwipunku. Każdy z nich posiada własne trofeum.

- Dodano wielofazowe mechaniki walk z bossami oraz rzadkimi potworami. Są teraz przez nich rzucane zaklęcia, przywoływani pomocnicy oraz inne efekty utrudniające walkę. Tych przeciwników nie da się już zamrozić ani unieruchomić czarem wir.

- Dodano nowego NPC w Khorinis – łowczynię Elirene, która daje serię 15 zleceń na potwory (po 3 dla każdego rozdziału) w zamian za drobne nagrody. Również za dostarczanie trofeów.

- Dodano tereny za palisadą orków w Górniczej dolinie z poziomem trudności dla rozdziału 5. Jak również wracają stare miejsca z Gothic 1 (cmentarzysko orków, kanion trolli, jaskinia goblinów i inne) Kilka pustych miejsc w świecie również zostało zagospodarowanych.

- Dodano lokację Zawalona kopalnia, która jest łącznikiem między terenami Khorinis, a Górniczą doliną.

- Dodano nowe potwory. Są to goblińscy jeźdźcy oraz goblin-elita. Zombie nie reaguje na siłę zadawanych obrażeń, lecz na ich ilość.

- Nieznacznie zmieniono koszty kilku umiejętności dla lepszego balansu.

- Zwiększony został poziom trudności i nieznacznie zmodyfikowano statystyki potworów i niektórych NPC. Pancerze posiadają mniejsze odporności o około 15%, a minimalne zadawane/otrzymywanie obrażenia zostały ustawione z 5 na 10.Ponadto ceny u handlarzy są wyższe.

- NPC nie zaczepiają już bohatera, gdy ten ma niewłaściwy pancerz.

- Tawerna Orlana staje się miejscem z przyrządami rzemieślniczymi i kilkoma pustymi kuframi do trzymania przedmiotów.

- Usunięto wszystkie runy teleportacyjne i zastąpiono je jedną runą multiteleportacyjną, którą można znaleźć w tawernie Orlana. Dzięki temu zajmuje tylko jedno miejsce w ekwipunku. Nowe miejsca odblokowują się w tym samym momencie, w których dostawaliśmy zwykłe runy. Wybór miejsca teleportacji jest w formie dialogu.

- Koszty zaklęć ze zwojów zależą od kręgu z którego pochodzą - od 10 do 40 many.

- W kilku miejscach, niespodziewanie potrafią zaatakować bestie lub bandyci - zawsze w pobliżu będą pomocni NPC, którzy wesprą bohatera.

- Wokół zamku w Górniczej dolinie orkowie są nieśmiertelni. Ma to umocnić uczucie oblężenia nawet, gdy bohater stanie się dość silny by ich pokonać - zwłaszcza czarami.

- Wchodząc do kajuty w Dworze Irdorath przy pomocy kodów, można wrócić do Khorinis, a potem z powrotem.


Nowa droga  - brak gildii:

- Dodano nową ścieżkę. W pierwszym rozdziale nie jest obowiązkowy wybór gildii, by dostać się do Lorda Hagena i rozpocząć rozdział 2. Wtedy wybór pozostałych gildii zostaje zablokowany.

- Aby dokonać tego wyboru należy osiągnąć poziom 10 w pierwszym rozdziale. Wtedy Vatras daje bohaterowi amulet kuriera, który pozwala wejść do ratusza.

- Bohater w dialogach z NPC jest traktowany jak najemnik.

- Dostanie się na statek w rozdziale 5 wymaga wręczenia 10’000 złota łapówki.
- Korzyści:

   - nauka broni z magicznej rudy od rozdziału 2 z wyjątkiem najlepszych ostrzy na smoki u Carla, Dobry, Huno oraz Jana.

   - możliwość wyuczenia się od 2 rozdziału „run defensywnych” – które nie wymagają kręgów magii u Neferiusa. Są to: światło, sen, korzeń, wodna pięść, leczenie lekkich ran oraz przywołanie towarzysza.

   - możliwość podniesienia regeneracji many do 1/15 sekund u Saturasa od rozdziału 2.
- w rozdziale 5 w almanachu pod klasztorem, Xardas wspomina o artefaktach Beliara i zostawia klucz, by je odnaleźć.

Ścieżka wojownika:

- Dodano więcej broni wymagających zręczności, równocześnie zwiększając wymagania do posługiwania się nimi.

- Dodano kilka magicznych łuków i kusz, które zadają obrażenia od magii oraz posiadają premię 10%. Wymagają magicznych strzał/bełtów. Tych też można znaleźć znacznie więcej w świecie.

- Dodano nowy pancerz najemnika. Jego parametry są miedzy lekkim, a średnim.

- Dodano nowy pancerz u strażnika. Jego parametry są miedzy lekkim, a średnim. Do kupienia u Pecka, gdy ten wróci na stanowisko.

- Zwiększono i zmniejszono u NPC limity nauki umiejętności. Z czasem trzeba szukać coraz lepszych mistrzów w swej dziedzinie. Każdy nauczyciel ma opisany swój limit przy dialogu.

- Średni pancerz łowcy smoków kosztuje 10’000 złota zamiast 12’000.

- Łowca smoków chcąc kupić średnią i ciężką zbroję łowcy smoków, ma do wyboru z nakryciem głowy jak i bez. Statystyki zbroi są takie same.

- Przy otrzymywaniu zbroi rycerza oraz paladyna, dostaje się alternatywny egzemplarz bez nakrycia głowy.

- Przy statystykach broni, został podany również zasięg jakim ona dysponuje.

- Miecze paladyna kupione u Harada i ich błogosławione wersje dodają premię do many.

- Wstępując w zakon paladynów regeneracja many biernie wzrasta z 60/s do 30/s.

- Albrecht nie daje paladynowi run, lecz uczy, jak je stworzyć. Uczy również niszczenia zła w rozdziale 5.

- U niektórych handlarzy nie można już kupować strzał i bełtów w nieskończoność. Nieograniczoną ilość sprzedaje Orlan za wyższą stawkę.

- Szpon Beliara ma mniejszą szansę na uderzenie błyskawicy, jak i ona zadaje tylko 50 obrażeń. Ponadto ulepszyć szpon można co 5 kolejnych poziomów, a nie jak poprzednio 2, a dodatkowo bohater traci mniej życia (maksymalnie 25).

- Biegłość w walce bronią jednoręczną i odwrotnie nie daje już biegłości w drugim rodzaju. Tak samo z łukami i kuszą.

Ścieżka maga/magia:

- Dodano kilkanaście użytecznych kosturów dwuręcznych dla maga, oraz specjalne dla nich tarcze, które zapewniają premię do many. Mag może w ten sposób wybrać między dwoma stylami gry na bliski dystans.

- Na runach widnieją statystyki przywołańców. Oni sami stali się bardzo wytrzymali, kosztem mniejszych obrażeń. Potrafią również wolno regenerować życie i służą o wiele dłużej. Można mieć jednocześnie jednego przywołańca tego samego kręgu. Przywołańcy nie giną po kliknięciu na nich (często zdarzało się przypadkowo), zamiast tego pojawia się opcja dialogowa, aby ich odwołać. Posiadają też zwiększony zasięg wychwytywania potworów.

- Saturas może nauczyć Maga Ognia 3 kręgu magii nawet w rozdziale 2, będąc w Jarkendarze. Jest to spowodowane wyższym poziomem trudności w tej części świata.

- W rozdziale 2,3 oraz 5 wraz z postępem fabuły Mag ognia dostaje od Pyrokara bonusową premię do odporności na ogień i magię.

- W bibliotece klasztornej, księgi z zaklęciami oprócz podanych nowych wymagań co do wytworzenia czaru, maja podany również koszt punktów nauki do wyuczenia, aby rozważniej rozplanować ścieżkę magii, jak i wydatek many, obrażenia i krótki opis.

- W bibliotece Klasztornej znajduje się również piedestał z czarami Magów wody.

- Łzy Innosa dodają magowi +5 siły, +5 zręczności, +5 many.

- Amulet przywołania dusz dodaje 5 many oraz 40 życia.

Wytwarzanie przedmiotów:

- Aby rozpocząć pracę na kowadle bohater musi mieć przy sobie Rzemieślniczą stal. Jednak by wykuć miecz potrzebuje już zwykłej rozgrzanej stali. Taka zmiana była konieczna, aby uniknąć sytuacji, w której postać traci ostatnią stal podczas wytwarzania przedmiotu i nie może rozpocząć ponownie pracy z powodu jej braku. Analogicznie jest z Rzemieślniczą menzurką oraz Rzemieślniczym pustym kamieniem runicznym. Te przedmioty wystarczy zdobyć tylko raz i mieć je w ekwipunku. Dostajemy je na początku rozgrywki lub można kupić za darmo u niektórych handlarzy.

- Po stworzeniu przedmiotu, bohater nie wychodzi z dialogu i dalej może kontynuować pracę.

- Dodano górnictwo i wiele złóż do znalezienia, z których wydobywa się rudę żelaza potrzebną w wielu rzemiosłach, bryłki złota oraz magicznej rudy.

- Dodano gotowanie przy kotle. Wykorzystując surowe mięsa oraz dodatkowy składnik można ugotować gulasz (65 punktów życia) lub potrawkę (65 punktów życia, 25 many). Nie wymaga nauki ani szukania przepisów.

- Magiczna ruda staje się bardziej przydatna dla każdej z gildii. Łowca smoków kuje z niej miecze, mag wytwarza puste kamienie na stole runicznym, a paladyn potrzebuje ich do stworzenie swoich run. Dodatkowo musi dopłacić 10 bryłek za miecz z rudy u Harada.

- Wybór czeladnika daje różne inne profity.

- Wiele przedmiotów dostało opis „Materiał rzemieślniczy” , „Materiał alchemiczny” lub "Składnik kulinarny". Pozwala to się lepiej zorientować jakie przedmioty mogą się w przyszłości przydać i których może lepie nie sprzedawać pochopnie.

- Składniki do formuł kowalskich, alchemicznych i tworzenia run zostały przemodelowane.

- Czarnej rudy nie da się już użyć. Służy teraz jako bardzo rzadki materiał rzemieślniczy do najlepszych receptur.

- Muszle przeważnie dają jakiś materiał rzemieślniczy.

- Przy paladynie Albrechcie stoi stół runiczny.

- Pojawiły się pulpity w opisami i wymaganymi składnikami do kowalstwa, alchemii, tworzenia run, płatnerstwa oraz rzemieślnictwa.

Nowy zawód - płatnerstwo:

- Dodano możliwość pozostania czeladnikiem u Matteo.

- Matteo może nauczyć bohatera 5 nowych zbroi do wykucia, a następnie każdą z nich ulepszyć dwukrotnie. Wymagane do wyuczenia jest pozyskiwanie futer oraz podstawy kowalstwa, które są niezbędne do uzyskiwania potrzebnych składników.

- Ulepszone pancerze (wersja wzmocniona oraz uszlachetniona) oprócz wyższych statystyk posiadają również coraz to lepszy wygląd.

- Biegłość w płatnerstwie pozwala również ulepszać szaty magów, aby czerpać korzyść nawet grając Magiem Ognia.

- Jan uczy bohatera zbroi dla rozdziału 4, jeśli ten nie nauczył się jej wcześniej u Matteo.

Nowy zawód - rzemieślnik:

- Dodano możliwość pozostania czeladnikiem u Thorbena.

- Thorben nie jest już stolarzem, a rzemieślnikiem. Może nauczyć bohatera wytwarzania wielu przydatnych rzeczy z rudy żelaza, a także przetapiać srebrne i złote kosztowności na drogocenne uncje, które może później wykorzystywać.

- Jako, że Thorben jest spłukany i zadłużony, bycie czeladnikiem nie wiąże się bezpośrednio z zarobkiem, a bardziej na wyrabianiu przedmiotów, które w innym wypadku musielibyśmy znaleźć lub kupić.

- Na pniu można wytworzyć: strzały, bełty, magiczne strzały, magiczne bełty oraz pochodnie.

- Na tyglu (nowy przedmiot do użycia) można wytworzyć: wytrychy, menzurki, stal oraz puste kamienie runiczne.

- Na tyglu można przetopić srebrne/złote pierścienie, talerze, puchary, świeczniki itp. na uncje srebra/złota.

- Głównym profitem bycia czeladnikiem Thorbena jest ulepszanie "Pierścienia wspaniałości", wykorzystując złote oraz srebrne uncje. Pierścień można ulepszyć pięciokrotnie, za każdym razem dodając jeden z dwóch atrybutów do wyboru. Dzięki temu jest 32 ostatecznych wersji pierścienia z pięcioma atrybutami.
Poziom1: Siła+3/zręczność+3.
Poziom2: Życie+20/mana+4
Poziom3: Odporność broń+3/odporność strzały, ogień, magia+4
Pozom4: (zależnie od wyboru poziomu 1): Broń jednoręczna+2/dwuręczna+2/Łuk+2
Poziom5: (zależnie od wyboru poziomu 1): Kusza+3/Regeneracja życia+3/Nieustanny sprint

Kowalstwo:

- Na kowadle można wykonać kilka innych przedmiotów: przetopić rudę żelaza na sztabki rudy oraz bryłki magicznej rudy na sztabki magicznej rudy. Jak również wyciągnąć klingi (wymagane do wytworzenia mieczy).

- Harad uczy swojego czeladnika równolegle wykuwania mieczy dwuręcznych.

- Kowal Jan uczy również broni z magicznej rudy o poziom wyższej, jak i El Bastardo jeśli bohater umie stworzyć rubinowe ostrze.

- W rozdziale 4 można zdobyć przepis na czarną broń. Stworzyć ją może tylko czeladnik Harada, jeśli umie wykonać El Bastardo.

- Kowal Dobra uczy dobrego długiego miecza/dwuręcznego, jeśli bohater potrafi wykuć dobry miecz.

Alchemia:

- Constantiono może nauczyć swojego czeladnika każdej możliwej mikstury oraz 1 zupełnie nowej, która przyspiesza bierną regenerację życia.

- Constantino w zadaniu dla czeladnika nie wymaga już smoczego korzenia, goblińskiej jagody i szczawiu królewskiego.

- Mikstury lecznicze przywracają odpowiednio 100, 200, 300 punktów zdrowia, a many 75, 125, 175 punktów.

- Istnieją 3 sposoby wyuczenia się pełni życia/many w rozdziale 5. Kupno drogiej receptury, znalezienie w świecie lub nauczenia się u Sagity lub Constantino za 7 PN.

- Posiadając 2 rośliny i rdest uzyskuje się 3 mikstury lecznicze/many, gdyż ilość napotkanych ziół jest trochę mniejsza.

- Ekstrakt i eliksir posiadają również alternatywne składniki do uwarzenia mikstury.

- Mikstury ducha dają +3 many zamiast 5.

- Zębate ziele działa 30 sekund

- Zjedzenie szczawiu królewskiego da +5 do maksymalnego zdrowia oraz całkowicie regeneruje życie i manę.

- Mikstura przemiany duszy wymaga esencji many zamiast ekstraktu many.

- Animacja picia rzadkich mikstur jest dłuższa, a trunków krótsza.

- Powstał drugi stół alchemiczny u Canstantino dla jego czeladnika oraz na farmie Onara w przedpokoju.

- Riordian uczy mikstury siły oraz eliksiru leczniczego.

- Mikstura szybkości kosztuje 3 PN, działa 10 minut i z jednego zębatego zioła można wytworzyć 3 napoje. Zębatych ziół znajdujemy mniej.

- Mikstura ze smoczych jaj znajduje się w podkategorii „specjalne” i dodaje siłę, zręczność oraz manę +3.

Złodziejstwo:

- Zmiany w otwieraniu skrzyń i przedmiotach w nich. Skrzynie podzielono na 4 poziomy trudności w zależności od liczny przesunięć wytrychem. Każdy poziom jest przyciasny odpowiedniej teksturze. Skrzynie i drzwi zamknięte na klucz dostały odpowiednie opisy.

- Niektóre klucze można ponownie wykorzystać do nowych kufrów o nazwie „zardzewiała skrzynia/drzwi”. Ich położenie i poprzedni właściciele można w pewien sposób logicznie wyjaśnić. Można tam natrafić na wyjątkowe przedmioty, czasami tylko dostępne dla odpowiedniej gildii czy rzemieślnictwa.

- Kradzież kieszonkowa daje około 2x mniej doświadczenia. Łupy u niektórych NPC zostały zmienione.

- Dołączając do gildii złodziei otrzymuje się kurtkę  kieszonkowca.

- Od Goraxa da się ukraść klucz do spiżarni zamiast skarbca. Klucz do skarbca można zdobyć w inny sposób.

- Wytrychy występują tylko w otwartych już skrzyniach, jak i losowo można trafić pokonanych NPC czy bandytów.

- Klucz do ostatnich drzwi Gomeza w Zamku jest do odszukania w Górniczej dolinie, gdyż pomieszczenie oferuje więcej korzyści.

Pozyskiwanie trofeów:

- Bosper może nauczyć swojego czeladnika pozyskiwanie skór gadów oraz kilku innych podstawowych trofeów.

- Będąc czeladnikiem u Constantino, ten nie chce już by dostarczać mu ciemnych grzybów, lecz za to woli rzadkie nowe trofea, które mogą wypaść z niemal każdego stwora. Szansa wynosi +-4%. Są to np. jajo drapieżnika, wątroba, śluz, trucizna, głowa orka oraz 12 innych trofeów.

- Z książąt demonów, szkieletów-wojowników oraz harpii można zdobyć odpowiednio serce księcia demonów, kość przepełnioną magią oraz pióra.

- Wiele potworów pozostawia mniejszą ilość swoich trofeów, lecz są one więcej warte.

- Buster już prawidłowo daje doświadczenie za rogi cieniostwora, lecz tylko 50 za róg. Zadanie ma na celu zarobek.
- Z kąsaczy można pozyskać zęby.

- Jack Aligator uczy więcej pozyskiwania trofeów.

- Głowę polnego pełzacza pozyskamy tylko jeśli potrafimy wyciągać żuwaczki. 

Tworzenie run:

- Z 4 bryłek magicznej rudy oraz 5 bryłek żelaza można stworzyć pusty kamień runiczny. Jest to ważne, gdyż ograniczono ilość u handlarzy.

Handel:

- Zmieniono ceny przedmiotów. Część bardziej istotnych przedmiotów jest droższa/ znacznie droższa, lecz można na nie natrafić w świecie. Jest to wybór między pójściem na łatwiznę i kupieniem u handlarza, a bardziej szczegółową eksploracją świata.

- Handlarzy podzielono lepiej na kategorie oraz nie sprzedają ponad-przeciętnego ekwipunku na niższych rozdziałach.

- Lutero ma w swoim asortymencie wiele ciekawych rzeczy do kupienia, choć nie są one tanie.

- Księgi dodające premię do broni jednoręcznej i dwuręcznej dają teraz +2% zamiast 5%.

- Od Lutero można kupić księgi, które dodają +2% do umiejętności łuku oraz +2% do umiejętności kuszy.

- Matteo dodaje do kupna w każdym rozdziale swoje zbroje z płatnerstwa w podstawowej wersji. Jest to opcja tylko dla najmajętniejszych graczy.

- Zanim bohater wejdzie do Jarkendaru, na wyspie Khorinis w kilku miejscach może spotkać Lance’go, u którego można wymienić mikstury lecznicze na many, strzały na bełty i zakupić bryłki magicznej rudy za 1000 złota. W jarkendarze nadal możemy z nim handlować, gdyż pojawia się jako duch w obozie bandytów po oddaniu pierścienia Saturasowi.

- Skórzany pancerz można kupić u Matteo i Orlana tylko w 1 rozdziale.

- Przemeblowano dom Zurisa tak, aby jeszcze wieczorem można było z nim pohandlować w progu.

Pomniejsze:

- Gdy bohater zostanie obalony przez NPC, ten zostawia mu broń i zabierze 10% złota (złoto znika, nie można go odzyskać). Ma to na celu zachęcić do dalszej gry po pokonaniu, a nie wczytanie ostatniego zapisu.

- Modlitwa przy kapliczce daje zawsze +5 punktów życia i częściowo leczy rany, aby gracz nie nadużywał jej do stania się szybko silniejszym.

- Vatras za stare kamienne tabliczki ofiaruje tylko mikstury leczenia lub many.

- Można wyuczyć się akrobatyki za 5 PN u Bustera od rozdziału 2.

- Smoki nie regenerują już swojego życia. W zamian dostali jej większą pulę. Oprócz tego każdy smok ma towarzystwo.

- Smoki nie odpychają przy zionięciu ogniem, lecz mają nieznacznie większe obrażenia.

- Usunięto zadanie wyprowadzenia Diego z GD z powodu możliwości nabicia zbyt dużej ilości doświadczenia z silniejszych potworów już w rozdziale 2.

- Za oddanie Szponu Beliera Saturasowi, bohater otrzymuje +3 punkty nauki.

- Bagienny smok znajduje się w dawnym Obozie bractwa.

- Lester udaje się do wieży Xardasa, co powoduje usłyszenie wcześniej niedostępnych kwestii dialogowych od obojga.

- W kilku miejscach pełzacze zostali zastąpieni pełzaczami-wojownikami.

- Każdej grupie bandytów przewodzi znana postać w Gothic I, która nie znalazła się w Gothic 2, lecz nie pełni żadnej innej funkcji prócz bycia bandytą.

- Wyuczenie Ognika u Riordiananie kosztuje 0 PN i 50 sztuk złota.

- Wulfgar daje premie +1 do broni jednoręcznej i dwuręcznej, gdy przyjdziemy do niego z rana.

- Zamieniono statystyki wilka ze ścierwojadem.

- Dopasowano poziom trudności i statystyki dla Franko, Estebana, Bloodwyna i Kruka, aby te postacie stanowiły wyzwanie.

- Przyjaznym NPC można wręczać miksturę pełni życia.

- Pan cienia Inubis oraz Archon stanowią dużo większe wyzwanie.

- Pomniejsze szkielety zostały usunięte lub zastąpione innymi nieumarłymi.

- Zamiast smoczych zębaczy w rozdziale III pojawiają się wargi dla lepszego balansu.

- Do wyboru jest 11 godzin snu zamiast 4.

- Teleportacja do Khorinis przenosi w okolice kuźni Harada.

- Teleportacja na farmę Onara przenosi do kaplicy.

- Została dodana dodatkowa kapliczka Innosa przy świątyni Adanosa w Khorinis.

- Rozdział VI: Dwór Irdorath jest prawdziwym testem dla prowadzonej postaci. Każda grupa potworów i komnata stanowi wyzwanie.

- Najlepsze bronie dwuręczne skalują się co 5 obrażeń, a nie 10. Przez to najlepsze broń posiada 175 obrażeń i wymaga 175 siły.

- Można odnaleźć ciało posłańca Baltrama oraz myśliwego Trokara.

- Ważni paladyni i rycerze noszą wersje bez nakrycia głowy.

- W kotlinie koło Groma jest tylko 1 Troll.

- Trolle przywołują towarzystwo w postacji goblinów, przez to walka z nimi jest bardziej trudna.

- Do kanionu w Jarkendarze towarzyszy tylko Matt. Jest bardziej wytrzymały, a ilość orków została zmniejszona.

- Jabłka nie dodają siły, a ciemne grzyby tylko 1 many zamiast 5.

- Gulasz Tekli dodaje +1 siły lub +1 zręczności w zależności czego posiadamy więcej oraz regeneruje 200 życia.

- Zapłacenie Matteo za Grittę skutkuje lepszą nagrodą.

- Wilki Pepe oraz strzegące wejścia do GD są dorosłymi osobnikami zamiast młodymi.

- Pierścienie i amulety dodające many po założeniu, zwiększają tylko jej maksymalna ilość.

- Pierścień Morgana dodaje +1 do broni jednoręcznej i dwuręcznej. Oddanie go piratowi daję więcej doświadczenia.

- Z powodu większej liczby pancerzy do zdobycia, Eremicie można dać również te nowe.

- Gaan i Greg po rozmowie omijają topielce.

- Krwiopijcy przy farmie Bengara są umieszczeni nieco dalej, aby farmerzy ich nie atakowali.

- Krwiopijcy i szkielety-gobliny występują w mniejszych grupach.

- Oko Innosa daje +3 do odporności na broń oraz +5 na pozostałe odporności i ma odpowiedni opis o tym.

- Ze smoków można pozyskiwać po 10 smoczych łusek zamiast 12.

- Parcival uczy maga ognia oraz paladyna many do limitu 250.

- W rozdziale 4 w Górniczej dolinie można spotkać ducha Gomeza i rzucić mu wyzwanie.

- W rozdziale 3 w Khorinis można spotkać ducha Lotara  i pokazać mu dowód na istnienie smoków. Skutkuje to ukrytym dialogiem, którego nie wprowadzono w oryginalnej wersji.

- Leżące na ziemi mikstury, runy i zwoje prawidłowo wyświetlają swoje konkretne nazwy zamiast ogólnych.

- Mag Daron w zamian za złoto daje inne premie - głównie doświadczenie. Usunięto datki po 100 oraz 200 złota,
pozostawiając 20 datków po 50 złota.

- Nie można już pójść z Laresem do kamiennego kręgu w lesie. Bohater musi to zrobić sam.

- Pasy dla gildyjnych pancerzy można kupić dopiero w rozdziale 2 u Orlana. Nie zapewniają już premii + 5 gdy posiadamy inny pancerz niż wskazany.

- Sagita,Vatras oraz korzystanie ze snu uzdrowią bohatera tylko 300 punktów zdrowia i tylko raz dziennie.

- Siedem ognistych pokrzyw powstaje w pobliżu Klasztory dopiero, gdy dostaniemy zadanie od Neorasa na dostarczenie ich.

- Arlik oprócz broni jednoręcznej uczy również broni dwuręcznej. Jest to przydatne w początkowej części w przypadku rozgrywki bez gildii.

- Stworzenie pancerza z płytek pełzaczy skutkuje otrzymaniem doświadczenia.

- Abuyin opowie o przyszłości już po naprawieniu Oka Innosa, a nie po rozpoczęciu rozdziału 4.

- W rozdziale 4 pojawiają się kąsacze oraz brzytwiaki zamiast zębaczy.

- Poszukiwacze są odporne na zamrożenie, aby naprawić błąd z wypadania z nich wielu run.

- Można odzyskać fragment ornamentu od Laresa już w rozdziale 2 zamiast 3.

- Ksiega „Boska moc gwiazd” daje 1 many.

- Nie można modlić się do Beliara poświęcając życie/manę w zamian za złoto. Kapliczka służy wyłącznie do ulepszenia Szponu.

- Dodano skromny losowy ekwipunek z jaszczuroludzi, orków-ożywieńców i szkieletów-magów.

- Szkielet-mag przywołuje dwóch szkieletów do pomocy zamiast jednego. Przywołane szkielety nie posiadają kości do zdobycia ani nie zapewniają doświadczenia.

- Z powodu mniejszego asortymentu czarów u handlarzy w początkowej części gry, osłabiono członków gildii złodziei, aby bohater miał szanse ich pokonać. Niemniej nadal stanowią poważne wyzwanie.

- Zadanie „Sprawa Fernando” można ukończyć również, rozmawiając z nim w więzieniu.

- Zadania „Zioła dla Constantino” zostaje zakończone zaraz po dialogu z nim.

- Wykopane skarby dla kapitana Grega mają odpowiednią adnotacje, aby utrudnić ich przypadkowe sprzedanie.

- W rozdziale 6 orkowie atakują statek, gdy bohater wraca na niego po pokonaniu orkowego pułkownika.

- Członkowie rady w klasztorze mają przypisane proste rutyny zamiast siedzenia ciągle na tronie.   

- Limit załogi w rozdziale 5 został zniesiony i jest możliwe zabranie wszystkich zainteresowanych.

- Zasięg światła pochodni został znacznie zwiększony.

- Czar światła rozświetla dużo większy teren.

- Ciało Sengratha w rozdziale 4 zostało przeniesione w okolice przejścia przez orkową palisadę oraz nie posiada już sprzedanych mu przedmiotów.

- Fester dołącza do drużyny podczas ataku na gniazdo polnych bestii.

- Xardas udaje się do słonecznego kręgu dopiero, gdy informuję nas o księdze Irdorath dla Pyrokara.

- Powalenie Corneliusa stanowi nieco większe wyzwanie.

- Diego za pomoc z Gerbrantem wręcza tylko 200 złota zamiast 500.

- Seprentes za przyprowadzenie Salandrila wręcza 100 złota zamiast 400.

- Alrik nie jest chętny aby zbyt często z nim walczyć, nawet jeśli sam stał się bardziej wytrzymały.

- Zadanie "Dowody" kończy się przy rozmowie z Lordem Hagenem, a nie przy rozpoczęciu rozdziału 3.

- Jeśli w rozdziale 2 zdecydujemy się odebrać ornament Laresowi i samemu zanieść go magom wody zostaniemy nagrodzeni 300 punktami doświadczenia.

- Biff rozbił swe obozowisko w bezpiecznej odległości od zamku, aby być bardziej dostępny. Jest również wytrzymalszy.

- Bohater rzeczywiście oddaje Udarowi kuszę Sengrata.

- Skóra topielca jest teraz skórą gada.

- Przy walce z Juanem atakuje również jego kompan.

- Kamienne golemy są silniejsze - bardziej zbliżone potworom dla rozdziału 4.

- Erol uczy siły do 125 punktów.

- Brutus uczy siły do 125 punktów.

- Cassia uczy zręczności do 125 punktów.

- Szkielety cieniostwora, ogniste jaszczury oraz szkielety-gobliny atakują w grupie.

- Poprzez oddanie długu Lemarowi, otrzymamy doświadczenie - przyznajcie się, kto kiedykolwiek mu oddał chociaż raz?

- Nie można już w nieskończoność dostawać piwa na targowisku.

- Podwójny młot Lou na chwilę spowalnia czas i przyspiesza bohatera.

- Jeśli oddamy Raol'owi skórę czarnego trolla, to nie możemy jej odzyskać pobijając go.

- Przywołując przywołańca, nie towarzyszy temu już trzęsienie ziemi.

- Cipher oraz Rod jako łowcy smoków stali się odrobinę wytrzymalsi.

- W spiżarni klasztornej można znaleźć kilka składników kulinarnych zamiast pustych półek.

- Coragonowi skradziono tylko 3 srebra.

- Przywoływany kodami NPC "ICH" ma spolszczone napisy, a także naucza nowych umiejętności dostępnych w modyfikacji.

Drobne:

- Niewielkie zmiany w atrybutach NPC, ich ekwipunku i wyglądzie.

- Wiele ważnych NPC i handlarzy stoi dłużej przy swych stoiskach/ miejscach.

- Kolorowe kamienne tabliczki budowniczych potrzebne do przejścia Świątyni Addanosa są ponumerowane chronologicznie i mają bardziej precyzyjne opisy do ominięcia pułapek.

- Vatras daje inne nagrody przy zadaniu z wiadomością dla maga ognia.

- Pyrokar większość dnia podobnie jak Vatras, opowiada historię o Łzach Innosa i Dworze Irdorath.

- Topielce Krevo nie mają już ograniczonego zasięgu oddalenia się od swojego waypointa.

- Klucz do magazynu w GD można odnaleźć podczas eksploracji.

- Między wulkanem, a starą cytadelą w GD można zobaczyć ruiny dawnego mostu.

- Smocze skarby są w postaci różnych kosztowności zamiast mieszków.

- Kilka lokacji zostało lepiej oświetlonych.

- Można już otworzyć skrzynię Estebana.

- Esteban po śmierci posada tylko 4 czerwone tabliczki zamiast 5.

- W pobliżu Estebana znajduje się wisielec osoby, która próbowała go zabić.

- Esteban mówiąc o osobie, która próbowała go zabić, odwraca się w stronę wisielca obok niego.

- Kamienne tabliczki dostały opis otrzymywanego bonusu.

- Gra zaczyna się o godzinie 2:00 zamiast 8:00, aby po rozmowie z Xardasem i przeszukaniu wieży zaczynał się poranek zamiast południe.

- Keroloth nie atakuje już bohatera po otwarciu bramy, co często skutkowało walką z większą ilością NPC. Na Parcivala nadal trzeba uważać.

- Jan i Feros nie mają ograniczonych funkcji rozmowy/nauki nawet po otwarciu bramy w zamku.

- W rozdziale 4 znajduje się mniej orków przy taranie.

- Zastąpiono nazwę początkową gildii „Brak przyn.” „ Brak gildii”, aby nazwa w pełni mieściła się w oknie.

- Dialog z Saturasem po znalezieniu Szponu Beliara nie ściąga już broni z bohatera.

- Orik o zagrożeniu ze strony bagiennego smoka wspomina na końcu.

- Dialog Orika odnoście ekwipunku za Hosh-Paka nie znika po przyjęciu zlecenia.

- Orkowie nie polują już na cieniostwory.

- Wygląd stoisk na targowisku w Khorinis stanowią odzwierciedlenie w czym dany handlarz się specjalizuje.

- Na farmie Onara powstało niewielkie ogrodzenie.

- Kilka bardziej pustych miejsc dostało dodatkowe elementy otoczenia.

- W kilku miejscach można dostrzec na drzewach listy gończe z podobizną bohatera.

- Naprawiono błąd, który powodował, że NPC Grom nie trafiał w swe rutyny i stał przy pniu całą noc.

- Naprawiono błąd, w którym Grorn w rozdziale 3 nie posiadał przy sobie broni.

- Kilof posiada odpowiednią informację, że służy do kopania złóż oraz skarbów.

- Poprawiona dialog „płytki pancerza zębacza” na pełzacza.

- Salandril oraz Vino gdy przebywają w klasztorze, siedzą w ławkach w głównej hali.

- Ramirez dostał stosowną informacje przy dialogu, że nauka otwierania zamków kosztuje 10 PN.

- Buster jest nieśmiertelny od rozdziału 3, ze względu na ataki Poszukiwaczy.

- Oddalono grupę goblinów od Bustera, aby najemnicy ich nie atakowali.

- Szybki śledź kosztuje 70 sztuk złota zamiast 30.

- Brzytwiaki nie atakują kąsaczy.

- Podczas dialogu z Poszukiwaczami i korzystaniu z kapliczki Beliara nie występuje już „czerwona” aura z powodu problemu niewidocznych wyborów dialogowych przy korzystaniu z DirectX 11.

- Tonak, Talbor oraz Pardos nie noszą już spodni skazańca po powrocie z Jarkendaru.

- Daron za odniesienie cennego posążka do Klasztoru daje 50 złota zamiast 150.

- Na stole przy Lordzie Hagenie leży model fragmentu ornamentu.



Instalacja:

- Pobierz i rozpakuj plik .rar
- Przenieś plik Gothic_2_Plus_PL.mod oraz Gothic_2_Plus_PL2.mod do folderu: GothicII/Data/ModVDF
- Przenieś plik Gothic_2_Plus_PL.ini, Gothic_2_Plus_PL.ico i Gothic_2_Plus_PL.rtf do folderu: GothicII/System

Link do pobrania:

__ __ __ __ __ __ __ __

Zainstaluj wcześniej oprogramowanie (lub nowsze wersje) do poprawnej i stabilnej gry:

- gothic2_fix-2.6.0.0-rev2
- gothic2_playerkit-2.6f
- Gothic2_SystemPack_1.8
- D3D11_Renderer_Clockwork_Edition_Gothic_II_17.7.13 - jeśli chcesz używać Directx 11
- LaaHack (4 GB patch) - zwiększa obsługiwaną pamięć do 4 GB, przez co dużo rzadziej/w ogóle nie pojawia się błąd związany w pamięcią i wyrzut do pulpitu - wybierz folder GothicII/System i zaznacz wszystkie lub wybrane pliki.



8
Pytania i problemy / Pyrokar głosi jak Vatras
« dnia: 2020-08-29, 14:13 »
Chcę, aby Pyrokar głosił nauki w klasztorze niczym Vatras, ale ukazuje się błąd i nie potrafię dojść co zmienić, aby zadziałało.

B_Preach_Pyrokar
Spoiler
// ***************
// B_Preach_Vatras
// ***************

func void B_Preach_Pyrokar(var int satz)
{
   if (satz == 0)    
   {   
      AI_Output (self, self, "DIA_Vatras_PREACH_05_00"); //Ale Beliar nie znosił widoku światła i niszczył wszystko, co Innos tworzył.
   };
   if (satz == 1)    
   {   
      AI_Output (self, self, "DIA_Vatras_PREACH_05_01"); //Ujrzał tedy Adanos, że w ten sposób nic nie może istnieć na świecie - ani

jasność, ani mrok.
   };
   if (satz == 2)
   {   
      AI_Output (self, self, "DIA_Vatras_PREACH_05_02"); //Stanął więc między swymi braćmi i próbował pojednać ich ze sobą, jednakże bez

skutku.
   };
   if (satz == 3)
   {   
      AI_Output (self, self, "DIA_Vatras_PREACH_05_03"); //Ale tam, gdzie stanął Adanos, ani Innos, ani Beliar nie mieli żadnej władzy.
   };
   if (satz == 4)
   {   
      AI_Output (self, self, "DIA_Vatras_PREACH_05_04"); //W miejscu tym Ład i Chaos współistniały w harmonii. Tak oto powstało morze.
   };
   if (satz == 5)
   {   
      AI_Output (self, self, "DIA_Vatras_PREACH_05_05"); //A z morza wyłonił się ląd. A na lądzie powstało wszystko, co żywe: rośliny i

zwierzęta, wilki i owce. A na samym końcu powstali ludzie.
   };
   if (satz == 6)
   {   
      AI_Output (self, self, "DIA_Vatras_PREACH_05_06"); //Adanos cieszył się ze wszystkiego, co wówczas powstało, a swą miłością darzył

jednakowo wszystkie rzeczy.
   };
   if (satz == 7)
   {   
      AI_Output (self, self, "DIA_Vatras_PREACH_05_07"); //Ale gniew Beliara był tak wielki, że przemierzył on całą Ziemię, by znaleźć

bestię. A gdy do niej przemówił, stała się ona jego sługą.
   };
   if (satz == 8)
   {   
      AI_Output (self, self, "DIA_Vatras_PREACH_05_08"); //Beliar tchnął w nią część swej boskiej mocy, by mogła zniszczyć całą Ziemię.
   };
   if (satz == 9)
   {      
      AI_Output (self, self, "DIA_Vatras_PREACH_05_09"); //Ale Innos podpatrzył czyn Beliara i przemierzył Ziemię, by znaleźć człowieka.

A gdy do niego przemówił, ten stał się jego sługą.
   };
   if (satz == 10)
   {      
      AI_Output (self, self, "DIA_Vatras_PREACH_05_10"); //Innos tchnął w niego część swojej boskiej mocy, by mógł on naprawić szkody

wyrządzone przez Beliara.
   };
   if (satz == 11)
   {      
      AI_Output (self, self, "DIA_Vatras_PREACH_05_11"); //Tedy zwrócił się Beliar do innej istoty, ale Adanos zesłał potężną falę, która

zmyła ją z powierzchni Ziemi.
   };
   if (satz == 12)
   {      
      AI_Output (self, self, "DIA_Vatras_PREACH_05_12"); //Ale wraz z nią odeszły także drzewa i zwierzęta, więc Adanos wielce się

zasmucił.
   };
   if (satz == 13)
   {      
      AI_Output (self, self, "DIA_Vatras_PREACH_05_13"); //I rzekł wreszcie do swych braci: nigdy więcej nie postanie wasza noga na mojej

Ziemi. Bo jest ona święta i pozostanie taką na wieki.
   };
   if (satz == 14)
   {      
      AI_Output (self, self, "DIA_Vatras_PREACH_05_14"); //Ale człowiek i bestia nie zaprzestali wojny na Ziemi Adanosa, i płonął w nich

gniew ich bogów.
   };
   if (satz == 15)
   {      
      AI_Output (self, self, "DIA_Vatras_PREACH_05_15"); //A człowiek pokonał bestię, która wróciła do królestwa Beliara.
   };
   if (satz == 16)
   {      
      AI_Output (self, self, "DIA_Vatras_PREACH_05_16"); //I zobaczył Adanos, że prysła równowaga między Ładem i Chaosem, i zaklął

Innosa, by ten odebrał człowiekowi swą boską moc.
   };
   if (satz == 17)
   {      
      AI_Output (self, self, "DIA_Vatras_PREACH_05_17"); //A Innos, w swej mądrości, tak uczynił.
   };
   if (satz == 18)
   {      
      AI_Output (self, self, "DIA_Vatras_PREACH_05_18"); //Ale Adanos obawiał się, że pewnego dnia bestia powróci na Ziemię.
   };
   if (satz == 19)
   {      
      AI_Output (self, self, "DIA_Vatras_PREACH_05_19"); //Dlatego uprosił Innosa, by ten zostawił część swej mocy na Ziemi, aby pewnego

dnia przywrócić ją człowiekowi.
   };
   if (satz == 20)
   {      
      AI_Output (self, self, "DIA_Vatras_PREACH_05_20"); //A Innos, w swej mądrości, tak uczynił.
   };
};

ZS_Preach_Pyrokar
Spoiler
// *********************
// Pyrokar predigt auf WP
// *********************

func void ZS_Preach_Pyrokar()
{   
   Perception_Set_Normal();
   Npc_PercDisable     (self,    PERC_ASSESSQUIETSOUND   ); //sonst werden OUs abgebrochen - Grund: unbekannt
   
   B_ResetAll (self);

   AI_SetWalkmode    (self, NPC_WALK);      
   
   AI_GotoWP      (self, self.wp);
   AI_AlignToWP   (self);
   
};

func int ZS_Preach_Pyrokar_loop()
{
   if (Npc_GetStateTime(self) >= 13)
   {
      if (self.aivar[AIV_TAPOSITION] > 20)
      {
         self.aivar[AIV_TAPOSITION] = 0;
      };
   
      B_Preach_Pyrokar(self.aivar[AIV_TAPOSITION]);
      
      self.aivar[AIV_TAPOSITION] = self.aivar[AIV_TAPOSITION] + 1;      

      
      Npc_SetStateTime(self, 0);
   };
   
   return LOOP_CONTINUE;
};

func void ZS_Preach_Pyrokar_end()
{

};   



Dodanie linikji w TA.d
Spoiler
// *********************
// Tagesablauf-Anmeldung
// *********************

func void TA_Announce_Herold   (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Announce_Herold,      waypoint);};
func void TA_Cook_Cauldron      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Cook_Cauldron,         waypoint);};
func void TA_Cook_Pan         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Cook_Pan,            waypoint);};
func void TA_Dance            (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Dance,               waypoint);};
func void TA_FleeToWp         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_FleeToWp,            waypoint);};
func void TA_Follow_Player      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Follow_Player,         waypoint);};
func void TA_Guard_Passage      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Guard_Passage,         waypoint);};
func void TA_Guide_Player      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Guide_Player,         waypoint);};
func void TA_Pee            (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Pee,               waypoint);};
func void TA_Pick_FP         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Pick_FP,            waypoint);};
func void TA_Pick_Ore         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Pick_Ore,            waypoint);};
func void TA_Play_Lute         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Play_Lute,            waypoint);};
func void TA_Potion_Alchemy      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Potion_Alchemy,         waypoint);};
func void TA_Practice_Magic      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Practice_Magic,         waypoint);};
func void TA_Practice_Sword      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Practice_Sword,         waypoint);};
func void TA_Pray_Sleeper_FP   (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Pray_Sleeper_FP,      waypoint);};
func void TA_Pray_Sleeper      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Pray_Sleeper,         waypoint);};
func void TA_Pray_Innos_FP      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Pray_Innos_FP,         waypoint);};
func void TA_Pray_Innos         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Pray_Innos,            waypoint);};
func void TA_Preach_Vatras      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Preach_Vatras,         waypoint);};
func void TA_Preach_Pyrokar      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Preach_Pyrokar,         waypoint);};
func void TA_Read_Bookstand      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Read_Bookstand,         waypoint);};
func void TA_Repair_Hut         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Repair_Hut,            waypoint);};
func void TA_Roast_Scavenger   (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Roast_Scavenger,      waypoint);};
func void TA_RunToWP         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_RunToWP,            waypoint);};
func void TA_Sit_Bench         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Sit_Bench,            waypoint);};
func void TA_Sit_Campfire      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Sit_Campfire,         waypoint);};
func void TA_Sit_Chair         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Sit_Chair,            waypoint);};
func void TA_Sit_Throne         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Sit_Throne,            waypoint);};
func void TA_Sleep            (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_GotoBed,            waypoint);};
func void TA_Smalltalk         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Smalltalk,            waypoint);};
func void TA_Smith_Anvil      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Smith_Anvil,         waypoint);};
func void TA_Smith_Cool         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Smith_Cool,            waypoint);};
func void TA_Smith_Fire         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Smith_Fire,            waypoint);};
func void TA_Smith_Sharp      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Smith_Sharp,         waypoint);};
func void TA_Smoke_Joint      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Smoke_Joint,         waypoint);};
func void TA_Smoke_Waterpipe   (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Smoke_Waterpipe,      waypoint);};
func void TA_Spit_Fire         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Spit_Fire,            waypoint);};
func void TA_Stand_ArmsCrossed   (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Stand_ArmsCrossed,      waypoint);};
func void TA_Stand_Drinking      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Stand_Drinking,         waypoint);};
func void TA_Stand_Eating      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Stand_Eating,         waypoint);};
func void TA_Stand_Guarding      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Stand_Guarding,         waypoint);};
func void TA_Stand_WP         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Stand_WP,            waypoint);};
func void TA_Stomp_Herb         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Stomp_Herb,            waypoint);};
func void TA_Sweep_FP         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Sweep_FP,            waypoint);};
func void TA_Wash_FP         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Wash_FP,            waypoint);};
func void TA_Stand_Sweeping      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Stand_Sweeping,         waypoint);};
func void TA_Rake_FP         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Rake_FP,            waypoint);};
func void TA_Cook_Stove         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Cook_Stove,            waypoint);};
func void TA_Saw            (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Saw,               waypoint);};
func void TA_Circle            (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Circle,               waypoint);};
func void TA_Stand_Dementor      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Stand_Dementor,         waypoint);};
func void TA_Guard_Hammer      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Guard_Hammer,         waypoint);};

//ADDON
func void TA_Study_WP         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Study_WP,            waypoint);};
func void TA_Concert         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Concert,            waypoint);};
func void TA_Sleep_Deep         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Sleep_Deep,            waypoint);};
func void TA_RangerMeeting      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Stand_RangerMeeting,   waypoint);};
func void TA_Ghost            (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Ghost,               waypoint);};
func void TA_GhostWusel         (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_GhostWusel,            waypoint);};
func void TA_Stand_Halberd      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)   {TA_Min      (self,   start_h,start_m, stop_h, stop_m, ZS_Stand_Halberd,           waypoint);};

oraz rutyna KDF_500_Pyrokar
Spoiler
INSTANCE KDF_500_Pyrokar (Npc_Default)
{
   // ------ NSC ------
   name       = "Pyrokar";
   guild       = GIL_KDF;
   id          = 500;
   voice       = 11;
   flags       = NPC_FLAG_IMMORTAL;   //Joly: NPC_FLAG_IMMORTAL                                                      
   npctype      = NPCTYPE_MAIN;
   
   // ------ Attribute ------
   B_SetAttributesToChapter (self, 6);                                                
   
   // ------ Kampf-Taktik ------
   fight_tactic      = FAI_HUMAN_STRONG;   
   
   // ------ Equippte Waffen ------                                    EquipItem         (self, ItMW_Laga_03_FAKE);                  
   
   
   // ------ Inventory ------

      
   // ------ visuals ------                                                         
   B_SetNpcVisual       (self, MALE, "Hum_Head_Bald",Face_N_ImportantOld , BodyTex_N, ITAR_KDF_H_V2);      
   Mdl_SetModelFatness   (self, 1);
   Mdl_ApplyOverlayMds   (self, "Humans_Mage.mds");

   // ------ NSC-relevante Talente vergeben ------
   B_GiveNpcTalents (self);
   
   // ------ Kampf-Talente ------                                                      
   B_SetFightSkills (self, 30);
   
   // ------ TA anmelden ------
   daily_routine       = Rtn_Start_500;
};

FUNC VOID Rtn_Start_500 ()
{   

   TA_Preach_Pyrokar    (08,00,22,00,"NW_MONASTERY_CHURCH_05B");
       TA_Sit_Throne      (22,00,08,00,"NW_MONASTERY_THRONE_01");
};

FUNC VOID Rtn_RitualInnosEyeRepair_500 ()
{   
   TA_Stand_Guarding   (08,00,23,00,"NW_TROLLAREA_RITUAL_02");
    TA_Stand_Guarding   (23,00,08,00,"NW_TROLLAREA_RITUAL_02");
};


FUNC VOID Rtn_RitualInnosEye_500 ()
{   
   TA_Circle   (08,00,23,00,"NW_TROLLAREA_RITUAL_02");
    TA_Circle   (23,00,08,00,"NW_TROLLAREA_RITUAL_02");
};

Błędy wyskakują w linijce 28,30. Zakładam, że w pliku ZS_Preach_Pyrokar (zaznaczyłem na żółto)

9
Potrafię zrobić dużo, lecz z tym mam problem. Gdzie znajdę i w jaki sposób zmienić:

1. Minimalny i maksymalny dystans broni dystansowej.
  • Próbowałem w AI_Constants zmieniać wartości, ale nic nie dało to.
    const float RANGED_CHANCE_MINDIST
    const float RANGED_CHANCE_MAXDIST
2. Minimalene obrażenia otrzymywane od magii (przy pomocy czarów)
3. W jaki sposób dodać więcej kategorii przedmiotów, które będzie można posegregować w ekwipunku. Chodzi głównie o przedmioty w kategorii ITEM_KAT_NONE;, których jest masa i są porozrzucane na końcu plecaka, a chciałbym zrobić podział na klucze, trofea, minerały itd...

10
Archiwum / [G2NK] Gothic 2 Plus PL
« dnia: 2020-07-25, 11:20 »
Nazwa modyfikacji: Gothic 2 Plus
Platforma: Gothic 2: Noc Kruka
Język modyfikacji: Polski
Aktualna wersja: 1.0
Wielkość modyfikacji: około 2GB
Rozpoczęcie prac: jesień 2018r.
Premiera (orientacyjna): wrzesień/październik 2020r.
Team: Lucki

Wykorzystane elementy modyfikacji:
Returning - modele i tekstury
L'Hiver - modele, tekstury, podpatrzone skrypty
Uniwersalny System Walki Tarczą (USWT) - walka tarczą (zmodyfikowana)
Wasteland - powiększony świat Górniczej Doliny
Vurt's Gothic II Graphics Overhaul - modele i tekstury świata w wysokiej rozdzielczości
...wiele udostępnionych projektów niezależnych twórców.

Główne założenie: jak poprawiłaby się gra i co mogłaby dodać Piranha, gdyby miała więcej czasu na dopracowanie tytułu.

Opis: Modyfikacja nie ma na celu być rewolucyjna. Opiera się przede wszystkim na zachowaniu ducha oryginału i utrzymaniu przyjemność czerpania z rozgrywki w takim samym stopniu jak pierwowzór. Zmiany nie są inwazyjne. Nie ma tutaj rozbudowanych nowych światów, fabuły ani zadań. Każdy rozpoczynający rozgrywkę bez problemu dostosuje się do nowości, które są przejrzyste i stopniowo napotykane. Wprowadzone nowe elementy są alternatywne dla prowadzonej rozgrywki, dające więcej możliwości do rozwoju postaci. Natomiast elementy będące już w grze dostały udoskonalone zastosowanie i powiew świeżości nawet w kwestii wizualnej. Poprawienie balansu było bardzo ważna kwestią – zarazem trudności rozgrywki jak i napotykanych przeciwników i nagród, które temu towarzyszą – udało się to doskonale.

Zmiany:
Poniżej nie jest to koncept, który chętnie widziałbym w modyfikacji, a już w pełni działające funkcje, wymagające ostatnich testów i drobnego balansu.

- Rozwój postaci jest bardziej płynny na całej przestrzeni gry. Bohater zaczyna z siłą i zręcznością na poziomie 20 oraz umiejętnościami bojowymi na poziomie 15%. Każdy punkt kosztuje 2 punkty nauki na całej przestrzeni gry. Oczywiście odpowiednio jest to zbalansowane znajdowanymi tabliczkami, roślinami i innymi sposobami na zwiększenie statystyk. (Nie ma już sytuacji, że trzyma się pół gry tabliczki, mikstury w ekwipunku czy skrzyni, by użyć ich dopiero, gdy umiejętności staną się droższe) Tylko mana kosztuje 1/1PN zawsze!

- (nowe) Dodano dwustopniowy system walki tarczą, jak i 24 tarcze do zdobycia. Noszenie tarczy dodaje odporności, lecz obciąża bohatera.

- (nowe) Dodano ponad 20 nowych pancerzy do zdobycia podczas eksploracji świata, a szaty maga zapewniają mu premię do regeneracji many. Niezależni NPC posiadają nowy sprzęt, przez co nie ma już wrażenia, że większość wygląda podobnie.

- (nowe) Dodano możliwość przejścia gry bez konieczności wyboru gildii.

- (nowe) Dodano w świecie 35 mini-bossów dla rozdziałów 2-5.

- (nowe) Dodano możliwość zostania czeladnikiem w Matteo, który specjalizuje się w wytwarzaniu i ulepszaniu pancerzy.

- (nowe) Dodano górnictwo bez konieczności uczenia się go i inwestowania punktów nauki. Pozyskiwane materiały (głównie ruda żelaza i magiczna ruda) jest wykorzystywana w wielu dziedzinach rzemieślniczych.

- Rośliny w świecie występują rzadziej, lecz są w bardziej zbitych grupach. Towarzyszy tym miejscom nieznaczna poświata, która znika po zebraniu połaci.

- (nowe) Nowe przedmioty. W tym Kostury maga, bronie wymagające zręczności, więcej magicznych łuków i kusz.

- Zbalansowano poziom trudności potworów i przedmiotów. Pancerze mają odporności zmniejszone o ok. 15%. Ceny u kupców wzrosły, jak i samego złota znajduje się mniej. Z to ekwipunku jest dużo więcej w świecie - trzeba eksplorować i stawiać czoła wyzwaniom.

- Do tworzenie wyrobów z alchemii, kowalstwa, tworzenia run są wymagane nowe składniki - głównie wykorzystano siarkę, smołę, węgiel, akwamaryn, kwarcyt, skałę krystaliczną, rudę i inne.

- (nowe) Wróciły tereny zza palisady z Gothic 1, które były wcześniej niedostępne oraz zagospodarowano wiele wolnych przestrzeni w świecie i dodano tam potwory i ekwipunek.

- (nowe) Dodano nowego NPC - łowczynię Elirenę - która daje 15 zleceń na grupy potworów w zamian za wybór nagrody. Jak i przyjmuje trofea z pokonanych mini-bossów.

Screeny
Spoiler

Pełna lista zmian:

Spoiler
- Techniczne
- Maksymalny zasięg widzenia zwiększony 3-krotnie.

- Modyfikacja w pełni kompatybilna z DirectX 11

- W menu głównym zobaczymy grafikę z oryginalnego Gothic 2, jak i usłyszymy muzykę z Gothic 1.

- Informacje o zdobytym doświadczeniu, zdobytym poziomie, wpisy w dzienniku i wymianie towaru wyświetla się po lewej stronie ekranu, Ponadto podczas wpisu w dzienniku, pokazuje się również nazwa zadania.

- Usunięto „FOGY” ze świata gry, powodujące brzydką i sztuczna mgłę w lasach i znikanie tekstur przy Directx 11.

- Wykorzystano sporą część modeli i tekstur o wyższych rozdzielczościach z oprawy graficznej Vurt's Gothic II Graphics Overhaul

- Ogólne/świat
- Usunięto większą część przedmiotów w świecie i raz jeszcze rozmieszczono je na nowo, w bardziej przemyślany sposób. Eksploracja jest bardzo nagradzana.

- Rośliny w świecie nie są już porozrzucane dosłownie wszędzie, lecz występują rzadziej w bardziej zbitych grupach. Towarzyszy tym miejscom nieznaczna poświata, która znika po zebraniu połaci.

- Rozwój postaci jest bardziej płynny na całej przestrzeni gry. Bohater zaczyna z siłą i zręcznością na poziomie 20 oraz umiejętnościami bojowymi na poziomie 15%. Każdy punkt kosztuje 2 punkty nauki na całej przestrzeni gry. Oczywiście odpowiednio jest to zbalansowane znajdowanymi tabliczkami, roślinami i innymi sposobami na zwiększenie statystyk. (Nie ma już sytuacji, że trzyma się pół gry tabliczki/ mikstury w ekwipunku czy skrzyni, by użyć ich dopiero, gdy umiejętności staną się droższe) Tylko mana kosztuje 1/1PN zawsze!

- Zmiany w punktach życia. Kamienne tabliczki życia zostały całkowicie usunięte ze świata, a bohater zyskuje co poziom 10 punktów trafień zamiast 12. Zrekompensowano tą stratę 200 punktami życia na początku gry oraz bierną życia 1/10s i many 1/60s.regeneracją

- Dodano dwustopniowy system walki tarczą, jak i 24 tarcze do zdobycia. Noszenie tarczy dodaje odporności, lecz obciąża bohatera, dlatego używanie ich powoduje karę do siły 5-10 oraz zręczność 5.
Nauczyciele: poziom I (broń jednoręczna: 35%, 10PN) – Wulfgar, Cord, Morgan, Keroloth,
Nauczyciele: poziom II (broń jednoręczna: 65%, 10PN) – Morgan, Keroloth,
Nauczyciele: poziom I (broń jednoręczna: 30%, 5PN) – Sergio (tylko dla nowicjusza/maga ognia).

- Dodano ponad 20 nowych pancerzy do zdobycia podczas eksploracji świata, a szaty maga zapewniają mu premię do regeneracji many. Niezależni NPC posiadają nowy sprzęt, przez co nie ma już wrażenia, że większość wygląda podobnie. (Razem 94 nowych pancerzy).

- Stworzono zdecydowanie większą liczbę przedmiotów. Wiele nowych jak i starych rzeczy dostało nowe tekstury pasujące do klimatu Gothic. Nieznacznie uległy zmianie również statystyki oraz wymagania.

- Dodano w świecie 35 mini-bossów dla rozdziałów 2-5, którzy stanowią sprawdzian umiejętności dla bohatera, równocześnie strzegąc lepszego ekwipunku. Każdy z nich posiada własne trofeum.

- Dodano nowego NPC w Khorinis – łowczynię Elirene, która daje serię 15 zleceń na potwory (po 3 dla każdego rozdziału) w zamian za drobne nagrody. Również za dostarczanie trofeów.

- Dodano tereny za palisadą orków w Górniczej dolinie z poziomem trudności dla rozdziału 5. Jak również wracają stare miejsca z Gothic 1 (cmentarzysko orków, kanion trolli, jaskinia goblinów i inne) Kilka pustych miejsc w świecie również zostało zagospodarowanych.

- Dodano nowe potwory. Są to goblińscy jeźdźcy oraz goblin-elita. Zombie nie reaguje na siłę zadawanych obrażeń, lecz na ich ilość.

- Nieznacznie zmieniono koszty kilku umiejętności dla lepszego balansu.

- Zwiększony został poziom trudności i nieznacznie zmodyfikowano statystyki potworów i niektórych NPC. Pancerze posiadają mniejsze odporności o około 15%, a minimalne zadawane/otrzymywanie obrażenia zostały ustawione z 5 na 10. Ponadto ceny u handlarzy są wyższe.

- NPC nie zaczepiają już bohatera, gdy ten ma niewłaściwy pancerz.

- Tawerna Orlana staje się miejscem z przyrządami rzemieślniczymi i kilkoma pustymi kuframi do trzymania przedmiotów.

- Koszty zaklęć ze zwojów zależą od kręgu z którego pochodzą - od 10 do 35 many.

- Brak gildii

- Dodano nową ścieżkę. W pierwszym rozdziale nie jest obowiązkowy wybór gildii, by dostać się do Lorda Hagena i rozpocząć rozdział 2. Wtedy wybór pozostałych gildii zostaje zablokowany.

- Aby dokonać tego wyboru należy posiadać poziom 10. Wtedy Vatras daje bohaterowi amulet kuriera, który pozwala wejść do ratusza.

- Bohater w dialogach z NPC jest traktowany jak najemnik.

- Dostanie się na statek w rozdziale 5 wymaga wręczenia 10’000 złota łapówki.

- Korzyści:
   - nauka broni z magicznej rudy od rozdziału 2 z wyjątkiem najlepszych ostrzy na smoki u Carla, Dobry, Huno oraz Jana.
   - możliwość wyuczenia się od 2 rozdziału „run defensywnych” – które nie wymagają kręgów magii u Neferiusa. Są to: światło, sen, korzeń, lodowa strzała oraz leczenie lekkich ran.
   - możliwość podniesienia regeneracji many do 1 punktu na 15 sekund u Saturasa od rozdziału 2.

- Ścieżka wojownika
- Dodano więcej broni wymagających zręczności, równocześnie zwiększając wymagania do posługiwania się nimi.

- Dodano kilka magicznych łuków i kusz, które zadaja obrażenia od magii oraz posiadaja premię 10%. Wymagają magicznych strzał/bełtów. Tych też można znaleźć znacznie więcej w świecie.

- Dodano nowy pancerz najemnika. Jego parametry są miedzy lekkim, a średnim.

- Dodano nowy pancerz u strażnika. Jego parametry są miedzy lekkim, a średnim. Do kupienia u Pecka, gdy ten wróci na stanowisko.

- Zwiększono i zmniejszono u NPC limity nauki umiejętności. Z czasem trzeba szukać coraz lepszych mistrzów w swej dziedzinie. Każdy nauczyciel ma opisany swój limit przy dialogu.

- Średni pancerz łowcy smoków kosztuje 10’000 złota zamiast 12’000.

- Przy otrzymywaniu zbroi rycerza oraz paladyna, dostaje się alternatywny egzemplarz bez nakrycia głowy.

- Przy statystykach broni, został podany również zasięg jakim ona dysponuje.

- Miecze paladyna kupione u Harada i ich błogosławione wersje dodają premię do many.

- Wstępując w zakon paladynów regeneracja many biernie wzrasta z 60/s do 30/s.

- Albrecht nie daje paladynowi run, lecz uczy, jak je stworzyć. Uczy również niszczenia zła w rozdziale 5.

- U niektórych handlarzy nie można już kupować strzał i bełtów w nieskończoność. Nieograniczoną ilość sprzedaje Orlan za wyższą stawkę.

- Ścieżka maga/ magia
- Dodano kilkanaście użytecznych kosturów dwuręcznych dla maga, oraz specjalne dla nich tarcze, które zapewniają premię do many. Mag może w ten sposób wybrać między dwoma stylami gry na bliski dystans.

- Na runach widnieją statystyki przywołańców. Oni sami stali się bardzo wytrzymali, kosztem mniejszych obrażeń. Potrafią również wolno regenerować życie i służą o wiele dłużej. Można mieć jednocześnie jednego przywołańca tego samego kręgu. Przywołańcy nie giną po kliknięciu na nich (często zdarzało się przypadkowo), zamiast tego pojawia się opcja dialogowa, aby ich odwołać.

- Saturas może nauczyć Maga Ognia 3 kręgu magii nawet w rozdziale 2, będąc w Jarkendarze. Jest to spowodowane wyższym poziomem trudności w tej części świata.

- W rozdziale 2,3 oraz 5 wraz z postępem fabuły Mag ognia dostaje od Pyrokara bonusową premię do odporności na ogień i magię.

- W bibliotece klasztornej, księgi z zaklęciami oprócz podanych nowych wymagań co do wytworzenia czaru, maja podany również koszt punktów nauki do wyuczenia, aby rozważniej rozplanować ścieżkę magii.

- Łzy Innosa dodają magowi +5 siły, +5 zręczności, +5 many.

- Rzemieślnictwo
- Dodano górnictwo i wiele złóż do znalezienia, z których wydobywa się rudę żelaza potrzebną do kowalstwa czy tworzenia run, bryłki złota oraz magicznej rudy.

- Magiczna ruda staje się bardziej przydatna dla każdej z gildii. Łowca smoków kuje z niej miecze, mag wytwarza puste kamienie na stole runicznym, a paladyn potrzebuje ich do stworzenie swoich run. Dodatkowo musi dopłacić 10 bryłek za miecz z rudy u Harada.

- Wybór czeladnika daje różne inne profity.

- Wiele przedmiotów dostało opis „Materiał rzemieślniczy” lub „Materiał alchemiczny”. Pozwala to się lepiej zorientować jakie przedmioty mogą się w przyszłości przydać i których może lepie nie sprzedawać pochopnie.

- Składniki do formuł kowalskich, alchemicznych i tworzenia run zostały przemodelowane.

- Czarnej rudy nie da się już użyć. Służy teraz jako bardzo rzadki materiał rzemieślniczy.

- Muszle przeważnie dają jakiś materiał rzemieślniczy.

- Przy paladynie Albrechcie stoi stół runiczny.

- Płatnerstwo
- Dodano możliwość pozostania czeladnikiem u Matteo.

- Matteo może nauczyć bohatera 5 nowych zbroi do wykucia, a następnie każdą z nich ulepszyć dwukrotnie. Wymagane do wyuczenia jest pozyskiwanie futer oraz podstawy kowalstwa, które są niezbędne do uzyskiwania potrzebnych składników.

- Ulepszone pancerze (wersja wzmocniona oraz uszlachetniona) oprócz wyższych statystyk posiadają również coraz to lepszy wygląd.

- Biegłość w płatnerstwie pozwala również ulepszać szaty magów, aby czerpać korzyść nawet grając Magiem Ognia.

- Kowalstwo
- Na kowadle można wykonać kilka innych przedmiotów: przetopić rudę żelaza na sztabki rudy oraz bryłki magicznej rudy na sztabki magicznej rudy. Jak również wyciągnąć klingi (wymagane do wytworzenia mieczy).

- Harad uczy swojego czeladnika również wykuwania mieczy dwuręcznych.

- Kowal Jan uczy również broni z magicznej rudy o poziom wyższej, jak i El Bastardo jeśli bohater umie stworzyć rubinowe ostrze.

- Kowal Dobra uczy dobrego długiego miecza/dwuręcznego, jeśli bohater potrafi wykuć dobry miecz.

- Alchemia
- Constantiono może nauczyć swojego czeladnika każdej możliwej mikstury oraz 1 zupełnie nowej, która przyspiesza bierną regenerację życia.

- Constantino w zadaniu dla czeladnika nie wymaga już smoczego korzenia, goblińskiej jagody i szczawiu królewskiego.

- Mikstury lecznicze przywracają odpowiednio 100, 150, 200 punktów zdrowia, a many 50, 100, 150 punktów.

- Posiadając 2 rośliny i rdest uzyskuje się 3 mikstury lecznicze/many, gdyż ilość napotkanych ziół jest trochę mniejsza.

- Ekstrakt i eliksir posiadają również alternatywne składniki do uwarzenia mikstury.

- Mikstury ducha dają +3 many zamiast 5.

- Zębate ziele działa 60 sekund

- Zjedzenie szczawiu królewskiego da +5 do maksymalnego zdrowia oraz całkowicie regeneruje życie i manę.

- Mikstura przemiany duszy wymaga esencji many zamiast ekstraktu many.

- Animacja picia rzadkich mikstur jest dłuższa.

- Powstał drugi stół alchemiczny u Canstantino dla jego czeladnika.

- Riordian uczy mikstury siły oraz eliksiru leczniczego.

- Mikstura ze smoczych jaj znajduje się w podkategorii „specjalne” i dodaje siłę, zręczność oraz manę +3.

- Złodziejstwo
- Zmiany w otwieraniu skrzyń i przedmiotach w nich. Skrzynie podzielono na 4 poziomy trudności w zależności od liczny przesunięć wytrychem. Każdy poziom jest przyciasny odpowiedniej teksturze. Skrzynie i drzwi zamknięte na klucz dostały odpowiednie opisy.

- Niektóre klucze można ponownie wykorzystać do nowych kufrów o nazwie „zardzewiała skrzynia/drzwi”. Ich położenie i poprzedni właściciele można w pewien sposób logicznie wyjaśnić. Można tam natrafić na wyjątkowe przedmioty, czasami tylko dostępne dla odpowiedniej gildii czy rzemieślnictwa.

- Kradzież kieszonkowa daje około 2x mniej doświadczenia. Łupy u niektórych NPC zostały zmienione.

- Dołączając do gildii złodziei otrzymuje się kurtkę  kieszonkowca.

- Od Goraxa da się ukraść klucz do spiżarni zamiast skarbca. Klucz do skarbca można zdobyć w inny sposób.

- Wytrychy występują tylko w otwartych już skrzyniach, jak i losowo można trafić z bandytów.

- Klucz do ostatnich drzwi Gomeza w Zamku jest do odszukania w Górniczej dolinie, gdyż pomieszczenie oferuje więcej korzyści.

- Pozyskiwanie trofeów
- Bosper może nauczyć swojego czeladnika pozyskiwanie skór gadów, kłów i zębów.

- Z książąt demonów, szkieletów-wojowników oraz harpii można zdobyć odpowiednio serce księcia demonów, kość przepełnioną magią oraz pióra.

- Wiele potworów pozostawia mniejszą ilość swoich trofeów, lecz są one więcej warte.

- Buster już prawidłowo daje doświadczenie za rogi cieniostwora.

- Z kąsaczy można pozyskać zęby.

- Tworzenie run
- Z 3 bryłek magicznej rudy oraz 5 bryłek żelaza można stworzyć pusty kamień runiczny. Jest to ważne, gdyż ograniczono ilość u handlarzy.

- Handel
- Zmieniono ceny przedmiotów. Część bardziej istotnych przedmiotów jest droższa/ znacznie droższa, lecz można na nie natrafić w świecie. Jest to wybór między pójściem na łatwiznę i kupieniem u handlarza, a bardziej szczegółową eksploracją świata.

- Handlarzy podzielono lepiej na kategorie oraz nie sprzedają ponad-przeciętnego ekwipunku na niższych rozdziałach.

- Lutero ma w swoim asortymencie wiele ciekawych rzeczy do kupienia, choć nie są one tanie.

- Księgi dodające premię do broni jednoręcznej i dwuręcznej dają teraz +2% zamiast 5%.

- Od Lutero można kupić księgi, które dodają +2% do umiejętności łuku oraz +2% do umiejętności kuszy.

- Od Lutero można nabyć nieograniczoną ilość razy „torbę niespodzianek” w której nigdy nie wiadomo co się znajduje. Od zwykłych przedmiotów, poprzez śmieci, rzeczy mało wartościowe, a czasem można trafić coś niezwykle dobrego. Torba ma na celu rodzaj hazardu, by ewentualnie pozbyć się nadmiaru złota. Z każdym rozdziałem można trafić inne przedmioty w torbie, jak i cena torby wzrasta (od 200 do 600 złota). Bardzo bym prosił grać uczciwie i nie wczytywać stanu z przed otwarcia torby - ma to być ryzyko zakupu.

- Zanim bohater wejdzie do Jarkendaru, na wyspie Khorinis w kilku miejscach może spotkać Lance’go, u którego można wymienić mikstury lecznicze na many, strzały na bełty i zakupić bryłki magicznej rudy za 1000 złota. Z wiadomych powodów po przekroczeniu portalu, Lance znika na dobre.

- Skórzany pancerz można kupić u Matteo i Orlana tylko w 1 rozdziale.

- Pomniejsze   
- Gdy bohater zostanie obalony przez NPC, ten zostawia mu broń i zabierza 10% złota (złoto znika, nie można go odzyskać). Ma to na celu zachęcić do dalszej gry po pokonaniu, a nie wczytanie ostatniego zapisu.

- Modlitwa przy kapliczce daje zawsze +5 punktów życia, aby gracz nie nadużywał jej do stania się szybko silniejszym.

- Vatras za stare kamienne tabliczki ofiaruje tylko mikstury leczenia lub many.

- Smoki nie regenerują już swojego życia. W zamian dostali jej większą pulę. Oprócz tego każdy smok ma towarzystwo.

- Usunięto zadanie wyprowadzenia Diego z GD z powodu możliwości nabicia zbyt dużej ilości doświadczenia z silniejszych potworów już w rozdziale 2.

- Za oddanie Szponu Beliera Saturasowi, bohater otrzymuje +3 punkty nauki.

- Bagienny smok znajduje się w dawnym Obozie bractwa.

- Runa teleportacyjna na przełęcz do GD,  przełęczy Khorinis i wieży demonów zostały usunięte.

- Teleport do tawerny Orlana można zdobyć już w 1 rozdziale.

- Lester udaje się do wieży Xardasa, co powoduje usłyszenie wcześniej niedostępnych kwestii dialogowych od obojga.

- W kilku miejscach pełzacze zostali zastąpieni pełzaczami-wojownikami.

- Każdej grupie bandytów przewodzi znana postać w Gothic I, która nie znalazła się w Gothic 2, lecz nie pełni żadnej innej funkcji prócz bycia bandytą.

- Wyuczenie Ognika u Riordiananie kosztuje 0 PN i 50 sztuk złota.

- Wulfgar daje premie +1 do broni jednoręcznej i dwuręcznej, gdy przyjdziemy do niego z rana.

- Zamieniono statystyki wilka ze ścierwojadem.

- Dopasowano poziom trudności i statystyki dla Franko, Estebana, Bloodwyna i Kruka, aby te postacie stanowiły wyzwanie.

- Przyjaznym NPC można wręczać miksturę pełni życia.

- Pan cienia Inubis oraz Archon stanowią dużo większe wyzwanie.

- Pomniejsze szkielety zostały usunięte lub zastąpione innymi nieumarłymi.

- Zamiast smoczych zębaczy w rozdziale III pojawiają się wargi dla lepszego balansu.

- Do wyboru jest 11 godzin snu zamiast 4.

- Runa teleportacyjna do Khorinis przenosi w okolice kuźni Harada.

- Została dodana dodatkowa kapliczka Innosa przy świątyni Adanosa w Khorinis.

- Rozdział VI: Dwór Irdorath jest prawdziwym testem dla prowadzonej postaci. Każda grupa potworów i komnata stanowi wyzwanie.

- Można odnaleźć ciało posłańca Baltrama oraz myśliwego Trokara.

- Ważni paladyni i rycerze noszą wersje bez nakrycia głowy.

- W kotlinie koło Groma jest tylko 1 Troll.

- Do kanionu w Jarkendarze towarzyszy tylko Matt. Jest bardziej wytrzymały, a ilość orków została zmniejszona.

- Jabłka nie dodają siły, a ciemne grzyby tylko 1 many zamiast 5.

- Gulasz Tekli dodaje zarówno+1 siły i +1 zręczności oraz regeneruje 200 życia.

- Zapłacenie Matteo za Grittę skutkuje lepszą nagrodą.

- Wilki Pepe oraz strzegące wejścia do GD są dorosłymi osobnikami zamiast młodymi.

- Pierścienie i amulety dodające many zaraz po założeniu zwiększają maksymalną jej ilość.

- Pierścień Morgana dodaje +1 do broni jednoręcznej i dwuręcznej. Oddanie go piratowi daję więcej doświadczenia.
- Z powodu większej liczby pancerzy do zdobycia, Eremicie można dać również te nowe.

- Gaan i Greg po rozmowie omijają topielce.

- Krwiopijcy przy farmie Bengara są umieszczeni nieco dalej, aby farmerzy ich nie atakowali.

- Krwiopijcy i szkielety-gobliny występują w mniejszych grupach.

- Oko Innosa daje +3 do odporności na broń oraz +5 na pozostałe odporności i ma odpowiedni opis o tym.

- Ze smoków można pozyskiwać po 10 smoczych łusek zamiast 12.

- Parcival uczy maga ognia oraz paladyna many do limitu 250.

- W rozdziale 4 w Górniczej dolinie można spotkać ducha Gomeza i rzucić mu wyzwanie.

- W rozdziale 3 w Khorinis można spotkać ducha Lotara  i pokazać mu dowód na istnienie smoków. Skutkuje to ukrytym dialogiem, którego nie wprowadzono w oryginalnej wersji.

- Leżące na ziemi mikstury, runy i zwoje prawidłowo wyświetlają swoje konkretne nazwy zamiast ogólnych.

- Mag Daron w zamian za złoto daje inne premie - głównie doświadczenie. Usunięto datki po 100 oraz 200 złota, pozostawiając 20 datków po 50 złota.

- Nie można już pójść z Laresem do kamiennego kręgu w lesie. Bohater musi to zrobić sam.

- Pasy dla gildyjnych pancerzy można kupić dopiero w rozdziale 2 u Orlana. Nie zapewniają już premii + 5 gdy posiadamy inny pancerz niż wskazany.

- Sagita, Vatras oraz korzystanie ze snu uzdrowią bohatera tylko raz dziennie.

- Stworzenie pancerza z płytek pełzaczy skutkuje otrzymaniem doświadczenia.

- Można odzyskać fragment ornamentu od Laresa już w rozdziale 2 zamiast 3.

- Ksiega „Boska moc gwiazd” daje 1 many.

- Nie można modlić się do Beliara poświęcając życie/manę w zamian za złoto. Kapliczka służy wyłącznie do ulepszenia Szponu.

- Dodano skromny losowy ekwipunek z jaszczuroludzi, orków-ożywieńców i szkieletów-magów.

- Szkielet-mag przywołuje dwóch szkieletów do pomocy zamiast jednego. Przywołane szkielety nie posiadają kości do zdobycia.

- Z powodu mniejszego asortymentu czarów u handlarzy w początkowej części gry, osłabiono członków gildii złodziei, aby bohater miał szanse ich pokonać. Niemniej nadal stanowią poważne wyzwanie.

- Zadanie „Sprawa Fernando” można ukończyć również, rozmawiając z nim w więzieniu.

- Zadania „Zioła dla Constantino” zostaje zakończone zaraz po dialogu z nim.

- Wykopane skarby dla kapitana Grega mają odpowiednią adnotacje, aby utrudnić ich przypadkowe sprzedanie.

- W rozdziale 6 orkowie atakują statek, gdy bohater wraca na niego po pokonaniu orkowego pułkownika.

- Członkowie rady w klasztorze mają przypisane proste rutyny zamiast siedzenia ciągle na tronie.   

- Limit załogi w rozdziale 5 został zniesiony i jest możliwe zabranie wszystkich zainteresowanych.

- Zasięg światła pochodni został zwiększony.

- Ciało Sengratha w rozdziale 4 zostało przeniesione w okolice przejścia przez orkową palisadę.

- Fester dołącza do drużyny podczas ataku na gniazdo polnych bestii.

- Xardas udaje się do słonecznego kręgu dopiero, gdy informuję nas o księdze Irdorath dla Pyrokara.

- Powalenie Corneliusa stanowi nieco większe wyzwanie.

- Diego za pomoc z Gerbrantem wręcza tylko 200 złota zamiast 500.

- Drobne
- Niewielkie zmiany w atrybutach NPC, ich ekwipunku i wyglądzie.

- Wiele ważnych NPC i handlarzy stoi dłużej przy swych stoiskach/ miejscach.

- Kolorowe kamienne tabliczki budowniczych potrzebne do przejścia Świątyni Addanosa są ponumerowane chronologicznie i mają bardziej precyzyjne opisy do ominięcia pułapek.

- Vatras daje inne nagrody przy zadaniu z wiadomością dla maga ognia.

- Topielce Krevo nie mają już ograniczonego zasięgu oddalenia się od swojego waypointa.

- Klucz do magazynu w GD można odnaleźć podczas eksploracji.

- Między wulkanem, a starą cytadelą w GD można zobaczyć ruiny dawnego mostu.

- Smocze skarby są w postaci różnych kosztowności zamiast mieszków.

- Kilka lokacji zostało lepiej oświetlonych.

- Można już otworzyć skrzynię Estebana.

- Esteban po śmierci posada tylko 4 czerwone tabliczki zamiast 5.

- W pobliżu Estebana znajduje się wisielec osoby, która próbowała go zabic.

- Kamienne tabliczki dostały opis otrzymywanego bonusu.

- Gra zaczyna się o godzinie 2:00 zamiast 8:00, aby po rozmowie z Xardasem i przeszukaniu wieży zaczynał się poranek zamiast południe.

- Jan i Feros nie mają ograniczonych funkcji rozmowy/nauki nawet po otwarciu bramy w zamku.

- Zastąpiono nazwę początkową gildii „Brak przyn.” „ Brak gildii”, aby nazwa w pełni mieściła się w oknie.

- Dialog z Saturasem po znalezieniu Szponu Beliara nie ściąga już broni z bohatera.

- Orik o zagrożeniu ze strony bagiennego smoka wspomina na końcu.

- Dialog Orika odnoście ekwipunku za Hosh-Paka nie znika po przyjęciu zlecenia.

- Orkowie nie polują już na cieniostwory.

- Wygląd stoisk na targowisku w Khorinis stanowią odzwierciedlenie w czym dany handlarz się specjalizuje.

- Na farmie Onara powstało niewielkie ogrodzenie.

- Kilka bardziej pustych miejsc dostało dodatkowe elementy otoczenia.

- W kilku miejscach można dostrzec na drzewach listy gończe z podobizną bohatera.

- Naprawiono błąd, który powodował, że NPC Grom nie trafiał w swe rutyny i stał przy pniu całą noc.

- Naprawiono błąd, w którym Gorn w rozdziale 3 nie posiadał przy sobie broni.

- Starzy przyjaciele bohatera z Gothic 1 posiadają bronie, którymi posługiwali się w kolonii karnej.

- Kilof posiada odpowiednią informację, że służy do kopania złóż oraz skarbów.

- Poprawiona dialog „płytki pancerza zębacza” na pełzacza.

- Salandril oraz Vino gdy przebywają w klasztorze, siedzą w ławkach w głównej hali.

- Ramirez dostał stosowną informacje przy dialogu, że nauka otwierania zamków kosztuje 10 PN.

- Buster jest nieśmiertelny od rozdziału 3, ze względu na ataki Poszukiwaczy.

- Szybki śledź kosztuje 70 sztuk złota zamiast 30.

- Brzytwiaki nie atakują kąsaczy.

- Podczas dialogu z Poszukiwaczami i korzystaniu z kapliczki beliara nie występuje już „czerwona” aura z powodu problemu niewidocznych wyborów dialogowych przy korzystaniu z DirectX 11.


Chętnie poznam waszą sugestię na temat zmian.

Premiera orientacyjna: jesień 2020r.


11
Pytania i problemy / Nowe miejsca do kopania skarbów.
« dnia: 2020-02-10, 15:31 »
Generalnie sprawa wydawała mi się dość prosta. Wejście do pliku B_ScUsesRake > skopiowanie odpowiednich linijek i wklajenie ich na sam dół > pozmienianie nazw, przedmiotów, waypointów > naprawa skryptu i nowa lokalizacja do kopania skarbów kilofem gotowa.

Jednak nie udało się. O czymś zapomniałem lub nie wiem. Czy trzeba pogrzebać i dodać jakieś jeszcze linijki w innych plikach? Jeśli tak to w jakich? Bo przejrzałem wiele najważniejszych i nie zwróciło mojej uwagi nic, co mogło by mieć związek z kopaniem skarbów.

12
Pytania i problemy / Nowa tekstura pancerza.
« dnia: 2020-01-30, 16:42 »
Znalazłem w niemieckiej stronie wiele nowych modeli i tekstur do ściągnięcia i użycia we własnych modyfikacjach


I zaciekawiła mnie zakładka z pancerzami. O ile przy pobieraniu gotowego modelu z teksturą nie mam problemu, aby dodać do modyfikacji, to kłopot zaczyna się, gdy do pobrania jest wyłącznie tekstura i trzeba ją podmienić z orginalnym modelem z gry.

Wiem, że należy to zrobić np. GoManem, lecz wtedy tracimy oryginalną teksturę na rzecz nowej. Jak chwycić dwie sroki za ogon? czyli wprowadzić nową teksturę, jednocześnie zostawiając starą?

Ja próbowałem tak:
- pobrałem teksturę w formacie .tga z
- następnie pobrałem model ciężkiej zbroi strażnika w formacie .asc (Armor_MIL_M.asc)
- zmieniłem jej nazwę na tą jak tekstury hum_wache_gesteppt_h.asc
- wkleiłem ją do folderu anims/compiled, a teksturę do texture/compiled
- stworzyłem odpowiedni skrypt:
Spoiler
INSTANCE ITAR_MIL_Z (C_Item)
{
   name                =   "Większy pancerz straży";

   mainflag             =   ITEM_KAT_ARMOR;
   flags                =   0;

   protection [PROT_EDGE]   =   80;
   protection [PROT_BLUNT] =    80;
   protection [PROT_POINT] =    80;
   protection [PROT_FIRE]    =    20;
   protection [PROT_MAGIC] =    20;

   value                =   4000;

   wear                =   WEAR_TORSO;

   visual                =   "ItAr_MIL_M.3DS";
   visual_change          =   "hum_wache_gesteppt_h.asc";
   visual_skin          =   0;
   material             =   MAT_LEATHER;
   
   description            =   name;

   TEXT[1]               =   NAME_Prot_Edge;         
   COUNT[1]            =    protection   [PROT_EDGE];
   TEXT[2]               =   NAME_Prot_Point;      
   COUNT[2]            =    protection   [PROT_POINT];
   TEXT[3]             =   NAME_Prot_Fire;         
   COUNT[3]            =    protection   [PROT_FIRE];
   TEXT[4]               =   NAME_Prot_Magic;      
   COUNT[4]            =    protection   [PROT_MAGIC];
   TEXT[5]               =   NAME_Value;         
   COUNT[5]            =    value;
};

Zapisuję i włączam grę naprawiając skrypty, lecz przywołując zbroje kodem, pojawia się oryginalna tekstura. Jak powinno wyglądać dodanie nowej tekstury, aby również pozostała stara?

No i jeszcze czasem są do pobrania tekstury z końcówką .jpg. Czy to ma jakies znaczenia?

13
Jest modyfikacja USWT - Uniwersalny System Walki Tarczą, która dodaje możliwość posługiwania się tarczą. Jest ona kompletna i w dodatku umozliwia dodawanie jej do własnych modów.

pilki dla modderów do pobrania tutaj
Spoiler
https://www.youtube.com/watch?v=fxjOyKzlQzU

Pobrałem, przeczytałem instrukcję, dodałem pliki do własnej modyfikacji. Wszystko działa bez problemów, lecz przy testowaniu zauważyłem, że postać absolutnie nie radzi sobie z atakowanie przeciwników, którzy są ustawieni nieco wyżej lub niżej, a i zasięg ataku postaci naprzeciwko również jest ograniczony do bardzo bliskiej odległości i to niezależnej od statystyki zasięgu broni. Trafienie chrząszcza jest absolutnie niemożliwe.

Ktoś mógłby poszperać w samych plikach moda i podpowiedzieć czy w jakiś sposób da się to rozwiązać, czy może jest to wina twórcy i samej modyfikacji?

14
Pytania i problemy / System ulepszania run - problem
« dnia: 2020-01-22, 15:35 »
Wymyśliłem, że w modyfikacji stworzę system ulepszanie run dla maga. Mam nawet już gotowy koncept: mając wyuczoną i stworzoną runę możemy na stole runicznym dołożyć kilka składników i dostajemy nową wzmocnioną/zmodyfikowaną. Głównie będzie czar wymagał nieco mniej many/ miał większe obrażenia itp. Ogólnie kilka modyfikacji większości z zaklęć.

Poczytałem trochę jak się  zabrać za stworzenie nowego zaklęcia i wziąłem się do modyfikowania skryrów. Korzystałem z wątku: https://themodders.org/index.php?topic=14783.0

Jako próbę wybrałem dość prostą kulę ognia. Po napisaniu skryptów nie wyskoczył błąd w nich, jednak zaklęcie nadal miało obrażenia i koszt many zwykłej kuli ognia. Oto skrypty.

Podpowiedzcie mi gdzie popełniam błąd?

Nowy plik Spell_InstantFireball_1.d w folderze Spells
Spoiler
// *******************
// SPL_InstantFireball_1
// *******************

const int SPL_Cost_InstantFireball_1      = 10;
const int SPL_Damage_InstantFireball_1       = 100;

INSTANCE Spell_InstantFireball_1 (C_Spell_Proto)//Mana
{
   time_per_mana         = 0;
   damage_per_level      = SPL_Damage_InstantFireball_1;
   damageType            = DAM_MAGIC;                           // war vorher DAM_FIRE
};

func int Spell_Logic_InstantFireball_1 (var int manaInvested)
{
   if (Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll))
   {
      return SPL_SENDCAST;
   }
   else if (self.attribute[ATR_MANA] >= SPL_Cost_InstantFireball_1)
   {   
      return SPL_SENDCAST;
   }
   else //nicht genug Mana
   {
      return SPL_SENDSTOP;
   };
};


func void Spell_Cast_InstantFireball_1()
{
   if (Npc_GetActiveSpellIsScroll(self))
   {
      self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_Scroll;
   }
   else
   {
      self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_InstantFireball_1;
   };
   
   self.aivar[AIV_SelectSpell] += 1;
};
Dodałem linijkę w Spell_ProcessMana
Spoiler
// ******************************************************************************
// Spell_ProcessMana
// -----------------
// wird pro investiertem Mana aufgerufen
// wieviele Mana bisher investiert wurden kann über manaInvested abgefragt werden
// diese Methode wird immer vom Caster aufgerufen
// self    = Der Caster
// other    = Das Opfer (kann auch leer sein)
// ******************************************************************************

func INT Spell_ProcessMana (VAR INT manaInvested)
{
   var int activeSpell; activeSpell = Npc_GetActiveSpell(self);
   
   //Paladin-Runen
   if (activeSpell == SPL_PalLight            )   {   return  Spell_Logic_PalLight         (manaInvested); };
   if (activeSpell == SPL_PalLightHeal         )   {   return  Spell_Logic_PalLightHeal      (manaInvested); };
   if (activeSpell == SPL_PalHolyBolt         )   {   return  Spell_Logic_PalHolyBolt         (manaInvested); };
   if (activeSpell == SPL_PalMediumHeal         )   {   return  Spell_Logic_PalMediumHeal      (manaInvested); };
   if (activeSpell == SPL_PalRepelEvil         )   {   return  Spell_Logic_PalRepelEvil      (manaInvested); };
   if (activeSpell == SPL_PalFullHeal         )   {   return  Spell_Logic_PalFullHeal         (manaInvested); };
   if (activeSpell == SPL_PalDestroyEvil         )   {   return  Spell_Logic_PalDestroyEvil      (manaInvested); };
   //Teleport-Runen
   if (activeSpell == SPL_PalTeleportSecret      )   {   return  Spell_Logic_PalTeleportSecret      (manaInvested); };
   if (activeSpell == SPL_TeleportSeaport         )   {   return  Spell_Logic_TeleportSeaport      (manaInvested); };
   if (activeSpell == SPL_TeleportMonastery      )   {   return  Spell_Logic_TeleportMonastery      (manaInvested); };
   if (activeSpell == SPL_TeleportFarm         )   {   return  Spell_Logic_TeleportFarm      (manaInvested); };
   if (activeSpell == SPL_TeleportXardas         )   {   return  Spell_Logic_TeleportXardas      (manaInvested); };
   if (activeSpell == SPL_TeleportPassNW         )   {   return  Spell_Logic_TeleportPassNW      (manaInvested); };
   if (activeSpell == SPL_TeleportPassOW         )   {   return  Spell_Logic_TeleportPassOW      (manaInvested); };
   if (activeSpell == SPL_TeleportOC         )   {   return  Spell_Logic_TeleportOC         (manaInvested); };
   if (activeSpell == SPL_TeleportOWDemonTower      )   {   return  Spell_Logic_TeleportOWDemonTower   (manaInvested); };
   if (activeSpell == SPL_TeleportTaverne         )   {   return  Spell_Logic_TeleportTaverne      (manaInvested); };
   //Runen und Scrolls
   //Kreis 1
   if (activeSpell == SPL_LIGHT            )   {   return  Spell_Logic_Light         (manaInvested); };
   if (activeSpell == SPL_Firebolt            )   {   return   Spell_Logic_Firebolt         (manaInvested);   };
   if (activeSpell == SPL_Icebolt            )   {   return   Spell_Logic_Icebolt         (manaInvested);   };
   if (activeSpell == SPL_Zap               )   {   return   Spell_Logic_Zap         (manaInvested);   };
   if (activeSpell == SPL_LightHeal         )   {   return   Spell_Logic_LightHeal         (manaInvested);   };
   if (activeSpell == SPL_SummonGoblinSkeleton      )   {   return   Spell_Logic_SummonGoblinSkeleton   (manaInvested);   };
   //Kreis 2
   if (activeSpell == SPL_InstantFireball         )   {   return   Spell_Logic_InstantFireball      (manaInvested);   };
   if (activeSpell == SPL_SummonWolf         )   {   return   Spell_Logic_SummonWolf         (manaInvested);   };
   if (activeSpell == SPL_WINDFIST            )   {   return   Spell_Logic_Windfist         (manaInvested);   };
   if (activeSpell == SPL_Sleep            )   {   return   Spell_Logic_Sleep         (manaInvested);   };
   //Kreis 3
   if (activeSpell == SPL_MediumHeal         )   {   return   Spell_Logic_MediumHeal         (manaInvested);   };
   if (activeSpell == SPL_LightningFlash         )    {   return   Spell_Logic_LightningFlash      (manaInvested);   };
   if (activeSpell == SPL_ChargeFireball            )    {   return   Spell_Logic_ChargeFireball      (manaInvested);   };
   if (activeSpell == SPL_ChargeZap           )    {   return   Spell_Logic_ChargeZap         (manaInvested);   };
   if (activeSpell == SPL_SummonSkeleton            )    {   return   Spell_Logic_SummonSkeleton      (manaInvested);   };
   if (activeSpell == SPL_Fear                )    {   return   Spell_Logic_Fear         (manaInvested);   };
   if (activeSpell == SPL_IceCube                )    {   return   Spell_Logic_IceCube         (manaInvested);   };
   //Kreis 4
   if (activeSpell == SPL_ChargeZap             )    {   return   Spell_Logic_ChargeZap         (manaInvested);   };
   if (activeSpell == SPL_SummonGolem            )    {   return   Spell_Logic_SummonGolem         (manaInvested);   };
   if (activeSpell == SPL_DestroyUndead          )   {   return   Spell_Logic_DestroyUndead      (manaInvested);   };
   if (activeSpell == SPL_Pyrokinesis             )    {   return   Spell_Logic_Pyrokinesis         (manaInvested);   };
   //Kreis 5
   if (activeSpell == SPL_Firestorm                )    {   return   Spell_Logic_Firestorm         (manaInvested);   };
   if (activeSpell == SPL_IceWave                 )    {   return   Spell_Logic_IceWave         (manaInvested);   };
   if (activeSpell == SPL_SummonDemon         )   {   return   Spell_Logic_SummonDemon         (manaInvested);   };
   if (activeSpell == SPL_FullHeal            )   {   return   Spell_Logic_FullHeal         (manaInvested);   };
   //Kreis 6
   if (activeSpell == SPL_Firerain            )   {   return   Spell_Logic_Firerain         (manaInvested);   };
   if (activeSpell == SPL_BreathOfDeath         )   {   return   Spell_Logic_BreathOfDeath      (manaInvested);   };
   if (activeSpell == SPL_MassDeath         )   {   return   Spell_Logic_MassDeath         (manaInvested);   };
   if (activeSpell == SPL_ArmyOfDarkness         )   {   return   Spell_Logic_ArmyOfDarkness      (manaInvested);   };
   if (activeSpell == SPL_Shrink            )   {   return   Spell_Logic_Shrink         (manaInvested);   };
   //Scrolls
   if (activeSpell == SPL_TrfSheep                )   {   return   Spell_Logic_TrfSheep          (manaInvested);   };
   if (activeSpell == SPL_TrfScavenger         )   {   return   Spell_Logic_TrfScavenger       (manaInvested);   };
   if (activeSpell == SPL_TrfGiantRat         )   {   return   Spell_Logic_TrfGiantRat         (manaInvested);   };
   if (activeSpell == SPL_TrfGiantBug         )   {   return   Spell_Logic_TrfGiantBug         (manaInvested);   };
   if (activeSpell == SPL_TrfWolf            )   {   return   Spell_Logic_TrfWolf         (manaInvested);   };
   if (activeSpell == SPL_TrfWaran            )   {   return   Spell_Logic_TrfWaran         (manaInvested);   };
   if (activeSpell == SPL_TrfSnapper         )   {   return   Spell_Logic_TrfSnapper         (manaInvested);   };
   if (activeSpell == SPL_TrfWarg            )   {   return   Spell_Logic_TrfWarg         (manaInvested);   };
   if (activeSpell == SPL_TrfFireWaran         )   {   return   Spell_Logic_TrfFireWaran      (manaInvested);   };
   if (activeSpell == SPL_TrfLurker         )   {   return   Spell_Logic_TrfLurker         (manaInvested);   };
   if (activeSpell == SPL_TrfShadowbeast         )   {   return   Spell_Logic_TrfShadowbeast      (manaInvested);   };
   if (activeSpell == SPL_TrfDragonSnapper         )   {   return   Spell_Logic_TrfDragonSnapper      (manaInvested);   };
   if (activeSpell == SPL_Charm            )   {   return   Spell_Logic_Charm         (manaInvested);   };
   if (activeSpell == SPL_MasterOfDisaster         )   {   return   Spell_Logic_MasterOfDisaster      (manaInvested);   };
   
   if (activeSpell == SPL_ConcussionBolt         )   {   return   Spell_Logic_ConcussionBolt      (manaInvested);   };
   if (activeSpell == SPL_Deathbolt         )   {   return   Spell_Logic_Deathbolt         (manaInvested);   };
   if (activeSpell == SPL_Deathball         )   {   return   Spell_Logic_Deathball         (manaInvested);   };
   
   //water
   if (activeSpell == SPL_Thunderstorm         )   {   return   Spell_Logic_Thunderstorm      (manaInvested);   };
   if (activeSpell == SPL_Waterfist         )   {   return   Spell_Logic_Waterfist         (manaInvested);   };
   if (activeSpell == SPL_Whirlwind         )   {   return   Spell_Logic_Whirlwind         (manaInvested);   };
   if (activeSpell == SPL_Geyser            )    {   return   Spell_Logic_Geyser         (manaInvested);   };
   if (activeSpell == SPL_Inflate            )    {   return   Spell_Logic_Inflate         (manaInvested);   };
   if (activeSpell == SPL_Icelance            )    {   return   Spell_Logic_Icelance         (manaInvested);   };
   
   //beliar magic
   if (activeSpell == SPL_Swarm            )   {   return   Spell_Logic_Swarm         (manaInvested);   };
   if (activeSpell == SPL_Greententacle         )   {   return   Spell_Logic_Greententacle      (manaInvested);   };
   if (activeSpell == SPL_SummonGuardian         )   {   return   Spell_Logic_SummonGuardian      (manaInvested);   };
   if (activeSpell == SPL_Energyball         )   {   return   Spell_Logic_Energyball         (manaInvested);   };
   if (activeSpell == SPL_SuckEnergy         )   {   return   Spell_Logic_SuckEnergy         (manaInvested);   };
   if (activeSpell == SPL_Skull            )   {   return   Spell_Logic_Skull         (manaInvested);   };
   if (activeSpell == SPL_SummonZombie         )   {   return   Spell_Logic_SummonZombie      (manaInvested);   };
   if (activeSpell == SPL_SummonMud         )   {   return   Spell_Logic_SummonMud         (manaInvested);   };

   if (activeSpell == SPL_InstantFireball_1      )   {   return   Spell_Logic_InstantFireball_1      (manaInvested);   };

//Leer

//   if (Npc_GetActiveSpell(self) == SPL_B               )   {   return   Spell_Logic_XXX            (manaInvested);   };
//   if (Npc_GetActiveSpell(self) == SPL_C               )   {   return   Spell_Logic_XXX            (manaInvested);   };
//   if (Npc_GetActiveSpell(self) == SPL_D               )   {   return   Spell_Logic_XXX            (manaInvested);   };
//   if (Npc_GetActiveSpell(self) == SPL_E               )   {   return   Spell_Logic_XXX            (manaInvested);   };
//   if (Npc_GetActiveSpell(self) == SPL_F               )   {   return   Spell_Logic_XXX            (manaInvested);   };
//   if (Npc_GetActiveSpell(self) == SPL_G               )   {   return   Spell_Logic_XXX            (manaInvested);   };
//   if (Npc_GetActiveSpell(self) == SPL_H               )   {   return   Spell_Logic_XXX            (manaInvested);   };
};
Dodałem dopiski w Constants.d
Spoiler
// *********************
//      Constants
//    Phoenix V0.67
// *********************


// *************************************************************
// PrintScreen Fonts
// *************************************************************

const string FONT_Screen               = "FONT_OLD_20_WHITE.TGA";
const string FONT_ScreenSmall            = "FONT_OLD_10_WHITE.TGA";
const string FONT_Book                  = "FONT_10_BOOK.TGA";
const string FONT_BookHeadline            = "FONT_20_BOOK.TGA";


// ****************************
// Spellkosten für ALLE SCrolls
// ****************************
const int SPL_Cost_Scroll = 5;


// MH: 19.11.01 Gildennamen geändert --> Änderungen in Text.d (Character-Screen Gildenbezeichnungen) und Species.d (Gildenanhängige Bewegungswerte wie z.B Kletterhöhe)
// MH: 19.11.01 Talente hinzugefügt
// MH: 15.12.01 Neue Spells hinzugefügt
// MH: 15.12.01 Neue Player Talente hinzugefügt

//
//   NPC ATTRIBUTES
//

const int ATR_HITPOINTS            =  0;   // Lebenspunkte
const int ATR_HITPOINTS_MAX         =  1;   // Max. Lebenspunkte
const int ATR_MANA               =  2;   // Mana Mana
const int ATR_MANA_MAX            =  3;   // Mana Max

const int ATR_STRENGTH            =  4;   // Stärke
const int ATR_DEXTERITY            =  5;   // Geschick
const int ATR_REGENERATEHP         =  6;   // Regenerierung von HP alle x sekunden
const int ATR_REGENERATEMANA         =  7;   // Regenerierung von Mana alle x sekunden

const int ATR_INDEX_MAX            =  8;

//
//   NPC FLAGS
//
CONST INT NPC_FLAG_FRIEND                        =  1 << 0            ;   // wird nicht benutzt (wird über aivar geregelt)
CONST INT NPC_FLAG_IMMORTAL                        =  1 << 1            ;   // Unverwundbar
CONST INT NPC_FLAG_GHOST                        =  1 << 2            ;   // Halb-Transparenter NPC (Gothic.ini [INTERNAL] 'GhostAlpha')

//
//   FIGHT MODES
//
CONST INT FMODE_NONE                           =  0               ;
CONST INT FMODE_FIST                           =  1               ;
CONST INT FMODE_MELEE                           =  2               ;
CONST INT FMODE_FAR                              =  5               ;
CONST INT FMODE_MAGIC                           =  7               ;

//
//   WALK MODES
//
CONST INT NPC_RUN                              =  0               ;
CONST INT NPC_WALK                              =  1               ;
CONST INT NPC_SNEAK                              =  2               ;
CONST INT NPC_RUN_WEAPON                        =  0 + 128            ;
CONST INT NPC_WALK_WEAPON                        =  1 + 128            ;
CONST INT NPC_SNEAK_WEAPON                        =  2 + 128            ;

//
//   ARMOR FLAGS
//
CONST INT WEAR_TORSO                           =  1               ;      //   Oberkoerper   ( Brustpanzer )
CONST INT WEAR_HEAD                              =  2               ;      //   Kopf      ( Helm )
CONST INT WEAR_EFFECT                           =  16               ;      

//
//   INVENTORY CATEGORIES
//
CONST INT INV_WEAPON                           =  1               ;
CONST INT INV_ARMOR                              =  2               ;
CONST INT INV_RUNE                              =  3               ;
CONST INT INV_MAGIC                              =  4               ;
CONST INT INV_FOOD                              =  5               ;
CONST INT INV_POTION                           =  6               ;
CONST INT INV_DOC                              =  7               ;
CONST INT INV_MISC                              =  8               ;
CONST INT INV_CAT_MAX                           =  9               ;

//
//   INVENTORY CAPACITIES      // --- werden vom Programm ignoriert - INV ist unendlich groß! ---
//
CONST INT INV_MAX_WEAPONS                        =    6               ;
CONST INT INV_MAX_ARMORS                         =    2               ;
CONST INT INV_MAX_RUNES                           = 1000               ;      //   virtually infinite
CONST INT INV_MAX_FOOD                           =   15               ;
CONST INT INV_MAX_DOCS                           = 1000               ;      //   virtually infinite
CONST INT INV_MAX_POTIONS                        = 1000               ;      //   virtually infinite
CONST INT INV_MAX_MAGIC                           = 1000               ;      //   virtually infinite
CONST INT INV_MAX_MISC                           = 1000               ;

//
//   ITEM TEXTS
//
CONST INT ITM_TEXT_MAX                           =  6               ;

////////////////////////////////////////////////////////////////////////////////
//
//   ITEM FLAGS
//

// categories (mainflag)
const int ITEM_KAT_NONE      = 1 <<  0;  // Sonstiges
const int ITEM_KAT_NF      = 1 <<  1;  // Nahkampfwaffen
const int ITEM_KAT_FF      = 1 <<  2;  // Fernkampfwaffen
const int ITEM_KAT_MUN      = 1 <<  3;  // Munition (MULTI)
const int ITEM_KAT_ARMOR   = 1 <<  4;  // Ruestungen
const int ITEM_KAT_FOOD      = 1 <<  5;  // Nahrungsmittel (MULTI)
const int ITEM_KAT_DOCS      = 1 <<  6;  // Dokumente
const int ITEM_KAT_POTIONS   = 1 <<  7;  // Traenke
const int ITEM_KAT_LIGHT   = 1 <<  8;  // Lichtquellen
const int ITEM_KAT_RUNE      = 1 <<  9;  // Runen/Scrolls
const int ITEM_KAT_MAGIC   = 1 << 31;  // Ringe/Amulette/Guertel
const int ITEM_KAT_KEYS      = ITEM_KAT_NONE;
// weapon type (flags)
const int ITEM_DAG      = 1 << 13;  // (OBSOLETE!)
const int ITEM_SWD      = 1 << 14;  // Schwert
const int ITEM_AXE      = 1 << 15;  // Axt
const int ITEM_2HD_SWD      = 1 << 16;  // Zweihaender
const int ITEM_2HD_AXE      = 1 << 17;  // Streitaxt
const int ITEM_SHIELD      = 1 << 18;  // (OBSOLETE!)
const int ITEM_BOW      = 1 << 19;  // Bogen
const int ITEM_CROSSBOW      = 1 << 20;  // Armbrust
// magic type (flags)
const int ITEM_RING      = 1 << 11;  // Ring
const int ITEM_AMULET      = 1 << 22;  // Amulett
const int ITEM_BELT      = 1 << 24;  // Guertel
// attributes (flags)
const int ITEM_DROPPED       = 1 << 10;  // (INTERNAL!)
const int ITEM_MISSION       = 1 << 12;  // Missionsgegenstand
const int ITEM_MULTI      = 1 << 21;  // Stapelbar
const int ITEM_NFOCUS      = 1 << 23;  // (INTERNAL!)
const int ITEM_CREATEAMMO   = 1 << 25;  // Erzeugt Munition selbst (magisch)
const int ITEM_NSPLIT      = 1 << 26;  // Kein Split-Item (Waffe als Interact-Item!)
const int ITEM_DRINK      = 1 << 27;  // (OBSOLETE!)
const int ITEM_TORCH      = 1 << 28;  // Fackel
const int ITEM_THROW      = 1 << 29;  // (OBSOLETE!)
const int ITEM_ACTIVE      = 1 << 30;  // (INTERNAL!)

//
//   DAMAGE TYPES v2.0
//
CONST INT DAM_INVALID                           = 0                  ;       //     0 - 0x00 - nur der Vollstandigkeit und Transparenz wegen hier definiert ( _NICHT_ verwenden )
CONST INT DAM_BARRIER                           = 1                  ;        //     1 - 0x01 - nur der Vollstandigkeit und Transparenz wegen hier definiert ( _NICHT_ verwenden )
CONST INT DAM_BLUNT                              = DAM_BARRIER   << 1   ;        //     2 - 0x02 - blunt ist das bit links von barrier
CONST INT DAM_EDGE                              = DAM_BLUNT      << 1   ;      //     4 - 0x04 - edge    ist das bit links von blunt
CONST INT DAM_FIRE                              = DAM_EDGE      << 1   ;        //     8 - 0x08 - fire    ist das bit links von edge
CONST INT DAM_FLY                              = DAM_FIRE      << 1   ;      //    16 - 0x10 - fly    ist das bit links von fire
CONST INT DAM_MAGIC                              = DAM_FLY      << 1   ;        //    32 - 0x20 - magic   ist das bit links von fly
CONST INT DAM_POINT                              = DAM_MAGIC      << 1   ;        //    64 - 0x40 - point   ist das bit links von magic
CONST INT DAM_FALL                              = DAM_POINT      << 1   ;        //   128 - 0x80 - nur der Vollstandigkeit und Transparenz wegen hier definiert ( _NICHT_ verwenden )

//
//   DAMAGE TYPE ARRAY INDICES   ( !!! DAM_XXX = 1 << DAM_INDEX_XXX !!! )
//
CONST INT DAM_INDEX_BARRIER                        = 0                  ;        //             nur der Vollstandigkeit und Transparenz wegen hier definiert ( _NICHT_ verwenden )
CONST INT DAM_INDEX_BLUNT                        = DAM_INDEX_BARRIER + 1   ;
CONST INT DAM_INDEX_EDGE                        = DAM_INDEX_BLUNT   + 1   ;
CONST INT DAM_INDEX_FIRE                        = DAM_INDEX_EDGE   + 1   ;
CONST INT DAM_INDEX_FLY                           = DAM_INDEX_FIRE   + 1   ;
CONST INT DAM_INDEX_MAGIC                        = DAM_INDEX_FLY      + 1   ;
CONST INT DAM_INDEX_POINT                        = DAM_INDEX_MAGIC   + 1   ;
CONST INT DAM_INDEX_FALL                        = DAM_INDEX_POINT   + 1   ;        //             nur der Vollstandigkeit und Transparenz wegen hier definiert ( _NICHT_ verwenden )
CONST INT DAM_INDEX_MAX                           = DAM_INDEX_FALL   + 1 ;

//
//   OTHER DAMAGE CONSTANTS
//
CONST INT NPC_ATTACK_FINISH_DISTANCE               = 180      ;
CONST INT NPC_BURN_TICKS_PER_DAMAGE_POINT            = 1000      ; //Default 1000
CONST INT NPC_BURN_DAMAGE_POINTS_PER_INTERVALL         = 50      ; //Default 10
CONST INT DAM_CRITICAL_MULTIPLIER                  = 2         ; //Obsolet, da Treffer-%-CHance CriticalHit ersetzt hat

CONST INT BLOOD_SIZE_DIVISOR                     = 1000      ;
CONST INT BLOOD_DAMAGE_MAX                        = 200       ;

CONST INT DAMAGE_FLY_CM_MAX                        = 2000     ;
CONST INT DAMAGE_FLY_CM_MIN                               = 300      ;
const INT DAMAGE_FLY_CM_PER_POINT                  = 5         ;

const int NPC_DAM_DIVE_TIME                        = 100      ;

const int IMMUNE                              = -1       ;

// ------ Wie weit werden Npcs im Kampf voneinander weggeschoben -------
// ------ Faktor zu W-Distanz (BASE + Waffe, bzw. BASE + FIST) ------
const float NPC_COLLISION_CORRECTION_SCALER            = 0.75;      //Default = 0.75


//
//   PROTECTION TYPES v2.0
//
CONST INT PROT_BARRIER                           = DAM_INDEX_BARRIER      ;
CONST INT PROT_BLUNT                           = DAM_INDEX_BLUNT      ;
CONST INT PROT_EDGE                              = DAM_INDEX_EDGE      ;
CONST INT PROT_FIRE                              = DAM_INDEX_FIRE      ;
CONST INT PROT_FLY                              = DAM_INDEX_FLY         ;
CONST INT PROT_MAGIC                           = DAM_INDEX_MAGIC      ;
CONST INT PROT_POINT                           = DAM_INDEX_POINT      ;
CONST INT PROT_FALL                              = DAM_INDEX_FALL      ;
CONST INT PROT_INDEX_MAX                        = DAM_INDEX_MAX         ;

//
//   PERCEPTIONS   ( ACTIVE )
//
CONST INT PERC_ASSESSPLAYER                        =   1               ;
CONST INT PERC_ASSESSENEMY                        =   2               ;
CONST INT PERC_ASSESSFIGHTER                     =   3               ;
CONST INT PERC_ASSESSBODY                        =   4               ;
CONST INT PERC_ASSESSITEM                        =   5               ;

//
//   SENSES
//
CONST INT SENSE_SEE                              = 1 << 0            ;
CONST INT SENSE_HEAR                           = 1 << 1            ;
CONST INT SENSE_SMELL                           = 1 << 2            ;

//
//   PERCEPTIONS   ( PASSIVE )
//
CONST INT PERC_ASSESSMURDER                        =   6               ;
CONST INT PERC_ASSESSDEFEAT                        =   7               ;
CONST INT PERC_ASSESSDAMAGE                        =   8               ;
CONST INT PERC_ASSESSOTHERSDAMAGE                  =   9               ;
CONST INT PERC_ASSESSTHREAT                        =  10               ;
CONST INT PERC_ASSESSREMOVEWEAPON                  =  11               ;
CONST INT PERC_OBSERVEINTRUDER                     =  12               ;
CONST INT PERC_ASSESSFIGHTSOUND                     =  13               ;
CONST INT PERC_ASSESSQUIETSOUND                     =  14               ;
CONST INT PERC_ASSESSWARN                        =  15               ;
CONST INT PERC_CATCHTHIEF                        =  16               ;
CONST INT PERC_ASSESSTHEFT                        =  17               ;
CONST INT PERC_ASSESSCALL                        =  18               ;
CONST INT PERC_ASSESSTALK                        =  19               ;
CONST INT PERC_ASSESSGIVENITEM                     =  20               ;
CONST INT PERC_ASSESSFAKEGUILD                     =  21               ; //wird gesendet, sobald der SC sich verwandelt
CONST INT PERC_MOVEMOB                           =  22               ;
CONST INT PERC_MOVENPC                           =  23               ;
CONST INT PERC_DRAWWEAPON                        =  24               ;
CONST INT PERC_OBSERVESUSPECT                     =  25               ;
CONST INT PERC_NPCCOMMAND                        =  26               ;
CONST INT PERC_ASSESSMAGIC                        =  27               ;
CONST INT PERC_ASSESSSTOPMAGIC                     =  28               ;
CONST INT PERC_ASSESSCASTER                        =  29               ; //wird beim 1. investierten Manapunkt gesendet
CONST INT PERC_ASSESSSURPRISE                     =  30               ; //wird beim Zurückverwandeln gesendet
CONST INT PERC_ASSESSENTERROOM                     =  31               ;
CONST INT PERC_ASSESSUSEMOB                        =  32               ;

//
//   NEWS SPREAD MODE
//
CONST INT NEWS_DONT_SPREAD                        = 0                  ;
const INT NEWS_SPREAD_NPC_FRIENDLY_TOWARDS_VICTIM      = 1                  ;
CONST INT NEWS_SPREAD_NPC_FRIENDLY_TOWARDS_WITNESS      = 2                  ;
CONST INT NEWS_SPREAD_NPC_FRIENDLY_TOWARDS_OFFENDER      = 3                  ;
CONST INT NEWS_SPREAD_NPC_SAME_GUILD_VICTIM            = 4                  ;

//
//   NEWS CONSTANTS
//
CONST INT IMPORTANT                              = 1                  ;

//
//   INFO STATUS
//
CONST INT INF_TELL                              = 0                  ;
CONST INT INF_UNKNOWN                           = 2                  ;

//
//   MISSION STATUS
//
const INT LOG_RUNNING                           = 1                  ;      //   Mission läuft gerade
CONST INT LOG_SUCCESS                           = 2                  ;      //   Mission erfolgreich beendet
CONST INT LOG_FAILED                           = 3                  ;      //   Mission wurde abgebrochen
CONST INT LOG_OBSOLETE                           = 4                  ;      //   Mission ist hinfaellig

//
//   ATTITUDES
//
CONST INT ATT_FRIENDLY                           = 3                  ;
CONST INT ATT_NEUTRAL                           = 2                  ;
CONST INT ATT_ANGRY                              = 1                  ;
CONST INT ATT_HOSTILE                           = 0                  ;


// ******************
//       Gilden
// ******************

const int GIL_NONE                  = 0      ;   // (keine)
const int GIL_HUMAN                  = 1      ;   // Special Guild -> To set Constants for ALL Human Guilds --> wird verwendet in Species.d
const int GIL_PAL                  = 1      ;   // Paladin
const int GIL_MIL                  = 2      ;   // Miliz
const int GIL_VLK                  = 3      ;   // Bürger
const int GIL_KDF                  = 4      ;   // Magier
const int GIL_NOV                  = 5      ;   // Magier Novize
const int GIL_DJG                  = 6      ;   // Drachenjäger
const int GIL_SLD                  = 7      ;   // Söldner
const int GIL_BAU                  = 8      ;   // Bauer
const int GIL_BDT                  = 9      ;   // Bandit
const int GIL_STRF                  = 10   ;    // Prisoner, Sträfling
const int GIL_DMT                  = 11   ;   // Dementoren
const int GIL_OUT                  = 12   ;    // Outlander (z.B. kleine Bauernhöfe)

const int GIL_PIR                  = 13   ;   //Pirat
const int GIL_KDW                  = 14   ;   //KDW
const int GIL_EMPTY_D               = 15   ;   // NICHT VERWENDEN!
//-----------------------------------------------
const int GIL_PUBLIC               = 15   ;    // für öffentliche Portalräume
//-----------------------------------------------

const int GIL_SEPERATOR_HUM            = 16   ;

const int GIL_MEATBUG               = 17   ;
const int GIL_SHEEP                  = 18   ;
const int GIL_GOBBO                  = 19   ;    // Green Goblin / Black Goblin
const int GIL_GOBBO_SKELETON         = 20   ;
const int GIL_SUMMONED_GOBBO_SKELETON    = 21   ;
const int GIL_SCAVENGER               = 22   ;    // (bei Bedarf) Scavenger / Evil Scavenger /OrcBiter
const int GIL_GIANT_RAT               = 23   ;
const int GIL_GIANT_BUG               = 24   ;
const int GIL_BLOODFLY               = 25   ;
const int GIL_WARAN                  = 26   ;    // Waren / Feuerwaran
const int GIL_WOLF                  = 27   ;    // Wolf / Warg
const int GIL_SUMMONED_WOLF            = 28   ;
const int GIL_MINECRAWLER            = 29   ;    // Minecrawler / Minecrawler Warrior
const int GIL_LURKER               = 30   ;
const int GIL_SKELETON               = 31   ;
const int GIL_SUMMONED_SKELETON         = 32   ;
const int GIL_SKELETON_MAGE            = 33   ;
const int GIL_ZOMBIE               = 34   ;
const int GIL_SNAPPER               = 35   ;    // Snapper / Dragon Snapper /Razor
const int GIL_SHADOWBEAST            = 36   ;   //Shadowbeast / Bloodhound
const int GIL_SHADOWBEAST_SKELETON      = 37   ;
const int GIL_HARPY                  = 38   ;
const int GIL_STONEGOLEM            = 39    ;
const int GIL_FIREGOLEM               = 40   ;
const int GIL_ICEGOLEM               = 41   ;
const int GIL_SUMMONED_GOLEM         = 42   ;
const int GIL_DEMON                  = 43   ;
const int GIL_SUMMONED_DEMON         = 44   ;
const int GIL_TROLL                  = 45    ;    // Troll / Schwarzer Troll
const int GIL_SWAMPSHARK            = 46   ;    // (bei Bedarf)
const int GIL_DRAGON               = 47   ;    // Feuerdrache / Eisdrache / Felsdrache / Sumpfdrache / Untoter Drache
const int GIL_MOLERAT               = 48   ;    // Molerat

const int GIL_ALLIGATOR               = 49   ;
const int GIL_SWAMPGOLEM            = 50   ;
const int GIL_Stoneguardian            = 51   ;
const int GIL_Gargoyle               = 52   ;
const int GIL_Empty_A               = 53   ;
const int GIL_SummonedGuardian         = 54   ;
const int GIL_SummonedZombie         = 55   ;
const int GIL_EMPTY_B               = 56   ;
const int GIL_EMPTY_C               = 57   ;

const int GIL_SEPERATOR_ORC            = 58   ;   // (ehem. 37)

const int GIL_ORC                  = 59   ;   // Ork-Krieger / Ork-Shamane / Ork-Elite
const int GIL_FRIENDLY_ORC            = 60   ;   // Ork-Sklave / Ur-Shak
const int GIL_UNDEADORC               = 61   ;
const int GIL_DRACONIAN               = 62   ;

const int GIL_EMPTY_X               = 63   ;
const int GIL_EMPTY_Y               = 64   ;
const int GIL_EMPTY_Z               = 65   ;

const int GIL_MAX                  = 66   ;   // (ehem. 42)



//
//   GUILDS DESCRIPTION
//
CLASS C_GILVALUES
{
   VAR INT      WATER_DEPTH_KNEE                  [GIL_MAX]            ;
   VAR INT      WATER_DEPTH_CHEST                  [GIL_MAX]            ;
   VAR INT      JUMPUP_HEIGHT                     [GIL_MAX]            ;      //   DEFAULT = 200;
//   VAR INT      JUMPUP_FORCE                     [GIL_MAX]            ;
   VAR INT      SWIM_TIME                        [GIL_MAX]            ;
   VAR INT      DIVE_TIME                        [GIL_MAX]            ;
   VAR INT      STEP_HEIGHT                        [GIL_MAX]            ;
   VAR INT      JUMPLOW_HEIGHT                     [GIL_MAX]            ;
   VAR INT      JUMPMID_HEIGHT                     [GIL_MAX]            ;
   VAR INT      SLIDE_ANGLE                        [GIL_MAX]            ;
   VAR INT      SLIDE_ANGLE2                     [GIL_MAX]            ;
   VAR INT      DISABLE_AUTOROLL                  [GIL_MAX]            ;      //   DEFAULT = 0               ;  0 = Autoroll  enabled   / 1 = Autoroll  disabled
   VAR INT      SURFACE_ALIGN                     [GIL_MAX]            ;      //   DEFAULT = 0               ;  0 = Alignment disabled   / 1 = Alignment enabled
   VAR INT      CLIMB_HEADING_ANGLE                  [GIL_MAX]            ;
   VAR INT      CLIMB_HORIZ_ANGLE                  [GIL_MAX]            ;
   VAR INT      CLIMB_GROUND_ANGLE                  [GIL_MAX]            ;
   VAR INT      FIGHT_RANGE_BASE                  [GIL_MAX]            ;
   VAR INT      FIGHT_RANGE_FIST                  [GIL_MAX]            ;
   var int    FIGHT_RANGE_G                     [GIL_MAX]            ;
   VAR INT      FIGHT_RANGE_1HS                     [GIL_MAX]            ;
   VAR INT      FIGHT_RANGE_1HA                     [GIL_MAX]            ;
   VAR INT      FIGHT_RANGE_2HS                     [GIL_MAX]            ;
   VAR INT      FIGHT_RANGE_2HA                     [GIL_MAX]            ;
   VAR INT      FALLDOWN_HEIGHT                     [GIL_MAX]            ;      //                           Wie tief Fallen ohne Schaden ?
   VAR INT      FALLDOWN_DAMAGE                     [GIL_MAX]            ;      //                           Schaden für jeden weiteren angefangenen Meter.
   VAR INT      BLOOD_DISABLED                     [GIL_MAX]            ;      //   DEFAULT = 0               ;   Blut ganz ausschalten (z.B. bei Sekletten) ?
   VAR INT      BLOOD_MAX_DISTANCE                  [GIL_MAX]            ;      //   DEFAULT = 1000            ;   Wie weit spritzt das Blut (in cm) ?
   VAR INT      BLOOD_AMOUNT                     [GIL_MAX]            ;      //   DEFAULT = 10            ;   Wie viel Blut ?
   VAR INT      BLOOD_FLOW                        [GIL_MAX]            ;      //   DEFAULT = 0               ;   Soll es sich langsam ausbreiten ?
   VAR STRING  BLOOD_EMITTER                     [GIL_MAX]            ;      //   DEFAULT = "PFX_BLOOD"      ;   Welcher Partikel-Emitter ?
   VAR STRING  BLOOD_TEXTURE                     [GIL_MAX]            ;      //   DEFAULT = "ZBLOODSPLAT2.TGA";   Welche Textur ?
   VAR INT    TURN_SPEED                        [GIL_MAX]            ;      //   DEFAULT = 150            ;
};

//
//   SOUND TYPES
//
CONST INT NPC_SOUND_DROPTAKE                     = 1                  ;
CONST INT NPC_SOUND_SPEAK                        = 3                  ;
CONST INT NPC_SOUND_STEPS                        = 4                  ;
CONST INT NPC_SOUND_THROWCOLL                     = 5                  ;
CONST INT NPC_SOUND_DRAWWEAPON                     = 6                  ;
CONST INT NPC_SOUND_SCREAM                        = 7                  ;
CONST INT NPC_SOUND_FIGHT                        = 8                  ;

//
//   MATERIAL TYPES
//
CONST INT MAT_WOOD                              = 0                  ;
CONST INT MAT_STONE                              = 1                  ;
CONST INT MAT_METAL                              = 2                  ;
CONST INT MAT_LEATHER                           = 3                  ;
CONST INT MAT_CLAY                              = 4                  ;
CONST INT MAT_GLAS                              = 5                  ;      // ??

//
//   LOG
//
CONST INT LOG_MISSION                           = 0                  ;
CONST INT LOG_NOTE                              = 1                  ;

//
//   OTHER CONSTANTS
//
const int TIME_INFINITE                           = -1000000 / 1000      ;
const int NPC_VOICE_VARIATION_MAX                  = 10               ;

const float      TRADE_VALUE_MULTIPLIER               = 0.10;         // DEFAULT = 0.3         Faktor auf den Wert eines Items, den ein Haendler bezahlt
const string   TRADE_CURRENCY_INSTANCE               = "ITMI_GOLD";   // DEFAULT = "ITMI_GOLD"   Name der Instanz des Waehrungs-Items


////////////////////////////////////////////////////////////////////////////////
//
//   Spells: Kategorie-Konstanten
//

const int SPELL_GOOD   = 0;
const int SPELL_NEUTRAL   = 1;
const int SPELL_BAD      = 2;


////////////////////////////////////////////////////////////////////////////////
//
//   Spells: Steuerungs-Konstanten
//

const int SPL_DONTINVEST       = 0;      // Es können keine weiteren Manapunkte investiert werden. Erst durch CTRL loslassen geht der Spell ab
const int SPL_RECEIVEINVEST      = 1;      // Wirkung durchgeführt, es können weitere Invest kommen, zB.bei Heal nach jedem Pöppel
const int SPL_SENDCAST         = 2;      // Starte den Zauber-Effekt (wie CTRL loslassen), automatischer Abbruch
const int SPL_SENDSTOP         = 3;      // Beende Zauber ohne Effekt
const int SPL_NEXTLEVEL         = 4;      // setze den Spruch auf den nächsten Level
const int SPL_STATUS_CANINVEST_NO_MANADEC=8;
const int SPL_FORCEINVEST       = 1 << 16;   // zieht auf jeden Fall einen Manapunkt ab, egal ob timePerMana abgelaufen ist, oder nicht (sinnvoll für Investierzauber, die zumindest einen Manapunkt abziehen sollen, obwohl timePerMana noch nicht abgelaufen ist.


////////////////////////////////////////////////////////////////////////////////
//
//   Spells: Target-Konstanten
//

const int TARGET_COLLECT_NONE                = 0;   // target will be set by effect (range, azi, elev)
const int TARGET_COLLECT_CASTER               = 1;   // target is the caster
const int TARGET_COLLECT_FOCUS                = 2;   // target is the focus vob
const int TARGET_COLLECT_ALL                = 3;   // all targets in range will be assembled
const int TARGET_COLLECT_FOCUS_FALLBACK_NONE   = 4;   // target is the focus vob, if the focus vob is not valid, the trajectory will be set by the effect
const int TARGET_COLLECT_FOCUS_FALLBACK_CASTER   = 5;   // target is the focus vob, if the focus vob is not valid, the target is the caster
const int TARGET_COLLECT_ALL_FALLBACK_NONE      = 6;   // all targets in range will be assembled, if there are no valid targets, the trajectory will be set by the effect
const int TARGET_COLLECT_ALL_FALLBACK_CASTER   = 7;   // all targets in range will be assembled, if there are no valid targets, the target is the caster

const int TARGET_TYPE_ALL      = 1;
const int TARGET_TYPE_ITEMS      = 2;
const int TARGET_TYPE_NPCS      = 4;
const int TARGET_TYPE_ORCS      = 8;
const int TARGET_TYPE_HUMANS   = 16;
const int TARGET_TYPE_UNDEAD   = 32;


////////////////////////////////////////////////////////////////////////////////
//
//   Spells: ID-Konstanten
//

// Paladin-Runen
const int SPL_PalLight            = 0;
const int SPL_PalLightHeal         = 1;
const int SPL_PalHolyBolt         = 2;
const int SPL_PalMediumHeal         = 3;
const int SPL_PalRepelEvil         = 4;
const int SPL_PalFullHeal         = 5;
const int SPL_PalDestroyEvil      = 6;

// Teleport-Runen
const int SPL_PalTeleportSecret      = 7;
const int SPL_TeleportSeaport      = 8;
const int SPL_TeleportMonastery      = 9;
const int SPL_TeleportFarm         = 10;
const int SPL_TeleportXardas      = 11;
const int SPL_TeleportPassNW      = 12;
const int SPL_TeleportPassOW      = 13;
const int SPL_TeleportOC         = 14;
const int SPL_TeleportOWDemonTower    = 15;
const int SPL_TeleportTaverne      = 16;
const int SPL_Teleport_3         = 17;

// Kreis 1
const int SPL_Light             = 18;
const int SPL_Firebolt            = 19;

// Kreis 2
const int SPL_Icebolt            = 20;

// Kreis 1
const int SPL_LightHeal            = 21;      // SPL_Heal Instant!
const int SPL_SummonGoblinSkeleton   = 22;

// Kreis 2
const int SPL_InstantFireball      = 23;

// Kreis 1
const int SPL_Zap               = 24;       // ###UNCONSCIOUS###

// Kreis 2
const int SPL_SummonWolf         = 25;
const int SPL_WindFist            = 26;      // ###UNCONSCIOUS###
const int SPL_Sleep               = 27;

// Kreis 3
const int SPL_MediumHeal         = 28;
const int SPL_LightningFlash      = 29;
const int SPL_ChargeFireball      = 30;
const int SPL_SummonSkeleton      = 31;
const int SPL_Fear               = 32;
const int SPL_IceCube            = 33;

// Kreis 4
const int SPL_ChargeZap            = 34;
const int SPL_SummonGolem         = 35;
const int SPL_DestroyUndead         = 36;
const int SPL_Pyrokinesis         = 37;

// Kreis 5
const int SPL_Firestorm            = 38;
const int SPL_IceWave            = 39;
const int SPL_SummonDemon         = 40;
const int SPL_FullHeal            = 41;

// Kreis 6
const int SPL_Firerain            = 42;
const int SPL_BreathOfDeath         = 43;
const int SPL_MassDeath            = 44;
const int SPL_ArmyOfDarkness      = 45;
const int SPL_Shrink            = 46;

// Scrolls
const int SPL_TrfSheep            = 47;
const int SPL_TrfScavenger         = 48;
const int SPL_TrfGiantRat         = 49;
const int SPL_TrfGiantBug         = 50;
const int SPL_TrfWolf            = 51;
const int SPL_TrfWaran            = 52;
const int SPL_TrfSnapper         = 53;
const int SPL_TrfWarg            = 54;
const int SPL_TrfFireWaran         = 55;
const int SPL_TrfLurker            = 56;
const int SPL_TrfShadowbeast      = 57;
const int SPL_TrfDragonSnapper      = 58;
const int SPL_Charm               = 59;   // MAX_SPELL (Gothic)

// Kreis 5
const int SPL_MasterOfDisaster      = 60;

// ???
const int SPL_Deathbolt            = 61;
const int SPL_Deathball            = 62;
const int SPL_ConcussionBolt      = 63;
const int SPL_Reserved_64         = 64;   // SPL_E
const int SPL_Reserved_65          = 65;   // SPL_F
const int SPL_Reserved_66           = 66;   // SPL_G
const int SPL_Reserved_67           = 67;   // SPL_H
const int SPL_Reserved_68         = 68;   // MAX_SPELL (Gothic2)
const int SPL_Reserved_69         = 69;

// Magick (Wasser)
const int SPL_Thunderstorm         = 70;
const int SPL_Whirlwind            = 71;
const int SPL_WaterFist            = 72;
const int SPL_IceLance            = 73;
const int SPL_Inflate            = 74;
const int SPL_Geyser            = 75;
const int SPL_Waterwall            = 76;
const int SPL_Reserved_77         = 77;
const int SPL_Reserved_78         = 78;
const int SPL_Reserved_79         = 79;

// Magick (Maya)
const int SPL_Plague            = 80;
const int SPL_Swarm               = 81;
const int SPL_GreenTentacle         = 82;
const int SPL_Earthquake         = 83;
const int SPL_SummonGuardian      = 84;
const int SPL_Energyball         = 85;
const int SPL_SuckEnergy         = 86;
const int SPL_Skull               = 87;
const int SPL_SummonZombie         = 88;
const int SPL_SummonMud            = 89;

// ...
const int SPL_InstantFireball_1         = 90;
const int SPL_Reserved_91         = 91;
const int SPL_Reserved_92         = 92;
const int SPL_Reserved_93         = 93;
const int SPL_Reserved_94         = 94;
const int SPL_Reserved_95         = 95;
const int SPL_Reserved_96         = 96;
const int SPL_Reserved_97         = 97;
const int SPL_Reserved_98         = 98;
const int SPL_Reserved_99         = 99;

const int MAX_SPELL               = 100;   // 59 (Gothic), 68 (Gothic2), 100 (G2Addon)


////////////////////////////////////////////////////////////////////////////////
//
//   Spells: Fx-/Spell-Klassennamen (Array)
//

const string spellFxInstanceNames[MAX_SPELL] =
{
   // Paladin-Runen
   "PalLight",            // 0   SPL_PalLight
   "PalHeal",           // 1   SPL_PalLightHeal
   "PalHolyBolt",        // 2   SPL_PalHolyBolt
   "PalHeal",           // 3   SPL_PalMediumHeal
   "PalRepelEvil",         // 4   SPL_PalRepelEvil
   "PalHeal",           // 5   SPL_PalFullHeal
   "PalDestroyEvil",        // 6   SPL_PalDestroyEvil

   // Teleport-Runen
   "Teleport",           // 7   SPL_PalTeleportSecret
   "Teleport",           // 8   SPL_TeleportSeaport
   "Teleport",           // 9   SPL_TeleportMonastery
   "Teleport",           // 10   SPL_TeleportFarm
   "Teleport",           // 11   SPL_TeleportXardas
   "Teleport",           // 12   SPL_TeleportPassNW
   "Teleport",           // 13   SPL_TeleportPassOW
   "Teleport",           // 14   SPL_TeleportOC
   "Teleport",           // 15   SPL_TeleportOWDemonTower
   "Teleport",           // 16   SPL_TeleportTaverne
   "Teleport",           // 17   SPL_Teleport_3

   // Kreis 1
   "Light",            // 18   SPL_Light
   "Firebolt",            // 19   SPL_Firebolt

   // Kreis 2
   "Icebolt",            // 20   SPL_Icebolt

   // Kreis 1
   "Heal",              // 21   SPL_LightHeal
   "SummonGoblinSkeleton",   // 22   SPL_SummonGoblinSkeleton

   // Kreis 2
   "InstantFireball",     // 23   SPL_InstantFireball

   // Kreis 1
   "Zap",               // 24   SPL_Zap

   // Kreis 2
   "SummonWolf",           // 25   SPL_SummonWolf
   "WindFist",           // 26   SPL_WindFist
   "Sleep",              // 27   SPL_Sleep

   // Kreis 3
   "Heal",              // 28   SPL_MediumHeal
   "LightningFlash",      // 29   SPL_LightningFlash
   "ChargeFireball",        // 30   SPL_ChargeFireball
   "SummonSkeleton",        // 31   SPL_SummonSkeleton
   "Fear",              // 32   SPL_Fear
   "Icecube",           // 33   SPL_IceCube

   // Kreis 4
   "ChargeZap",           // 34   SPL_ChargeZap
   "SummonGolem",        // 53   SPL_SummonGolem
   "DestroyUndead",        // 36   SPL_DestroyUndead
   "Pyrokinesis",        // 37   SPL_Pyrokinesis

   // Kreis 5
   "Firestorm",          // 38   SPL_Firestorm
   "Icewave",           // 39   SPL_IceWave
   "SummonDemon",        // 40   SPL_SummonDemon
   "Heal",              // 41   SPL_FullHeal

   // Kreis 6
   "Firerain",           // 42   SPL_Firerain
   "BreathOfDeath",        // 43   SPL_BreathOfDeath
   "MassDeath",           // 44   SPL_MassDeath
   "ArmyOfDarkness",       // 45   SPL_ArmyOfDarkness
   "Shrink",              // 46   SPL_Shrink

   // Scrolls
   "Transform",           // 47   SPL_TrfSheep
   "Transform",           // 48   SPL_TrfScavenger
   "Transform",           // 49   SPL_TrfGiantRat
   "Transform",           // 50   SPL_TrfGiantBug
   "Transform",           // 51   SPL_TrfWolf
   "Transform",           // 52   SPL_TrfWaran
   "Transform",           // 53   SPL_TrfSnapper
   "Transform",           // 54   SPL_TrfWarg
   "Transform",           // 55   SPL_TrfFireWaran
   "Transform",           // 56   SPL_TrfLurker
   "Transform",           // 57   SPL_TrfShadowbeast
   "Transform",           // 58   SPL_TrfDragonSnapper
   "Charm",            // 59   SPL_Charm

   // Kreis 5
   "MasterOfDisaster",    // 60   SPL_MasterOfDisaster

   // ???
   "Deathbolt",           // 61   SPL_Deathbolt
   "Deathball",          // 62   SPL_Deathball
   "Concussionbolt",       // 63   SPL_Concussionbolt
   "Light",              // 64   SPL_Reserved_64
   "Light",              // 65   SPL_Reserved_65
   "Light",              // 66   SPL_Reserved_66
   "Light",            // 67   SPL_Reserved_67
   "Light",            // 68   SPL_Reserved_68
   "Light",            // 69   SPL_Reserved_69

   // Magick (Wasser)
    "Thunderstorm",         // 70   SPL_Thunderstorm
   "Whirlwind",         // 71   SPL_Whirlwind
   "Waterfist",         // 72   SPL_WaterFist
   "IceLance",            // 73   SPL_IceLance
   "Sleep",            // 74   SPL_Inflate
   "Geyser",            // 75   SPL_Geyser
   "Firerain",            // 76   SPL_Waterwall
   "Light",            // 77   SPL_Reserved_77
   "Light",            // 78   SPL_Reserved_78
   "Light",            // 79   SPL_Reserved_79

   // Magick (Maya)
   "Fear",               // 80   SPL_Plague
   "Swarm",            // 81   SPL_Swarm
   "Greententacle",      // 82   SPL_GreenTentacle
   "Firerain",            // 83   SPL_Earthquake
   "SummonGuardian",      // 84   SPL_SummonGuardian
   "Energyball",         // 85   SPL_Energyball
   "SuckEnergy",         // 86   SPL_SuckEnergy
   "Skull",            // 87   SPL_Skull
   "SummonZombie",         // 88   SPL_SummonZombie
   "SummonMud",         // 89   SPL_SummonMud

   // ...
   "InstantFireball",            // 90   InstantFireball_1
   "Light",            // 91   SPL_Reserved_91
   "Light",            // 92   SPL_Reserved_92
   "Light",            // 93   SPL_Reserved_93
   "Light",            // 94   SPL_Reserved_94
   "Light",            // 95   SPL_Reserved_95
   "Light",            // 96   SPL_Reserved_96
   "Light",            // 97   SPL_Reserved_97
   "Light",            // 98   SPL_Reserved_98
   "Light"               // 99   SPL_Reserved_99
};


////////////////////////////////////////////////////////////////////////////////
//
//   Spells: Animationskürzel (Array)
//

const string spellFxAniLetters[MAX_SPELL] =
{
   // Paladin-Runen
   "SLE",               // 0    SPL_PalLight
   "HEA",              // 1    SPL_PalLightHeal
   "FBT",              // 2    SPL_PalHolyBolt
   "HEA",              // 3    SPL_PalMediumHeal
   "FBT",               // 4    SPL_PalRepelEvil
   "HEA",              // 5    SPL_PalFullHeal
   "FIB",              // 6    SPL_PalDestroyEvil

   // Teleport-Runen
   "HEA",              // 7   SPL_PalTeleportSecret
   "HEA",              // 8   SPL_TeleportSeaport
   "HEA",              // 9   SPL_TeleportMonastery
   "HEA",              // 10   SPL_TeleportFarm
   "HEA",              // 11   SPL_TeleportXardas
   "HEA",              // 12   SPL_TeleportPassNW
   "HEA",              // 13   SPL_TeleportPassOW
   "HEA",              // 14   SPL_TeleportOC
   "HEA",              // 15   SPL_TeleportOWDemonTower
   "HEA",              // 16   SPL_TeleportTaverne
   "HEA",              // 17   SPL_Teleport_3

   // Kreis 1
   "SLE",               // 18   SPL_Light
   "FBT",               // 19   SPL_Firebolt

   // Kreis 2
   "FBT",               // 20   SPL_Icebolt

   // Kreis 1
   "HEA",              // 21   SPL_LightHeal
   "SUM",              // 22   SPL_SummonGoblinSkeleton

   // Kreis 2
   "FBT",              // 23   SPL_InstantFireball

   // Kreis 1
   "FBT",               // 24   SPL_Zap

   // Kreis 2
   "SUM",              // 25   SPL_SummonWolf
   "WND",              // 26   SPL_WindFist
   "SLE",              // 27   SPL_Sleep

   // Kreis 3
   "HEA",              // 28   SPL_MediumHeal
   "WND",              // 29   SPL_LightningFlash
   "FIB",              // 30   SPL_ChargeFireball
   "SUM",              // 31   SPL_SummonSkeleton
   "FEA",              // 32   SPL_Fear
   "FRZ",              // 33   SPL_IceCube
   "FIB",              // 34   SPL_ChargeZap

   // Kreis 4
   "SUM",              // 35   SPL_SummonGolem
   "FIB",              // 36   SPL_DestroyUndead
   "FIB",              // 37   SPL_Pyrokinesis

   // Kreis 5
   "FIB",              // 38   SPL_Firestorm
   "FEA",              // 39   SPL_IceWave
   "SUM",              // 40   SPL_SummonDemon
   "HEA",              // 41   SPL_FullHeal

   // Kreis 6
   "FEA",              // 42   SPL_Firerain
   "FIB",              // 43   SPL_BreathOfDeath
   "MSD",              // 44   SPL_MassDeath
   "SUM",              // 45   SPL_ArmyOfDarkness
   "SLE",              // 46   SPL_Shrink

   // Scrolls
   "TRF",              // 47   SPL_TrfSheep
   "TRF",              // 48   SPL_TrfScavenger
   "TRF",              // 49   SPL_TrfGiantRat
   "TRF",              // 50   SPL_TrfGiantBug
   "TRF",              // 51   SPL_TrfWolf
   "TRF",              // 52   SPL_TrfWaran
   "TRF",              // 53   SPL_TrfSnapper
   "TRF",              // 54   SPL_TrfWarg
   "TRF",              // 55   SPL_TrfFireWaran
   "TRF",              // 56   SPL_TrfLurker
   "TRF",              // 57   SPL_TrfShadowbeast
   "TRF",              // 58   SPL_TrfDragonSnapper
   "FIB",               // 59   SPL_Charm

   // Kreis 5
   "FIB",              // 60   SPL_MasterOfDisaster

   // ???
   "FBT",              // 61   SPL_Deathbolt
   "FBT",              // 62   SPL_Deathball
   "FBT",              // 63   SPL_Concussionbolt
   "XXX",              // 64   SPL_Reserved_64
   "XXX",              // 65   SPL_Reserved_65
   "XXX",              // 66   SPL_Reserved_66
   "XXX",               // 67   SPL_Reserved_67
    "XXX",               // 68   SPL_Reserved_68
   "XXX",               // 69   SPL_Reserved_69

   // Magick (Wasser)
   "STM",              // 70   SPL_Thunderstorm
   "WHI",              // 71   SPL_Whirlwind      
   "WND",              // 72   SPL_WaterFist
   "FBT",              // 73   SPL_IceLance
   "SLE",              // 74   SPL_Inflate         
   "WND",              // 75   SPL_Geyser         
   "FEA",              // 76   SPL_Waterwall
   "XXX",               // 77   SPL_Reserved_77
   "XXX",               // 78   SPL_Reserved_78
   "XXX",               // 79   SPL_Reserved_79

   // Magick (Maya)
   "FBT",              // 80   SPL_Plague
   "FBT",              // 81   SPL_Swarm         
   "FRZ",              // 82   SPL_GreenTentacle
   "FEA",              // 83   SPL_Earthquake
   "SUM",              // 84   SPL_SummonGuardian
   "WND",              // 85   SPL_Energyball
   "WND",              // 86   SPL_SuckEnergy
   "WND",               // 87   SPL_Skull
   "SUM",               // 88   SPL_SummonZombie   
   "SUM",               // 89   SPL_SummonMud

   // ...
   "FBT",              // 90   SPL_InstantFireball_1
   "XXX",              // 91   SPL_Reserved_91
   "XXX",              // 92   SPL_Reserved_92
   "XXX",              // 93   SPL_Reserved_93
   "XXX",              // 94   SPL_Reserved_94
   "XXX",              // 95   SPL_Reserved_95
   "XXX",              // 96   SPL_Reserved_96
   "XXX",               // 97   SPL_Reserved_97
   "XXX",               // 98   SPL_Reserved_98
   "XXX"               // 99   SPL_Reserved_99
};


// *******
// Talente
// *******

const int NPC_TALENT_UNKNOWN         = 0;

// Skilled Talents
const int NPC_TALENT_1H               = 1;
const int NPC_TALENT_2H               = 2;
const int NPC_TALENT_BOW            = 3;
const int NPC_TALENT_CROSSBOW         = 4;

const int NPC_TALENT_PICKLOCK         = 5;   //wird jetzt per DEX geregelt
//const int NPC_TALENT_PICKPOCKET      = 6;   //altes Pickpocket aus Gothic 1 - NICHT benutzen! Bleibt als Relikt im Code

// Magiekreis
const int NPC_TALENT_MAGE            = 7;

// Special-Talents
const int NPC_TALENT_SNEAK            = 8;
const int NPC_TALENT_REGENERATE         = 9;   //??? was ist davon drin?
const int NPC_TALENT_FIREMASTER         = 10;   //??? was ist davon drin?
const int NPC_TALENT_ACROBAT         = 11;   //--> Anis ändern!

// NEW Talents //werden komplett auf Scriptebene umgesetzt - Programm braucht sie nur für Ausgabe im Characterscreen
const int NPC_TALENT_PICKPOCKET         = 12;
const int NPC_TALENT_SMITH            = 13;
const int NPC_TALENT_RUNES            = 14;
const int NPC_TALENT_ALCHEMY         = 15;
const int NPC_TALENT_TAKEANIMALTROPHY   = 16;

const int NPC_TALENT_FOREIGNLANGUAGE   = 17;
const int NPC_TALENT_WISPDETECTOR      = 18;
const int NPC_TALENT_C               = 19;
const int NPC_TALENT_D               = 20;
const int NPC_TALENT_E               = 21;

const int NPC_TALENT_MAX            = 22;   //ehem. 12


// *************
// Runen-Talente
// *************

var int PLAYER_TALENT_RUNES[MAX_SPELL];            //Die SPL_ Konstanten werden hierfür als Kennung verwendet

// *************
// ForeignLanguage-TalentStufen
// *************

const int LANGUAGE_1       = 0;
const int LANGUAGE_2       = 1;
const int LANGUAGE_3       = 2;

const int MAX_LANGUAGE       = 3;

var int PLAYER_TALENT_FOREIGNLANGUAGE[MAX_LANGUAGE];

// *************
// WispDetector-Talente
// *************

const int WISPSKILL_NF             = 0;
const int WISPSKILL_FF             = 1;
const int WISPSKILL_NONE          = 2;
const int WISPSKILL_RUNE          = 3;
const int WISPSKILL_MAGIC          = 4;
const int WISPSKILL_FOOD          = 5;
const int WISPSKILL_POTIONS         = 6;

const int MAX_WISPSKILL          = 7;

var int PLAYER_TALENT_WISPDETECTOR [MAX_WISPSKILL];

VAR int WispSearching;
const int WispSearch_Follow    = 1;
const int WispSearch_ALL      = 2;
const int WispSearch_POTIONS   = 3;
const int WispSearch_MAGIC      = 4;
const int WispSearch_FOOD      = 5;
const int WispSearch_NF         = 6;
const int WispSearch_FF         = 7;
const int WispSearch_NONE      = 8;
const int WispSearch_RUNE      = 9;

// ****************
// Alchemie-Talente
// ****************

const int POTION_Health_01              = 0;
const int POTION_Health_02           = 1;
const int POTION_Health_03           = 2;
const int POTION_Mana_01              = 3;
const int POTION_Mana_02              = 4;
const int POTION_Mana_03              = 5;
const int POTION_Speed              = 6;
const int POTION_Perm_STR              = 7;
const int POTION_Perm_DEX              = 8;
const int POTION_Perm_Mana           = 9;
const int POTION_Perm_Health         = 10;
const int POTION_MegaDrink            = 11;
const int CHARGE_Innoseye            = 12;
const int POTION_Mana_04            = 13;
const int POTION_Health_04            = 14;

const int MAX_POTION               = 15;

var int PLAYER_TALENT_ALCHEMY[MAX_POTION];


// ***************
// Schmied-Talente
// ***************

const int WEAPON_Common               = 0;

const int WEAPON_1H_Special_01         = 1;
const int WEAPON_2H_Special_01         = 2;
const int WEAPON_1H_Special_02         = 3;
const int WEAPON_2H_Special_02         = 4;
const int WEAPON_1H_Special_03         = 5;
const int WEAPON_2H_Special_03         = 6;
const int WEAPON_1H_Special_04         = 7;
const int WEAPON_2H_Special_04         = 8;

const int WEAPON_1H_Harad_01         = 9;   
const int WEAPON_1H_Harad_02         = 10;
const int WEAPON_1H_Harad_03         = 11;
const int WEAPON_1H_Harad_04         = 12;

const int MAX_WEAPONS                = 13;

var int PLAYER_TALENT_SMITH[MAX_WEAPONS];


// ********************
// AnimalTrophy-Talente
// ********************

const int TROPHY_Teeth               = 0;
const int TROPHY_Claws               = 1;
const int TROPHY_Fur               = 2;
const int TROPHY_Heart               = 3;
const int TROPHY_ShadowHorn          = 4;
const int TROPHY_FireTongue            = 5;
const int TROPHY_BFWing               = 6;
const int TROPHY_BFSting            = 7;
const int TROPHY_Mandibles            = 8;
const int TROPHY_CrawlerPlate         = 9;
const int TROPHY_DrgSnapperHorn         = 10;
const int TROPHY_DragonScale         = 11;
const int TROPHY_DragonBlood         = 12;
const int TROPHY_ReptileSkin         = 13;

const int MAX_TROPHIES               = 14;

var int PLAYER_TALENT_TAKEANIMALTROPHY[MAX_TROPHIES];


// ****************************************
// Font-Konstanten der Engine (ausgelagert)
// ****************************************

const string TEXT_FONT_20          = "Font_old_20_white.tga";
const string TEXT_FONT_10          = "Font_old_10_white.tga";
const string TEXT_FONT_DEFAULT       = "Font_old_10_white.tga";
const string TEXT_FONT_Inventory    = "Font_old_10_white.tga";


// ****************************************
// wie lange bklleibt ein TExt (OU) stehen,
// wenn kein wav da ist (msec/character)
// ****************************************

const float VIEW_TIME_PER_CHAR      = 550;

// ****************************************
//   LevelZen-Abfrage im B_Kapitelwechsel
// ****************************************

const int NEWWORLD_ZEN                = 1;
const int OLDWORLD_ZEN                = 2;
const int DRAGONISLAND_ZEN            = 3;
const int ADDONWORLD_ZEN            = 4;


// ****************************************
//   Kamera für Inventory-Items
// ****************************************

const int INVCAM_ENTF_RING_STANDARD    = 400;
const int INVCAM_ENTF_AMULETTE_STANDARD = 150;
const int INVCAM_ENTF_MISC_STANDARD    = 200;
const int INVCAM_ENTF_MISC2_STANDARD    = 250;
const int INVCAM_ENTF_MISC3_STANDARD    = 500;
const int INVCAM_ENTF_MISC4_STANDARD    = 650;
const int INVCAM_ENTF_MISC5_STANDARD    = 850;
const int INVCAM_X_RING_STANDARD       = 25;
const int INVCAM_Z_RING_STANDARD       = 45;

/*
const int INVCAM_ENTF_MISC_STANDARD    = 150;
const int INVCAM_X_MISC_STANDARD       = 0;
const int INVCAM_Y_MISC_STANDARD       = 0;
const int INVCAM_Z_MISC_STANDARD       = 0;
*/
Dodana nazwa w Text.d
Spoiler
// *****************************************************************************************
// Mobsi-Fokusnamen
// *****************************************************************************************

CONST STRING MOBNAME_CRATE         = "Skrzynia";            //Kisten
CONST STRING MOBNAME_CHEST         = "Kufer";               //Truhen
CONST STRING MOBNAME_CHEST1         = "Skrzynia rabusia";               //Truhen
CONST STRING MOBNAME_CHEST2         = "Skrzynia włamywacza";            //Truhen
CONST STRING MOBNAME_CHEST3         = "Skrzynia łupieżcy";               //Truhen
CONST STRING MOBNAME_CHEST4         = "Skrzynia mistrza";               //Truhen
CONST STRING MOBNAME_CHEST9         = "Skrzynia arcymistrza";
CONST STRING MOBNAME_CHEST5         = "Skrzynia Constantino";               //Truhen
CONST STRING MOBNAME_CHEST6         = "Skrzynia zamknięta na klucz";               //Truhen
CONST STRING MOBNAME_CHEST0         = "Zardzewiała skrzynia";               //Truhen
CONST STRING MOBNAME_BED         = "Łóżko";               //Betten
CONST STRING MOBNAME_DOOR         = "Drzwi";               //Türen
CONST STRING MOBNAME_DOOR6         = "Drzwi zamknięte na klucz";
CONST STRING MOBNAME_DOOR0         = "Zardzewiałe drzwi";               //Türen
CONST STRING MOBNAME_CAMPFIRE      = "";                  //Lagerfeuer
CONST STRING MOBNAME_TORCH         = "";                  //Fackel
CONST STRING MOBNAME_TORCHHOLDER   = "";                  //Fackelhalter
CONST STRING MOBNAME_BARBQ_SCAV      = "";                  //Scavebger   am Spiess
CONST STRING MOBNAME_BARBQ_SHEEP   = "";                  //Schafe am   Spiess
CONST STRING MOBNAME_BENCH         = "";                  //Bank
CONST STRING MOBNAME_ANVIL         = "Kowadło";            //Amboss
CONST STRING MOBNAME_BUCKET         = "Wiadro wody";         //Wassereimer
CONST STRING MOBNAME_FORGE         = "Ogień w kuźni";         //Schmiede
CONST STRING MOBNAME_GRINDSTONE      = "Osełka";               //Schleifstein
CONST STRING MOBNAME_WHEEL         = "Kołowrót";            //Winde
CONST STRING MOBNAME_LAB         = "Stół alchemiczny";      //Alchemietisch
CONST STRING MOBNAME_BOOKSTAND      = "Regał na książki";      //Buchständer
CONST STRING MOBNAME_BOOKSTAND1      = "Krąg pierwszy";      //Buchständer
CONST STRING MOBNAME_BOOKSTAND2      = "Krąg drugi";      //Buchständer
CONST STRING MOBNAME_BOOKSTAND3      = "Krąg trzeci";      //Buchständer
CONST STRING MOBNAME_BOOKSTAND4      = "Krąg czwarty";      //Buchständer
CONST STRING MOBNAME_BOOKSTAND5      = "Krąg piaty";      //Buchständer
CONST STRING MOBNAME_BOOKSTAND6      = "Krąg szusty";      //Buchständer
CONST STRING MOBNAME_BOOKSBOARD      = "Regał na książki";      //Kommode mit Buch
CONST STRING MOBNAME_CHAIR         = "";                  //Stühle
CONST STRING MOBNAME_CAULDRON      = "Kocioł";               //Kochkessel
CONST STRING MOBNAME_SEAT         = "";                  //Sessel
CONST STRING MOBNAME_THRONE         = "";                  //Thron
CONST STRING MOBNAME_PAN         = "Patelnia";            //Lagerfeuer mit Pfanne
CONST STRING MOBNAME_REPAIR         = "";                  //Repair Mobsi
CONST STRING MOBNAME_WATERPIPE      = "Rura";               //Blubber
CONST STRING MOBNAME_SWITCH         = "Przełącznik";         //alle Schalter
CONST STRING MOBNAME_ORE         = "Bryłka rudy";         //Erzmobsi
CONST STRING MOBNAME_WINEMAKER      = "";                  //Weinstampfe
CONST STRING MOBNAME_ORCDRUM      = "";                  //Orkische Kriegstrommel
CONST STRING MOBNAME_STOVE         = "Kuchnia";            //HerdMobsi
CONST STRING MOBNAME_INNOS         = "Posąg Innosa";         //Innos   Staue
CONST STRING MOBNAME_RUNEMAKER      = "Stół runiczny";         //Runentisch
CONST STRING MOBNAME_SAW         = "Piła do drewna";         //Sägemobsi
CONST STRING MOBNAME_ARMCHAIR      = "Fotel";
CONST STRING MOBNAME_LIBRARYLEVER   = "Lampa";
CONST STRING MOBNAME_SECRETSWITCH   = "";
CONST STRING MOBNAME_BIBLIOTHEK      = "Biblioteka";
CONST STRING MOBNAME_VORRATSKAMMER   = "Spiżarnia";
CONST STRING MOBNAME_SCHATZKAMMER   = "Skarbiec";
CONST STRING MOBNAME_IGARAZ         = "Kufer Igaraza";
const string MOBNAME_ALMANACH      = "Almanach";
//Wegweiser
CONST STRING MOBNAME_CITY         = "Do Khorinis";
CONST STRING MOBNAME_TAVERN         = "Do gospody";
CONST STRING MOBNAME_GR_PEASANT      = "Do majątku ziemskiego";
CONST STRING MOBNAME_MONASTERY      = "Do klasztoru";
CONST STRING MOBNAME_PASSOW         = "Do przełęczy";
CONST STRING MOBNAME_CITY2         = "Do gospody";//
CONST STRING MOBNAME_LIGHTHOUSE      = "Do latarni morskiej";
CONST STRING MOBNAME_MONASTERY2      = "Do gospody";//
CONST STRING MOBNAME_PRISON         = "Do kolonii więziennej";
CONST STRING MOBNAME_GR_PEASANT2   = "Do tawerny";//
CONST STRING MOBNAME_INCITY01      = "Do portu";
CONST STRING MOBNAME_INCITY02      = "Do targowiska";
CONST STRING MOBNAME_INCITY03      = "Do górnego miasta";
CONST STRING MOBNAME_INCITY04      = "Do ulicy kupców";
CONST STRING MOBNAME_INCITY05      = "Do placu świątynnego";


//Ladenschilder
CONST STRING MOBNAME_BOW_01         = "Łuczarz 'Pod Zabójczą Strzałą'";
CONST STRING MOBNAME_MIX_01         = "Sklep Mattea";
CONST STRING MOBNAME_MIX_02         = &quo

15
Cześć.

Potrzebuję wiedzieć jak ustawić, aby można było mieć określona liczbę przywołanych stworzeń z zaklęcia - docelowo tylko jednego na raz. Przegrzebałem pliki, ale nie udało mi się odnaleźć odpowiedniego współczynnika odpowiadającego za to. Czy taki istnieje? Jeśli tak to w którym pliku G2NK? Czy może jednak trzeba utworzyć w tym celu odpowiednią funkcje? Jaką i gdzie?

A także chcę stworzyć lepszy podział przedmiotów w ekwipunku. Dodać nowe kategorię i dopasować do nich przedmioty, jak i przetasować trochę już istniejące. Np. osobną kategorię dla przedmiotów służących do rzemieślnictwa w mojej modyfikacji itp.
Bronie mają ITEM_KAT_NF, pancerze ITEM_KAT_ARMOR, jedzenie ITEM_KAT_FOOD...

Który plik ustala kategorię i  kolejność sortowania w ekwipunku? Jedyny jaki znalazłem z odnośnikiem do kategorii to Constants.d, ale po przejrzeniu, raczej on za to nie odpowiada.

16
Skrypty / Dodanie premii do pancerza w miksturze/dialogu.
« dnia: 2019-10-03, 22:09 »
Jaka jest funkcja, aby uzyskać premię do jakiejkolwiek odporności? Czy to pijąc np. miksturę czy dostając w dialogu za wykonane zadanie.

Próbowałem:
      B_RaiseAttribute (self, PROT_BLUNT, 1);
      B_RaiseProtection (self, PROT_BLUNT, 1);
      Npc_ChangeAttribute   (self,   PROT_BLUNT, 1);
      Npc_ChangeProtection   (self,   PROT_BLUNT, 1);

oraz zastępowałem SELF > OTHERem w dialogach, ale to nie działa.

EDIT. Zły dział. Proszę o przeniesienie.

17
Tworzę modyfikację i jestem już niewielki krok do skończenia jej. Potrzebuję pomocy w kilku problemach, z którymi nie potrafię sobie poradzić. Czy to ze względów na niewystarczające umiejętności czy nie posiadając odpowiednich narzędzi i wiedzy w ich obsłudze.

Mam nadzieję, że nie są to rzeczy niemalże niewykonalne lub siedzące w kodzie gry, bo to mogłoby mnie przerosnąć.


1. Czy możliwa jest do utworzenia linijka skryptu, która dawałaby efekt, aby przy spadku punktów życia przeciwnika (smoka) poniżej odpowiedniej wartości, powstawałyby odpowiednie potwory w odpowiednich spotach/waypiontach?

2. W jaki sposób uzyskać efekt, aby potwory wstawione w swoje waypointy (plik Startup) podążyły do odpowiedniego spotu lub aby "patrolowały" obszar? Gdzieś o tym kiedyś czytałem, ale nie potrafię teraz tego odnaleźć. Podeślecie link lub wyjaśnicie?

3. Jak uzyskać efekt łuku/kuszy na lewym ramieniu bohatera? Pewnie przez programy graficzne?  3d max? Podpowiecie jakie pliki należy otworzyć i zmodyfikować? A najlepiej gdybyście podesłali gotowy plik.

4. Czy da się ustawić czas w grze tak, aby dzień upływał wolniej?

5. Czy można, w którymś pliku zmienić, aby do numeru 3 na klawiaturze również można było przypisać zaklęcie? I czy jest możliwe przypisanie do numerów od 3 do 0 również inne przedmioty? Chodzi głównie o mikstury i pochodnie.

6. W którym pliku można zmodyfiować czas trwania przywołańców ze zwojów/run i która linijka za to odpowiada?

7. Jak zmodyfikować dialog z Vatrasem, aby ten mógł uleczyć bohatera tylko raz dziennie?

8. Gdzie można zmienić efekt, aby zdobyte punkty doświadczenia i nowe wpisy w dzienniku pokazywały się  po lewej stronie zamiast na środku ekranu? Wiele modyfikacji to ma.

9. Czar światła - czy da się w łatwy sposób sprawić, aby oświetlało większy obszar? I aby sam blask był nieco wyżej i nie zasłaniał ekranu?

10. Gdzie mogę znaleźć wartość SPL_Cost_Scroll, która odpowiada za ilość potrzebnej many do rzucenia zwoju?

11. Nie potrafię logicznie zmienić dialogu u Jacka Aligatora, aby ten przestał ciągle pokazywać opcję o skórowaniu gadów i pozyskiwaniu kłów, nawet jeśli już to potrafimy? Wydaje mi się, że jest to dobrze napisane. Błąd gry czy jednak moje niedopatrzenie?

12. Jak uzyskać niebieską poświatę przy śmierci wojownika cienia, taką jak mają zombie?

18
Cześć.

Chcę wprowadzić w modyfikacji, aby m. in. członkowie Wodnego kręgu mieli cały czas swoje zbroje na sobie. Częściowo nawet mi się to udało, lecz jakiś plik najwidoczniej mi umyka.

Wpierw podmieniłem oryginalne zbroje na te Wodnego kręgu wybranych NPC w plikcha postaci z folderu STORY>NPC

Na początku rozgrywki wszystko jest ok, ale w momencie podróży z Laresem do Saturasa, czy spotkanie członków w gospodzie, część NPCów wraca do swych oryginalnych pancerzy lub w ogóle zostaje naga. I pozostaje tak już do końca rozgrywki.

U niektórych udało mi się rozwiązać problem w plikach STORY>DIALOGE usuwając linijkę podmiany pancerza, ale przy niektórych postaciach takich linijek nie ma. Gdzie szukać odpowiedniego pliku, który pełni funcje podmiany pancerza w określonych przypadkach?

19
Cześć.

Dwie sprawy.

Po zainstalowaniu polskich skryptów do Gothic 2 NK, zostało mi kilka starych niemieckich kwestii dialogowych z oryginalnych skryptów. Pojedyncze sam pozmieniałem, ale bardzo wiele linijek zostało mi w postaci Noerasa oraz Riordiana w Jarkędarze. Nie zdołałem znaleźć w sieci tych plików by pobrać i zamienić. Proszę wklejcie mi zawartość plików bez niemieckich dialogów:

DIA_KDF_506_Neoras.d
DIA_Addon_KDW_14040_Riordian_ADW.d

Również kiedyś natrafiłem na forum lub wideo instrukcje jak sprawić, aby łuk oraz kusza była na lewym ramieniu bohatera. Pomysł wydał mi się bardzo ciekawy, tym bardziej, że orginalnie zawsze kuło mnie w oczy, że mając broń dwuręczną tekstury się nawzajem zasłaniają.
Coś kojarzę, że trzeba było wziąć odpowiedni plik i otworzyć go w blenderze lub podobnym programie graficznym. Przemieścić broń dystansową na pożądane miejsce, zapisać i podmienić pliki. Ale również nie udało mi się ponownie odnaleźć źródła, z którego to podpatrzyłem ani poradnika.

Czy moglibyście podać jakiś pomocny link? Instrukcję? Czy nawet gotowy plik do pobrania i podmiany?

20
Projekty zawieszone i porzucone / [G2NK] Gothic 2 Plus PL
« dnia: 2019-06-13, 19:50 »
Gothic 2: Noc Kruka Plus PL
autor: Lucki

Głównym założeniem modyfikacji jest większy nacisk na gameplay, zadania, fabułę i eksplorację.  Również zostały udoskonalone i rozszerzone wiele dotychczasowych systemów i rozwiązań.

Najważniejsze zmiany:


  • - Zmieniono poważnie zbieranie mniej wartościowych przedmiotów porozrzucanych po świecie.
Większość usunięto i zrekompensowano to licznymi sakiewkami na mapie. Różnorakie zioła nie są już dosłownie wszędzie, lecz skumulowano je liczniej na mniejszych obszarach. Alchemia nadal pełni ważny aspekt rozgrywki. Ograniczono jednak czasochłonne podnoszenie każdej rośliny w świecie, na rzecz miejscowego zatrzymania się i zebrania odnalezionych połaci ziół.
  • - Nacisk na eksploracje.
Przebudowano ekwipunek u handlarzy i na nowo zostały przemyślane i naniesione przedmioty w świecie. Pozwala to stopniowo zdobywać lepszy ekwipunek wraz z postępem fabuły, a zboczenie z głównego wątku jest dodatkowo nagradzane jeszcze lepszym sprzętem.
  • - Dodano 31 mino-bossów.
Specjalne, potężnie wersje znanych potworów i ludzi, rozsypane po całym świecie w 4 poziomach trudności (odpowiednio dla rozdziałów 2-5). Strzegą potężniejszych przedmiotów, ale przez to stanowią również większe wyzwanie.
  • - Zmiany w atrybutach i umiejętnościach bojowych.
Czy nie miałeś tak, ze trzymałeś eliksiry/tabliczki itp. długo w ekwipunku czy skrzyni, by móc użyć ich dopiero, gdy umiejętności będą droższe oraz aby mieć większe profity? To już koniec! Od teraz po przekroczeniu 30 punktów atrybutu oraz umiejętności bojowych, koszt zawsze będzie wynosił 2PN/atrybut, by rozwój postaci był płynny. Ponadto zmniejszono liczbę tabliczek i ich premii oraz na nowo je rozmieszczono, jak także smocze korzenie, goblińskie jagody i szczaw królewski (również do znalezienia w Górniczej dolinie i Jarkędarze).
Usunięto wszystkie Kamienne tabliczki życia i dodano ją do początkowej puli punktów trafień(teraz wynosi 200), jak również ustawiono 10 punktów życia/zdobyty poziom bohatera.

  • - Zwiększony poziom trudności.
Poprzez płynniejszy rozwój postaci delikatnie zmodyfikowano obrażenia i obronę większości stworzeń, a także parametry pancerzy.

Pomniejsze zmiany/ ulepszenia:

  • - Dodano bierną regenerację zdrowia 1HP/10s i many 1MANA/60s, która jeszcze bardziej przyspiesza przy szatach Maga Ognia(3,2,1/sekundę), co pozwala lepiej dysponować miksturami many poza walką.
Jest to niewielka rekompensata za zwiększony poziom trudności, a magowie stają się prawdziwymi czarodziejami, którzy już nie muszą walczyć ze słabszymi przeciwnikami zardzewiałymi mieczami by oszczędzić manę
  • - Zmiany w kowalstwie. Wymagane dodatkowe przedmioty do stworzenia zależnie od potęgi przedmiotu, a wraz z ulepszonym systemem przedmiotów u handlarzy, wykute bronie, stają się na prawdę atrakcyjne. Można teraz wykuwać również bronie dwuręczne!
Dodano górnictwo i rozmieszczono wiele złóż rud po całym świecie. By stworzyć broń należy również przetopić zdobytą rudę żelaza na sztabki, jak i wyciągnąć klingę rozmontowując zardzewiałe miecze. Każda broń wymaga dodatkowych składników z potworów, jak i minerałów(siarka, ametyst itp.)
  • - Zmiany w runach.
Rzadziej używane  zaklęcia stały się bardziej atrakcyjne. Poważnie zmieniono czary przyzywające. Teraz przywołańce mają mniejszy atak, lecz dużo więcej życia oraz regenerację, przez co skuteczniej biorą na siebie zagrożenie. Zmiany podobnie jak w kowalstwie dotknęły przedmioty wymagane do stworzenia run.
  • - Zmiany we włamywaniu.
Skrzynie mają 4 poziomy trudności: skrzynia rabusia, skrzynia włamywacza, skrzynia łupieżcy oraz skrzynia arcymistrza. Zamki posiadają zawsze parzystą liczbę przesunięć, po tyle samo prawych i lewych.
  • - Zmiany w samych przedmiotach i ich parametrach.
Im większe zagrożenie stwarzają potwory napotkane na drodze oraz im większy postęp fabularny, tym ekwipunek do zdobycia jest lepszy. Bronie paladyna jak i kostury maga maja teraz bonusy do many. Dodano wiele  nowych przedmiotów. Pancerzy, amuletów, pierścieni, pasów i broni wraz z nowymi teksturami . Nawet bronie orków są teraz użyteczne na niektórych etapach rozwoju postaci!
  • - Niewielkie zmiany w liczbie punktów nauki do wyuczenia umiejętności.
Punkty nauki wielu umiejętności uległy NIEWIELKIM zmianom zależnie od przydatności. Jedynie w poważny sposób zmniejszono koszty nauki wykuwania mieczy, gdyż nauka kolejnych, lepszych broni sprawia, iż wcześniejsze stają się dużo mniej użyteczne.
  • - Większe profity za wybór czeladnika.
Wcześniej wybór kowala Harada dawał najwięcej profitów, poprzez szybsze i łatwiejsze zdobycie potężniejszych mieczy. Teraz wraz z nowym systemem kowalstwa i trudniejszym pozyskiwaniem składników na nie, dochód jest nieco mniejszy. Lecz i tak czeladnik Bospera teraz szybciej nauczy się pozyskiwania podstawowych trofeów  zwierząt, a nawet skórowania gadów. A czeladnik Constantina wyuczy się  unikatowej nowej receptury, dającą bierną korzyść przez całą grę.

Dodano:

  • - Tereny o dużym poziomie trudności za palisadą w Górniczej dolinie z modyfikacji Wasteland: Miasto orków, wejście przy Starej kopalni, Kanion trolla, wyżynę nad Zawalona kopalnią, dawny obóz Quentina, zatopiona wieżę Xardasa, Klasztor zmiennokształtnych, Wieża mgieł, obóz Bractwa, Nowy obóz, Cmętarzysko orków, jaskinie Czarnych goblinów, lochy pod Starym obozem.
  • - Kilka mniejszych terenów i lokacji na wyspie Khorinis, poprzez zagospodarowanie pustych przestrzeni. Dodano tam VOBy i potwory.
  • - Wiele nowych broni do walki w zwarciu, wymagających zręczności, dystansowych, a także specjalne kostury dla magów i  kilka magicznych łuków dla łowcy.
  • - Ponad 50 wyglądów nowych pancerzy, których używają NPC, jak również 14 do zdobycia dla bohatera.
  • - Nowe tekstury przedmiotów i przetasowanie ich ze starymi.

Pozostałe:

  • - Gildyjni NPC nie zaczepia już bohatera, gdy ten ma niewłaściwy pancerz.
  • - Zmiany w cenach przedmiotów.
  • - Handlarze podzieleni na specjalizacje handlu: broń biała, łuki, kusze, rośliny, mikstury, czary...
  • - Tawerna Orlana staje się "domem" bohatera, gdzie można znaleźć kilka pustych skrzyń i najpotrzebniejsze przyrządy rzemieślnicze.
  • - Wielu NPC z którymi przychodzi nam podróżować lub ratować ich, dostało większą liczbę życia. Niewielkie zmiany w atrybutach NPC.
  • - Bagienny smok znajduje się teraz w obozie Bractwa. Ponadto smoki utraciły zdolność regeneracji życia, zyskując ich większą pulę.

- I wiele innych...

Prace na bardzo zaawansowanym etapie.
Premiera: Wakacje 2019.

Album



Strony: [1] 2
Do góry