Funkcja regeneracji w pancerzu usuwa funkcje pasa. 656 2

O temacie

Autor lucki666

Zaczęty 16.02.2019 roku

Wyświetleń 656

Odpowiedzi 2

lucki666

lucki666

Użytkownicy
posty72
Propsy45
ProfesjaSkrypter
  • Użytkownicy
Część.
Dodałem funkcje regeneracji many w pancerzu nowicjusze i maga, ale funkcja pasa przestaje działać.

W PC_Hero dodałem
Cytuj
attribute[ATR_REGENERATEMANA]       = 60;

dzięki czemu mana regeneruje się 1/60sekund przez cały czas gry.
Lecz w pancerzu nowicjusza dodałem drugą funkcję, co wygląda tak:
Cytuj
INSTANCE ITAR_NOV_L (C_Item)
{
   name                =   "Szata nowicjusza";

   mainflag             =   ITEM_KAT_ARMOR;
   flags                =   0;

   protection [PROT_EDGE]   =   25;
   protection [PROT_BLUNT] =    25;
   protection [PROT_POINT] =    25;
   protection [PROT_FIRE]    =    0;
   protection [PROT_MAGIC] =    10;

   value                =   VALUE_ITAR_NOV_L;

   wear                =   WEAR_TORSO;

   visual                =   "ItAr_Nov_L.3ds";
   visual_change          =   "Armor_Nov_L.asc";
   visual_skin          =   0;
   material             =   MAT_LEATHER;
   
   on_equip            =   Equip_ITAR_NOV_L;
   on_unequip            =   UnEquip_ITAR_NOV_L;

   on_equip            =   Equip_ATR_REGENERATEMANA_1;
   on_unequip            =   UnEquip_ATR_REGENERATEMANA_1;

   
   description            =   name;
   TEXT[0]               =   "Szata z łaską Innosa. Powoduje wolną regeneracje many.";
   TEXT[1]               =   NAME_Prot_Edge;      
   COUNT[1]            =    protection   [PROT_EDGE];
   
   TEXT[2]               =   NAME_Prot_Point;      
   COUNT[2]            =    protection   [PROT_POINT];
   
   TEXT[3]             =   NAME_Prot_Fire;         
   COUNT[3]            =    protection   [PROT_FIRE];
   
   TEXT[4]               =   NAME_Prot_Magic;      
   COUNT[4]            =    protection   [PROT_MAGIC];
   
   TEXT[5]               =   NAME_Value;         
   COUNT[5]            =    value;
};
FUNC VOID Equip_ITAR_NOV_L()
{
   if Npc_IsPlayer (self)
   {
      NOVArmor_Equipped = TRUE;
      
      if (NOV01_Equipped == TRUE)
      {
         self.protection[PROT_EDGE]    += BA_Bonus01;
         self.protection[PROT_BLUNT] += BA_Bonus01;
         self.protection[PROT_POINT] += BA_Bonus01;
         self.protection[PROT_MAGIC] += BA_Bonus01;
         self.protection[PROT_FIRE]    += BA_Bonus01;
      };
   };

};
FUNC VOID UnEquip_ITAR_NOV_L()
{
   if Npc_IsPlayer (self)
   {
      NOVArmor_Equipped = FALSE;
   
      if (NOV01_Equipped == TRUE)
      {
         self.protection[PROT_EDGE]    -= BA_Bonus01;
         self.protection[PROT_BLUNT] -= BA_Bonus01;
         self.protection[PROT_POINT] -= BA_Bonus01;
         self.protection[PROT_MAGIC] -= BA_Bonus01;
         self.protection[PROT_FIRE]    -= BA_Bonus01;
      };
   };
};
   FUNC VOID Equip_ATR_REGENERATEMANA_1()
   {
      Npc_ChangeAttribute(self,ATR_REGENERATEMANA,-50 );
   };

   FUNC VOID UnEquip_ATR_REGENERATEMANA_1()
   {
      Npc_ChangeAttribute(self,ATR_REGENERATEMANA,+50 );
   };

Teraz prawidłowo mana regeneruje się 1/10 sekund przy założonym pancerzu, lecz zbroja z pasem nowicjusza nie dodaje dodatkowych premii do obrony. To samo występuje w zbroi maga.

Wydaje mi się, że może należałoby to włączyć wszystko w 1 funkcje, ale brak mi aż takich umiejętności. Ponadto nie chcę za bardzo, aby regeneracja many działała tylko podczas założonego odpowiedniego pasa.

Jakieś pomysły?
 

Splash

Splash

Moderator
posty4161
Propsy3359
ProfesjaNierób
  • Moderator
Trudno się dziwić, że nie działa skoro najpierw zapisujesz w zmiennych on_equip i on_unequip oryginalne funkcje pasa, a potem zastępujesz je swoimi.

INSTANCE ITAR_NOV_L (C_Item)
{
   name                =   "Szata nowicjusza";

   mainflag             =   ITEM_KAT_ARMOR;
   flags                =   0;

   protection [PROT_EDGE]   =   25;
   protection [PROT_BLUNT] =    25;
   protection [PROT_POINT] =    25;
   protection [PROT_FIRE]    =    0;
   protection [PROT_MAGIC] =    10;

   value                =   VALUE_ITAR_NOV_L;

   wear                =   WEAR_TORSO;

   visual                =   "ItAr_Nov_L.3ds";
   visual_change          =   "Armor_Nov_L.asc";
   visual_skin          =   0;
   material             =   MAT_LEATHER;
   
   on_equip            =   Equip_ITAR_NOV_L;
   on_unequip            =   UnEquip_ITAR_NOV_L;
   
   description            =   name;
   TEXT[0]               =   "Szata z łaską Innosa. Powoduje wolną regeneracje many.";
   TEXT[1]               =   NAME_Prot_Edge;     
   COUNT[1]            =    protection   [PROT_EDGE];
   
   TEXT[2]               =   NAME_Prot_Point;     
   COUNT[2]            =    protection   [PROT_POINT];
   
   TEXT[3]             =   NAME_Prot_Fire;         
   COUNT[3]            =    protection   [PROT_FIRE];
   
   TEXT[4]               =   NAME_Prot_Magic;     
   COUNT[4]            =    protection   [PROT_MAGIC];
   
   TEXT[5]               =   NAME_Value;         
   COUNT[5]            =    value;
};
FUNC VOID Equip_ITAR_NOV_L()
{
   Npc_ChangeAttribute(self,ATR_REGENERATEMANA,+50 );

   if Npc_IsPlayer (self)
   {
      NOVArmor_Equipped = TRUE;
     
      if (NOV01_Equipped == TRUE)
      {
         self.protection[PROT_EDGE]    += BA_Bonus01;
         self.protection[PROT_BLUNT] += BA_Bonus01;
         self.protection[PROT_POINT] += BA_Bonus01;
         self.protection[PROT_MAGIC] += BA_Bonus01;
         self.protection[PROT_FIRE]    += BA_Bonus01;
      };
   };

};
FUNC VOID UnEquip_ITAR_NOV_L()
{
   Npc_ChangeAttribute(self,ATR_REGENERATEMANA,-50 );

   if Npc_IsPlayer (self)
   {
      NOVArmor_Equipped = FALSE;
   
      if (NOV01_Equipped == TRUE)
      {
         self.protection[PROT_EDGE]    -= BA_Bonus01;
         self.protection[PROT_BLUNT] -= BA_Bonus01;
         self.protection[PROT_POINT] -= BA_Bonus01;
         self.protection[PROT_MAGIC] -= BA_Bonus01;
         self.protection[PROT_FIRE]    -= BA_Bonus01;
      };
   };
};
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...

lucki666

lucki666

Użytkownicy
posty72
Propsy45
ProfesjaSkrypter
  • Użytkownicy
Jak to powiedział zbieracz z Nowego obozu, dostając butelkę wody: "Piękne dzięki".
 


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