Skrypt - ataku 4370 13

O temacie

Autor Ravensword17

Zaczęty 30.03.2012 roku

Wyświetleń 4370

Odpowiedzi 13

Ravensword17

Ravensword17

Użytkownicy
posty35
Propsy3
  • Użytkownicy
Atak NPC
Jak zrobić, że po rozmowie, jakiś inny npc, który jest nautralny rzuca się na naszą postać.
A także jak zrobić, że po rozmowie, np. grupa najemników atakuje Khorinis(nie chodzi o to, że my to grupę prowadzimy, tylko o to, że ona tam idzie sama). Grupa ta ma pozostawić Beziego w spokoju ;d
Z góry dziękuje.
 

gothic1210
  • Gość
Za atak odpowiada takie coś:
   AI_StopProcessInfos (self);
    Npc_SetPermAttitude (self, ATT_HOSTILE);
    Npc_SetTarget (self,other);
    AI_StartState (self,ZS_ATTACK,1,"");
Dodaj to do dialogu.
Co do drugiego problemu rozsądne wydaje mi się:
-najpierw zmienić stosunki gildii
Wld_SetGuildAttitude (GIL_Mieszczanie,ATT_HOSTILE,GIL_SLD);
Wld_SetGuildAttitude (GIL_Strażnicy,ATT_HOSTILE,GIL_SLD);
Mieszczanie i strażnicy sobie zmień.
-potem pozmieniać rutyny tych najemników, żeby poszli do miasta
B_ExchangeRoutine (Instancja_najemnika, "Atak");
 

Ravensword17

Ravensword17

Użytkownicy
posty35
Propsy3
  • Użytkownicy
Dziękuje za szybką odpowiedź.
Mój skrypt wygląda tak:
//========================================
//-----------------> HELLO1
//========================================

INSTANCE DIA_Test_HELLO1 (C_INFO)
{
   npc          = NON_5001_Test;
   nr           = 1;
   condition    = DIA_Test_HELLO1_Condition;
   information  = DIA_Test_HELLO1_Info;
   permanent   = FALSE;
   description   = "Gdzie?";
};

FUNC INT DIA_Test_HELLO1_Condition()
{
    return TRUE;
};

FUNC VOID DIA_Test_HELLO1_Info()
{
    AI_Output (other, self ,"DIA_Test_HELLO1_15_01"); //Gdzie?
    AI_Output (self, other ,"DIA_Test_HELLO1_03_02"); //Za tobą!
AI_StopProcessInfos (self);
    Npc_SetPermAttitude (self, ATT_HOSTILE);
    Npc_SetTarget (self,other);
    AI_StartState (self,ZS_ATTACK,1,"NW_BIGFARM_PATH_04");
};
Wyskakuje bląd Unknown identifier: NPC_SETPERNATTITUDE
Co do drugiej części mam pytanie jedno pytanie.
W zmianie stosunku gildi, to czy mam to dać w dialogu?
 

gothic1210
  • Gość
Podałem ci fragment kodu z g1, a ty pewnie modujesz g2 więc poszukaj jakiegoś dialogu  w którym npc się na nas rzuca i tam sprawdź, a potem popraw ewentualny błąd.
te zmiany stosunków możesz dać po dialogu.
 

Ravensword17

Ravensword17

Użytkownicy
posty35
Propsy3
  • Użytkownicy
Dobra naprawione.
Lecz, gdy robiłem nowego npc-ta wyskakuje błąd; Redefined identifier: RTN_START_9999
Skrypt rutyny npc:
// ------ TA anmelden ------
   daily_routine       = Rtn_Start_9999;
};

FUNC VOID Rtn_Start_9999 ()
{
   TA_Smalltalk   (08,00,20,00,"NW_BIGFARM_PATH_04_1");
   TA_Sleep      (20,00,08,00,"NW_BIGFARM_HOUSE_SLD_SLEEP");      
};

Wcześniej nie miałem z tym problemów.
 

gothic1210
  • Gość
Dobra naprawione.
Lecz, gdy robiłem nowego npc-ta wyskakuje błąd; Redefined identifier: RTN_START_9999
Skrypt rutyny npc:
// ------ TA anmelden ------
   daily_routine       = Rtn_Start_9999;
};

FUNC VOID Rtn_Start_9999 ()
{
   TA_Smalltalk   (08,00,20,00,"NW_BIGFARM_PATH_04_1");
   TA_Sleep      (20,00,08,00,"NW_BIGFARM_HOUSE_SLD_SLEEP");      
};

Wcześniej nie miałem z tym problemów.
Możliwe że istnieje już NPC z takim numerem. Spróbuj zmienić to 9999 na jakąś inną liczbę. Tylko w całym skrypcie NPC.

Spoiler
Naciśnij na  :ok:  pod moim postem xD
 

Ravensword17

Ravensword17

Użytkownicy
posty35
Propsy3
  • Użytkownicy

Ravensword17

Skrypt - ataku
#6 2012-03-31, 13:12(Ostatnia zmiana: 2012-03-31, 13:52)
Cytuj
Możliwe że istnieje już NPC z takim numerem. Spróbuj zmienić to 9999 na jakąś inną liczbę. Tylko w całym skrypcie NPC.
Sprawdzałem wcześniej, niema NPC z takim numerem.


Dobra po problemie, zmieniłem instance postaci.

Już ostatnie pytanie:
Jak zrobić, że strażnicy dobijają najemników? U mnie tylko ich pobijają. I jak wstaną to znowu.
 

Ravensword17

Ravensword17

Użytkownicy
posty35
Propsy3
  • Użytkownicy
Dobra wszystko ogarnąłem już.
Temat można zamknąć
 

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
Napisz co i jak dla przyszłych pokoleń.
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

Ravensword17

Ravensword17

Użytkownicy
posty35
Propsy3
  • Użytkownicy

Ravensword17

Skrypt - ataku
#9 2012-03-31, 14:53(Ostatnia zmiana: 2012-03-31, 16:08)
Co do ataku npc-ta lub grupy npc-tów na inną gildie
Wpisujemy po dialogu:
    Wld_SetGuildAttitude (Instancja gildi,ATT_HOSTILE,instancja gildi jaka ma być atakowana);
   Wld_SetGuildAttitude (Instancja gildi,ATT_HOSTILE,instancja gildi jaka ma być atakowana);  // Tutaj naodwrót, aby ci drudzy atakowali tych pierwszych
    Npc_ExchangeRoutine       (Instancja npc który ma atakować, "nazwa rutyny");
Jeżeli chcecie zrobić grupę ludzi, która ma atakować to trzeba zmienić rutynę i stosunek każdemu z tych npc.

Jeżeli chodzi o atak jakiejś jednej postaci, która ma zabić(pobić) naszą postać
To wpisujemy po dialogu:
B_Attack (instancja NPC, który ma nas zaatkować, a jeżeli NPC z którym gadamy to wpisujemy self, other, AR_NONE,1);A żeby nas zabił to:
B_Attack (instancja NPC, który ma nas zaatkować, a jeżeli NPC z którym gadamy to wpisujemy self, other, AR_KILL, 1);
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy

RafalBudzis

Skrypt - ataku
#10 2012-03-31, 15:47(Ostatnia zmiana: 2012-03-31, 15:48)
Wld_SetGuildAttitude (...
Tu nie wpisujesz NPC tylko gildie !! dajesz jednym NPC gildie strażników 2 NPC dajesz gildie kopaczy czy chuj wie jaką potem zmieniasz nastawienie 2 gildii do siebie i już zrobione. :)  Rutyny musisz zmienić każdemu

Ravensword17

Ravensword17

Użytkownicy
posty35
Propsy3
  • Użytkownicy
Dzięki Rafal, nie zauważyłem i teraz już jest chyba wszystko w porządku.
A teraz jeszcze powiedz jak zrobić żeby jakiś NPC atakowała innnego NPC?
Wld_SetNpcAttitude?
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy

RafalBudzis

Skrypt - ataku
#12 2012-03-31, 19:10(Ostatnia zmiana: 2012-03-31, 19:11)
const c_npc postac1 = Hlp_getNPC(Instanca 1 NPC);//robisz zmienne dla 2 postaci
const c_npc postac2 = Hlp_getNPC(Instanca 2 NPC);

B_Attack (postac1, postac2, AR_KILL, 1);//a ataka wywołujesz tak samo tylko zamiast self i other robisz tak
B_Attack (postac2, postac1, AR_KILL, 1);

Ravensword17

Ravensword17

Użytkownicy
posty35
Propsy3
  • Użytkownicy
Rozumiem, dzięki. Raczej temat do zamknięcia
 


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