Gothic 2 - kilka pytań związanych z SmallTalk i wytrychami 2731 6

O temacie

Autor Graveir

Zaczęty 15.06.2020 roku

Wyświetleń 2731

Odpowiedzi 6

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Hai. Mam taki dziwny problem, że dodałem sobie parę postaci i w ich rutynach pododawałem TA_Smalltalk w bliskich sobie Freepointach, żeby było wiadomo, która postać gada z którą. Jednak o ile Jesse(pierwszy skrypt) o godzinie 14 poprawnie wykonuje swoją rutynę i staje w danym freepoincie, to kopacz(skrypt drugi) stoi jak wryty i się nie rusza. Dopiero jak wejdę za pomocą marvina w jego ciało i podejdę +- 4 cm w stronę Jessiego, to odblokowuje się i normalnie prowadzi rozmowę. Gdzie jest pies pogrzebany?
instance VLK_564_Jesse (Npc_Default)
{
//-------- primary data --------

name = "Jesse";
npctype = npctype_main;
guild = GIL_NONE;     
level = 4;


voice = 20;
id = 7038;


//-------- abilities --------

attribute[ATR_STRENGTH] = 20;
attribute[ATR_DEXTERITY] = 10;
attribute[ATR_MANA_MAX] = 0;
attribute[ATR_MANA] = 0;
attribute[ATR_HITPOINTS_MAX] = 88;
attribute[ATR_HITPOINTS] = 88;

//-------- visuals --------
// animations
Mdl_SetVisual (self,"HUMANS.MDS");
Mdl_ApplyOverlayMds (self,"Humans_Tired.mds");
// body mesh, head mesh, hairmesh, face-tex, hair-tex, skin
Mdl_SetVisualBody (self,"hum_body_Naked0",2,1,"Hum_Head_FatBald", Face_N_NormalBart_Huno,  1,VLK_ARMOR_L);

fight_tactic = FAI_HUMAN_COWARD;


//-------- Talents  --------                                   

////Npc_SetTalentSkill (self, NPC_TALENT_1H,1);

//-------- inventory --------                                   

EquipItem (self, ItMw_1h_Nailmace_01);
CreateInvItem (self, ItMwPickaxe);
CreateInvItem (self, Itfo_Potion_Water_01);

aivar[AIV_GUILD] = KOP;
//-------------Daily Routine-------------
daily_routine = Rtn_Start_7038;
};



FUNC VOID Rtn_start_7038 ()
{
TA_Stand_Drinking (08,00,12,00,"OCR_OUTSIDE_HUT_66");
TA_Cook_Pan (12,00,14,00,"OCR_OUTSIDE_HUT_63_COOK");
TA_Smalltalk (14,00,17,00,"FP_SMALLTALK_A_EFIRE_D");
TA_Sit_All (17,00,20,00,"SIT_1");
TA_Sleep (20,00,08,00,"OCR_HUT_66");
};
A tu skrypt Kopacza
instance VLK_575_Buddler (Npc_Default)
{
//-------- primary data --------

name = "Kopacz";
npctype = npctype_ambient;
guild = GIL_NONE;     
level = 4;


voice = 20;
id = 7039;


//-------- abilities --------

attribute[ATR_STRENGTH] = 20;
attribute[ATR_DEXTERITY] = 10;
attribute[ATR_MANA_MAX] = 0;
attribute[ATR_MANA] = 0;
attribute[ATR_HITPOINTS_MAX] = 88;
attribute[ATR_HITPOINTS] = 88;

//-------- visuals --------
// animations
Mdl_SetVisual (self,"HUMANS.MDS");
Mdl_ApplyOverlayMds (self,"Humans_Tired.mds");
// body mesh, head mesh, hairmesh, face-tex, hair-tex, skin
B_SetNpcVisual (self, MALE, "Hum_Head_Bald", Face_N_NormalBart17, BodyTex_N, NO_ARMOR);
Mdl_SetModelFatness (self, 0);

fight_tactic = FAI_HUMAN_COWARD;

//-------- Talents --------                                   
aivar[AIV_GUILD] = KOP;

//-------- inventory --------                                   

EquipItem (self, ItMw_1h_Club_01);
CreateInvItem (self, ItFoApple);


//-------------Daily Routine-------------
daily_routine = Rtn_start_7039;
};

FUNC VOID Rtn_start_7039 ()
{
TA_Sleep (22,45,06,30,"OCR_HUT_67");
TA_Stand_Eating  (06,30,14,00,"OCR_OUTSIDE_HUT_67");
TA_Smalltalk (14,00,17,00,"FP_SMALLTALK_B_FIRE_E");
TA_Sit_All (17,00,22,45,"SIT_3");
};
2)Dodatkowo, jest jakiś "ludzki" sposób na zamienie instancji przedmiotu potrzebnego do otwierania skrzyni, jeśli nie ma się bazowego? Coś na zasadzie, że jeśli gra odczyta, że nie mamy w ekwipunku wytrychu(itke_lockpick), ale mamy przedmiot (itmi_wytrych), to nadal możemy próbować włamać się do skrzyni(i przy porażce tracimy ten drugi przedmiot)?
3)Pamięta ktoś, gdzie się włączało te boxy do dialogów "zewnętrznych", typu właśnie SmallTalk? Że widzimy, o czym rozmawiają postacie "między sobą"
4)I chwilowo ostatnie pytanie - jeśli postać kopacza(dodana do Startup.d) stoi dość nienaturalnie po rozpoczęciu gry, to może być to wina podłoża(nierówności/krzywa mapa itp)? Na zdjęciu widać, że wygląda to tak, jakby stał na jednej nodze.
https://imgur.com/a/6XneMOP
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

outlander

outlander

Użytkownicy
posty452
Propsy224
ProfesjaReżyser
  • Użytkownicy
1. Na pewno w G2 też się linkuje rutyne bezpośrednio do freepointa? W G1 masz tak, że wskazujesz mu WP w którego okolicy są FP. FP nie są w ogóle połączone z waynetem więc npc nie może znaleźć do niego drogi. Zrób WP o nazwie np. SMALLTALK_JESSE_KOPACZ a obok niego daj ustawione do siebie FP SMALLTALK_JESSE_KOPACZ_A i SMALLTALK_JESSE_KOPACZ_B. W rutynach obu npc daj SMALLTALK_JESSE_KOPACZ  przy TA_Smalltalk i zobacz czy działa.
 

Fabio

Fabio

The Modders
posty3466
Propsy2150
ProfesjaSkrypter
  • The Modders
Postacie ustawia się na waypointach, a nie na freepointach, niezależnie od części gry. Freepointy są czasem potrzebne jak do smalltalków (FP_SMALLTALK) czy przemieszczania się po punktach (FP_ROAM). Złe odległości zapewne.

Te "boxy" są zbugowane, możesz je włączyć bodajże w Gothic.ini, ale działają chyba dopiero przy wczytaniu gry. Rozwiązaniem jest użycie Uniona i wklepanie tego:

 
HEX @0x00758BC8 = '31 C0 90 90 90 90'
HEX @0x00758BE2 = '31 C0 90 90'

Z kolei jeśli chodzi o kopacza: Z tego co widzę to jest to oryginalny świat, a w tym miejscu powinien normalnie stać. Nie widzę by miał pancerz, ale czasem przy kompilacji (za pierwszym razem głównie) postacie jakby lewitują. Ciężko stwierdzić na tym ss.

Czudak

Czudak

Użytkownicy
posty141
Propsy60
ProfesjaSkrypter
  • Użytkownicy
Te "boxy" są zbugowane, możesz je włączyć bodajże w Gothic.ini, ale działają chyba dopiero przy wczytaniu gry. Rozwiązaniem jest użycie Uniona i wklepanie tego:

 
HEX @0x00758BC8 = '31 C0 90 90 90 90'
HEX @0x00758BE2 = '31 C0 90 90'

A gdzie wpisać należy te wartości? Gdzieś w Union.ini (od v1.0h chyba w Sytempack.ini)? Czy trzeba skompilować do jakiejś wtyczki?
 

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
@outlander Obok freepointa do SmallTalka dodałem waypoint SMALLTALK_KOPACZ i umieściłem go w skrypcie kopacza - i teraz normalnie podchodzi i gada.
@Fabio Akurat to nie jest oryginalny świat. To po prostu zen przekonwertowany przez GothicZen, więc mogą być jakieś komplikacje. Ale po zapisaniu i wczytaniu gry kopacz stoi już normalnie. I włączyłem w Gothic.ini subTitles=1
subTitlesPlayer=1
subTitlesAmbient=0
subTitlesNoise=1
Ale fakt, jest to dość mocno zbugowane, bo po wczytaniu pokaże 1 dialog i następnych już nie pokazuje. A Uniona i tak nie mogę używać, bo "operuję" na Ikarusie + Lego. Aczkolwiek dzięki.
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

Fabio

Fabio

The Modders
posty3466
Propsy2150
ProfesjaSkrypter
  • The Modders
Te "boxy" są zbugowane, możesz je włączyć bodajże w Gothic.ini, ale działają chyba dopiero przy wczytaniu gry. Rozwiązaniem jest użycie Uniona i wklepanie tego:

 
HEX @0x00758BC8 = '31 C0 90 90 90 90'
HEX @0x00758BE2 = '31 C0 90 90'

A gdzie wpisać należy te wartości? Gdzieś w Union.ini (od v1.0h chyba w Sytempack.ini)? Czy trzeba skompilować do jakiejś wtyczki?

W pliku .patch.

Czudak

Czudak

Użytkownicy
posty141
Propsy60
ProfesjaSkrypter
  • Użytkownicy
Te "boxy" są zbugowane, możesz je włączyć bodajże w Gothic.ini, ale działają chyba dopiero przy wczytaniu gry. Rozwiązaniem jest użycie Uniona i wklepanie tego:

 
HEX @0x00758BC8 = '31 C0 90 90 90 90'
HEX @0x00758BE2 = '31 C0 90 90'

A gdzie wpisać należy te wartości? Gdzieś w Union.ini (od v1.0h chyba w Sytempack.ini)? Czy trzeba skompilować do jakiejś wtyczki?

W pliku .patch.

Prawilnie działa. Dzięki.
 


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