Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Pokaż wątki - StarFighter

Strony: [1]
1
Skrypty / Problemy postaci z zagadywaniem
« dnia: 2010-08-02, 09:23 »
Mam taki bardzo dziwny problem.
Robię skrypt dialogu - postać ma sama zagadywać (i warunek dla tego żaden czyli return 1). I postać pięknie zagaduje. Tyle, że po jakimś czasie, gdy wrzucam inne dialogi innych npc ta postać nie chce już zagadywać. Jak sami podejdziemy i na nią klikniemy to jasne, zaczyna mówić swoją kwestię: ale nigdy sama z siebie. Zdarzyło mi się to już z drugim npc. (pierwszy nie zagadywał w trakcie używania kowadła więc pomyślałem, że to dlatego.)
Co robić? Ze skryptem jest wszystko w porządku.  Błąd? A może dodałem za dużo dialogów? (rzeczywiście nieźle nawrzucałem, ale bez przesady). Są jakieś limity?
Co mam zrobić?

2
Skrypty / Kilka problemów ze skryptami
« dnia: 2010-07-26, 08:38 »
-Jak zrobić, by postać zginęła od razu, bez dobijania (tak jak ork, czy jakiś potwór albo bandyci w Gothic 2)? Tylko nie chcę jej ustawiać gildii ork wojownik albo jakiś potwór (nie wiem czy to coś da), ani nic z tych rzeczy, chciałbym, żeby to była normalna postać, tyle tylko, że zginie bez dobijania.
-I drugie pytanie: co muszę zrobić by np. z Velayą lub innymi dziewczynami z zamku Gomeza dało się rozmawiać?
-Jaką rutynę mam dać npc by poruszał się za innym npc? Mam z tym problem.
-Nie ma żadnych tutoriali o edycji czarów?
-Gdzie są pliki odpowiadające za respawn potworów?


Na razie to tyle, chociaż mam jeszcze dużo pytań.
Bardzo proszę o pomoc. Przez tego typu błędy nie mogę sobie spokojnie robić moda.

3
Skrypty / Edycja czarów
« dnia: 2010-07-24, 19:59 »
Nie widziałem jeszcze żadnego takiego tutoriala.
A edycja czarów jest mi koniecznie potrzebna do mojego moda.
O ile chyba w przypadku prostego zwoju teleportacji dałbym sobie radę (myślę) bo wystarczy skopiować i podmienić nazwę waypointa to już inne rzeczy mnie przerastają..
Na przykład chciałbym przedłużyć czas trwania zaklęcia kontrola.

Instance przedmiotu:

INSTANCE ItArScrollControl (C_Item)
{
name = NAME_Spruchrolle;

mainflag = ITEM_KAT_RUNE;
flags = ITEM_MULTI;

value = 90;

visual = "ItAr_Scroll_08.3DS";
material = MAT_STONE;

spell = SPL_CONTROL;
cond_atr[2]   = ATR_MANA_MAX;
cond_value[2]   = 30;

description = "Kontrola";
//TEXT [0] = NAME_Mag_Circle; COUNT [0] = mag_circle;
//TEXT [1] = NAME_Manakosten; COUNT [1] = ;
//TEXT [2] = ""; COUNT [2] = ;
//TEXT [3] = ""; COUNT [3] = ;
//TEXT [4] = ""; COUNT [4] = ;
TEXT [5] = NAME_Value; COUNT [5] = value;
};

Spodziewałem się, że tutaj wszystko będzie, a tu taka niemiła niespodzianka.

W folderze MAGIC - spell controll

//-------- Spell Commands --------
// SPL_DONTINVEST = 0; // Es können keine weiteren Manapunkte investiert werden. Erst durch CTRL loslassen geht der Spell ab
// SPL_RECEIVEINVEST = 1; // Wirkung durchgeführt, es können weitere Invest kommen, zB.bei Heal nach jedem Pöppel
// SPL_SENDCAST = 2; // Starte den Zauber-Effekt (wie CTRL loslassen), automatischer Abbruch
// SPL_SENDSTOP = 3; // Beende Zauber ohne Effekt
// SPL_NEXTLEVEL = 4; // setze den Spruch auf den nächsten Level

func int Spell_Logic_Control(var int manaInvested)
{
PrintDebugNpc (PD_MAGIC, "Spell_Logic_Control");

if (!Npc_IsInState(other, ZS_Controlled))
{
PrintDebugNpc (PD_MAGIC, "npc is valid...");

PrintDebugNpc (PD_MAGIC, "manainvested 0...starting ZS_PsiDefense on npc");
if (!Npc_IsInState(other, ZS_PsiDefense))
{
B_FullStop (other);
AI_StartState (other, ZS_PsiDefense,1,"" );
};
 
  if (other.flags != NPC_FLAG_IMMORTAL)
  {
  PrintDebugNpc (PD_MAGIC, "npc is not immortal, sub mana");

// überschreiten die investierten manapunkte level*4, so ist sein wille gebrochen
  if ( manaInvested >= other.level*4 )
{
PrintDebugNpc(PD_MAGIC, "controlled success, starting states");

AI_StartState ( self ,ZS_PC_CONTROLLING ,0,"" );
Npc_SetActiveSpellInfo ( self,1 ); // übernommen

return SPL_SENDCAST;
};
return SPL_NEXTLEVEL;
  }
  else
  {
  PrintDebugNpc (PD_MAGIC, "npc is immortal");
  return SPL_NEXTLEVEL;
  };
 
  return SPL_NEXTLEVEL;
}
else
{
PrintDebugNpc (PD_MAGIC, "npc is not valid...");
// other ist kein npc
return SPL_SENDSTOP;
};

return SPL_DONTINVEST;
};

Mógłby ktoś wytłumaczyć mi, co oznaczają poniższe komendy??
//-------- Spell Commands --------
// SPL_DONTINVEST       =    0;      // Es können keine weiteren Manapunkte investiert werden. Erst durch CTRL loslassen geht der Spell ab
// SPL_RECEIVEINVEST   =    1;      // Wirkung durchgeführt, es können weitere Invest kommen, zB.bei Heal nach jedem Pöppel
// SPL_SENDCAST         =    2;      // Starte den Zauber-Effekt (wie CTRL loslassen), automatischer Abbruch
// SPL_SENDSTOP         =    3;      // Beende Zauber ohne Effekt
// SPL_NEXTLEVEL      =   4;      // setze den Spruch auf den nächsten Level


Gdzie tu można zmienić czas trwania czaru, określić ile many potrzeba, aby przejąć kontrolę nad postacią itp?

A może powinienem wyedytować ZSy? (zs controlled lub zs pc controllin?)
A może jeszcze coś?

PS.Właśnie się dogrzebałem do plików spells process mana i spells process mana relased teraz już nic z tego nie rozumiem.

Będę bardzo wdzięczny za pomoc. A jeszcze bardziej - za link do tutoriala. Niestety przeszukałem całe forum tutoriale - skrypty i nic nie znalazłem na temat tworzenia/edycji czarów. :|

4
Pytania i problemy / Tekstury pancerzy - problem
« dnia: 2010-07-20, 17:24 »
Mam pewien problem - a raczej kilka pytań.
1. Gdy ściągnąłem GMDK nie było tam folderu textures. Wrzuciłem tam folder textures z G2MDK (na wszelki wypadek, bo używam tekstur pancerzy ale o tym za chwilę). Z tego  co wiem tekstury z gothic I powinny być w pliku textures.vdf czyli powinienem je rozpakować gothic vdfs, tak? A później jak chcę coś zmienić powinienem zmienić nazwę pliku na textures.vdf.disabled? (przy worlds.vdf musiałem tak zrobić, nie wiem do końca czemu)
2. Jakiś czas temu przerzucałem zbroje z G2NK do G1. Musiałem przekopiować pliki asc oraz 3ds (skopiowałem wtedy też tekstury, chociaż nie wiedziałem czy trzeba)
a oto skrypt byle jakiej zbroi i moje pytanie
INSTANCE VLK_ARMOR_M(C_Item)
{
name = "Spodnie Kopacza";

mainflag = ITEM_KAT_ARMOR;
flags = 0;

protection [PROT_EDGE] = 15;
protection [PROT_BLUNT] = 15;
protection [PROT_POINT] =   0;
protection [PROT_FIRE] = 5;
protection [PROT_MAGIC] = 0;

value = VALUE_VLK_ARMOR_M;

wear = WEAR_TORSO;

visual = "vlkm.3ds";
visual_change = "Hum_VLKM_ARMOR.asc";
visual_skin = 0;
material = MAT_LEATHER;

3DS to jest wygląd zbroi w ekwipunku i na ziemi, a asc na postaci, dobrze rozumiem?
3. Jak np wchodzę na WoG tam jest dużo tekstur do ściągnięcia, ale w formacie .tga Do czego to jest przydatne? Przecież mi są potrzebne teksury .asc dobrze rozumiem? Bo nie wiem, jak patrzę na skrypt jakiejkolwiek zbroi, widać tam .3ds, .asc, ale nigdzie nie ma .tga  :blink:  
Czym się rózni .tga od .asc oraz .tex i dlaczego te pliki tam są, czy są konieczne?
Mając taką teksturę .tga co zrobić, żeby ją zobaczyć w grze na jakiejś zbroi?
4. W skryptach postaci
// animations
Mdl_SetVisual (self,"HUMANS.MDS");
Mdl_ApplyOverlayMds (self,"Humans_Arrogance.mds");
// body mesh     ,bdytex,skin,head mesh     ,headtex,teethtex,ruestung
Mdl_SetVisualBody (self,"Hum_Body_CookSmith",1,1,"Hum_Head_FatBald",91 ,  0,-1);
   
SetVisual czyli .mds (cokolwiek to oznacza) z wyglądem postaci, applyoverlaymds to następny mds, definiujący styl chodzenia.
A setvisualbody? Czemu tam nie ma żadnego pliku, żadnego rozszerzenia itp.?? Tylko jakieś nazwy i cyfry? Jak się w tym połapać?
Jeśli chcę zobaczyć w G1 twarz z G2 to wystarczy, że skopiowałem folder textures z g2mdk oraz skrypt postaci odpowiadający za wygląd?

5
Pytania i problemy / Wstawianie modelu do innego modelu
« dnia: 2010-07-20, 14:02 »
Mam problem, który dotyczy gothica.
Ściągnąłem sobie fajny model zamku. Oglądałem w spacerze (load mesh albo otwórz mesh) - naprawdę dobry. Niestety nie da się go wstawić do zena jako vob, pewnie dlatego że jest za duży (tak samo jak statek paladynów i wiele innych rzeczy) Poza tym jeśli będzie to vob to woda będzie przeciekać.
Chciałbym go wstawić do pliku oldcamp.3ds i później skompilować worlda (czyli wstawić nie tracąc vobów, wcześniej tak robiłem z teksturowaniem w spacerze i mi wychodziło).
Jeśli chodzi o grafikę 3d nie umiem NIC. Mam blendera. Czytałem/oglądałem niektóre tutoriale, także te z tego forum jednak raz, że dotyczą one nie tego, co mnie interesuje, a dwa, że wszystko jest koszmarnie trudne i czasochłonne.
Jak wstawić w blenderze taki obiekt?
Pierwsza rzecz to załadowanie pliku oldcamp.3ds: daję import, 3ds, wybieram plik i pojawia mi się takie okno gdzie jest
-size constant 10.00 (można zmieniać)
-Image search (można zaznaczyć lub odznaczyć)
-transform fix (jw)

Po załadowaniu świat jest naprawdę niewielkich rozmiarów, to będzie określenie nader łagodne. Oglądając go w 3-Material po jakimś czasie nie chce się przybliżać. Nie potrafię też poruszać się po tym świecie (tak jak w spacerze służyły do tego strzałki oraz y i a)
Jak miałem ten głupi sześcian to potrafiłem go przesuwać, obracać itp. Jak mam świat, nie potrafię go przesunąć, tylko przesuwać jakieś dachy, itp. co oczywiście psuje model.

Później wczytanie zamku, jest za duży (większy nawet niż cały surface.3ds przynajmniej jak ja go oglądam w blenderze) jeżeli go zmniejszam normalnie czyli najpierw czerwony, później zielony kwadrat (albo odwrotnie) to wychodzi coś obrzydliwie porozciąganego. Nie da się zmniejszać proporcjonalnie całości?

Są jakieś tutoriale w stylu wstawianie chaty, wieży, czegokolwiek to gothica? (ale nie w spacerze tylko np. w blenderze) A jeśli nie ma to co mam zrobić, od czego powinienem zacząć?

Bardzo proszę o pomoc.
A jeśli nikt nie jest w stanie mi wytłumaczyć jak to zrobić to chociaż powiedzcie ile czasu musi minąć bym nauczył się wstawiać zamki, chaty itp. (nie interesuje mnie ich tworzenie) i czy warto się w to bawić?

6
Skrypty / Łóżko
« dnia: 2010-07-02, 13:43 »
Przeglądając skrypty natknąłem się na plik sleepabit.d
Postanowiłem, że zrobię "wyro śmierci" czyli łóżko, które zabija tych, którzy na nim śpią (jest to logiczne gdyż znajduje się w niebezpiecznej lokacji, później miałem zamiar dorobić random, oraz wyłączyć to, jeśli oczyścimy okolicę)

Oto plik sleepabit2.d Dużo tego jest jednak sam środek i koniec jest niemal taki sam jak w normalnym sleepabit.d

Cytuj
//****************************
//       PC_Sleep
//****************************

func void PC_Sleep2 (var int t)
{
   AI_StopProcessInfos(self);      // [SK] ->muss hier stehen um das update zu gewährleisten
   self.aivar[AIV_INVINCIBLE]=FALSE;
   if   (Wld_IsTime(00,00,t,00))   
   {
      Wld_SetTime   (t,00);
   }
   else
   {
      t = t + 24;
      Wld_SetTime   (t,00);
   };
   
   PrintScreen   ("Zostałeś zamordowany we śnie", -1,-1,"font_old_20_white.tga",3);
   hero.attribute[ATR_HITPOINTS] = 0;
      

   //-------- AssessEnterRoom-Wahrnehmung versenden --------
   PrintGlobals      (PD_ITEM_MOBSI);
   Npc_SendPassivePerc   (hero,   PERC_ASSESSENTERROOM, NULL, hero);      //...damit der Spieler dieses Feature nicht zum Hütteplündern ausnutzt!
};



func void SLEEPABIT_S2 ()
{
   var C_NPC her;    her = Hlp_GetNpc(PC_Hero);
   var C_NPC rock; rock = Hlp_GetNpc(PC_Rockefeller);
   
   //***ALT** if   (Hlp_GetInstanceID (self)== Hlp_GetInstanceID (Hero)) // MH: geändert, damit kontrollierte NSCs nicht schlafen können!
   if ( (Hlp_GetInstanceID(self)==Hlp_GetInstanceID(her))||(Hlp_GetInstanceID(self)==Hlp
_GetInstanceID(rock)) )
   {   
      self.aivar[AIV_INVINCIBLE]=TRUE;
      Ai_ProcessInfos (her);
   };
};

   




//-------------------- Gar nicht schlafen -------------------------

INSTANCE PC_NoSleep2 (c_Info)

{
   npc            = PC_Hero;
   nr            = 999;
   condition      = PC_NoSleep2_Condition;
   information      = PC_NoSleep2_Info;
   important      = 0;
   permanent      = 1;
   description      = DIALOG_ENDE;
};

FUNC INT PC_NoSleep2_Condition()
{      
      return 1;
};

func VOID PC_NoSleep2_Info()
{
   AI_StopProcessInfos (self);
   self.aivar[AIV_INVINCIBLE]=FALSE;
   
};

//---------------------- morgens --------------------------------------

INSTANCE PC_SleepTime_Morning2 (C_INFO)
{
   npc            = PC_Hero;
   condition      = PC_SleepTime_Morning2_Condition;
   information      = PC_SleepTime_Morning2_Info;
   important      = 0;
   permanent      = 1;
   description      = "Śpij do następnego poranka";
};

FUNC INT PC_SleepTime_Morning2_Condition()
{      
      return 1;
};

func void PC_SleepTime_Morning2_Info ()
{
   PC_Sleep2 (8);   // SN: geändert, da um 7 Uhr noch keiner der NSCs wach ist!
};

//--------------------- mittags -----------------------------------------

INSTANCE PC_SleepTime_Noon2 (C_INFO)
{
   npc            = PC_Hero;
   condition      = PC_SleepTime_Noon2_Condition;
   information      = PC_SleepTime_Noon2_Info;
   important      = 0;
   permanent      = 1;
   description      = "Śpij do południa";
};

FUNC INT PC_SleepTime_Noon2_Condition()
{      
      return 1;
};

func void PC_SleepTime_Noon2_Info ()
{
   PC_Sleep2 (12);
};

//---------------------- abend --------------------------------------

INSTANCE PC_SleepTime_Evening2 (C_INFO)
{
   npc            = PC_Hero;
   condition      = PC_SleepTime_Evening2_Condition;
   information      = PC_SleepTime_Evening2_Info;
   important      = 0;
   permanent      = 1;
   description      = "Śpij do następnego wieczora";
};

FUNC INT PC_SleepTime_Evening2_Condition()
{      
      return 1;
};

func void PC_SleepTime_Evening2_Info ()
{
   PC_Sleep2 (19);
};

//------------------------ nacht -----------------------------------------

instance PC_SleepTime_Midnight2 (C_INFO)
{
   npc            = PC_Hero;
   condition      = PC_SleepTime_Midnight2_Condition;
   information      = PC_SleepTime_Midnight2_Info;
   important      = 0;
   permanent      = 1;
   description      = "Śpij do północy";
};

FUNC INT PC_SleepTime_Midnight2_Condition()
{      
      return 1;
};

func VOID PC_SleepTime_Midnight2_Info()
{
   PC_Sleep2 (0);   
};

Następnie skopiowałem i wstawiłem w spacerze łóżko. Zmieniłem sleepabit na sleepabit2, dałem apply i activate.
Później próbowałem z sleepabit2.d
W spacerze przy naprawianiu skryptu błędów nie ma
Aha, i najważniejsze (tyle się rozpisałem, a nie napisałem na czym polega problem): postać podchodzi do łóżka, kładzie się na nie i nie wyświetla się żadne okno dialogowe  (nie gram na kodach i podchodzę bezimiennym!)

Bardzo proszę o pomoc. To mi jest naprawdę potrzebne.

PS. Jeżeli ktoś mógłby mi wytłumaczyć kilka rzeczy, tj. przełożyć ze skryptowego na nasze, co poniższe rzeczy oznaczają, bo nie do końca rozumiem:

Cytuj
self.aivar[AIV_INVINCIBLE]=FALSE;

Cytuj
if   (Wld_IsTime(00,00,t,00))   
   {
      Wld_SetTime   (t,00);
   }
   else
   {
      t = t + 24;
      Wld_SetTime   (t,00);
   };
Cytuj
func void SLEEPABIT_S1 ()
{
   var C_NPC her;    her = Hlp_GetNpc(PC_Hero);
   var C_NPC rock; rock = Hlp_GetNpc(PC_Rockefeller);

7
Spacer / tekstury
« dnia: 2010-06-27, 13:23 »
Mam poważny problem.
Otwieram jakiś plik, np. world.zen
kompiluje świat, światło
nakładam teksturę...

i co dalej?
Jak chcę zapisać jako .zen, to nie mogę.
Jak dam np. otwórz, to pojawia mi się komunikat, czy chcę zapisać, zaznaczam, zapisuje .zen, ale ten plik się tam nie pojawia.

Jeśli np. otworzę inny plik, np. odlcamp.3ds to zmiany są widoczne po zapisaniu, ale tylko przy oglądaniu spacerem tego właśnie pliku. Jakbym chciał to wrzucić do .zen'a to co mam zrobić??

Inne moje pytanie: żeby móc edytować świat w spacerze i normalnie to zapisywać musiałem zrobić dwie rzeczy:
wypakować światy z pliku worlds.vdf
zmienić jego nazwę na worlds.vdf.disabled (przeczytałem na tym forum ktoś miał jakiś problem, jemu nie pomogło, za to u mnie zadziałało...)
Dlaczego tak jest?

Ps. W tutorialach które czytałem nie było nic o zapisywaniu :D

8
Spacer / Wstawianie waypointa
« dnia: 2010-06-23, 16:45 »
Umiem stworzyć waypoint w spacerze.
Prawdziwy cyrk zaczyna się przy zapisywaniu.
Otóż po wyedytowaniu world.zen i zapisaniu nic się nie zmienia.
Próbowałem np zapisać gdzie indziej: wtedy zmiany były widoczne w spacerze po otwarciu, ale po przeniesieniu już nie.
Próbowałem też zapisać pod inną nazwą, wywalić oryginalny world.zen i zmienić nazwę tamtego na world.zen  i oczywiście po zmianie nazwy, wszystko co zmieniłem się usunęło.
Patrzyłem na tutorial, tam było pokazane wszystko, nawet jak łączyć waypointy, ale tego jak to zapisać już nie  ;p  

Co mam zrobić?

Druga sprawa. World.zen wszystko fajnie, a jak będę chciał pozmieniać coś w kopalni (jednej czy drugiej) albo w świątyni śniącego? Czemu tam jest tylko jeden plik?

_work/data/worlds/world.zen A gdzie reszta?

Będę bardzo wdzięczny za pomoc.  ;p


EDIT: Dobra, dobra....
Można  uznać temat za zamknięty
Poradziłem sobie (chyba) z tymi problemami.
Aczkolwiek warto zwrócić uwagę, że tutorial, który znalazłem zawierał błędy, a w _work z gothic mod tools nie było ważnych plików (które musiałem wgrać z vdfs z pliku worlds.vdf)

9
Pytania i problemy / Przerzucenie tekstur G2 do G1 problem
« dnia: 2010-06-18, 16:18 »
Pytałem się już gdzieś wcześniej, ale nie znalazłem odpowiedzi  :lol:  
Jak przerzucić tekstury z G2 do G1?
Rozumiem, że są one w pliku textures.vdf
Mam programy GoMan oraz Gothic VDFS.
Chciałbym, aby można było w Gothicu I używać tekstur z jedynki oraz dwójki.
Niestety jedyne poradniki do GoMana to jak przerobić teksturę (niepotrzebne mi na razie) a do VDFS jak zrobić paczkę z modem, zaś plików z pojedynczymi teksturami (tak jak np z obiektami 3d) w żadnym folderze nie ma, więc metoda ctrl +c, ctrl +v odpada.
A przecież to chyba podstawa, którą zna każdy modder, bez tekstur z G2, które są dużo lepsze, praktycznie nie ma modowania  GI :P  
Może mi ktoś wytłumaczyć, co mam zrobić, by połączyć tekstury G2 z tymi z G1?
Będę bardzo wdzięczny za pomoc.

10
Witam.
Ogólnie z prostymi dialogami problemów (już) nie mam. Tak samo z określaniem warunków, robienia różnych tekstów widocznych np tylko dla jakiegoś lvl przez if..
Jednak ostatnie zadanie jakie sobie postawiłem całkowicie mnie przerosło  :foch:  
Chciałbym, aby po zagadaniu do postaci (jakaś obelga czy groźba)
-jeśli nasz bohater ma siłę >lub= 50 postać coś tam gada i ignoruje oraz oddaje przedmiot
-jeśli postać ma siłę < 50:
     - i należy do pewnej gildii npc to ignoruje i coś tam gada
     -nie należy do tej gildii: npc gada, kończy rozmowę i atakuje.

Próbowałem wielu rzeczy: if oraz else if i else (podpatrzyłem to w innych dialogach)
Były błędy. Próbowałem tylko if kilka razy pod rząd. Spacer nie pokazywał błędów ale postać gadała WSZYSTKO.
Były też inne próby.
Najczęstsze błędy: expected ; (sprawdzałem i nigdzie nie było brakującego ; !!!)
Unknown identyfier ELSE oraz inne błędy tego typu
Syntax Error..

Jeżeli ktoś chce skrypt mogę go odtworzyć, na razie usunąłem bo błędy mnie wkurzały a nie miałem zamiaru nie modować do czasu rozwiązania problemu.

Nie proszę o zrobienie wszystkiego za mnie.
Moje tylko pytanie jak powinna wyglądać:  FUNC VOID dia_aaa_aaa_info ? Co zrobić by można było stworzyć  taki dialog jak podałem w przykładzie? Czego mam użyć?

11
Skrypty / Problem z prostym zadaniem
« dnia: 2010-06-07, 10:06 »
Witam. Właśnie udało mi się zrobić moje pierwsze zadanie w Gothicu. Po otrzymaniu wpisu do dziennika musimy dać postaci miecz. Niby proste. Pojawia się jednak problem: po otrzymaniu nowej (i lepszej) broni gość  nie chce jej założyć (dodam że jest to moja własna, stworzona postać: może tu jest problem??). Próbowałem wielu rzeczy m. in. if w rozmowie, dzięki czemu dostawałem jego starą broń jeśli on ją jeszcze miał. I niestety nawet wtedy nie zakładał nowej tylko chodził bez broni.
Co mam zrobić, by po dialogu założył broń, którą mu dałem?

12
Skrypty / Jeśli wykonamy questa to npc zagaduje
« dnia: 2010-06-05, 16:56 »
Witam, znowu mam problem.
Chcę, by npc sam zagadał po wykonaniu zadania. Od razu mówię że chodzi mi o gothic 1.
Na początku miałem ze 20 błędów prawie wszystkie naprawiłem ale..
Takie coś mam:
Cytuj
FUNC INT DIA_RiceLord_LeftyDone_Condition()
{
if ((Lefty_Mission==LOG_SUCCESS)
{
      return 1;
   };
};
to mi wyskakuje unknown identyfier. aha z nawiasami też się bawiłem. raz mi nawet wyskakiwał błąd missing '( czy coś takiego

{    <<< -  w tej linijce.
      return 1;
   };

Chyba coś nie tak z tym Succes bo też mi takie błędy wyskakiwały.
Cytuj
if   ((Lefty_Mission==LOG_RUNNING) || ((Lefty_Mission==LOG_SUCCESS)
to zobaczyłem w dialogach u Horacego. zaaplikowałem to do Ryżowego no i wiadomo zagadywał nieważne czy zadanie było rozpoczęte czy skończone.

zrobiłem więc
Cytuj
FUNC INT DIA_RiceLord_LeftyDone_Condition()
{
if ((Lefty_Mission==LOG_RUNNING) && (Lefty_Mission==LOG_SUCCESS))
{
      return 1;
   };
};

Hehe wtedy mi zadziałało w spacerze ale nie w grze (w ogóle nic nie mówi) z resztą wiem chyba dlaczego nie można jednocześnie być w trakcie i po zadaniu.

Ale pomysłów mi brakuje. A chodzi o to by ryżowy zagadał do mnie po zakończeniu zadania nosiwoda w służbie lewusa (niezależnie od tego czy go zabijemy czy tylko pobijemy)

I jeszcze jedno nazwy zadań (nie bawiłem się jeszcze w tworzenie zadania moduje od wczoraj.)
Mam dwa pliki story_globals.d i log_constans.d o co z nimi chodzi bo nie mogę się w nich połapać i gdzie są dobre tytuły zadań?
PS. miejcie wyrozumiałość moduje od wczoraj i szukałem wcześniej jak zwykle przez  waszą wyszukiwarkę...

13
Skrypty / Jeśli NPC żyje
« dnia: 2010-06-05, 08:55 »
Jak zrobić, by postać zagadała do nas tylko jeśli npc ŻYJE?
Jeśli nie żyje to mamy
Cytuj
if (Npc_IsDead(ORG_855_Wolf))
   

   {
    return TRUE;
    };
Próbowałem
Cytuj
if (Npc_IsNotDead(ORG_855_Wolf))
   

   {
    return TRUE;
    };
Nie działało
Cytuj
if (Npc_Live(ORG_855_Wolf))
   

   {
    return TRUE;
    };
Nie działało
Cytuj
if (Npc_Lives(ORG_855_Wolf))
   

   {
    return TRUE;
    };
Nie działało

Cytuj
if (Npc_IsDead(ORG_855_Wolf))
   

   {
    return FALSE;
    };
Nie było błędów w spacerze ale postać nie chciała do mnie zagadać. Po jakimś czasie połapałem się że określiłem (chyba) kiedy postać NIE zagada, ale nie kiedy MA zagadać. Więc dodałem standardowy warunek

Cytuj
{
   return 1;
};

Nie zadziałało.

Więc połączyłem return i if npc dead &&: też nie zadziałało

W tym momencie (po każdej próbie sprawdzałem spacerem który naprawdę długo się ładuje) skończyła mi się cierpliwość.

Czy mógłby ktoś mi pomóc i napisać jak postawić warunek "jeśli npc żyje"?

14
Skrypty / Zmiana rutyny bez dialogu
« dnia: 2010-06-04, 15:49 »
Witam.
Wczoraj zacząłem bawić się w modowanie.
Nawet nieźle mi to na razie wychodzi.
Umiem m. in dawać npc różne rutyny (podpatrzyłem w skryptach pc_thief on ma ich dużo) i zmieniać poprzez opcje dialogowe.
Mam pytanie: czy można zmieniać rutyny (jeśli tak to jak) bez dialogu?
Np. zmieni się rozdział albo kogoś zabijemy i wtedy inny npc zmienia swoją rutynę?
Jak to zrobić?
Ps. szukałem przez wyszukiwarkę podobnych tematów niestety odpowiedzi nie znalazłem.

15
Pytania i problemy / Probem z modowaniem
« dnia: 2010-06-03, 15:12 »
Witam. nie znam się na modowaniu nigdy tego nie próbowałem i kompletnie nic nie umiem. chciałem się pobawić w modowanie wcześniej popatrzyłem trochę na jakiś poradnik ale tam było o programie do tworzenia dialogów, a ja chciałem zrobić to ręcznie... oto mój problem.
Ściągnąłem sobie niedawno GothicIModTools czy jakoś tak.
Postanowiłem trochę pomodować.
Najpierw chciałem wyedytować jakieś dialogi z Diego bo jest on na początku gry i nie będę musiał biegać po całym świecie by sprawdzić, czy wszystko działa.
Po długim szukaniu znalazłem folder z dialogami (chyba missions).
Niestety, brakuje pliku z dialogami diego i innych postaci takich jak gorn. Próbowałem używać opcji wyszukaj - nie działało.
Niezrażony tym postanowiłem poedytować trochę dialogi Snafa. Najpierw zmieniłem ilość itemów jakie nam daje z 1 na 100 - to akurat zadziałało, później zmieniłem description z jak leci na jak leci hehe? oraz sam tekst dialogu.
Wchodzę w gothicmodstarter zaznaczam repase scripts odpalam: description zadziałało (na szarym polu widziałem jak leci hehe) ale już tekst się nie zmienił i żółtą czcionką było samo jak leci.
Ponieważ mi nie wyszło spróbowałem zrobić coś odwrotnego - pousuwać niektóre wyrazy i sprawdzić, co się stanie. No i nic, to samo: dialogi są jakby ich nikt nigdy nie zmieniał.
Spróbowałem jeszcze włączać gothicmodstarter z różnymi opcjami (conver  data, all i takie tam): wtedy zawsze wyskakiwały mi te kretyńskie acces violation (i jakieś bezsensowne znaki + ścieżka dostępu D:\jakieśfoldery mimo że gothica mam na C:\)
Bardzo proszę o pomoc.
PS. Znalazłem jeszcze folder z itemami broni udało mi się pozmieniać niektóre rzeczy (nazwę miecza thorusa i parametry oraz inne takie) z tym akurat nie było problemu więc komputer pewnie jest w porządku.

Strony: [1]
Do góry