Problem z wyborem strzał 2140 2

O temacie

Autor nocnymocny

Zaczęty 29.07.2015 roku

Wyświetleń 2140

Odpowiedzi 2

nocnymocny

nocnymocny

Użytkownicy
posty65
Propsy6
Profesjabrak
  • Użytkownicy
Witam. Na podstawie tutoriala "Jeden łuk a wiele strzał zrobiłem, jak było w nim napisane. Wybór w przypadku Beziego działa, jednak kiedy podchodzę do bandyty, a on używa łuku, to automatycznie pojawia się okienko monologu. Jak zrobić, żeby monolog włączał się tylko w przypadku bohatera, a nie osób trzecich.

Skrypt monologu:
Cytuj
      instance Bow_Hero_Choose (C_INFO)
      {
         npc         = PC_Hero;
         nr         = 1;
         condition   = Bow_Hero_Choose_Condition;
         information   = Bow_Hero_Choose_Info;
         permanent   = 1;
         important   = 1;
      };                

      FUNC int Bow_Hero_Choose_Condition()
      {
         if ( BowChoose == TRUE)
         {
         
            return 1;
         };
      };

   FUNC VOID Bow_Hero_Choose_Info()
   {
            
         Info_ClearChoices   (Bow_Hero_Choose);
         Info_AddChoice       (Bow_Hero_Choose,      DIALOG_BACK,   powrot);

         if Npc_HasItems(hero, ItRw_ognista_strzala)
         {
         Info_AddChoice (Bow_Hero_Choose,   "Plonlce strzaly",   ogien );
         
         };

         if Npc_HasItems(hero, ItRw_Arrow)
         {
         Info_AddChoice (Bow_Hero_Choose,   "Normalne strzaly",   pocisk );
         
         };

      if Npc_HasItems(hero, ItRw_strzala_mrozu)
         {
         Info_AddChoice (Bow_Hero_Choose,   "Zamrazajace strzaly",   mroz );
         
         };

            if Npc_HasItems(hero, ITRW_POISONARROW01)
         {
         Info_AddChoice (Bow_Hero_Choose,   "Slabo zatrute strzaly",   POISONARROW01);
         
         };
         
            if Npc_HasItems(hero, ITRW_POISONARROW02)
         {
         Info_AddChoice (Bow_Hero_Choose,   "Srednio zatrute strzaly",   POISONARROW02);
         
         };
         
         
      if Npc_HasItems(hero, ITRW_POISONARROW03)
         {
         Info_AddChoice (Bow_Hero_Choose,   "Mocno zatrute strzaly",   POISONARROW03);
         
         };
         
   if Npc_HasItems(hero, ItRw_strzala_odrzucajaca)
         {
         Info_AddChoice (Bow_Hero_Choose,   "Odrzucajace strzaly",   odrzut );
         
         };
   };
      
   

      FUNC void pocisk ()
      {
         var C_ITEM equippedbow;
         equippedbow = Npc_GetEquippedRangedWeapon(hero);

         equippedbow.munition = ItRw_Arrow;
         BowChoose = FALSE;
         none = TRUE;
         fire = FALSE;
         AI_StopProcessInfos (hero);
   
      };


      FUNC void ogien ()
      {
         var C_ITEM equippedbow;
         equippedbow = Npc_GetEquippedRangedWeapon(hero);
         equippedbow.munition = ItRw_ognista_strzala;
         BowChoose = FALSE;
         fire = TRUE;
         none = False;
         AI_StopProcessInfos (hero);
   
      };


      FUNC void mroz ()
      {
         var C_ITEM equippedbow;
         equippedbow = Npc_GetEquippedRangedWeapon(hero);
         equippedbow.munition = ItRw_strzala_mrozu;
         BowChoose = FALSE;
         fire = TRUE;
         none = False;
         AI_StopProcessInfos (hero);

      };

      
         FUNC void POISONARROW01 ()
      {
         var C_ITEM equippedbow;
         equippedbow = Npc_GetEquippedRangedWeapon(hero);
         BowChoose = FALSE;
         equippedbow.munition = itrw_poisonarrow01;
         fire = TRUE;
         none = False;
         AI_StopProcessInfos (hero);

      };   
      
      
      FUNC void POISONARROW02 ()
      {
         var C_ITEM equippedbow;
         equippedbow = Npc_GetEquippedRangedWeapon(hero);
         BowChoose = FALSE;
         equippedbow.munition = itrw_poisonarrow02;
         fire = TRUE;
         none = False;
         AI_StopProcessInfos (hero);

      };      
      
      
      FUNC void POISONARROW03 ()
      {
         var C_ITEM equippedbow;
         equippedbow = Npc_GetEquippedRangedWeapon(hero);
         BowChoose = FALSE;
         equippedbow.munition = itrw_poisonarrow03;
         fire = TRUE;
         none = False;
         AI_StopProcessInfos (hero);

      };   
      
      
   FUNC void odrzut()
      {
         var C_ITEM equippedbow;
         equippedbow = Npc_GetEquippedRangedWeapon(hero);
         equippedbow.munition = ItRw_strzala_odrzucajaca;
         BowChoose = FALSE;
         fire = TRUE;
         none = False;
         AI_StopProcessInfos (hero);
      
      };


      FUNC void powrot ()
      {
      BowChoose = FALSE;
      AI_StopProcessInfos (hero);
      };


Skrypt przykładowego łuku:

Cytuj
INSTANCE ItRw_Arabic_Bow (C_Item)
{
   name             =   "Łuk z Orientu";
   mainflag          =   ITEM_KAT_FF;
   flags             =   ITEM_BOW;
   material          =   MAT_WOOD;
   value             =   750;
   damageTotal         =   75;
   damagetype         =   DAM_POINT;
   munition         =   ItRw_Arrow;
   on_equip          =    equip_bestarrow_01;
   on_unequip          =    unequip_bestarrow_01;
   cond_atr[2]         =    ATR_DEXTERITY;
   cond_value[2]        =    70;
   visual             =   "ItRw_Bow_Long_Arabic.mms";
   description         = name;
   TEXT[2]            = NAME_Damage;               COUNT[2]   = damageTotal;
   TEXT[3]          = NAME_Dex_needed;            COUNT[3]   = cond_value[2];
   TEXT[5]            = NAME_Value;               COUNT[5]   = value;
};

func void equip_bestarrow_01()
{
         BowChoose = TRUE;
         equip_bestarrow (ItRw_Arabic_Bow);
         AI_ProcessInfos (hero);
         
};
func void unequip_bestarrow_01 ()
{
        BowChoose = FALSE;
        AI_StopProcessInfos (hero);
};
 
https://www.youtube.com/watch?v=5HdbLar5Thg

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
if (Npc_IsPlayer(self))

nocnymocny

nocnymocny

Użytkownicy
posty65
Propsy6
Profesjabrak
  • Użytkownicy
Wszystko już działa, jak powinno. Chicken wielkie dzięki!
 
https://www.youtube.com/watch?v=5HdbLar5Thg


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