G2NK Monolog się nie wyświetla 3461 6

O temacie

Autor orc-shammy

Zaczęty 15.04.2020 roku

Wyświetleń 3461

Odpowiedzi 6

orc-shammy

orc-shammy

Użytkownicy
posty6
ProfesjaGracz
  • Użytkownicy
Witam, mam lekki problem z monolgiem do Inter Voba, gdy przypisuję do własnego voba w funkcji on state skrypt z monolgiem, po kliknięciu na niego w nazwę w grze nie wywołuje się okienko z monologiem, a gdy np zmienię visual tego voba np. na ławkę to po kliknięciu bohater na nią siada i pojawia się okienko monologowe. Może ktoś mi poradzić co mam zrobić ?
 

Lobos

Lobos

Użytkownicy
posty594
Propsy360
Profesjabrak
  • Użytkownicy
Miałeś na myśli InterMoba. Co to za mob? Może nie dodałeś w skypcie kodu odpowiedzialnego za wywoływanie się monologu. Niektóre moby muszą mieć taki kod np. dla kowalstwa

FUNC VOID Kowalstwo_S1 ()
{
var C_NPC her; her = Hlp_GetNpc(PC_Hero);

if  (Hlp_GetInstanceID(self)==Hlp_GetInstanceID(her))
{
self.aivar[AIV_INVINCIBLE]=TRUE;
PLAYER_MOBSI_PRODUCTION = MOBSI_Kowalstwo;
Ai_ProcessInfos (her);
};

};
 

orc-shammy

orc-shammy

Użytkownicy
posty6
ProfesjaGracz
  • Użytkownicy
Hej dzięki za odpowiedź tak faktycznie chodzi tu bardziej o moba niż voba. :D Otóż właśnie tworzę nowego inter moba nakładam na takiego moba otexturowany model.3ds z vobbildera i przypisuję do jego funkcji on state skrypt z monologiem aby się ten monolg wywoływał. Tylko że problem jest że nie wywołuję się te okienko z monologiem  chciałbym zrobić aby po kliknięciu bohater drapie się po głowie czyli np z tego play animation r_scratchhead i otwiera się okienko z monologiem ewentualnie aby nie grała żadna animacja tylko po kliknięciu w tego moba odrazu otwierał się monolog(Jeżeli się tak da).
Tutaj kodzik nad którym pracuję:
//const int MOBSI_DROGOWSKAZ= 8;//to dodałem do Gothic II\_work\data\Scripts\Content\AI\AI_Intern\AI_Constants.d
const string MOBNAME_ZNAK = "Drogowskaz";

func void usesign_s1()
{
var C_NPC her; her = Hlp_GetNpc(PC_Hero);

if  (Hlp_GetInstanceID(self)==Hlp_GetInstanceID(her))
{
self.aivar[AIV_INVINCIBLE]=TRUE;
PLAYER_MOBSI_PRODUCTION = MOBSI_DROGOWSKAZ;
Ai_ProcessInfos (her);
};
};

instance PC_UseSign_END(C_INFO)
{
npc = pc_hero;
nr = 999;
condition = pc_UseSign_end_condition;
information = pc_UseSign_end_info;
permanent = TRUE;
description = DIALOG_ENDE;
};


func int pc_UseSign_end_condition()
{
if(PLAYER_MOBSI_PRODUCTION == MOBSI_DROGOWSKAZ)
{
return TRUE;
};
};

func void pc_UseSign_end_info()
{
B_ENDPRODUCTIONDIALOG();
};

instance PC_UseSign_GetNote(C_INFO)
{
npc = pc_hero;
nr = 998;
condition = pc_UseSign_GetNote_condition;
information = pc_UseSign_GetNote_info;
permanent = FALSE;
description = "Zapisz notatkę";
};


func int pc_UseSign_GetNote_condition()
{
if(PLAYER_MOBSI_PRODUCTION == MOBSI_DROGOWSKAZ)
{
return TRUE;
};
};

func void pc_UseSign_GetNote_info()
{
CreateInvItem (hero, notatka1);
B_ENDPRODUCTIONDIALOG();
};
I Screen ze spacera:
https://imgur.com/a/pUxuI2S
 

Lobos

Lobos

Użytkownicy
posty594
Propsy360
Profesjabrak
  • Użytkownicy
Po pierwsze to nie wstawiaj tego moba jako łóżko jeśli nim nie jest, po prostu OcMobInter i tyle. Jeśli nazwałeś monolog "DROGOWSKAZ" to nazwij tak samo plik .d monologu i funkcje prototypową _S1 Func void DROGOWSKAZ_S1
Na koniec zobacz w spacerze czy w okienku onstatefunc , gdzie przypisyałeś nazwe monologu niema spacji przed lub po nazwie.
 

orc-shammy

orc-shammy

Użytkownicy
posty6
ProfesjaGracz
  • Użytkownicy
Faktycznie się machnąłem z tym spacerem :> już poprawiłem na samo oCMobInter bez "bed" i funkcja on state też zmieniłem na taką jaka jest w kodzie aktualnie  oraz zmieniłem nazwę pliku monologu ze Znak.d na DROGOWSKAZ.d, tylko problem dalej występuję nie wywołuje się okienko monologowe zgaduję że ma to problem że jest to model 3ds a nie .asc ? gdyż gdy zmieniam visual powiedzmy na tą nieszczesną ławkę czy fotel to bohater wyołuję animację siadania na niej i otwiera się okienko na luzie.

Umieszcze tu poprawiony kod oraz screen
const string MOBNAME_ZNAK = "Drogowskaz";

func void DROGOWSKAZ_s1()
{
var C_NPC her; her = Hlp_GetNpc(PC_Hero);

if  (Hlp_GetInstanceID(self)==Hlp_GetInstanceID(her))
{
self.aivar[AIV_INVINCIBLE]=TRUE;
PLAYER_MOBSI_PRODUCTION = MOBSI_DROGOWSKAZ;
Ai_ProcessInfos (her);
};
};

instance PC_DROGOWSKAZ_END(C_INFO)
{
npc = pc_hero;
nr = 999;
condition = pc_DROGOWSKAZ_end_condition;
information = pc_DROGOWSKAZ_end_info;
permanent = TRUE;
description = DIALOG_ENDE;
};


func int pc_DROGOWSKAZ_end_condition()
{
if(PLAYER_MOBSI_PRODUCTION == MOBSI_DROGOWSKAZ)
{
return TRUE;
};
};

func void pc_DROGOWSKAZ_end_info()
{
B_ENDPRODUCTIONDIALOG();
};

instance PC_DROGOWSKAZ_GetNote(C_INFO)
{
npc = pc_hero;
nr = 998;
condition = pc_DROGOWSKAZ_GetNote_condition;
information = pc_DROGOWSKAZ_GetNote_info;
permanent = FALSE;
description = "Zapisz notatkę";
};


func int pc_DROGOWSKAZ_GetNote_condition()
{
if(PLAYER_MOBSI_PRODUCTION == MOBSI_DROGOWSKAZ)
{
return TRUE;
};
};

func void pc_DROGOWSKAZ_GetNote_info()
{
CreateInvItem (hero, notatka1);
B_ENDPRODUCTIONDIALOG();
};

https://imgur.com/a/5Fno9sq
 

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1153
ProfesjaProgramista
  • Złote Wrota
Wina braku animacji i przejścia na kolejny state.
Spróbuj nazwać funkcję: `DROGOWSKAZ_S0`, ale nie obiecuję, że zadziała.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

orc-shammy

orc-shammy

Użytkownicy
posty6
ProfesjaGracz
  • Użytkownicy
Hej dzięki za odpowiedź teraz dalej mi nie działa przy 3ds ale gdy np. zamienię visual na fotel i bohater siada na nim to dopiero po wstaniu z fotela wyołuje się okienko.Mimo wszystko dzięki za pomoc Lobos i Siemekk. Chyba muszę pokombinować jak przypisać animację w nowy plik asc i potem ustawić ten plik asc w spacerze. Myślę że temat do zamknięcia jeżeli chodzi o skrypty jak coś to się bd pytał w dziale animacje. Dzięki jeszcze raz i pozdrawiam.
 


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