Umiejętności NPC'a 4977 15

O temacie

Autor misiekgrabo

Zaczęty 9.12.2010 roku

Wyświetleń 4977

Odpowiedzi 15

misiekgrabo

misiekgrabo

Użytkownicy
posty179
Propsy106
  • Użytkownicy

misiekgrabo

Umiejętności NPC'a
2010-12-09, 09:02(Ostatnia zmiana: 2010-12-09, 10:06)
Mam taki problem, szukałem w opcji "Szukaj" ale nie znalazłem. Mianowicie problem polega na tym że nie wiem jak zrobić Umiejętność NPC'a taką jak skradanie i obdzieranie skór ze zwierząt. Może mi ktoś pomóc?

EDIT: I przy okazji mam jeszcze jeden problem. Chcę zrobić w dialog - taki że jak się otwiera jakąś sakiewkę to wyskakują dialogi "Otwórz jedną sakiewkę", "Otwórz dwie sakiewki", "Otwórz trzy sakiewki", "Otwórz pięć sakiewek" i "Otwórz wszystkie sakiewki". Jak to zrobić? Chodzi mi przede wszystkim o to jak zrobić opcje dialogowe po użyciu przedmiotu?
 
Ale tam, gdzie stanął Adanos, ani Innos, ani Beliar nie mieli żadnej władzy. W miejscu tym ład i chaos współistniały w harmonii. Tak oto powstało morze.



Zapomnij... o wszystkim, co się działo w przeszłości.

luszczak

luszczak

Użytkownicy
posty122
Propsy9
  • Użytkownicy

luszczak

Umiejętności NPC'a
#1 2010-12-09, 16:28(Ostatnia zmiana: 2010-12-09, 16:28)
Rzuć okiem na to:
http://themodders.org/index.php?/topic/81-tworzenie-npc/
Przejdź do content/Story/NPC_Scripts i otwórz
B_GiveNpcTalents.d
Tam masz całą listę talentów.
 

misiekgrabo

misiekgrabo

Użytkownicy
posty179
Propsy106
  • Użytkownicy

misiekgrabo

Umiejętności NPC'a
#2 2010-12-10, 08:04(Ostatnia zmiana: 2010-12-10, 08:08)
Cytat: luszczak link=topic=12237.msg122742#msg122742#msg122742#msg122742 date=1291908515
Rzuć okiem na to:
http://themodders.org/index.php?/topic/81-tworzenie-npc/
Przejdź do content/Story/NPC_Scripts i otwórz
B_GiveNpcTalents.d
Tam masz całą listę talentów.

Zrobiłem tak jak ty powiedziałeś - masz rację. Zapomniałem napisać że to do G2NK. Ale do rzeczy - Skradanie zrobiłem(przekopiowałem talent skradania i slf zamieniłem na self), tylko że przekopiowałem talent:

   Npc_SetTalentSkill   (slf, NPC_TALENT_TAKEANIMALTROPHY,   0);

i zamieniłem 0 na 1 - potem zreparsowałem skrypty, udpadowałem, zrobiłem paczkę z plikami OU.bin, GOTHIC.dat i innymi plikamy(światem), zrobiłem plik .ini i włączyłem grę. Skradanie działało tylko że obdzieranie skór ze zwierząt - nie, zabiłem wilka ale nie mogłem zabrać jego skóry. Ale w umiejętnościach, kliknięcie klawisza było tam zaznaczone zbieranie trofeów zwierząt. Potem zamieniłem w skrypcie na 0 i znów zrobiłem wszystko inne(reparsowanie, udpadowanie, tworzenie paczki). I teraz gdy włączyłem grę to wcale nie było w umiejętności zbieranie trofeów. Rozwiążcie ten problem i problem z sakiewką wyżej...please.
 
Ale tam, gdzie stanął Adanos, ani Innos, ani Beliar nie mieli żadnej władzy. W miejscu tym ład i chaos współistniały w harmonii. Tak oto powstało morze.



Zapomnij... o wszystkim, co się działo w przeszłości.

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Cytuj
Npc_SetTalentSkill (slf, NPC_TALENT_TAKEANIMALTROPHY, 0);
i zamieniłem 0 na 1 - potem zreparsowałem skrypty, udpadowałem, zrobiłem paczkę z plikami OU.bin, GOTHIC.dat i innymi plikamy(światem), zrobiłem plik .ini i włączyłem grę. Skradanie działało tylko że obdzieranie skór ze zwierząt - nie, zabiłem wilka ale nie mogłem zabrać jego skóry. Ale w umiejętnościach, kliknięcie klawisza było tam zaznaczone zbieranie trofeów zwierząt. Potem zamieniłem w skrypcie na 0 i znów zrobiłem wszystko inne(reparsowanie, udpadowanie, tworzenie paczki). I teraz gdy włączyłem grę to wcale nie było w umiejętności zbieranie trofeów.
Co znaczy udpadowałem? Ale do rzeczy: Npc_SetTalentSkill (slf, NPC_TALENT_TAKEANIMALTROPHY, 0); nie oznacza umiejętności zdzierania skór ze zwierząt, tylko zbieranie trofeów... Dokładniej to ta cyferka na końcu oznacza, jakie trofea może zdzierać gracz. 0 oznacza zęby/kły. 2 oznacza futra. Zamiast cyferek możesz wpisać jedną z poniższych stałych:
const int TROPHY_Teeth = 0;
const int TROPHY_Claws = 1;
const int TROPHY_Fur = 2;
const int TROPHY_Heart = 3;
const int TROPHY_ShadowHorn = 4;
const int TROPHY_FireTongue = 5;
const int TROPHY_BFWing = 6;
const int TROPHY_BFSting = 7;
const int TROPHY_Mandibles = 8;
const int TROPHY_CrawlerPlate = 9;
const int TROPHY_DrgSnapperHorn = 10;
const int TROPHY_DragonScale = 11;
const int TROPHY_DragonBlood = 12;
const int TROPHY_ReptileSkin = 13;

misiekgrabo

misiekgrabo

Użytkownicy
posty179
Propsy106
  • Użytkownicy

misiekgrabo

Umiejętności NPC'a
#4 2010-12-10, 10:42(Ostatnia zmiana: 2010-12-10, 10:44)
Cytat: Adanos link=topic=12237.msg122837#msg122837#msg122837#msg122837 date=1291972715
Co znaczy udpadowałem? Ale do rzeczy: Npc_SetTalentSkill (slf, NPC_TALENT_TAKEANIMALTROPHY, 0); nie oznacza umiejętności zdzierania skór ze zwierząt, tylko zbieranie trofeów... Dokładniej to ta cyferka na końcu oznacza, jakie trofea może zdzierać gracz. 0 oznacza zęby/kły. 2 oznacza futra. Zamiast cyferek możesz wpisać jedną z poniższych stałych:
const int TROPHY_Teeth = 0;
const int TROPHY_Claws = 1;
const int TROPHY_Fur = 2;
const int TROPHY_Heart = 3;
const int TROPHY_ShadowHorn = 4;
const int TROPHY_FireTongue = 5;
const int TROPHY_BFWing = 6;
const int TROPHY_BFSting = 7;
const int TROPHY_Mandibles = 8;
const int TROPHY_CrawlerPlate = 9;
const int TROPHY_DrgSnapperHorn = 10;
const int TROPHY_DragonScale = 11;
const int TROPHY_DragonBlood = 12;
const int TROPHY_ReptileSkin = 13;

Udpade oznacza tak: Włączasz spacer, w poziomym pasku jest taki "notatnik", klikasz w niego, jedno okno ci się zamienia, jest tam udpade, save itp. Więc to jest takie "zrobienie OU.BIN, OU.CSL i GOTHIC.DAT. Ale dzięki. Pomogłeś - dostajesz propsa :)

EDIT: Możecie jeszcze pomóc z tym?:

Cytuj
I przy okazji mam jeszcze jeden problem. Chcę zrobić w dialog - taki że jak się otwiera jakąś sakiewkę to wyskakują dialogi "Otwórz jedną sakiewkę", "Otwórz dwie sakiewki", "Otwórz trzy sakiewki", "Otwórz pięć sakiewek" i "Otwórz wszystkie sakiewki". Jak to zrobić? Chodzi mi przede wszystkim o to jak zrobić opcje dialogowe po użyciu przedmiotu?
 
Ale tam, gdzie stanął Adanos, ani Innos, ani Beliar nie mieli żadnej władzy. W miejscu tym ład i chaos współistniały w harmonii. Tak oto powstało morze.



Zapomnij... o wszystkim, co się działo w przeszłości.

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja

Adanos
Administrator

Umiejętności NPC'a
#5 2010-12-10, 14:20(Ostatnia zmiana: 2010-12-11, 20:40)
Cytuj
Udpade oznacza tak: Włączasz spacer, w poziomym pasku jest taki "notatnik", klikasz w niego, jedno okno ci się zamienia, jest tam udpade, save itp. Więc to jest takie "zrobienie OU.BIN, OU.CSL i GOTHIC.DAT. Ale dzięki. Pomogłeś - dostajesz propsa :)
Jak już co to jest tam update, czyli aktualizowanie. Sorry, że się czepiam, ale później każdy pisze jak mu się podoba i czasami trudno jest zrozumieć o co chodzi i trzeba poświęcić trochę czasu na to.

Cytuj
I przy okazji mam jeszcze jeden problem. Chcę zrobić w dialog - taki że jak się otwiera jakąś sakiewkę to wyskakują dialogi "Otwórz jedną sakiewkę", "Otwórz dwie sakiewki", "Otwórz trzy sakiewki", "Otwórz pięć sakiewek" i "Otwórz wszystkie sakiewki". Jak to zrobić? Chodzi mi przede wszystkim o to jak zrobić opcje dialogowe po użyciu przedmiotu?
Tam gdzie jest skrypt odpowiadający za otwarcie sakiewki (czyli w katalogu Items) dopisz jakąś zmienną np. otwarcie_sakiewki=1; i napisz normalny dialog tyle, że NPC będzie nasz PC_Hero, a warunkiem będzie if otwarcie_sakiewki==1
{
   return 1;
};
Opcje important i permanent ustaw na 1. Przy kończeniu dialogu wyzeruj zmienną otwarcie_sakiewki. Reszta jest już chyba oczywista...

misiekgrabo

misiekgrabo

Użytkownicy
posty179
Propsy106
  • Użytkownicy

misiekgrabo

Umiejętności NPC'a
#6 2010-12-10, 14:52(Ostatnia zmiana: 2010-12-10, 15:50)
Mam jeszcze jeden problem(no niestety - z monologiem), mianowicie - Zrobiłem monolog nazwa - Szafka.d. Oto jego skrypt:


Cytuj
FUNC VOID SZAFKA_S1 ()
{
   var C_NPC her;    her = Hlp_GetNpc(PC_Aero);
   
   if  (Hlp_GetInstanceID(self)==Hlp_GetInstanceID(her))
   {   
      self.aivar[AIV_INVINCIBLE]=TRUE;
      PLAYER_MOBSI_PRODUCTION   =   MOBSI_SZAFKA;
      Ai_ProcessInfos (her);
   };
};

INSTANCE PC_Szafka_End (C_Info)
{
   npc            = PC_Hero;
   nr            = 999;
   condition      = PC_Szafka_End_Condition;
   information      = PC_Szafka_End_Info;
   permanent      = TRUE;
   description      = DIALOG_ENDE;
};

FUNC INT PC_Szafka_End_Condition ()
{
   if (PLAYER_MOBSI_PRODUCTION == MOBSI_SZAFKA)
   {   
      return TRUE;
   };
};

FUNC VOID PC_Szafka_End_Info()
{

   B_ENDPRODUCTIONDIALOG ();

};

instance PC_Szafka_Pancerz (C_INFO)
{
   npc            = PC_Aero;
   condition      = PC_Szafka_Pancerz_Condition;
   information      = PC_Szafka_Pancerz_Info;
   important      = 0;
   permanent      = 1;
   description      = "Stwórz pancerz";
};

FUNC INT PC_Szafka_Pancerz_Condition()
{
   if (PLAYER_MOBSI_PRODUCTION   ==   MOBSI_SZAFKA)
   {
      return 1;
   };
};
func VOID PC_Szafka_Pancerz_Info()
{

    AI_Output (self, other, "DIA_Szafka_Pancerz_15_01");//Hmm...Jaki by tu stworzyć pancerz?...
    Info_AddChoice      (DIA_Szafka_Pancerz, "WRÓĆ", DIA_Szafka_Pancerz_WROC);
    Info_AddChoice      (DIA_Szafka_Pancerz, "Stwórz pancerz ze skór wilków(9 skór).", DIA_Szafka_Pancerz_wolflekki);

};

func VOID PC_Szafka_Pancerz_WROC()
{

    Info_ClearChoices      (DIA_Szafka_Pancerz_WROC);

};

func VOID PC_Szafka_Pancerz_wolflekki()
{

    if (Npc_HasItems (hero, ItAt_WolfFur) >=9)
    {
    AI_Output (self, other, "DIA_Szafka_Pancerz_15_01");//Stworzyłem pancerz!
    Npc_RemoveinvItems(hero, ItAt_WolfFur, 9);
    Createinvitems(hero, ITAR_Leather_Addon, 1);
    Info_ClearChoices      (DIA_Szafka_Pancerz_wolflekki);
    }
    else
    {
        AI_Output (self, other, "DIA_Szafka_Pancerz_15_01");//Nie mam na to skór! Potrzeba 9 skór wilków!
    };
    Info_ClearChoices      (DIA_Szafka_Pancerz_WROC);

};

No i nie wiem gdzie wstawić tego MOBSI_SZAFKA, szukałem, ale nie znalazłem w skryptach, szukałem w tutkach i innych problemach - nie znalazłem. Proszę o szybką odpowiedź. I dobrą.

EDIT: Zamieniłem skrypt bo było kilka błędów. Mam teraz trzy błędy pt. Unkown Indefiner MOBSI_SZAFKA i jeden błąd DIA_Szafka_Pancerz, o co chodzi z tym drugim błędem? Gdzie on jest bo mi linijki nie wyświetliło? A ten pierwszy błąd to co trzeba zrobić?
 
Ale tam, gdzie stanął Adanos, ani Innos, ani Beliar nie mieli żadnej władzy. W miejscu tym ład i chaos współistniały w harmonii. Tak oto powstało morze.



Zapomnij... o wszystkim, co się działo w przeszłości.

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
W stałych musisz zdefiniować tą stałą C:\Program Files\JoWood\Gothic II\_work\Data\Scripts\Content\_intern\Constants.d

Cytuj
jeden błąd DIA_Szafka_Pancerz, o co chodzi z tym drugim błędem?
Bo nie masz czegoś takiego jak DIA_Szafka_Pancerz, tylko PC_Szafka_Pancerz.

misiekgrabo

misiekgrabo

Użytkownicy
posty179
Propsy106
  • Użytkownicy
Cytat: Adanos link=topic=12237.msg122905#msg122905#msg122905#msg122905 date=1292001575
W stałych musisz zdefiniować tą stałą C:\Program Files\JoWood\Gothic II\_work\Data\Scripts\Content\_intern\Constants.d


Bo nie masz czegoś takiego jak DIA_Szafka_Pancerz, tylko PC_Szafka_Pancerz.

Drugi problem rozwiązałem sam, a pierwszy źle podałeś, naszukałem się w tym pliku, lecz nie znalazłem, potem poszukałem gdzie indziej - w AI/AI_Intern/AI_Constants i tam było :)  Więc rozwiązałem sam oba problemy, ale mam jeszcze jeden problem...mianowicie z moim pierwszym problemem na początku - obdzieraniem skór zwierząt, dałem na 2, tak jak napisałeś itp. Zreparsowałem skrypty z Updatowałem(Update w spacerze!!) no więc - spakowałem paczkę z modem i...facet mi nie obdziera skór... Przeczytałem jeszcze w pliku Constants.d że 14 to jest WSZYSTKIE umiejętności zbierania trofeuów więc to dałem...znowu wszystko zrobiłem i...nie działa mi... Macie tutaj skrypt NPC#msg122905#msg122905#msg122905#msg122905 date=1292001575]
W stałych musisz zdefiniować tą stałą C:\Program Files\JoWood\Gothic II\_work\Data\Scripts\Content\_intern\Constants.d


Bo nie masz czegoś takiego jak DIA_Szafka_Pancerz, tylko PC_Szafka_Pancerz.
[/quote]

Drugi problem rozwiązałem sam, a pierwszy źle podałeś, naszukałem się w tym pliku, lecz nie znalazłem, potem poszukałem gdzie indziej - w AI/AI_Intern/AI_Constants i tam było :)  Więc rozwiązałem sam oba problemy, ale mam jeszcze jeden problem...mianowicie z moim pierwszym problemem na początku - obdzieraniem skór zwierząt, dałem na 2, tak jak napisałeś itp. Zreparsowałem skrypty z Updatowałem(Update w spacerze!!) no więc - spakowałem paczkę z modem i...facet mi nie obdziera skór... Przeczytałem jeszcze w pliku Constants.d że 14 to jest WSZYSTKIE umiejętności zbierania trofeuów więc to dałem...znowu wszystko zrobiłem i...nie działa mi... Macie tutaj skrypt NPCa:

instance PC_aero (NPC_DEFAULT)
{
// ------ SC ------
name   = "Daniel";
guild  = GIL_NONE;
id   = 0;
voice  = 15;
level  = 5;
Npctype  = NPCTYPE_MAIN;

   //***************************************************
   bodyStateInterruptableOverride    = TRUE;
   //***************************************************

// ------ XP Setup ------
exp    = 0;
exp_next  = 500;
lp    = 0;

// ------ Attribute ------
attribute[ATR_STRENGTH]   = 25;
attribute[ATR_DEXTERITY]   = 15;
attribute[ATR_MANA_MAX]   = 10;
attribute[ATR_MANA]    = 10;
attribute[ATR_HITPOINTS_MAX] = 80;
attribute[ATR_HITPOINTS]   = 80;

// ------ visuals ------
//B_SetNpcVisual   (self, MALE, "Hum_Head_Pony", FACE_N_Player, BodyTex_N, NO_ARMOR);

Mdl_SetVisual (self,"HUMANS.MDS");
// ------ Visual ------ "body_Mesh",  bodyTex   SkinColor headMesh,   faceTex,  teethTex, armorInstance
Mdl_SetVisualBody (self, "hum_body_Naked0", 9,    0,   "Hum_Head_Pony",  FACE_N_Player, 0,    NO_ARMOR);

// ------ Kampf-Talente ------

   Npc_SetTalentSkill   (hero, NPC_TALENT_TAKEANIMALTROPHY,   14);
   Npc_SetTalentSkill   (hero, NPC_TALENT_SNEAK,          1);
   B_SetFightSkills (self, 20);

//-------- inventory --------


};


To jest taki PC_Hero więc nie potrzebuje rutyny, poprawcie jak jest błąd przy talencie TAKEANIMALTROPHY bo nie działa żadne zbieranie trofeów!! Skór wilków, pazurów - nic!!
 
Ale tam, gdzie stanął Adanos, ani Innos, ani Beliar nie mieli żadnej władzy. W miejscu tym ład i chaos współistniały w harmonii. Tak oto powstało morze.



Zapomnij... o wszystkim, co się działo w przeszłości.

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Cytuj
Przeczytałem jeszcze w pliku Constants.d że 14 to jest WSZYSTKIE umiejętności zbierania trofeuów więc to dałem
14 to akurat rozmiar tablicy i nic więcej.

Skradanie ci działa?

misiekgrabo

misiekgrabo

Użytkownicy
posty179
Propsy106
  • Użytkownicy

misiekgrabo

Umiejętności NPC'a
#10 2010-12-12, 20:34(Ostatnia zmiana: 2010-12-12, 20:40)
Cytat: Adanos link=topic=12237.msg123063#msg123063#msg123063#msg123063 date=1292097348
14 to akurat rozmiar tablicy i nic więcej.

Skradanie ci działa?

skradanie działa, ale obdzieranie skór z wilków - nie.

No to pomoże ktoś z tym czy nie? Bo nie odkryłem rozwiązania.

NO TO WIĘC POMOŻE KTOŚ CZY NIE?!?!?!

EDIT: Ojejku, przepraszam za double posting, chciałem zedytować post :(
 
Ale tam, gdzie stanął Adanos, ani Innos, ani Beliar nie mieli żadnej władzy. W miejscu tym ład i chaos współistniały w harmonii. Tak oto powstało morze.



Zapomnij... o wszystkim, co się działo w przeszłości.

misiekgrabo

misiekgrabo

Użytkownicy
posty179
Propsy106
  • Użytkownicy
Rozwiązałem problem - temat można zamknąć. :)
 
Ale tam, gdzie stanął Adanos, ani Innos, ani Beliar nie mieli żadnej władzy. W miejscu tym ład i chaos współistniały w harmonii. Tak oto powstało morze.



Zapomnij... o wszystkim, co się działo w przeszłości.


misiekgrabo

misiekgrabo

Użytkownicy
posty179
Propsy106
  • Użytkownicy
Cytat: Adanos link=topic=12237.msg123325#msg123325#msg123325#msg123325 date=1292258899
A co było źle?

Coś tam było źle...ale problem rozwiązany! Jeśli chcesz bym ci to podał to pisz na PW.
 
Ale tam, gdzie stanął Adanos, ani Innos, ani Beliar nie mieli żadnej władzy. W miejscu tym ład i chaos współistniały w harmonii. Tak oto powstało morze.



Zapomnij... o wszystkim, co się działo w przeszłości.

Thinker

Thinker

Użytkownicy
posty76
Propsy4
  • Użytkownicy
Przyda się, żebyś napisał, bo jak jakiś człowiek będzie miał podobny problem, to sobie znajdzie twój temat i zrobi :]
 
http://gothicwarsteam.pl/ - Tutaj znajdziesz nasze modyfikacje. Nie jest ich wiele, ale pracujemy nad wieloma ^^

----

Było by dla ciebie lepiej, gdybyś tego nie zrobił!

----

To może tak - twój ojciec zabawiał się z Lordem Hagenem!

----

Patrz, chrząszcz!

----

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
To jest odpowiedź:
PLAYER_TALENT_TAKEANIMALTROPHY[TROPHY_Fur] = TRUE;


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