Zupełnie nowy mob 7179 14

O temacie

Autor

Zaczęty 12.04.2011 roku

Wyświetleń 7179

Odpowiedzi 14

gothic1210
  • Gość
Przeczytałem spis tutków i znalazłem tylko dodawanie prostych vobów w spacerze np. kowadło. Otóż ja chciałbym od nowa zrobić calusieńkiego moba od podstaw. Przykładowy pierwszy mob to beczka z piwem. Podchodzę używam (wymagany item pusty kubek) i mam kufelek piwa. Albo trudniejszy np. smażenie nie tylko mięsa na patelni. Czyli że muszę wybrać co chcę usmażyć i dopiero. Piszę w dziale skrypt bo wydaję mi się że w spacerze można zrobić tylko proste moby jak łóżko i kowadło.  :wink:   Powiedzcie od czego , w jakim pliku powinienem zacząć >
 

EdekSumo

EdekSumo

Wyspa Khorinis
posty1739
Propsy925
ProfesjaLvl designer
  • Wyspa Khorinis
To pierwsze to mds i nowe animacje a drugie to trza napisać monolog
 

gothic1210
  • Gość
To pierwsze to mds i nowe animacje a drugie to trza napisać monolog

Rozumiem że o MDS-ach znajdę turtorial. A ten monolog. Czy mogę w skryptach gothica znaleźć przykładowy monolog? To wtedy zobaczyłbym jak tam to wygląda. A czy to czasem nie chodzi o to co się w MT nazywało Mod_Cook - to był taki skrypt do kociołka. Chodzi o coś takiego ??  :roll:
 

Jurigag

Jurigag

Użytkownicy
posty869
Propsy285
ProfesjaSkrypter
  • Użytkownicy
Spania np :)
 
Skrypter/Tester - Szukasz testera/skryptera - Pisz !

EdekSumo

EdekSumo

Wyspa Khorinis
posty1739
Propsy925
ProfesjaLvl designer
  • Wyspa Khorinis
Na forum jest tylko podstawowe omówienie mds a co do monologów to są one w folderze story/dialog_mobsis (g2) w g1 nie wiem gdzie są
 

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc

Graveir

Zupełnie nowy mob
#5 2011-04-12, 18:51(Ostatnia zmiana: 2011-04-12, 18:52)
Monolog z tego co się orientuję,to jest interakcja z przedmiotami(robione są za pomocą spacera[tak myślę]).
Edit:O lol 3 osoby w tym samym czasie napisały :D
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

EdekSumo

EdekSumo

Wyspa Khorinis
posty1739
Propsy925
ProfesjaLvl designer
  • Wyspa Khorinis
@up :facepalm:
jezu jak nie wiesz to nie mów monolog to skrypt a nie coś w spacerze
 

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
No to pewnie mi się pomyliło z triggerami(czy jakoś tak).Ale monologi też chyba wymagają spacera?
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

gothic1210
  • Gość

gothic1210
Gość

Zupełnie nowy mob
#8 2011-04-12, 18:58(Ostatnia zmiana: 2011-04-12, 19:01)
wniosek jest taki że dalej nie wiem co zrobić. :)   :lol2:
znalazłem w skryptach plik mob ale są w nim tylko kołowroty
znalazłem tez monolog do łóżka na jego podstawie coś się wymyśli. muszę skrypty mt wypakować i tam poszperam
 

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Nie wiem,czy to dobry link,ale patrzyłeś na to?
Monologi
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

gothic1210
  • Gość
Nie wiem,czy to dobry link,ale patrzyłeś na to?
Monologi

Na podstawie tego napisałem coś takiego. Pomóżcie skończyć
*****************************
*************CookPan PC
****************************

const int m_cook=1;
func void cookabit_s1()
{
 if(Npc_IsPlayer(self))
 {
  monolog=m_cook;
  self.aivar[AIV_INVINCIBLE]=TRUE;
  Ai_StartProcessInfo(self);
 };
};
func int ism_cook()
{
 return (monolog==m_sleep);
};

INSTANCE PC_NoCook (c_Info) //
{
        npc    = PC_Hero;
        nr    = 999;
        condition  = ism_cook;
        information  = PC_NoCook_Info;
        important  = 0;
        permanent  = 1;
        description  = DIALOG_ENDE;
};
func VOID PC_NoCook_Info()
{
//
        AI_StopProcessInfos (self);
        self.aivar[AIV_INVINCIBLE]=FALSE;
       
};
INSTANCE PC_CookMeat (c_Info) // Tu są te opcje dialogowe. Muszę zrobić jeszcze trzy.
{
        npc    = PC_Hero;
        condition  = PC_CookMeat_Condition;
        information  = PC_CookMeat_Info;
        important  = 0;
        permanent  = 1;
        description  = "Usmaż mięso";
};
func int PC_CookMineCrawlerSoup_Condition()
{
 return(ism_cook()&&umiem); //umiem jest ustawione na tak jeżeli nas ktoś tego nauczy  -co tu zrobić???
};
func VOID PC_NoCook_Info()
{
 if(mam_skladniki()) //oczywiście nie trzeba wszystkiego robić w oddzielnych funkcjach
 {
  usun_skladniki();     czy tutaj mam wstawić składniki(instancje itemu)
  dodaj_zupe();          
  zabulgaj();
 }
 else
 {
  Print("Zupę pełzaczaną robi się z pełzacza, skombinuj sobie najpierw jakiegoś");
 };
};
 

gothic1210
  • Gość
Na razie nie robię gotowania bo to trochę trudne. Udało mis się za to napisać (z pomocą tutka) skrypt kopania rudy. Mógłby go ktoś sprawdzić??  :wink:  



///////////////////////////////////////////////////////////
//////////////// Kopanie rudy
///////////////////////////////////////////////////////////

const int m_ore=2;      
func void oreabit_s1()
{
 if(Npc_IsPlayer(self))
 {
  monolog=m_ore;
  self.aivar[AIV_INVINCIBLE]=TRUE;
  Ai_ProcessInfo(self);
};

func int ism_ore()
{
 return (monolog==m_ore);
};


func void oreabit_s1()
{
        MONOLOG=M_ORE;
        self.aivar[AIV_INVINCIBLE]=TRUE;
        Ai_ProcessInfos(self);
        MONOLOG=0
};
func void ore()
{
        self.aivar[AIV_INVINCIBLE] = FALSE;
        if (a == 0)
        {
                PrintScreen("Udało ci się wydobyć 5 bryłek rudy!.",-1,-1,"font_old_20_white.tga",3);
        }
        else
        {
                PrintScreen("Udało ci się wydobyć 10 bryłek rudy!.",-1,-1,"font_old_20_white.tga",3);
        };
        MONOLOG=0;
        AI_StopProcessInfos (self);
};

func void no_ore()
{
        self.aivar[AIV_INVINCIBLE] = FALSE;
        PrintScreen("Nie udało ci się nic wydobyć!.",-1,-1,"font_old_20_white.tga",3);
        MONOLOG=0;
        AI_StopProcessInfos (self);
       
};

instance noore1(C_Info)
{      
        npc = PC_Hero;
        nr = 999;
        condition = noore1_condition;
        information = noore1_info;
        important = 0;
        permanent = 1;
        description = "Nie potrafisz wydobywać rudy!.";
};

func int noore1_condition()
{
        if (MONOLOG == M_ORE) && (ORE_LERNED == FALSE)
        {
                return 1;
        };
};

func void noore1_info()
{
        MONOLOG=0;
        AI_StopProcessInfos (self);
        self.aivar[AIV_INVINCIBLE] = FALSE;
};

instance ore1(C_Info)
{
        npc = PC_Hero;
        condition = ore1_condition;
        information = ore1_info;
        important = 0;
        permanent = 1;
        description = "Wydobywaj rudę.";
};

func int ore1_condition()
{
        if (MONOLOG == M_ORE) && (ORE_LERNED == TRUE)
        {
                return 1;
        };
};

func int ore1_info()
{
var int ORE_SUC;
ORE_SUC = Hlp_Random(3)
if (ORE_SUC <= 1)//
                {
                  ORE_Y = Hlp_Random(2);//
                  a = ORE_Y;
                        if (ORE_Y == 0)
                        {
                                CreateInvItems(hero,ItMiNugget,5);
                        }
                        else
                        {
                                CreateInvItems(hero,ItMiNugget,10);
                        };
                  ore();
                }
                else
                {
                        no_ore();
                };
};

INSTANCE ore_ende (c_Info) //
{
        npc    = PC_Hero;
        nr    = 999;
        condition  = ism_ore;
        information  = ore_ende_Info;
        important  = 0;
        permanent  = 1;
        description  = DIALOG_ENDE;
};
func VOID ore_ende_Info()
{
//
        MONOLOG=0
        AI_StopProcessInfos (self);
        self.aivar[AIV_INVINCIBLE]=FALSE;
 

Lusia

Lusia

Użytkownicy
posty88
Propsy15
ProfesjaNierób
  • Użytkownicy
Nie lepiej samemu sprawdzić czy działa?  :lol:
 

gothic1210
  • Gość
Nie działa, a ten tutek coś nie jasny. No cóż zajmę się tym później... :wink:
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy

RafalBudzis

Zupełnie nowy mob
#14 2011-04-14, 20:43(Ostatnia zmiana: 2011-04-14, 20:51)
pamiętaj ze monolog to rodzaj dialogu przy monologach trzeba sprasować dialogi

spróbuj na razie uporać się z prostym monologiem masz tu do rudy xD :P

const int m_ore=2;

func void oreabit_S1 ()
{
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);
MONOLOG == M_ORE;
};
};

INSTANCE PC_NoOreabit (c_Info)

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

FUNC INT PC_Nooreabit_Condition()
{
return 1;
};

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


};


instance ore1(C_Info)
{
npc = PC_Hero;
condition = ore1_condition;
information = ore1_info;
important = 0;
permanent = 1;
description = "Wydobywaj rudę.";
};

func int ore1_condition()
{
if (MONOLOG == M_ORE)
{
return 1;
};
};

func void ore1_info()
{
PrintScreen("Udało ci się wydobyć 5 bryłek rudy!.",-1,-1,"font_old_20_white.tga",3);
CreateInvItems(hero,ItMiNugget,5);
AI_StopProcessInfos (self);
self.aivar[AIV_INVINCIBLE]=FALSE;
};


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