Gothic I - Szkielet łucznik/atrybuty za czytanie/ plik .d 6816 14

O temacie

Autor Forcini

Zaczęty 2.03.2014 roku

Wyświetleń 6816

Odpowiedzi 14

Forcini

Forcini

Użytkownicy
posty169
Propsy28
ProfesjaGracz
  • Użytkownicy
Witam. Wyjaśniam zatem mój problem.
pkt.1
Chciałbym sobie zrobić łucznika szkieleta z tego względu, że nie ma praktycznie jednostek dystansowych w Gothic I (wyłączając Magów Szkieletów i Orków Szamanów [tych to podczas akcji walki atakują ich współplemieńcy ;/ ]
Jednakże szukałem poradnika w tutorialach, znalazłem temat Nowy Potwór, ale nie było tam nic jak użyć modelu obecnego potwora, dozbroić go, i dodać umiejętność walki łukiem.
Prosiłbym w tej kwestii o pomoc.
pkt.2
W Gothic I są książki, nieliczne, które można czytać, jednakże nic nie wnoszą do gry...
Dlatego chciałem im dodać hmm ... Np. do księgi o runach poziomu I np. bonus mana+5 ...
Oczywiście ich ceny by rosły wraz z poziomem księgi bo wraz z nią bonus, ale to umiem zrobić akurat.
Chodzi mi tylko o bonus. Jak go dodać?
pkt.3
Ten punkt jest równie ważny...
Otóż, dodałem potworom troszkę więcej pż, dmg, i zmniejszyłem expa, a bohaterowi dałem na start umiejętność używania magi runicznej poziom I :) do tego że za lv dostaje się tylko 5 pkt życia, tak że na start po jednym ciosie młodego ścierwojada praktycznie jest się trupem.
No i chciałem zwiększyć moc niektórych czarów, tak aby działały adekwatnie do wzmocnionych potworów. Ok otwieram sobie za pomocą notatnika tzw. plik .d no i przerabiam wartość dmg czarów, jednakże nie mogę go zapisać ponieważ jest tylko do odczytu, a mogę zapisać jedynie w formacie txt co wcale mi nie ułatwia sprawy.
Jak mogę go zedytować i zapisać pomyślnie?

Z góry dziękuję za pomoc.

P.S.
Może uznacie to za lenistwo czy coś...
Ale czy ma ktoś może jakieś pojęcie o tym, czy jest może Texture Pack, który przerabia graficznie Górniczą Dolinę, na taką jakby jałową z Gothic II, ale zarazem zachowuje wszystkie lokacje? ...
 

Splash

Splash

Moderator
posty4212
Propsy3414
ProfesjaNierób
  • Moderator
1. W skrypcie szkieleta daj :
fight_tactic = FAI_HUMAN_RANGED;
2. W funkcji użycia książki daj :
B_RaiseAttribute (ATR_MANA_MAX, 5);
3. Prawym przyciskiem myszy na plik > właściwości > odznacz "tylko do odczytu".
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Forcini

Forcini

Użytkownicy
posty169
Propsy28
ProfesjaGracz
  • Użytkownicy
Hmm, czyli w przypadku szkieleta, wystarczy dodać mu tylko zatem łuk i strzały tak?
Zatem w tym dziękuję,
Co do ksiąg... To ważne, w którym miejscu bym to wstawiał?
Czy ma być na samym końcu? No i chyba tą samą frazę trzeba wstawić w PrintScreen'a ?
 

Splash

Splash

Moderator
posty4212
Propsy3414
ProfesjaNierób
  • Moderator
Cytuj
Hmm, czyli w przypadku szkieleta, wystarczy dodać mu tylko zatem łuk i strzały tak? 
I to co napisałem :ok:
Cytuj
Co do ksiąg... To ważne, w którym miejscu bym to wstawiał? Czy ma być na samym końcu? 
Jeśli chodzi o funkcję użycia książki to nie ma znaczenia.
Cytuj
o i chyba tą samą frazę trzeba wstawić w PrintScreen'a ?
PrintScreen jest w funkcji B_RaiseAttribute.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Forcini

Forcini

Użytkownicy
posty169
Propsy28
ProfesjaGracz
  • Użytkownicy
Z góry dzięki, jutro się tym pobawię na laptopie :)

Post połączony: 2014-03-03, 16:10
Wybaczcie, że robię double posta jednakże chcę by pan up widział że mam pewien kłopot.
Otóż zrobiłem tak:

PROTOTYPE Mst_Default_Skeleton(C_Npc)         
{
   name                     =   "Szkielet";
   guild                     =   GIL_SKELETON;
   //REAL ID IN INSTANZEN!
   level                     =   25;
//----------------------------------------------------------   
   attribute   [ATR_STRENGTH]      =   100;
   attribute   [ATR_DEXTERITY]      =   100;
   
   attribute   [ATR_HITPOINTS_MAX]   =   300;
   attribute   [ATR_HITPOINTS]      =   300;

   attribute   [ATR_MANA_MAX]       =   200;
   attribute   [ATR_MANA]          =   200;

   protection   [PROT_BLUNT]      =   35;
   protection   [PROT_EDGE]         =   50;
   protection   [PROT_POINT]      =   100; //SN:besonders resistent gegen Pfeile
   protection   [PROT_FIRE]         =   15;
   protection   [PROT_FLY]         =   0;
   protection   [PROT_MAGIC]      =   35;      
//----------------------------------------------------------
   damagetype                   =   DAM_EDGE;
//   damage      [DAM_INDEX_BLUNT]   =   0;
//   damage      [DAM_INDEX_EDGE]   =   0;
//   damage      [DAM_INDEX_POINT]   =   0;
//   damage      [DAM_INDEX_FIRE]   =   0;
//   damage      [DAM_INDEX_FLY]      =   0;
//   damage      [DAM_INDEX_MAGIC]   =   0;
//----------------------------------------------------------
   fight_tactic               =   FAI_HUMAN_RANGED;
//----------------------------------------------------------
   senses                  = SENSE_HEAR | SENSE_SEE | SENSE_SMELL;
   senses_range            = 3000;

   aivar[AIV_MM_Behaviour]      = PACKHUNTER;
   
   aivar[AIV_MM_PercRange]      = 2000;
   aivar[AIV_MM_DrohRange]      = 1500;
   aivar[AIV_MM_AttackRange]   = 1500;
   aivar[AIV_MM_DrohTime]      = 0;
   aivar[AIV_MM_FollowTime]   = 5;
   aivar[AIV_MM_FollowInWater] = FALSE;

Oraz

INSTANCE SkeletonScout      (Mst_Default_Skeleton)
   
{
   aivar[AIV_MM_REAL_ID]         =    ID_SKELETONSCOUT;
   aivar[AIV_MM_REAL_ID]         =    ID_SKELETONSCOUT;
   name                     =   "Szkielet zwiadowca";
   guild                     =   GIL_SKELETON;
   Set_SkeletonScout_Visuals();
   CreateInvItems (self, ItRw_Bow_Long_03, 1);
   CreateInvItems (self, ItAmArrow, 100);
   level               =   30;
   
   protection   [PROT_BLUNT]      =   50;
   protection   [PROT_EDGE]         =   80;
   protection   [PROT_POINT]      =   50;
   protection   [PROT_FIRE]         =   10;
   protection   [PROT_FLY]         =   0;
   protection   [PROT_MAGIC]      =   50;      

   fight_tactic   =   FAI_HUMAN_RANGED;
   
   //-------- Talente ----------

   Npc_SetTalentSkill (self, NPC_TALENT_BOW,1);
   Npc_SetTalentSkill (self, NPC_TALENT_1H,1);

No i właśnie...
Szkielet Scout powinien zatem używać łuku, a ten młot go nosi tylko na plecach i nie próbuje nim walczyć... leci na wroga na pięści.
Jak się w niego przełączam to mogę wyjąć łuk i go używać.
 

MajkeI

MajkeI

Użytkownicy
Front End Developer
posty698
Propsy169
Profesjabrak
  • Użytkownicy
  • Front End Developer
Spróbuj tak:
EquipItem (self, ItRw_Bow_Long_03);
P.S. Jeżeli dodajesz jeden przedmiot to użyj funkcji CreateInvItem.
 

Forcini

Forcini

Użytkownicy
posty169
Propsy28
ProfesjaGracz
  • Użytkownicy
No cóż...
Obecnie wygląda to tak :
func void Set_SkeletonScout_Visuals()
{
   Mdl_SetVisual         (self,   "HumanS.mds");
   Mdl_ApplyOverlayMds       (self, "Humans_bowt1.mds");
   //                        Body-Mesh      Body-Tex   Skin-Color   Head-MMS   Head-Tex   Teeth-Tex   ARMOR
   Mdl_SetVisualBody      (self,   "Ske_Body2",   DEFAULT,   DEFAULT,   "",         DEFAULT,     DEFAULT,   -1);


/*************************************************************************
**   Skeleton   Scout                                       **
*************************************************************************/

INSTANCE SkeletonScout      (Mst_Default_Skeleton)
   
{
   aivar[AIV_MM_REAL_ID]         =    ID_SKELETONSCOUT;
   aivar[AIV_MM_REAL_ID]         =    ID_SKELETONSCOUT;
   name                     =   "Szkielet Strzelec";
   guild                     =   GIL_SKELETON;
   Set_SkeletonScout_Visuals();
   
   EquipItem   (self, ItMw_1H_Sword_04);
   EquipItem    (self, ItRw_Bow_Long_03);
   CreateInvItems    (self, ItAmArrow, 100);
   
   level               =   30;
   
   protection   [PROT_BLUNT]      =   50;
   protection   [PROT_EDGE]         =   80;
   protection   [PROT_POINT]      =   50;
   protection   [PROT_FIRE]         =   10;
   protection   [PROT_FLY]         =   0;
   protection   [PROT_MAGIC]      =   50;   
//----------------------------------------------------------   
   damagetype                   =   DAM_EDGE;
//   damage      [DAM_INDEX_BLUNT]   =   0;
//   damage      [DAM_INDEX_EDGE]   =   0;
//   damage      [DAM_INDEX_POINT]   =   0;
//   damage      [DAM_INDEX_FIRE]   =   0;
//   damage      [DAM_INDEX_FLY]      =   0;
//   damage      [DAM_INDEX_MAGIC]   =   0;
//---------------------------------------------------------
//---------------------------------------------------------

   fight_tactic             = FAI_HUMAN_RANGED;
      self.aivar[AIV_IMPORTANT]   = TRUE;

//---------------------------------------------------------
   senses                  = SENSE_SEE|SENSE_HEAR|SENSE_SMELL;
   senses_range            = 3000;

   aivar[AIV_MM_Behaviour]      = HUNTER;
   
   aivar[AIV_MM_PercRange]      = 2000;
   aivar[AIV_MM_DrohRange]      = 1500;
   aivar[AIV_MM_AttackRange]   = 1500;
   aivar[AIV_MM_DrohTime]      = 0;
   aivar[AIV_MM_FollowTime]   = 5;
   aivar[AIV_MM_FollowInWater] = FALSE;
   
   
   //-------- Talente ----------

   Npc_SetTalentSkill (self, NPC_TALENT_BOW,2);


};


No i tak.
Szkielet wyciąga miecz, i stoi jak wryty, nawet nie raczy ścigać przeciwnika.
Można jednakże usłyszeć szelest trawy, tak jakby on się próbował poruszać, a tego nie mógł.
Ma ktoś jeszcze jakiś pomysł? Może to wina jeszcze innych skryptów, bo robię jedynie ustawienia tego w "MONSTER" , może gdzieś jeszcze muszę coś poprawić?
 

MajkeI

MajkeI

Użytkownicy
Front End Developer
posty698
Propsy169
Profesjabrak
  • Użytkownicy
  • Front End Developer
Po co mu miecz skoro ma strzelać z łuku? Wywal mu go. Spróbuj zmienić mu gildię na ludzką - jeśli wtedy będzie strzelać to znaczy że szkielet (jako gildia) po prostu nie może strzelać z łuku. Miałem tak z orkiem kiedyś.
Oczywiście nie jestem pewny więc próbuj, może do czegoś dojdziesz  :ok:
 

Forcini

Forcini

Użytkownicy
posty169
Propsy28
ProfesjaGracz
  • Użytkownicy
https://www.youtube.com/watch?v=T4VdpxB5sX0

Jako człowiek nie atakuje nikogo, zatem też nie to.
Przyjrzyj się temu filmikowi.

Post połączony: 2014-03-07, 19:48
No i jeszcze bym tak spytał...
Gdzie można dodać Fiskowi, by sprzedawał jeszcze inne zbroje prócz spodni?
 

Zucklov

Zucklov

Quest Pack Team
Sztywniutko
posty1220
Propsy1241
ProfesjaSkrypter
  • Quest Pack Team
  • Sztywniutko
W dialogu Fiska. Musisz dodać opcję kupienia interesującej cię zbroi, dodać funkcję dawania pancerza i płacenia rudą.
 
Lieb Vaterland magst ruhig sein

Forcini

Forcini

Użytkownicy
posty169
Propsy28
ProfesjaGracz
  • Użytkownicy
No znalazłem dziękuję :) ale niestety aż tak się nie znam, więc dam chyba sobie z tym spokój :wstyd:
W poradnikach nie ma nic na temat handlu zbrojami :o
Czy chciałby ktoś emmmm namacalniej mi to wyjaśnić, lub dać wzór?  ;o
Przerobiłem pod względem statystyk, ceny Zbroję Straży Królewskiej, no i dałem Fiskowi ją do ekwipunku w nadziei że da się ją normalnie kupić... no mój błąd :)

JAK COŚ SZKIELET ŁUCZNIK DALEJ POTRZEBUJE POMOCY :)
 

Zucklov

Zucklov

Quest Pack Team
Sztywniutko
posty1220
Propsy1241
ProfesjaSkrypter
  • Quest Pack Team
  • Sztywniutko
Nie lubię dawać gotowych funkcji, bo tak się niczego nie uczy. Podejrzyj opcje kupowania spodni kopacza i analogicznie zrób swoją. Możesz nawet kopiować gotowe funkcje zamieniając tylko instancję pancerza.
 
Lieb Vaterland magst ruhig sein

Forcini

Forcini

Użytkownicy
posty169
Propsy28
ProfesjaGracz
  • Użytkownicy
No dobra, zatem mam np takie coś u niego już:
   Info_Addchoice (Stt_311_Fisk_ARMOR,B_BuildBuyArmorString(NAME_FiskDiggers,VALUE_VLK_ARMOR_M),Stt_311_Fisk_ARMOR_M);
Tylko skąd to coś w nawiasie się tam wzięło, gdzie takie coś znaleźć by przerobić?

Wogóle musiałbym dodać/ zmienić dialog z tą zbroją
tak jak nie rozumiem :
AI_Output      (self,   other,   "Stt_311_Fisk_ARMOR_L_Info_12_03"); //Dobry wybór!
jak i resztę z tego dialogu...

Chyba, że zrobię tak jak to zrozumiałem, zamiast spodni np. lekkich podmienię tylko by dawał ten pancerz, oczywiście za prawidłową cenę.
 

MajkeI

MajkeI

Użytkownicy
Front End Developer
posty698
Propsy169
Profesjabrak
  • Użytkownicy
  • Front End Developer
   Info_Addchoice (Stt_311_Fisk_ARMOR,B_BuildBuyArmorString(NAME_FiskDiggers,VALUE_VLK_ARMOR_M),Stt_311_Fisk_ARMOR_M);
Dodaje opcję w czasie dialogu Stt_311_Fisk_ARMOR 

 - B_BuildBuyArmorString(NAME_FiskDiggers,VALUE_VLK_ARMOR_M) - to wywołanie funkcji (tworzy napis)
 - Stt_311_Fisk_ARMOR_M - nazwa opcji dialogu.

Są to podstawowe rzeczy - jeśli ich nie rozumiesz to zajrzyj do tutoriali, na pewno coś tam jest.
 

Forcini

Forcini

Użytkownicy
posty169
Propsy28
ProfesjaGracz
  • Użytkownicy
Zrobiłem.
Co do Łucznika też jest, ale używam kuszy, no i jest ten szkielet jakby człowiekiem - bandytą ROGUE.
Teraz muszę tylko zrobić by ROGUE i szkielety się nie biły wzajemnie.
 


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