Gothic 1 NPC zaatakuje innego NPC po dialogu. 6366 14

O temacie

Autor Namiot

Zaczęty 28.10.2013 roku

Wyświetleń 6366

Odpowiedzi 14

Namiot

Namiot

Użytkownicy
posty399
Propsy48
ProfesjaGracz
  • Użytkownicy
Witam, szukałem na forum tego i znalazłem tylko co zrobić żeby postać zaatakowała po dialogu bohatera. Proszę o pomoc w Gothic 1. Co zrobić/wpisać żeby po rozmowie Pan X rzucił się na Pana Y.
 

MajkeI

MajkeI

Użytkownicy
Front End Developer
posty698
Propsy169
Profesjabrak
  • Użytkownicy
  • Front End Developer
Nie za bardzo wiem o co ci chodzi, ale atak npc po rozmowie w g1 to:
Npc_SetTarget (self, other);
AI_StartState (self, ZS_ATTACK, 1, "");
a z dobiciem dodajesz to:
    Npc_SetPermAttitude (self, ATT_HOSTILE);
P.S. następnym razem wysil się troszkę i poszukaj trochę, na pewno byś znalazł ;D
 

Remix

Remix

Użytkownicy
Murzyn Internetów :O
posty291
Propsy41
ProfesjaProgramista
  • Użytkownicy
  • Murzyn Internetów :O
@UP To jest atak na gracza a mu chodzi by jakiś NPC zaatakował jakiegoś innego NPC...
 
https://www.youtube.com/watch?v=TNdy0ea6gc4

MajkeI

MajkeI

Użytkownicy
Front End Developer
posty698
Propsy169
Profesjabrak
  • Użytkownicy
  • Front End Developer
Oto jak Cipher atakuje Dara
   B_Attack (self, Dar, AR_NONE, 0);
"Dar" jest wpisany w NPC_Globalsvar C_NPC Dar;
Dar = Hlp_GetNpc(Sld_810_Dar);
można spróbować wpisać swojego npca tam, ale nie wiem czy to zadziała w g1
 

Namiot

Namiot

Użytkownicy
posty399
Propsy48
ProfesjaGracz
  • Użytkownicy
Dopisałem swojego NPC do Story_globals i zrobiłem tak pod dialogiem

AI_StartState (self, Rzeźnik, AR_NONE, 0);

Przy parsowaniu skryptów wyskakuje unknown identifier  AR_NONE

Szukam cały czas na necie odpowiedzi i nie mogę znależć. Już nawet znalazłem co zrobić zeby inni NPC poszli do wskazanego miejsca po dialogu.
 


Namiot

Namiot

Użytkownicy
posty399
Propsy48
ProfesjaGracz
  • Użytkownicy
Udało mi się tylko uśmiercić npc po dialogu używając komendy. Narazie musi mi wystarczyć, jeszcze będę rozwijał swoje umiejętności modowania, więc prędzej czy później dowiem się co jak zrobić.

B_KillNpc         (instancja);
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
Jesli chcesz zeby atakowal kogos to napisz tak:
var c_npc pan_y; pan_y = Hlp_GetNpc(tu_wstaw_instancje_npc_pana_y);
var c_npc pan_x; pan_x = Hlp_GetNpc(tu_wstaw_instancje_npc_pana_x);
Cytuj
    Npc_SetPermAttitude (pan_y, ATT_HOSTILE);
    Npc_SetTarget (pan_y, pan_x);
    AI_StartState (pan_y, ZS_ATTACK, 1, "");
I to cała filozofia... to jest z dobijaniem, a jak chcesz bez to usun  Npc_SetPermAttitude (pan_y, ATT_HOSTILE);
Jak cos to wstawiasz to po AI_StopProcessInfos(self);

Namiot

Namiot

Użytkownicy
posty399
Propsy48
ProfesjaGracz
  • Użytkownicy
Zrobiłem w ten sposób

Cytuj
   var c_npc Attack; Attack = Hlp_GetNpc(GUR_3000_Attack);
   var c_npc Obrona; Obrona = Hlp_GetNpc(GUR_6666_Obrona);
   AI_StopProcessInfos(self);
    Npc_SetPermAttitude (Attack, ATT_HOSTILE);
    Npc_SetTarget (Attack, Obrona);
    AI_StartState (Attack, ZS_ATTACK, 1, "");

Niestety Pan Attack po pokonaniu Obrony nie dobija go, a przerzuca się na mnie i zabija. Gdzie leży błąd?
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
Z tego co ja tu widzę to wszystko jest dobrze... może wklej cały dialog(jeśli nie sprawi Ci to problemu) albo wyślij na pw to będzie łatwiej zdiagnozować problem.


chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio

chicken
RaveN Studio

Gothic 1 NPC zaatakuje innego NPC po dialogu.
#11 2013-11-01, 09:49(Ostatnia zmiana: 2013-11-01, 10:16)
[code[Npc_SetPermAttitude (Attack, ATT_HOSTILE);
Cytuj
Przecież to jest właśnie od tego żeby npc atakował postać gracza (i zabijał). Po co to dałeś, jeśli tego nie chcesz?
Czy jesteś tego pewny? Ona odpowiada za nastawienie nie za atak... więc nie wiem czemu to Ci się nie podoba.
A co do tematu... to moze zrob tak:
FUNC VOID DIA_GUR_3000_Attack_Witaj_Info()
{
var c_npc Attack; Attack = Hlp_GetNpc(GUR_3000_Attack);
var c_npc Obrona; Obrona = Hlp_GetNpc(GUR_6666_Obrona);
AI_TurnToNpc(Attack, Obrona);
AI_Output (self ,other,"DIA_GUR_3000_Attack_Witaj_01_00"); //Wszedłeś na nasz teren.
AI_Output (self,other ,"DIA_GUR_3000_Attack_Witaj_01_01"); //Nie martw się, zdąrzysz to sobie dobrze przemyśleć.
AI_StopProcessInfos(self);
Wld_SetGuildAttitude(GIL_SLD, ATT_HOSTILE, GIL_GUR);
Wld_SetGuildAttitude(GIL_GUR, ATT_HOSTILE, GIL_SLD);
};

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Cytat: chicken
Kod: [Zaznacz][code[Npc_SetPermAttitude (Attack, ATT_HOSTILE);CytujPrzecież to jest właśnie od tego żeby npc atakował postać gracza (i zabijał). Po co to dałeś, jeśli tego nie chcesz?Czy jesteś tego pewny? Ona odpowiada za nastawienie nie za atak... więc nie wiem czemu to Ci się nie podoba.
A co do tematu... to moze zrob tak:
Kod: [Zaznacz]FUNC VOID DIA_GUR_3000_Attack_Witaj_Info()
{
   var c_npc Attack; Attack = Hlp_GetNpc(GUR_3000_Attack);
   var c_npc Obrona; Obrona = Hlp_GetNpc(GUR_6666_Obrona);
   AI_TurnToNpc(Attack, Obrona);
   AI_Output (self ,other,"DIA_GUR_3000_Attack_Witaj_01_00"); //Wszedłeś na nasz teren.
   AI_Output (self,other ,"DIA_GUR_3000_Attack_Witaj_01_01"); //Nie martw się, zdąrzysz to sobie dobrze przemyśleć.
   AI_StopProcessInfos(self);
Wld_SetGuildAttitude(GIL_SLD, ATT_HOSTILE, GIL_GUR);
Wld_SetGuildAttitude(GIL_GUR, ATT_HOSTILE, GIL_SLD);
};

To powiedz nam, co chcesz osiągnąć? Nie podoba ci się, że NPC rzuca się na Ciebie i Cię morduje, to ATT_HOSTILE musisz wywalić... 
ATT_HOSTILE = wrogie nastawienie do GRACZA... Jeśli chcesz, żeby dany NPC zamordował innego, musisz wpisać to do odpowiedniej funkcji, ALBO zrobić takową.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Cytuj
Npc_SetPermAttitude (Attack, ATT_HOSTILE);
Cytuj
Przecież to jest właśnie od tego żeby npc atakował postać gracza (i zabijał). Po co to dałeś, jeśli tego nie chcesz?
Czy jesteś tego pewny? Ona odpowiada za nastawienie nie za atak... więc nie wiem czemu to Ci się nie podoba.
Ustawia nastawienie na wrogie wobec postaci gracza, czego jedynym i bezpośrednim skutkiem jest właśnie to że ją atakuje i zabija. Mylisz nastawienie wobec gracza z nastawieniem wobec npc. Do zmiany tego drugiego trzeba by użyć systemu gildii. Właśnie ta pomyłka jest przyczyną tego o czym napisał autor tematu:
Cytuj
Niestety Pan Attack po pokonaniu Obrony nie dobija go, a przerzuca się na mnie i zabija. Gdzie leży błąd?

Namiot

Namiot

Użytkownicy
posty399
Propsy48
ProfesjaGracz
  • Użytkownicy
Cytuj
UNC VOID DIA_GUR_3000_Attack_Witaj_Info()
{
   var c_npc Attack; Attack = Hlp_GetNpc(GUR_3000_Attack);
   var c_npc Obrona; Obrona = Hlp_GetNpc(GUR_6666_Obrona);
   AI_TurnToNpc(Attack, Obrona);
   AI_Output (self ,other,"DIA_GUR_3000_Attack_Witaj_01_00"); //Wszedłeś na nasz teren.
   AI_Output (self,other ,"DIA_GUR_3000_Attack_Witaj_01_01"); //Nie martw się, zdąrzysz to sobie dobrze przemyśleć.
   AI_StopProcessInfos(self);
Wld_SetGuildAttitude(GIL_SLD, ATT_HOSTILE, GIL_GUR);
Wld_SetGuildAttitude(GIL_GUR, ATT_HOSTILE, GIL_SLD);
};

To jest jak najbardziej poprawne. Npc Attack zabija Obronę i nie rzuca się do walki na bohatera. W przyszłości miałbym jeszcze jedno pytanie, ale to w przyszłości jak mój skromny mod będzie "większy". Dzięki za konkrętną pomoc.
 


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