mahlendur/_work/Data/Scripts/Content/Items/IT_Amulette.d
Daniel Heße 892a40ff0f Initial commit with Subversion-codebase from 13/05/2022.
Cleaned up the mess, at this time, only viable data get synced (_work directory for Gothic-data, miranda for mdc-scripts.
Need to symlink files to a working directory.
2022-05-13 17:38:52 +02:00

579 lines
13 KiB
D
Raw Blame History

//Amulette//
// Schutzamulette
const int Value_Am_ProtFire = 600; const int Am_ProtFire = 10;
const int Value_Am_ProtEdge = 800; const int Am_ProtEdge = 10;
const int Value_Am_ProtMage = 700; const int Am_ProtMage = 10;
const int Value_Am_ProtPoint = 500; const int Am_ProtPoint = 10;
const int Value_Am_ProtTotal = 1000; const int Am_TProtFire = 8; // Schutzamulett Total
const int AM_TProtEdge = 8;
const int Am_TProtMage = 8;
const int Am_TProtPoint = 8;
// Andere Amulette
const int Value_Am_Dex = 1000; const int Am_Dex = 10;
const int Value_Am_Mana = 1000; const int Am_Mana = 10; //ITAM_HP
const int Value_Am_Strg = 1000; const int Am_Strg = 10;
const int Value_Am_Hp = 400; const int Am_Hp = 40;
const int Value_Am_HpMana = 1300; const int Am_HpMana_Hp = 30; // Mana + Hp Amulett
const int Am_HpMana_Mana = 10;
const int Value_Am_DexStrg = 1600; const int Am_DexStrg_Dex = 8; // Strg + Dex Amulett
const int Am_DexStrg_Strg = 8;
/******************************************************************************************/
INSTANCE ItAm_Prot_Fire_01(C_Item)
{
name = NAME_Amulett;
mainflag = ITEM_KAT_MAGIC;
flags = ITEM_AMULET;
value = Value_Am_ProtFire;
visual = "ItAm_Prot_Fire_01.3ds";
visual_skin = 0;
material = MAT_METAL;
on_equip = Equip_ItAm_Prot_Fire_01;
on_unequip = UnEquip_ItAm_Prot_Fire_01;
wear = WEAR_EFFECT;
effect = "SPELLFX_ITEMGLIMMER";
description = "Amulett der Flammen";
TEXT[2] = NAME_Prot_Fire;
COUNT[2] = Am_ProtFire;
TEXT[5] = NAME_Value;
COUNT[5] = value;
INV_ZBIAS = INVCAM_ENTF_AMULETTE_STANDARD;
};
FUNC VOID Equip_ItAm_Prot_Fire_01()
{
self.protection [PROT_FIRE] += Am_ProtFire;
};
FUNC VOID UnEquip_ItAm_Prot_Fire_01()
{
self.protection [PROT_FIRE] -= Am_ProtFire;
};
/******************************************************************************************/
INSTANCE ItAm_Prot_Edge_01(C_Item) // Waffen Schutz Amulett
{
name = NAME_Amulett;
mainflag = ITEM_KAT_MAGIC;
flags = ITEM_AMULET;
value = Value_Am_ProtEdge;
visual = "ItAm_Prot_Edge_01.3ds";
visual_skin = 0;
material = MAT_METAL;
on_equip = Equip_ItAm_Prot_Edge_01;
on_unequip = UnEquip_ItAm_Prot_Edge_01;
wear = WEAR_EFFECT;
effect = "SPELLFX_ITEMGLIMMER";
description = "Harnischamulett";
TEXT[2] = NAME_Prot_Edge;
COUNT[2] = Am_ProtEdge;
TEXT[5] = NAME_Value;
COUNT[5] = value;
INV_ZBIAS = INVCAM_ENTF_AMULETTE_STANDARD;
};
FUNC VOID Equip_ItAm_Prot_Edge_01()
{
self.protection [PROT_EDGE] += Am_ProtEdge;
self.protection [PROT_BLUNT] += Am_ProtEdge;
};
FUNC VOID UnEquip_ItAm_Prot_Edge_01()
{
self.protection [PROT_EDGE] -= Am_ProtEdge;
self.protection [PROT_BLUNT] -= Am_ProtEdge;
};
/******************************************************************************************/
INSTANCE ItAm_Prot_Point_01(C_ITEM) // Geschoss Schutz Amulett
{
name = NAME_Amulett;
mainflag = ITEM_KAT_MAGIC;
flags = ITEM_AMULET;
value = Value_Am_ProtPoint;
visual = "ItAm_Prot_Point_01.3ds";
visual_skin = 0;
material = MAT_METAL;
on_equip = Equip_ItAm_Prot_Point_01;
on_unequip = UnEquip_ItAm_Prot_Point_01;
wear = WEAR_EFFECT;
effect = "SPELLFX_ITEMGLIMMER";
description = "Amulett der Eichenhaut";
TEXT[2] = NAME_Prot_Point;
COUNT[2] = Am_ProtPoint;
TEXT[5] = NAME_Value;
COUNT[5] = value;
INV_ZBIAS = INVCAM_ENTF_AMULETTE_STANDARD;
};
FUNC VOID Equip_ItAm_Prot_Point_01()
{
self.protection [PROT_POINT] += Am_ProtPoint;
};
FUNC VOID UnEquip_ItAm_Prot_Point_01()
{
self.protection [PROT_POINT] -= Am_ProtPoint;
};
/******************************************************************************************/
INSTANCE ItAm_Prot_Mage_01(C_ITEM) // Magie Schutz Amulett von Serpentes an KDF f<>r alle Minenanteile (Mission -> MIS_Serpentes_MinenAnteil_KDF == LOG_SUCCESS)
{
name = NAME_Amulett;
mainflag = ITEM_KAT_MAGIC;
flags = ITEM_AMULET;
value = Value_Am_ProtMage;
visual = "ItAm_Prot_Mage_01.3ds";
visual_skin = 0;
material = MAT_METAL;
on_equip = Equip_ItAm_Prot_Mage_01;
on_unequip = UnEquip_ItAm_Prot_Mage_01;
wear = WEAR_EFFECT;
effect = "SPELLFX_ITEMGLIMMER";
description = "Amulett der Geisteskraft";
TEXT[2] = NAME_Prot_Magic;
COUNT[2] = Am_ProtMage;
TEXT[5] = NAME_Value;
COUNT[5] = value;
INV_ZBIAS = INVCAM_ENTF_AMULETTE_STANDARD;
};
FUNC VOID Equip_ItAm_Prot_Mage_01()
{
self.protection [PROT_MAGIC] += Am_ProtMage;
};
FUNC VOID UnEquip_ItAm_Prot_Mage_01()
{
self.protection [PROT_MAGIC] -= Am_ProtMage;
};
/******************************************************************************************/
INSTANCE ItAm_Prot_Total_01(C_ITEM)//ItAm_AmulettOfDeath_Mis (alle + 30) MAGIER_EXKLUSIV_AMULETT f<>r den Endkampf des KDFs (Kapitel 5)
{
name = NAME_Amulett;
mainflag = ITEM_KAT_MAGIC;
flags = ITEM_AMULET;
value = Value_Am_ProtTotal;
visual = "ItAm_Prot_Total_01.3ds";
visual_skin = 0;
material = MAT_METAL;
on_equip = Equip_Value_Am_ProtTotal;
on_unequip = UnEquip_Value_Am_ProtTotal;
wear = WEAR_EFFECT;
effect = "SPELLFX_ITEMGLIMMER";
description = "Amulett der Erzhaut";
TEXT[1] = NAME_Prot_Fire;
COUNT[1] = AM_TProtFire;
TEXT[2] = NAME_Prot_Magic;
COUNT[2] = AM_TProtMage;
TEXT[3] = NAME_Prot_Point;
COUNT[3] = AM_TProtPoint;
TEXT[4] = NAME_Prot_Edge;
COUNT[4] = AM_TProtEdge;
TEXT[5] = NAME_Value;
COUNT[5] = value;
INV_ZBIAS = INVCAM_ENTF_AMULETTE_STANDARD;
};
FUNC VOID Equip_Value_Am_ProtTotal()
{
self.protection [PROT_EDGE] += AM_TProtEdge;
self.protection [PROT_BLUNT] += AM_TProtEdge;
self.protection [PROT_POINT] += AM_TProtPoint;
self.protection [PROT_FIRE] += AM_TProtFire;
self.protection [PROT_MAGIC] += AM_TProtMage;
};
FUNC VOID UnEquip_Value_Am_ProtTotal()
{
self.protection [PROT_EDGE] -= AM_TProtEdge;
self.protection [PROT_BLUNT] -= AM_TProtEdge;
self.protection [PROT_POINT] -= AM_TProtPoint;
self.protection [PROT_FIRE] -= AM_TProtFire;
self.protection [PROT_MAGIC] -= AM_TProtMage;
};
/******************************************************************************************/
INSTANCE ItAm_Dex_01(C_Item) //Joly: von Dar an KDF und DJG vergeben ab Kapitel 4 \ Xardas_Secret-area f<>r PAL (Kapitel 3)
{
name = NAME_Amulett;
mainflag = ITEM_KAT_MAGIC;
flags = ITEM_AMULET;
value = Value_Am_Dex;
visual = "ItAm_Dex_01.3ds";
visual_skin = 0;
material = MAT_METAL;
on_equip = Equip_ItAm_Dex_01;
on_unequip = UnEquip_ItAm_Dex_01;
wear = WEAR_EFFECT;
effect = "SPELLFX_ITEMGLIMMER";
description = "Amulett der Wendigkeit";
TEXT[2] = NAME_Bonus_Dex;
COUNT[2] = Am_Dex;
TEXT[5] = NAME_Value;
COUNT[5] = value;
INV_ZBIAS = INVCAM_ENTF_AMULETTE_STANDARD;
};
FUNC VOID Equip_ItAm_Dex_01()
{
Npc_ChangeAttribute(self,ATR_DEXTERITY,+ Am_Dex);
};
FUNC VOID UnEquip_ItAm_Dex_01()
{
Npc_ChangeAttribute(self,ATR_DEXTERITY,- Am_Dex);
};
/******************************************************************************************/
INSTANCE ItAm_Strg_01(C_Item) //in LOCkpick Truhe Fingers
{
name = NAME_Amulett;
mainflag = ITEM_KAT_MAGIC;
flags = ITEM_AMULET;
value = Value_Am_Strg;
visual = "ItAm_Strg_01.3ds";
visual_skin = 0;
material = MAT_METAL;
on_equip = Equip_ItAm_Strg_01;
on_unequip = UnEquip_ItAm_Strg_01;
wear = WEAR_EFFECT;
effect = "SPELLFX_ITEMGLIMMER";
description = "Amulett der Kraft";
TEXT[2] = NAME_Bonus_Str;
COUNT[2] = Am_Strg;
TEXT[5] = NAME_Value;
COUNT[5] = value;
INV_ZBIAS = INVCAM_ENTF_AMULETTE_STANDARD;
};
FUNC VOID Equip_ItAm_Strg_01()
{
Npc_ChangeAttribute(self,ATR_STRENGTH,+ Am_Strg);
};
FUNC VOID UnEquip_ItAm_Strg_01()
{
Npc_ChangeAttribute(self,ATR_STRENGTH,- Am_Strg);
};
/******************************************************************************************/
INSTANCE ItAm_Hp_01(C_Item) //von Bennet dem Schmied an den PAL und dem KDF (Kapitel 3)\Xardas_Secret-area f<>r DJG (Kapitel 3)
{
name = NAME_Amulett;
mainflag = ITEM_KAT_MAGIC;
flags = ITEM_AMULET;
value = Value_Am_Hp;
visual = "ItAm_Hp_01.3ds";
visual_skin = 0;
material = MAT_METAL;
on_equip = Equip_ItAm_Hp_01;
on_unequip = UnEquip_ItAm_Hp_01;
wear = WEAR_EFFECT;
effect = "SPELLFX_ITEMGLIMMER";
description = "Amulett der Lebenskraft";
TEXT[2] = NAME_Bonus_HP;
COUNT[2] = Am_Hp;
TEXT[5] = NAME_Value;
COUNT[5] = value;
INV_ZBIAS = INVCAM_ENTF_AMULETTE_STANDARD;
};
FUNC VOID Equip_ItAm_Hp_01()
{
self.attribute[ATR_HITPOINTS_MAX] = self.attribute[ATR_HITPOINTS_MAX] + Am_Hp;
self.attribute[ATR_HITPOINTS] = self.attribute[ATR_HITPOINTS] + Am_Hp;
};
FUNC VOID UnEquip_ItAm_Hp_01()
{
self.attribute [ATR_HITPOINTS_MAX] = self.attribute [ATR_HITPOINTS_MAX] -Am_Hp;
if (self.attribute[ATR_HITPOINTS] > (Am_Hp + 2))
{
self.attribute [ATR_HITPOINTS] = self.attribute [ATR_HITPOINTS] -Am_Hp;
}
else
{
self.attribute [ATR_HITPOINTS] = 2;
};
};
/******************************************************************************************/
INSTANCE ItAm_Mana_01(C_Item) //in der OW von Angar an alle SC Gilden! (Kapitel 4)
{
name = NAME_Amulett;
mainflag = ITEM_KAT_MAGIC;
flags = ITEM_AMULET;
value = Value_Am_Mana;
visual = "ItAm_Mana_01.3ds";
visual_skin = 0;
material = MAT_METAL;
on_equip = Equip_ItAm_Mana_01;
on_unequip = UnEquip_ItAm_Mana_01;
wear = WEAR_EFFECT;
effect = "SPELLFX_ITEMGLIMMER";
description = "Amulett der Magie";
TEXT[2] = NAME_Bonus_Mana;
COUNT[2] = Am_Mana;
TEXT[5] = NAME_Value;
COUNT[5] = value;
INV_ZBIAS = INVCAM_ENTF_AMULETTE_STANDARD;
};
FUNC VOID Equip_ItAm_Mana_01()
{
self.attribute[ATR_MANA_MAX] = self.attribute[ATR_MANA_MAX] + Am_Mana;
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] + Am_Mana;
};
FUNC VOID UnEquip_ItAm_Mana_01 ()
{
self.attribute[ATR_MANA_MAX] = self.attribute[ATR_MANA_MAX] - Am_Mana;
if (self.attribute[ATR_MANA] > (Am_Mana))
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - Am_Mana;
}
else
{
self.attribute[ATR_MANA] = 0;
};
};
/******************************************************************************************/
INSTANCE ItAm_Dex_Strg_01(C_Item) // wird dem PAL von Ulthar <20>berreicht f<>r die Reinigung der Schreine Kapitel 3\
{
name = "Amulett der Macht";
mainflag = ITEM_KAT_MAGIC;
flags = ITEM_AMULET;
value = Value_Am_DexStrg;
visual = "ItAm_Dex_Strg_01.3ds";
visual_skin = 0;
material = MAT_METAL;
on_equip = Equip_ItAm_Dex_Strg_01;
on_unequip = UnEquip_ItAm_Dex_Strg_01;
wear = WEAR_EFFECT;
effect = "SPELLFX_ITEMGLIMMER";
description = "Amulett der Macht";
TEXT[2] = NAME_Bonus_Dex;
COUNT[2] = Am_DexStrg_Dex;
TEXT[3] = NAME_Bonus_Str;
COUNT[3] = Am_DexStrg_Strg;
TEXT[5] = NAME_Value;
COUNT[5] = value;
INV_ZBIAS = INVCAM_ENTF_AMULETTE_STANDARD;
};
FUNC VOID Equip_ItAm_Dex_Strg_01()
{
Npc_ChangeAttribute(self,ATR_DEXTERITY,+ Am_DexStrg_Dex );
Npc_ChangeAttribute(self,ATR_STRENGTH,+ Am_DexStrg_Strg );
};
FUNC VOID UnEquip_ItAm_Dex_Strg_01 ()
{
Npc_ChangeAttribute(self,ATR_DEXTERITY,-Am_DexStrg_Dex );
Npc_ChangeAttribute(self,ATR_STRENGTH,-Am_DexStrg_Strg );
};
/******************************************************************************************/
INSTANCE ItAm_Hp_Mana_01 (C_Item) //Xardas_Secret-area f<>r KDF (Kapitel 3)
{
name = "Amulett der Erleuchtung";
mainflag = ITEM_KAT_MAGIC;
flags = ITEM_AMULET;
value = Value_Am_HpMana;
visual = "ItAm_Hp_Mana_01.3ds";
visual_skin = 0;
material = MAT_METAL;
on_equip = Equip_ItAm_Hp_Mana_01 ;
on_unequip = UnEquip_ItAm_Hp_Mana_01 ;
wear = WEAR_EFFECT;
effect = "SPELLFX_ITEMGLIMMER";
description = "Amulett der Erleuchtung";
TEXT[2] = NAME_Bonus_HP;
COUNT[2] = Am_HpMana_Hp;
TEXT[3] = NAME_Bonus_Mana;
COUNT[3] = Am_HpMana_Mana;
TEXT[5] = NAME_Value;
COUNT[5] = value;
INV_ZBIAS = INVCAM_ENTF_AMULETTE_STANDARD;
};
FUNC VOID Equip_ItAm_Hp_Mana_01 ()
{
self.attribute[ATR_HITPOINTS] = self.attribute[ATR_HITPOINTS] + Am_HpMana_Hp;
self.attribute[ATR_HITPOINTS_MAX] = self.attribute[ATR_HITPOINTS_MAX] + Am_HpMana_Hp;
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] + Am_HpMana_Mana;
self.attribute[ATR_MANA_MAX] = self.attribute[ATR_MANA_MAX] + Am_HpMana_Mana;
};
FUNC VOID UnEquip_ItAm_Hp_Mana_01 ()
{
//self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - Am_HpMana_Mana;
self.attribute[ATR_MANA_MAX] = self.attribute[ATR_MANA_MAX] - Am_HpMana_Mana;
self.attribute[ATR_HITPOINTS_MAX] = self.attribute[ATR_HITPOINTS_MAX] - Am_HpMana_Hp;
if (self.attribute[ATR_HITPOINTS] > Am_HpMana_Hp+1)
{
self.attribute[ATR_HITPOINTS] = self.attribute[ATR_HITPOINTS] - Am_HpMana_Hp;
}
else
{
self.attribute [ATR_HITPOINTS] = 2;
};
if (self.attribute[ATR_MANA] >= Am_HpMana_Mana)
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - Am_HpMana_Mana;
}
else
{
self.attribute [ATR_MANA] = 0;
};
};
/******************************************************************************************/