Pytanie odnośnie modowania. 5647 11

O temacie

Autor Goran

Zaczęty 23.03.2010 roku

Wyświetleń 5647

Odpowiedzi 11

Goran

Goran

Użytkownicy
posty168
Propsy39
  • Użytkownicy
Witam serdecznie. Mam kilka pytań odnośnie modowania:
1) Co mam napisać w skryptach i czy jest taka możliwość:
Mam itema, potem podmieniam go z innym itemem, i gadam z gościem a po dwóch dniach orkowie znikają z danych waypointów.  ;)   Przykładowo wprowadzę: item1 item2
Mam zadanie podmienić te itemki np. w skrzyni, i tak. Mamy item1 i chcę żeby warunek rozmowy z npc'em pojawił się po podmienieniu tych itemów. Bo chyba jest taki warunek (a ja go nie znam)
że jeśli NIE mamy jakiegoś przedmiotu to możemy pogadać. Ale żeby nie strzelić tego itema byle gdzie, tylko żeby był DOKŁADNIE w tej skrzyni. Potem gdy już podmienimy to z waypointów mają ZNIKNĄĆ orkowie. Wiem że to dość trudne ale niech mi ktoś pomoże.  :]  

2) Gadam sobie z kolesiem, a tu inny NPC przenosi się do określonego waypointu.
Chodzi mi tu głównie o funkcje jaką trzeba napisać...

Z góry dziękuję.  :D
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
co do 2 to wystarczy zmienić rutynę temu NPC

B_ExchangeRoutine (instancja NPC,"nazwa rutyny");

Goran

Goran

Użytkownicy
posty168
Propsy39
  • Użytkownicy
co do 2 to wystarczy zmienić rutynę temu NPC

B_ExchangeRoutine (instancja NPC,"nazwa rutyny");
Ta, fajnie (;] ) to i ja wiem.

A jaka funkcja odpowiada za przeniesienie go w ten waypoint. Nie chodzi mi o to żeby on szedł, bo to miejsce jest za kratkami ( ;)  ). Żeby on się tam pojawił.

Prosze o pomoc w pierwszym punkcie, bo to ważne...  ^^
 

maciejG

maciejG

Użytkownicy
posty450
Propsy1
  • Użytkownicy
No to popatrz do dialogu Andre z wydaniem przestępcy straży. Nic trudnego.
 
Spoiler

Goran

Goran

Użytkownicy
posty168
Propsy39
  • Użytkownicy
No to popatrz do dialogu Andre z wydaniem przestępcy straży. Nic trudnego.

A nie ma czegoś takiego jak teleportowanie kogoś do waypointu?
 

SebaSX

SebaSX

Użytkownicy
posty29
  • Użytkownicy

SebaSX

Pytanie odnośnie modowania.
#5 2010-03-23, 20:00(Ostatnia zmiana: 2010-03-23, 20:09)
Cytuj
No to popatrz do dialogu Andre z wydaniem przestępcy straży. Nic trudnego.


A nie ma czegoś takiego jak teleportowanie kogoś do waypointu?"

Raczej niema ale poco ci to, przecież jak nawet każesz gościowi iść to tego weypointu to żeby nawet za kratkami ten weypoint był to on i tak tam dotrze wystarczy że odejdziesz od danego npc na dystans w którym przestanie być sczytywany i powrócisz z powrotem a on już będzie tam gdzie chciałeś nawet za kratą.



Używaj tagów quote (u góry taka chmurka) - VEQ
 

Goran

Goran

Użytkownicy
posty168
Propsy39
  • Użytkownicy
"Goran
CYTAT(maciejG @ Mar 23 2010, 07:19 PM) *
No to popatrz do dialogu Andre z wydaniem przestępcy straży. Nic trudnego.


A nie ma czegoś takiego jak teleportowanie kogoś do waypointu?"

Raczej niema ale poco ci to, przecież jak nawet każesz gościowi iść to tego weypointu to żeby nawet za kratkami ten weypoint był to on i tak tam dotrze wystarczy że odejdziesz od danego npc na dystans w którym przestanie być sczytywany i powrócisz z powrotem a on już będzie tam gdzie chciałeś nawet za kratą.
OK. A teraz pierwsze pytanie:
1) Co mam napisać w skryptach i czy jest taka możliwość:
Mam itema, potem podmieniam go z innym itemem, i gadam z gościem a po dwóch dniach orkowie znikają z danych waypointów.  Przykładowo wprowadzę: item1 item2
Mam zadanie podmienić te itemki np. w skrzyni, i tak. Mamy item1 i chcę żeby warunek rozmowy z npc#msgote author=SebaSX link=topic=9365.msg88354#msg88354 date=1269371005]"Goran
CYTAT(maciejG @ Mar 23 2010, 07:19 PM) *
No to popatrz do dialogu Andre z wydaniem przestępcy straży. Nic trudnego.


A nie ma czegoś takiego jak teleportowanie kogoś do waypointu?"

Raczej niema ale poco ci to, przecież jak nawet każesz gościowi iść to tego weypointu to żeby nawet za kratkami ten weypoint był to on i tak tam dotrze wystarczy że odejdziesz od danego npc na dystans w którym przestanie być sczytywany i powrócisz z powrotem a on już będzie tam gdzie chciałeś nawet za kratą.[/quote]
OK. A teraz pierwsze pytanie:
[code]1) Co mam napisać w skryptach i czy jest taka możliwość:
Mam itema, potem podmieniam go z innym itemem, i gadam z gościem a po dwóch dniach orkowie znikają z danych waypointów.  Przykładowo wprowadzę: item1 item2
Mam zadanie podmienić te itemki np. w skrzyni, i tak. Mamy item1 i chcę żeby warunek rozmowy z npcem pojawił się po podmienieniu tych itemów. Bo chyba jest taki warunek (a ja go nie znam)
że jeśli NIE mamy jakiegoś przedmiotu to możemy pogadać. Ale żeby nie strzelić tego itema byle gdzie, tylko żeby był DOKŁADNIE w tej skrzyni. Potem gdy już podmienimy to z waypointów mają ZNIKNĄĆ orkowie. Wiem że to dość trudne ale niech mi ktoś pomoże.
 

SebaSX

SebaSX

Użytkownicy
posty29
  • Użytkownicy
Po pierwsze musisz mieć skrzynię nazwaną nazwą unikalną. Po drugie spróbuj wzorować się na queście co jakiś wieśniak z farmy (nazywa się coś na R...) mówi ci o konkursie picia w tawernie i każe podmienić w skrzyni u gostka wódę na wodę itd. Może to coś ułatwi ci napisanie tego skryptu???
 

Goran

Goran

Użytkownicy
posty168
Propsy39
  • Użytkownicy
Elo :lol2:  Tamto pomogło. Teraz nowe pytanie.

Otóż wykonałem takie zadanie, w którym npc pojawia sie w waypoincie podczas rozmowy z innym npc'em. I oczywiście dalsze zmiany rutyny czyli prowadzenie bohatera do waypointu. ITD. I problem: ten npc się nie pojawia w tym WP po zakończonej rozmowie.
Co zrobić? Oto skrypty:

///////////////////////////////////////////////////////
////////////// hello
///////////////////////////////////////////////////////
instance Dia_PAL_200_Hagen_hello   (C_INFO)
{
npc = PAL_200_Hagen;
nr = 1;
condition =  Dia_PAL_200_Hagen_hello_condition;
information =  Dia_PAL_200_Hagen_hello_info;
permanent = FALSE;
important = FALSE;
description =  "Masz jeszcze jakiś problem?";
};

FUNC int  Dia_PAL_200_Hagen_hello_condition()
{
IF (Npc_KnowsInfo(hero, DIA_PAL_200_Hagen_pomoc))
{
return TRUE;
};
};
FUNC VOID  DIA_PAL_200_Hagen_hello_info()
{
AI_Output (other,self,"DIA_PAL_200_Hagen_hello_1_01"); //.
AI_Output (self, other,"DIA_PAL_200_Hagen_hello_1_02"); //.
AI_Output (self, other,"DIA_PAL_200_Hagen_hello_1_03"); //.
AI_Output (self, other,"DIA_PAL_200_Hagen_hello_1_04"); //
AI_Output (self, other,"DIA_PAL_200_Hagen_hello_1_05"); //.
AI_Output (other,self,"DIA_PAL_200_Hagen_hello_1_06"); //.
AI_Output (self, other,"DIA_PAL_200_Hagen_hello_1_07"); //.
AI_Output (other,self,"DIA_PAL_200_Hagen_hello_1_08"); //.
AI_Output (self, other,"DIA_PAL_200_Hagen_hello_1_09"); //.
AI_Output (self, other,"DIA_PAL_200_Hagen_hello_1_10"); //.
AI_Output (other,self,"DIA_PAL_200_Hagen_hello_1_11"); //.
[u]Npc_ExchangeRoutine( MIL_312_Wulfgar  ," banda ");[/u]
AI_Output (self, other,"DIA_PAL_200_Hagen_hello_1_12"); //
};

i część skryptu wulfgara:

// ------ TA anmelden ------
daily_routine = Rtn_Start_312;
};

FUNC VOID Rtn_Start_312 ()
{
TA_Stand_ArmsCrossed (06,55,21,00,"NW_CITY_HABOUR_KASERN_CENTRE_01");
TA_Sit_Throne (21,00,00,07,"NW_CITY_KASERN_BARRACK02_02");
    TA_Smalltalk (00,07,05,00,"NW_CITY_HABOUR_KASERN_OFFICE");
TA_Practice_Sword (05,00,06,55,"NW_CITY_HABOUR_KASERN_CENTRE_01");
};
FUNC VOID Rtn_banda_312 ()
{
TA_Stand_ArmsCrossed (06,55,21,00,"NW_CITY_UPTOWN_PATH_02");
TA_Stand_Eating (21,00,06,55,"NW_CITY_UPTOWN_PATH_02");

};

FUNC VOID Rtn_lap_312 ()
{
TA_Guide_Player (06,55,21,00,"NW_CITY_HABOUR_KASERN_06");
TA_Guide_Player (21,00,06,55,"NW_CITY_HABOUR_KASERN_06");

};

FUNC VOID Rtn_trop_312 ()
{
TA_Guide_Player (06,55,21,00,"NW_CITY_HABOUR_KASERN_01");
TA_Guide_Player (21,00,06,55,"NW_CITY_HABOUR_KASERN_01");

};
FUNC VOID Rtn_go_312 ()
{
TA_Guide_Player (06,55,21,00,"NW_CITY_HABOUR_HUT_03_IN_06");
TA_Guide_Player (21,00,06,55,"NW_CITY_HABOUR_HUT_03_IN_06");

};

FUNC VOID Rtn_znowu_312 ()
{
TA_Stand_ArmsCrossed (06,55,21,00,"NW_CITY_HABOUR_KASERN_CENTRE_01");
TA_Sit_Throne (21,00,00,07,"NW_CITY_KASERN_BARRACK02_02");
    TA_Smalltalk (00,07,05,00,"NW_CITY_HABOUR_KASERN_OFFICE");
TA_Practice_Sword (05,00,06,55,"NW_CITY_HABOUR_KASERN_CENTRE_01");
};

i dialog wulfgara:

///////////////////////////////////////////////////////
////////////// EXIT
///////////////////////////////////////////////////////
instance Dia_MIL_312_Wulfgar_EXIT   (C_INFO)
{
npc = MIL_312_Wulfgar;
nr = 999;
condition =  Dia_MIL_312_Wulfgar_EXIT_condition;
information =  Dia_MIL_312_Wulfgar_EXIT_info;
permanent = TRUE;
description = DIALOG_ENDE;
};

FUNC int  Dia_MIL_312_Wulfgar_EXIT_condition()
{
return TRUE;
};

FUNC VOID  DIA_MIL_312_Wulfgar_EXIT_info()
{
AI_StopProcessInfos (self);
};
///////////////////////////////////////////////////////
////////////// hello1
///////////////////////////////////////////////////////
instance Dia_MIL_312_Wulfgar_hello1   (C_INFO)
{
npc = MIL_312_Wulfgar;
condition =  Dia_MIL_312_Wulfgar_hello1_condition;
information =  Dia_MIL_312_Wulfgar_hello1_info;
permanent = FALSE;
important = TRUE;
};

FUNC int  Dia_MIL_312_Wulfgar_hello1_condition()
{
IF (Npc_KnowsInfo(hero, DIA_PAL_200_Hagen_hello))
{
return TRUE;
};
};
FUNC VOID  DIA_MIL_312_Wulfgar_hello1_info()
{
   
AI_Output (self, other,"DIA_MIL_312_Wulfgar_hello1_1_09"); //To za mną! Biegiem!
Npc_ExchangeRoutine(self," lap ");
};
///////////////////////////////////////////////////////
////////////// hello2
///////////////////////////////////////////////////////
instance Dia_MIL_312_Wulfgar_hello2   (C_INFO)
{
npc = MIL_312_Wulfgar;
condition =  Dia_MIL_312_Wulfgar_hello2_condition;
information =  Dia_MIL_312_Wulfgar_hello2_info;
permanent = FALSE;
important = TRUE;
};

FUNC int  Dia_MIL_312_Wulfgar_hello2_condition()
{
IF (Npc_KnowsInfo(hero, DIA_MIL_312_Wulfgar_hello1))
   && Npc_GetDistToWP (self,"NW_CITY_HABOUR_KASERN_06") <= 500

{
return TRUE;
};
};
FUNC VOID  DIA_MIL_312_Wulfgar_hello2_info()
{
   
AI_Output (self, other,"DIA_MIL_312_Wulfgar_hello2_1_05"); //Ta, to chodźmy sprawdzic.
Npc_ExchangeRoutine(self," trop ");

};
///////////////////////////////////////////////////////
////////////// hello3
///////////////////////////////////////////////////////
instance Dia_MIL_312_Wulfgar_hello3   (C_INFO)
{
npc = MIL_312_Wulfgar;
condition =  Dia_MIL_312_Wulfgar_hello3_condition;
information =  Dia_MIL_312_Wulfgar_hello3_info;
permanent = FALSE;
important = TRUE;
};

FUNC int  Dia_MIL_312_Wulfgar_hello3_condition()
{

if  Npc_GetDistToWP (self,"NW_CITY_HABOUR_KASERN_01") <= 500
&& (Npc_KnowsInfo(hero, DIA_MIL_312_Wulfgar_hello2))
{
return TRUE;
};
};
FUNC VOID  DIA_MIL_312_Wulfgar_hello3_info()
{
AI_Output (self, other,"DIA_MIL_312_Wulfgar_hello3_1_01"); //A to skurwysyny!
Npc_ExchangeRoutine(self," go ");

};
///////////////////////////////////////////////////////
////////////// hello4
///////////////////////////////////////////////////////
instance Dia_MIL_312_Wulfgar_hello4   (C_INFO)
{
npc = MIL_312_Wulfgar;
nr = 1;
condition =  Dia_MIL_312_Wulfgar_hello4_condition;
information =  Dia_MIL_312_Wulfgar_hello4_info;
permanent = FALSE;
important = FALSE;

};

FUNC int  Dia_MIL_312_Wulfgar_hello4_condition()
{
IF (Npc_KnowsInfo(hero, DIA_MIL_312_Wulfgar_hello3))
{
return TRUE;
};
};
FUNC VOID  DIA_MIL_312_Wulfgar_hello4_info()
{
AI_Output (other,self,"DIA_MIL_312_Wulfgar_hello4_1_01"); //Już po sprawie?
AI_Output (self, other,"DIA_MIL_312_Wulfgar_hello4_1_02"); //Tak. Te gnojki nie żyją.
 
Npc_ExchangeRoutine(self," znowu ");



};

Oczywiście nie wyskakuje ŻADEN błąd. Tylko dlaczego ten wulfgar się nie pojawi w tym waypoincie po rozmowie z hagenem ??? Pomóżcie.
 

Pragasek

Pragasek

Użytkownicy
posty334
Propsy39
ProfesjaSkrypter
  • Użytkownicy
może AI_Teleport?

Goran

Goran

Użytkownicy
posty168
Propsy39
  • Użytkownicy
Nowy problem. NPC jeśli daję w warunku dialogu :
Cytuj
IF (Npc_HasItems(other,itwr_herszt) >= 1 )
mam ten przedmiot a npc go tak jakby nie widzi i nie wyświetla sie opcja dialogowa.
To przedmiot stworzony przezemnie. Później zamieniłem ten warunek z podpowiedzią Pragaska (thx) na:
Cytuj
IF (Npc_HasItems(hero ,itwr_herszt) >= 1 )
i gówno, dalej nie widzi tego przedmiotu. Więc co mam robić?
Później wziąłem jakiś inny przedmiot z gry np. inny list i dalej ten npc go nie widzi...
Co mam robić???


Drugi problem:
Gadam z npc'em i w tym dialogu zmieniam mu rutyne żeby przeszedł do innego waypointu. I jeszcze w tym samym dialogu zmieniam rutyny innym pięciu npc'om do tego samego waypointu maja stać. I ustawiłem warunek o czas czyli jeśli jest godzina 22 w nocy to npc do nas zagaduje.
I zamiast stać wtedy w tym waypoincie to on stoi w starym, zagaduje do nas... ale tych pięciu npc'ów nie ma w tym waypoinicie.... Gdy ten dialog zostaje wywołany to w nim napisałem że zmienia rutynę na follow tak samo jak ci npc'owie ... a on stoi w miejscu... w waypoincie startowym... co mam robić aby się on ruszył i reszta npc'ów też ???
Proszę o pomoc...  ;p
 

Goran

Goran

Użytkownicy
posty168
Propsy39
  • Użytkownicy
Odświeżam. Konkretnie to chodzi mi o te zmiany rutyny. Bo teraz jak gadam z npc'em to daje mu: Npc_ExchangeRoutine(self," wojsko ");

a w skrypcie npc'a daje mu inny waypoint a w nim rutynę stand_guarding
tylko nie mówicie : ''Czy waypoint sa połączone''
Dlaczego on nie chce się ruszyć???
I jeszcze jedno, w tym samym dialogu zmieniłem rutynę innym npc'om żeby przeszli do tego samego waypointu. Jak wpisuję w skryptach:
B_ExchangeRoutine            (PAL_235_Ritter,        "wojsko");
to wyskakuje mi nnieznany identyfikator: B_Exchangeroutine
Więc zamieniłem to na NPC_Exchangeroutine i npc nie chcą sie ruszyć do tego waypointu.
Błagam pomóżcie.
 


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