Przejście bohatera po dialogu 5727 15

O temacie

Autor Retsked

Zaczęty 26.01.2009 roku

Wyświetleń 5727

Odpowiedzi 15

Retsked

Retsked

Użytkownicy
Jam jest 444
posty1533
Propsy61
  • Użytkownicy
  • Jam jest 444
Napisałem sobie dialog i chcę, aby po nim, bohater przeszedł do wyznaczonego waypointa. Kojarzę, że któryś NPC tak robił, ale za cholerę nie wiem który.
 

Zubot

Zubot

Użytkownicy
posty202
Propsy2
Profesjabrak
  • Użytkownicy

Zubot

Przejście bohatera po dialogu
#1 2009-01-26, 16:25(Ostatnia zmiana: 2009-01-26, 16:36)
W MT tak było, że beziego odprawiał strażnik co stał przy wejściu do starej kopalni.
Nie wiem, czy o to ci chodzi?
 

Retsked

Retsked

Użytkownicy
Jam jest 444
posty1533
Propsy61
  • Użytkownicy
  • Jam jest 444
 

Zkirtaem

Zkirtaem

Moderator
Mięso
posty2171
Propsy1689
ProfesjaGracz
  • Moderator
  • Mięso

Zkirtaem
Moderator

Przejście bohatera po dialogu
#3 2009-01-26, 16:46(Ostatnia zmiana: 2009-01-26, 16:46)
Cytat: Skrypt Diego z G1 po przeróbce\'
AI_GotoWP          (hero, "WAY");
 

Zubot

Zubot

Użytkownicy
posty202
Propsy2
Profesjabrak
  • Użytkownicy
// **********************************************
// WEJŚCIE DO KOPALNI
// **********************************************
const string GRD_6003_CHECKPOINT = "OCC_GNIDA";
// **********************************************
/***************************
instance Dia_Carlos_stop1 (C_INFO)
{
npc = GRD_6003_CARLOS;
nr = 2;
condition = Dia_Carlos_stop1_Condition;
information = Dia_Carlos_stop1_Info;
permanent = 1;
important = 1;
};  

func int Dia_Carlos_stop1_Condition()
{
if ((hero.aivar[AIV_GUARDPASSAGE_STATUS]== AIV_GPS_BEGIN) && (carl_ask == FALSE)
&&  (self.aivar[AIV_PASSGATE] == FALSE )
&& (Npc_GetAttitude(self,hero) != ATT_FRIENDLY )
&& (Hlp_StrCmp(Npc_GetNearestWP(self), self.wp) ))
{
return TRUE;
};
};

func void Dia_Carlos_stop1_Info()
{
PrintGlobals (PD_MISSION);

AI_Output (self, hero,"Dia_Carlos_stop1_Info_06_00"); //Gdzie ty leziesz?
AI_Output (hero, self,"Dia_Carlos_stop1_Info_15_01"); //Idę do kopalni.
AI_Output (self, hero,"Dia_Carlos_stop1_Info_06_02"); //Na cholerę? Nie jesteś ani kopaczem, ani strażnikiem. Spadaj!

hero.aivar[AIV_LASTDISTTOWP] = Npc_GetDistToWP(hero,"OCC_GNIDA");
hero.aivar[AIV_GUARDPASSAGE_STATUS] = AIV_GPS_FIRSTWARN;

spodnie = LOG_RUNNING;
Log_CreateTopic (CH1_spodnie, LOG_MISSION);
Log_SetTopicStatus (CH1_spodnie, LOG_RUNNING);
B_LogEntry (CH1_spodnie,"Cholera. Aby wejść do kopalni będe potrzebował spodni kopacza.");

AI_StopProcessInfos (other);
AI_GotoWP (other, "GO_AWAY_HERO");

};


instance Dia_Carlos_stop2 (C_INFO)
{
npc = GRD_6003_CARLOS;
nr = 1;
condition = Dia_Carlos_stop2_Condition;
information = Dia_Carlos_stop2_Info;
permanent = 1;
important = 1;
};  

func int Dia_Carlos_stop2_Condition()
{
if ((hero.aivar[AIV_GUARDPASSAGE_STATUS] == AIV_GPS_FIRSTWARN) && (carl_ask == FALSE)
&&  (self.aivar[AIV_PASSGATE] == FALSE )
&& (Npc_GetAttitude(self,hero) != ATT_FRIENDLY )
&&  (Npc_GetDistToWP(hero,"OCC_GNIDA")) < (hero.aivar[AIV_LASTDISTTOWP]-100))

{
return TRUE;
};
};

func int Dia_Carlos_stop2_Info()
{
AI_Output (self, hero,"Dia_Carlos_stop2_06_00"); //Głuchy jesteś? Spadaj stąd bo wezwę straże!

hero.aivar[AIV_LASTDISTTOWP] = Npc_GetDistToWP (hero,"OCC_GNIDA");
hero.aivar[AIV_GUARDPASSAGE_STATUS] = AIV_GPS_LASTWARN;

AI_StopProcessInfos (other);
AI_GotoWP (other, "GO_AWAY_HERO");
};


instance Dia_Carlos_stop3 (C_INFO)
{
npc = GRD_6003_CARLOS;
nr = 1;
condition = Dia_Carlos_stop3_Condition;
information = Dia_Carlos_stop3_Info;
permanent = 1;
important = 1;
};  

func int Dia_Carlos_stop3_Condition()
{
if ((hero.aivar[AIV_GUARDPASSAGE_STATUS] == AIV_GPS_LASTWARN) && (carl_ask == FALSE)
&& (Npc_GetAttitude(self,hero) != ATT_FRIENDLY )
&&  (self.aivar[AIV_PASSGATE] == FALSE)
&&  (Npc_GetDistToWP(hero,"OCC_GNIDA") < (hero.aivar[AIV_LASTDISTTOWP]-100))
&& (Hlp_StrCmp(Npc_GetNearestWP(self),self.wp) ))
{
return TRUE;
};
};

func int Dia_Carlos_stop3_Info()
{

hero.aivar[AIV_LASTDISTTOWP] = 0;
hero.aivar[AIV_GUARDPASSAGE_STATUS] = AIV_GPS_PUNISH;

B_FullStop (self);
AI_StopProcessInfos (self);
B_IntruderAlert (self, other);
B_SetAttackReason (self, AIV_AR_INTRUDER);
Npc_SetTarget (self, hero);
AI_StartState (self, ZS_Attack, 1, "");
};

To chyba ten skrypt
 

Retsked

Retsked

Użytkownicy
Jam jest 444
posty1533
Propsy61
  • Użytkownicy
  • Jam jest 444
Działa, ale tylko, gdy stoję w jakiejś tam odległości od niego. Podejdę trochę bliżej i się chrzani.
 

Retsked

Retsked

Użytkownicy
Jam jest 444
posty1533
Propsy61
  • Użytkownicy
  • Jam jest 444
Nadal mam z tym problem. Żaden sposób nie działa.
 

Gother

Gother

Użytkownicy
Nieskromny Mistrz Gothica
posty457
Propsy260
ProfesjaScenarzysta
  • Użytkownicy
  • Nieskromny Mistrz Gothica

Gother

Przejście bohatera po dialogu
#7 2009-03-26, 18:11(Ostatnia zmiana: 2009-03-26, 18:11)
Po stop proces info dajesz:
AI_GotoWP (hero, "w tym nawiasie nazwa waypointu do którego ma zmierzać bohater");
i tyle starczy.
Na pewno nie działa?
 

Retsked

Retsked

Użytkownicy
Jam jest 444
posty1533
Propsy61
  • Użytkownicy
  • Jam jest 444
Nie działa.
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
A nie możesz zmienić mu po prostu rutyny?
AI_StopProcessInfos (self);
Npc_ExchangeRoutine (self,"Start");

Retsked

Retsked

Użytkownicy
Jam jest 444
posty1533
Propsy61
  • Użytkownicy
  • Jam jest 444
Z tym, że ja chcę, aby to mój bohater, którym steruję przeszedł do wybranego waypointa.
 

Dracon

Dracon

Użytkownicy
posty1068
Propsy904
Profesjabrak
  • Użytkownicy
No to co? Rutynę możesz mu dać - to nie przeszkadza w grze.
 
,,Dobry, to człowiek, który nie ukrywa siedzącego w nim zwierzęcia. A taki co usiłuje udawać dobrego, jest wręcz niebezpieczny. Najgroźniejsi są ci, którzy sami głęboko wierzą, że są dobrzy. Odrażający, ohydny przestępca może zamordować jednego człowieka, dziesięciu, stu, ale nigdy nie zabija milionów. Miliony mordują ci, którzy mają się za samą dobroć.''

Wiktor Suworow, Akwarium

Gother

Gother

Użytkownicy
Nieskromny Mistrz Gothica
posty457
Propsy260
ProfesjaScenarzysta
  • Użytkownicy
  • Nieskromny Mistrz Gothica
Czy waypoint, który podałeś w nawiasie na pewno istnieje na danym zenie? Jak daleko znajduje się od miejsca, w którym odbywa sie dialog?
Właściwie nie pamiętam już czy to powinno być:
AI_GotoWP(other,"OUT");
czy
AI_GotoWP(self,"OUT");

Próbowałeś raz wpisać self, innym razem other?
 

Zubot

Zubot

Użytkownicy
posty202
Propsy2
Profesjabrak
  • Użytkownicy
Cytat: Gother link=topic=5054.msg47499#msg47499 date=Mar 27 2009, 07:50 AM\'
Czy waypoint, który podałeś w nawiasie na pewno istnieje na danym zenie? Jak daleko znajduje się od miejsca, w którym odbywa sie dialog?
Właściwie nie pamiętam już czy to powinno być:
AI_GotoWP(other,"OUT");
czy
AI_GotoWP(self,"OUT");

Próbowałeś raz wpisać self, innym razem other?

No właśnie raczej other będzie, bo dialog jest przypisany do NPC który nie jest bohaterem głównym.
Może jeszcze da się wpisać "hero" :)
 

Bucik

Bucik

Użytkownicy
posty182
Propsy128
Profesjabrak
  • Użytkownicy
other będzie - jeśli hero nie działa

Jeśli wszystko ładnie w danym zenie połączyłeś i nazwa waypointa się zgadza to winno działać

W tym skrypcie strażnika co podaliście było:

AI_StopProcessInfos (other);
AI_GotoWP (other, "GO_AWAY_HERO");

i takie coś MUSI działać
 

Retsked

Retsked

Użytkownicy
Jam jest 444
posty1533
Propsy61
  • Użytkownicy
  • Jam jest 444
Ustawiłem bliżej waypoint i śmiga, jak ta lala.
 


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