Funkcja dla NPC 3663 10

O temacie

Autor starcd78

Zaczęty 26.08.2016 roku

Wyświetleń 3663

Odpowiedzi 10

starcd78

starcd78

Użytkownicy
LUJ
posty99
Propsy1
ProfesjaNierób
  • Użytkownicy
  • LUJ
Mam taki problem jeśli chodzi o pewną funkcję dla NPC...
Oto co mu dodałem w jego skrypcie pod daily_routine:

Spoiler
// ------ TA anmelden ------
   daily_routine    = Rtn_Start_5099;

        start_aistate            = ZS_MM_RTN_TPOR;

A to skrypt rutyny jaką powinien wykonywać:

Spoiler
var int TELE_Func_01_FUNC_OneTime;                                             
func void ZS_MM_RTN_TPOR()
{
   if (Hlp_GetInstanceID(nazwanpca))
        && (TELE_Func_01_FUNC_OneTime == FALSE)
        && (self.attribute[ATR_HITPOINTS] < 800)
        && (self.attribute[ATR_HITPOINTS] > 600)
   {
   
   Wld_PlayEffect("spellFX_Teleport_RING",  nazwanpca  , nazwanpca    , 0, 0, 0, FALSE );
        Snd_Play ("MFX_TELEPORT_CAST");
        AI_Teleport (nazwanpca, "waypointx");
   TELE_Func_01_FUNC_OneTime = TRUE;

   };
};
var int TELE_Func_02_FUNC_OneTime;                                             
func int ZS_MM_RTN_TPOR_Loop ()
{
   if (Hlp_GetInstanceID(nazwanpca))
        && (TELE_Func_02_FUNC_OneTime == FALSE)
        && (self.attribute[ATR_HITPOINTS] < 500)
        && (self.attribute[ATR_HITPOINTS] > 300)
   {
   
   Wld_PlayEffect("spellFX_Teleport_RING",  nazwanpca  , nazwanpca    , 0, 0, 0, FALSE );
        Snd_Play ("MFX_TELEPORT_CAST");
        AI_Teleport (nazwanpca, "waypointy");
   TELE_Func_02_FUNC_OneTime = TRUE;

   };
};
var int TELE_Func_03_FUNC_OneTime;                                             
func int ZS_MM_RTN_TPOR_Next ()
{
   if (Hlp_GetInstanceID(nazwanpca))
        && (TELE_Func_03_FUNC_OneTime == FALSE)
        && (self.attribute[ATR_HITPOINTS] < 200)
        && (self.attribute[ATR_HITPOINTS] > 1)
   {
   
   Wld_PlayEffect("spellFX_Teleport_RING",  nazwanpca  , nazwanpca    , 0, 0, 0, FALSE );
        Snd_Play ("MFX_TELEPORT_CAST");
        AI_Teleport (nazwanpca, "waypointz");
   TELE_Func_03_FUNC_OneTime = TRUE;

   };
};



No i po prostu nic sie nie dzieje po mimo tego, ze po kolei prawie zeruje jego hp :/
Co na to zaradzić?
 
Keep calm and kill all ~~ Gorn


Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Czy aby na pewno podczas ZS_MM_RTN_TPOR ma od 601 do 799 HP? I czy aby na pewnno wywołujesz var c_NPC zmienna; zmienna = Hlp_GetNpc(nazwanpc); i potem sprawdzasz if (Hlp_GetInstanceID(zmienna))?
 
: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.

starcd78

starcd78

Użytkownicy
LUJ
posty99
Propsy1
ProfesjaNierób
  • Użytkownicy
  • LUJ
Cytuj
I czy aby na pewnno wywołujesz var c_NPC zmienna; zmienna = Hlp_GetNpc(nazwanpc); i potem sprawdzasz if (Hlp_GetInstanceID(zmienna))?

Tak z tym wcześniej próbowałem, jeśli chodzi o ZS to biłem gościa co 100, jeśli oto ci chodzi
 
Keep calm and kill all ~~ Gorn


Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh
wywal to:
   daily_routine    = Rtn_Start_5099;
 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.

starcd78

starcd78

Użytkownicy
LUJ
posty99
Propsy1
ProfesjaNierób
  • Użytkownicy
  • LUJ

starcd78

Funkcja dla NPC
#4 2016-08-26, 21:16(Ostatnia zmiana: 2016-08-26, 21:42)
Przemyślałem to co mówił Toworish i wstawiłem rutyne modlenia do tego zsu i dostałem taki błąd: Function type not supported line 5379, nie wiem gdzie ten błąd mogę znaleźć

Post połączony: 2016-08-26, 21:42
Błąd jest związany ze startup'em, bo ostatnia linijka w startupie ma tak samo jak ją skrócę, to w błędzie też się skraca o jeden, a to nie wszystko błąd pojawia się jak przywołuje postać...
 
Keep calm and kill all ~~ Gorn


Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh
// ------ TA anmelden ------
   daily_routine    = Rtn_Start_5099;//to miałeś wyjebać

        start_aistate            = ZS_MM_RTN_TPOR;// to miałeś zostawić

Nie wiem czy to jakaś różnica ale ja bym to:
&& (self.attribute[ATR_HITPOINTS] < 500
zrobił tak:
&& (self.attribute[ATR_HITPOINTS] <= 499
znajdź w zspy w jakim pliku jest ten błąd i mu się przyjrzyj xd
 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.

starcd78

starcd78

Użytkownicy
LUJ
posty99
Propsy1
ProfesjaNierób
  • Użytkownicy
  • LUJ
Nie pomogło, błąd jest w starupie a więc coś z silniczkiem Gothica, będę musiał chyba w inny sposób zrobić tą funkcję, ale temat zostawiam dla jakiejś mądrej myśli
 
Keep calm and kill all ~~ Gorn


Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Możesz powiedzieć o jaki efekt końcowy chodzi ? Ze skryptu domyślam się, że ma być to coś a'la różne stany walki np. 3 poziomowa walka z bossem ?
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

starcd78

starcd78

Użytkownicy
LUJ
posty99
Propsy1
ProfesjaNierób
  • Użytkownicy
  • LUJ
Cos w tym stylu :P
 
Keep calm and kill all ~~ Gorn


Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Dodaj ten kod do B_SelectSpell:
//[...]
var int TELE_Func_01_FUNC_OneTime;                                             

   if(Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(Instancja NPC))
   && (TELE_Func_01_FUNC_OneTime == FALSE)
   && (self.attribute[ATR_HITPOINTS] < 800)
   && (self.attribute[ATR_HITPOINTS] > 600)
   {
   
Wld_PlayEffect("spellFX_Teleport_RING",  nazwanpca  , nazwanpca    , 0, 0, 0, FALSE );
Snd_Play ("MFX_TELEPORT_CAST");
AI_Teleport (nazwanpca, "waypointx");
TELE_Func_01_FUNC_OneTime = 1;

   }
   else if (TELE_Func_01_FUNC_OneTime == 1)
   && (self.attribute[ATR_HITPOINTS] < 500)
   && (self.attribute[ATR_HITPOINTS] > 300)
   {
Wld_PlayEffect("spellFX_Teleport_RING",  nazwanpca  , nazwanpca    , 0, 0, 0, FALSE );
    Snd_Play ("MFX_TELEPORT_CAST");
     AI_Teleport (nazwanpca, "waypointz");
   
   TELE_Func_01_FUNC_OneTime=2;
   }
   else if (TELE_Func_01_FUNC_OneTime == 2)
   && (self.attribute[ATR_HITPOINTS] < 200)
   && (self.attribute[ATR_HITPOINTS] > 1)
   {
   Wld_PlayEffect("spellFX_Teleport_RING",  nazwanpca  , nazwanpca    , 0, 0, 0, FALSE );
        Snd_Play ("MFX_TELEPORT_CAST");
        AI_Teleport (nazwanpca, "waypointz");
   TELE_Func_01_FUNC_OneTime=3;//Nigdy więcej
   };

   
   //[...] dalszy b_select spell
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

starcd78

starcd78

Użytkownicy
LUJ
posty99
Propsy1
ProfesjaNierób
  • Użytkownicy
  • LUJ

starcd78

Funkcja dla NPC
#10 2016-08-29, 13:27(Ostatnia zmiana: 2016-08-30, 00:01)
Też wpadłem na to aby w SelectSpell to umieścić, ale niestety nie działa ;/ Za to wpadłem na pomysł, że po prostu wyślę 3 triggery na obszar walki każdy będzie odpowiadał za teleport Bossa ;)
 
Keep calm and kill all ~~ Gorn



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