Modding Gothica > Pytania i problemy
NPC nie kładą się spać - Gothic 1
Laxus:
Witam.
Mam pewien problem. Chciałem sobie przejść ponownie Gothica 1 z jakąś nieco odświeżoną grafiką i po paru dniach męki z instalowaniem patchy, wywalaniem z gry, czy psuciem się save'ów po zapisie podczas deszczu (tu chyba najbardziej szlag mnie trafił, bo już myślałem że gra działa :D ), w końcu udało mi się dojść do starego obozu bez konsultacji z psychiatrą. Lecz jak się okazało po czasie, chwile szczęścia z grania w Gothica minęły, bo ujawnił się dziwny błąd.
NPC w ogóle nie śpią, co znacznie utrudnia okradanie chat. Siedzą przeważnie na stołku, a jak wczytam grę to się kładą, po kilku sekundach wstają i znowu wracają na stołek (o ile po drodze coś im nie przeszkodzi :D ).
Mógłby mi ktoś pomóc, jak naprawić ten błąd. Dodam że nie jestem moderem, więc proszę o jakieś proste odpowiedzi. Myślę, że to któraś z poprawek to powoduje, albo coś zainstalowałem w niepoprawnej kolejności.
Lista zainstalowanych elementów, wg. kolejności:
1. Gothic 1 - czysta gra, wersja Steam
2. Gothic 1 PlayerKit 1.08k
3. Gothic 1 PlayerKit 2.8
4. G1Classic System Pack 1.8
5. GD3D11 Clockwork Edition v17.6.4
6. 4GB patch
7. Big Nature Mod 1.0.1
8. FreeAimingPatch
9. Gothic 1 DX11 Normalmaps
10. MorOrs Mod
11. Texture Pack By Artemiano
12. ReShade NeuroFunkeR Edition + Real-light
13. Gothic 1 3D+ 2.0.21.11.2012
Post połączony: 2020-03-19, 18:11Na anglojęzycznych stronach znalazłem jakieś rozwiązanie. Unpatch do Gothica eliminuje ten problem, lecz patch zmienia napisy na angielskie. Czy idzie coś z tym zrobić?
outlander:
Problem leży w samym gothicu. Jedyne rozwiązanie to mod, który to poprawia, ale nie ma takiego, który skupiałby się tylko na tym błędzie. Edycja rozszerzona to naprawia, ale z tego co widzę celujesz raczej w klasyczną wersję G1.
pawbuj:
--- Cytuj ---Na anglojęzycznych stronach znalazłem jakieś rozwiązanie. Unpatch do Gothica eliminuje ten problem, lecz patch zmienia napisy na angielskie. Czy idzie coś z tym zrobić?
--- Koniec cytatu ---
Możesz zdekompilowac skrypty Unpatcha i zrobić patch na pakiecie Ninja, który będzie działał na wszytskich modach do G1. Jak nie będziesz wiedział jak to chociaz podeślij mi nowy kod na ZS_Sleep to ci pomogę.
BTW i tak miałem zrobić taki mini patch do G1. Chociażby naprawa błedu z switchami do moverów.
Laxus:
--- Cytuj ---podeślij mi nowy kod na ZS_Sleep
--- Koniec cytatu ---
Nie wiem czy o to chodzi, bo nigdy niczego nie modowałem.
--- Kod: ---func void zs_sleep() {
printdebugnpc(pd_ta_frame, ÿ17489);
b_setperception(self);
ai_setwalkmode(self, npc_walk);
if(!c_bodystatecontains(self, bs_mobinteract)) {
if(hlp_strcmp(npc_getnearestwp(self), self.wp) == 0) {
ai_gotowp(self, self.wp);
};
};
ai_startstate(self, zs_sleepbed, 1, ÿ17490);
};
func void zs_sleepbed() {
printdebugnpc(pd_ta_frame, ÿ17491);
lightsleepperception();
if(wld_ismobavailable(self, ÿ17492)) {
ai_usemob(self, ÿ17493, 1);
}
else if(wld_ismobavailable(self, ÿ17495) || wld_ismobavailable(self, ÿ17494)) {
ai_usemob(self, ÿ17496, 1);
ai_usemob(self, ÿ17497, 1);
}
else {
ai_startstate(self, zs_standaround, 1, ÿ17498);
};
};
func int zs_sleepbed_loop() {
printdebugnpc(pd_ta_loop, ÿ17499);
if(((!npc_getbodystate(self)) == bs_mobinteract) || ((!npc_getbodystate(self)) == bs_mobinteract_interrupt) && (npc_getstatetime(self) > 3)) {
ai_startstate(self, zs_sitaround, 1, ÿ17500);
};
ai_wait(self, 1.0);
return loop_continue;
};
func void zs_sleepbed_end() {
printdebugnpc(pd_ta_frame, ÿ17501);
if(wld_istime(7, 0, 8, 30)) {
b_say(self, ÿinstance_help, ÿ17502);
};
ai_usemob(self, ÿ17503, -1);
ai_usemob(self, ÿ17504, -1);
ai_usemob(self, ÿ17505, -1);
};
func void b_sleepquietsound() {
printdebugnpc(pd_ta_detail, ÿ17506);
if((npc_getdisttonpc(self, other) < perc_dist_dialog) && npc_canseenpcfreelos(self, other)) {
ai_startstate(self, zs_wakeup, 0, ÿ17507);
}
else {
b_tossandturn();
};
};
--- Koniec kodu ---
I jakieś stałe:
--- Kod: ---const string ÿ17489 = "ZS_Sleep";
const string ÿ17490 = "";
const string ÿ17491 = "ZS_SleepBed_Loop";
const string ÿ17492 = "BED";
const string ÿ17493 = "BED";
const string ÿ17494 = "BEDLOW";
const string ÿ17495 = "BEDHIGH";
const string ÿ17496 = "BEDHIGH";
const string ÿ17497 = "BEDLOW";
const string ÿ17498 = "";
const string ÿ17499 = "ZS_SleepBed_Loop";
const string ÿ17500 = "";
const string ÿ17501 = "ZS_SleepBed_End";
const string ÿ17502 = "$AWAKE";
const string ÿ17503 = "BEDHIGH";
const string ÿ17504 = "BEDLOW";
const string ÿ17505 = "BED";
const string ÿ17506 = "B_SleepQuietSound";
const string ÿ17507 = "";
--- Koniec kodu ---
Post połączony: 2020-03-20, 12:20Z tego co widzę różni się 1 linijka w funkcji zs_sleepbed_loop.
Z bugiem:
--- Kod: ---func int zs_sleepbed_loop() {
printdebugnpc(pd_ta_loop, ÿ17635);
if((!c_bodystatecontains(self, bs_mobinteract)) && (npc_getstatetime(self) > 3)) {
ai_startstate(self, zs_sitaround, 1, ÿ17636);
};
ai_wait(self, 1.0);
return loop_continue;
};
--- Koniec kodu ---
!c_bodystatecontains(self, bs_mobinteract)) && (npc_getstatetime(self) > 3
Unpatch:
--- Kod: ---func int zs_sleepbed_loop() {
printdebugnpc(pd_ta_loop, ÿ17499);
if(((!npc_getbodystate(self)) == bs_mobinteract) || ((!npc_getbodystate(self)) == bs_mobinteract_interrupt) && (npc_getstatetime(self) > 3)) {
ai_startstate(self, zs_sitaround, 1, ÿ17500);
};
ai_wait(self, 1.0);
return loop_continue;
};
--- Koniec kodu ---
!npc_getbodystate(self)) == bs_mobinteract) || ((!npc_getbodystate(self)) == bs_mobinteract_interrupt) && (npc_getstatetime(self) > 3
pawbuj:
w skryptach UnPatcha 0.7 nie ma tych stałych...przynajmniej u mnie ten kod inaczej wygląda..
Nawigacja
[#] Następna strona
Idź do wersji pełnej