Показать сообщение отдельно
Старый 15.07.2005, 14:55   #219
Vam

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Уроки скриптологии

* *18. Функции, связанные с оружием Белиара.

Файл B_ScHasBeliarsWeapon.d

// Имеет ли ГГ руны Белиара?
// ----------------------------------------------------------------
// Возвращаемое значение: TRUE - да, FALSE - нет
func int C_SCHasBeliarsRune()
{
* *// если ГГ имеет
* *if (Npc_HasItems(hero,ItRu_BeliarsRage) * * == TRUE) * *// Ярость Белиара
* *¦¦ (Npc_HasItems(hero,ItRu_SuckEnergy) * * *== TRUE) * *// или Украсть энергию
* *¦¦ (Npc_HasItems(hero,ItRu_GreenTentacle) * == TRUE) * *// или Зеленые щупальца
* *¦¦ (Npc_HasItems(hero,ItRu_Swarm) * * * * * == TRUE) * *// или Рой
* *¦¦ (Npc_HasItems(hero,ItRu_Skull) * * * * * == TRUE) * *// или Крик мертвых
* *¦¦ (Npc_HasItems(hero,ItRu_SummonZombie) * *== TRUE) * *// или Создать зомби
* *¦¦ (Npc_HasItems(hero,ItRu_SummonGuardian) *== TRUE) * *// или Создать стража
* *{
* * * *return TRUE;
* *};
* *return FALSE;
};

// Имеет ли ГГ оружие Белиара?
// ----------------------------------------------------------------
// Возвращаемое значение: TRUE - да, FALSE - нет
func int C_ScHasBeliarsWeapon()
{ *
* *// если ГГ имеет один из одноручников
* *if (Npc_HasItems(hero,ItMw_BeliarWeapon_Raven)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_1H_01)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_1H_02)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_1H_03)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_1H_04)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_1H_05)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_1H_06)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_1H_07)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_1H_08)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_1H_09)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_1H_10)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_1H_11)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_1H_12)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_1H_13)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_1H_14)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_1H_15)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_1H_16)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_1H_17)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_1H_18)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_1H_19)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_1H_20)
* *// или один из двуручников
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_2H_01)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_2H_02)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_2H_03)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_2H_04)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_2H_05)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_2H_06)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_2H_07)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_2H_08)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_2H_09)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_2H_10)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_2H_11)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_2H_12)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_2H_13)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_2H_14)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_2H_15)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_2H_16)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_2H_17)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_2H_18)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_2H_19)
* *¦¦ Npc_HasItems(hero,ItMw_BeliarWeapon_2H_20)
* *// или руны Белиара
* *¦¦ C_ScHasBeliarsRune())
* *{
* * * *return TRUE;
* *};
* *return FALSE;
}; *

// Является ли оружие ГГ оружием Белиара?
// ----------------------------------------------------------------
// Аргумент: Weap - проверяемый предмет
// ----------------------------------------------------------------
// Возвращаемое значение: TRUE - да, FALSE - нет
func int C_IsItemBeliarsWeapon(var C_ITEM Weap)
{ *
* *// если предмет является одним из одноручников
* *if (Hlp_IsItem(Weap,ItMw_BeliarWeapon_Raven) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_1H_01) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_1H_02) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_1H_03) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_1H_04) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_1H_05) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_1H_06) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_1H_07) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_1H_08) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_1H_09) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_1H_10) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_1H_11) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_1H_12) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_1H_13) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_1H_14) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_1H_15) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_1H_16) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_1H_17) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_1H_18) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_1H_19) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_1H_20) == TRUE)
* *// или одним из двуручников
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_2H_01) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_2H_02) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_2H_03) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_2H_04) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_2H_05) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_2H_06) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_2H_07) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_2H_08) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_2H_09) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_2H_10) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_2H_11) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_2H_12) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_2H_13) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_2H_14) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_2H_15) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_2H_16) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_2H_17) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_2H_18) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_2H_19) == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItMw_BeliarWeapon_2H_20) == TRUE)
* *// или одной из рун Белиара
* *¦¦ (Hlp_IsItem(Weap,ItRu_BeliarsRage) * * * *== TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItRu_SuckEnergy) * * * * == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItRu_GreenTentacle) * * *== TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItRu_Swarm) * * * * * * *== TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItRu_Skull) * * * * * * *== TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItRu_SummonZombie) * * * == TRUE)
* *¦¦ (Hlp_IsItem(Weap,ItRu_SummonGuardian) * * == TRUE)
* *{
* * * *return TRUE;
* *};
* *return FALSE;
}; *

// Является ли оружие ГГ дальнего радиуса повреждения оружием Белиара?
// ----------------------------------------------------------------
// Возвращаемое значение: TRUE - да, FALSE - нет
func int C_ScHasReadiedBeliarsWeapon()
{ *
* *var C_ITEM ReadyWeap;
* *// получить ссылку на оружие дальнего радиуса поражения, которым экипирован ГГ
* *ReadyWeap = Npc_GetReadiedWeapon(hero);
* *// если это оружие Белиара
* *if(C_IsItemBeliarsWeapon(ReadyWeap))
* *{
* * * *return TRUE;
* *};
* *return FALSE;
};

// Является ли оружие ГГ ближнего радиуса повреждения оружием Белиара?
// ----------------------------------------------------------------
// Возвращаемое значение: TRUE - да, FALSE - нет
func int C_ScHasEquippedBeliarsWeapon()
{ *
* *var C_ITEM EquipWeap;
* *// получить ссылку на оружие ближнего радиуса поражения, которым экипирован ГГ
* *EquipWeap = Npc_GetEquippedMeleeWeapon(hero);
* *// если это оружие Белиара
* *if(C_IsItemBeliarsWeapon(EquipWeap))
* *{
* * * *return TRUE;
* *};
* *
* *return FALSE; //DEFAULT
};

// Удалить оружие Белиара из инвентаря ГГ
func void B_ClearBeliarsWeapon ()
{ *
* *// если ГГ имеет один из одноручников, то удалить его
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_Raven,N pc_HasItems(hero,ItMw_BeliarWe
apon_Raven));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_1H_01,N pc_HasItems(hero,ItMw_BeliarWe
apon_1H_01));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_1H_02,N pc_HasItems(hero,ItMw_BeliarWe
apon_1H_02));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_1H_03,N pc_HasItems(hero,ItMw_BeliarWe
apon_1H_03));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_1H_04,N pc_HasItems(hero,ItMw_BeliarWe
apon_1H_04));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_1H_05,N pc_HasItems(hero,ItMw_BeliarWe
apon_1H_05));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_1H_06,N pc_HasItems(hero,ItMw_BeliarWe
apon_1H_06));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_1H_07,N pc_HasItems(hero,ItMw_BeliarWe
apon_1H_07));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_1H_08,N pc_HasItems(hero,ItMw_BeliarWe
apon_1H_08));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_1H_09,N pc_HasItems(hero,ItMw_BeliarWe
apon_1H_09));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_1H_10,N pc_HasItems(hero,ItMw_BeliarWe
apon_1H_10));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_1H_11,N pc_HasItems(hero,ItMw_BeliarWe
apon_1H_11));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_1H_12,N pc_HasItems(hero,ItMw_BeliarWe
apon_1H_12));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_1H_13,N pc_HasItems(hero,ItMw_BeliarWe
apon_1H_13));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_1H_14,N pc_HasItems(hero,ItMw_BeliarWe
apon_1H_14));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_1H_15,N pc_HasItems(hero,ItMw_BeliarWe
apon_1H_15));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_1H_16,N pc_HasItems(hero,ItMw_BeliarWe
apon_1H_16));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_1H_17,N pc_HasItems(hero,ItMw_BeliarWe
apon_1H_17));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_1H_18,N pc_HasItems(hero,ItMw_BeliarWe
apon_1H_18));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_1H_19,N pc_HasItems(hero,ItMw_BeliarWe
apon_1H_19));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_1H_20,N pc_HasItems(hero,ItMw_BeliarWe
apon_1H_20));
* *// если ГГ имеет один из двуручников, то удалить его
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_2H_01,N pc_HasItems(hero,ItMw_BeliarWe
apon_2H_01));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_2H_02,N pc_HasItems(hero,ItMw_BeliarWe
apon_2H_02));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_2H_03,N pc_HasItems(hero,ItMw_BeliarWe
apon_2H_03));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_2H_04,N pc_HasItems(hero,ItMw_BeliarWe
apon_2H_04));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_2H_05,N pc_HasItems(hero,ItMw_BeliarWe
apon_2H_05));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_2H_06,N pc_HasItems(hero,ItMw_BeliarWe
apon_2H_06));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_2H_07,N pc_HasItems(hero,ItMw_BeliarWe
apon_2H_07));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_2H_08,N pc_HasItems(hero,ItMw_BeliarWe
apon_2H_08));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_2H_09,N pc_HasItems(hero,ItMw_BeliarWe
apon_2H_09));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_2H_10,N pc_HasItems(hero,ItMw_BeliarWe
apon_2H_10));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_2H_11,N pc_HasItems(hero,ItMw_BeliarWe
apon_2H_11));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_2H_12,N pc_HasItems(hero,ItMw_BeliarWe
apon_2H_12));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_2H_13,N pc_HasItems(hero,ItMw_BeliarWe
apon_2H_13));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_2H_14,N pc_HasItems(hero,ItMw_BeliarWe
apon_2H_14));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_2H_15,N pc_HasItems(hero,ItMw_BeliarWe
apon_2H_15));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_2H_16,N pc_HasItems(hero,ItMw_BeliarWe
apon_2H_16));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_2H_17,N pc_HasItems(hero,ItMw_BeliarWe
apon_2H_17));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_2H_18,N pc_HasItems(hero,ItMw_BeliarWe
apon_2H_18));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_2H_19,N pc_HasItems(hero,ItMw_BeliarWe
apon_2H_19));
* *Npc_RemoveInvItems(hero,ItMw_BeliarWeapon_2H_20,N pc_HasItems(hero,ItMw_BeliarWe
apon_2H_20));
* *// если ГГ имеет одну из рун Белиара, то удалить её
* *Npc_RemoveInvItems(hero,ItRu_BeliarsRage * * * ,Npc_HasItems(hero,ItRu_BeliarsRage));
* *Npc_RemoveInvItems(hero,ItRu_SuckEnergy * * * *,Npc_HasItems(hero,ItRu_SuckEnergy));
* *Npc_RemoveInvItems(hero,ItRu_GreenTentacle * * ,Npc_HasItems(hero,ItRu_GreenTentacle));
* *Npc_RemoveInvItems(hero,ItRu_Swarm * * * * * * ,Npc_HasItems(hero,ItRu_Swarm));
* *Npc_RemoveInvItems(hero,ItRu_Skull * * * * * * ,Npc_HasItems(hero,ItRu_Skull));
* *Npc_RemoveInvItems(hero,ItRu_SummonZombie * * *,Npc_HasItems(hero,ItRu_SummonZombie));
* *Npc_RemoveInvItems(hero,ItRu_SummonGuardian * *,Npc_HasItems(hero,ItRu_SummonGuardian));
}; *

var int BeliarWeapCurrentLvL; * * * // текущий уровень оружия Белиара
var int BeliarWeapNextLvL; * * * * *// следующий уровень оружия Белиара
var int BeliarNextDamageChance; * * // следующая вероятность повреждения
* * * * * * *
// Можно ли улучшить оружие Белиара?
// ----------------------------------------------------------------
// Возвращаемое значение: TRUE - да, FALSE - нет
func int C_ScCanUpgrateBeliarsWeapon()
{
* *var int herolvl;
* *// получить уровень ГГ
* *herolvl = hero.level;
* *// если ГГ маг Огня
* *if(hero.guild == GIL_KDF)
* *{
* * * *// в зависимости от круга магии ГГ устанавливается следующий уровень оружия Белиара
* * * *if * * *(Npc_GetTalentSkill(hero,NPC_TALENT_MAGE) >= 5) { BeliarWeapNextLvL = 5; }
* * * *else if (Npc_GetTalentSkill(hero,NPC_TALENT_MAGE) == 4) { BeliarWeapNextLvL = 4; }
* * * *else if (Npc_GetTalentSkill(hero,NPC_TALENT_MAGE) == 3) { BeliarWeapNextLvL = 3; }
* * * *else if (Npc_GetTalentSkill(hero,NPC_TALENT_MAGE) == 2) { BeliarWeapNextLvL = 2; }
* * * *else if (Npc_GetTalentSkill(hero,NPC_TALENT_MAGE) <= 1) { BeliarWeapNextLvL = 1; };
* * * *return TRUE;
* *}
* *else
* *{ *
* * * *// в зависимости от уровня ГГ устанвливается следующий уровень оружия Белиара и соответствующая вероятность повреждения
* * * *if * * *(herolvl > 46) *{ BeliarWeapNextLvL = 20; BeliarNextDamageChance = BeliarDamageChance_20; }
* * * *else if (herolvl > 44) *{ BeliarWeapNextLvL = 19; BeliarNextDamageChance = BeliarDamageChance_19; }
* * * *else if (herolvl > 42) *{ BeliarWeapNextLvL = 18; BeliarNextDamageChance = BeliarDamageChance_18; }
* * * *else if (herolvl > 40) *{ BeliarWeapNextLvL = 17; BeliarNextDamageChance = BeliarDamageChance_17; }
* * * *else if (herolvl > 38) *{ BeliarWeapNextLvL = 16; BeliarNextDamageChance = BeliarDamageChance_16; }
* * * *else if (herolvl > 36) *{ BeliarWeapNextLvL = 15; BeliarNextDamageChance = BeliarDamageChance_15; }
* * * *else if (herolvl > 34) *{ BeliarWeapNextLvL = 14; BeliarNextDamageChance = BeliarDamageChance_14; }
* * * *else if (herolvl > 32) *{ BeliarWeapNextLvL = 13; BeliarNextDamageChance = BeliarDamageChance_13; }
* * * *else if (herolvl > 30) *{ BeliarWeapNextLvL = 12; BeliarNextDamageChance = BeliarDamageChance_12; }
* * * *else if (herolvl > 28) *{ BeliarWeapNextLvL = 11; BeliarNextDamageChance = BeliarDamageChance_11; }
* * * *else if (herolvl > 26) *{ BeliarWeapNextLvL = 10; BeliarNextDamageChance = BeliarDamageChance_10; }
* * * *else if (herolvl > 24) *{ BeliarWeapNextLvL = 9; *BeliarNextDamageChance = BeliarDamageChance_09; }
* * * *else if (herolvl > 22) *{ BeliarWeapNextLvL = 8; *BeliarNextDamageChance = BeliarDamageChance_08; }
* * * *else if (herolvl > 20) *{ BeliarWeapNextLvL = 7; *BeliarNextDamageChance = BeliarDamageChance_07; }
* * * *else if (herolvl > 18) *{ BeliarWeapNextLvL = 6; *BeliarNextDamageChance = BeliarDamageChance_06; }
* * * *else if (herolvl > 16) *{ BeliarWeapNextLvL = 5; *BeliarNextDamageChance = BeliarDamageChance_05; }
* * * *else if (herolvl > 14) *{ BeliarWeapNextLvL = 4; *BeliarNextDamageChance = BeliarDamageChance_04; }
* * * *else if (herolvl > 12) *{ BeliarWeapNextLvL = 3; *BeliarNextDamageChance = BeliarDamageChance_03; }
* * * *else if (herolvl > 10) *{ BeliarWeapNextLvL = 2; *BeliarNextDamageChance = BeliarDamageChance_02; }
* * * *else if (herolvl <= 10) { BeliarWeapNextLvL = 1; *BeliarNextDamageChance = BeliarDamageChance_01; };
* *};
* *// если текущий уровень оружия < найденного
* *if(BeliarWeapCurrentLvL < BeliarWeapNextLvL)
* *{
* * * *return TRUE;
* *};
* *return FALSE; * * * // Примечание: добавлено мной
};

// Функция улучшения оружия Белиара
func void B_UpgrateBeliarsWeapon()
{
* *var int BeliarsTribute;
* *var string concatText;
* *// расчет кол-ва отбираемой жизни
* *BeliarsTribute = ((BeliarWeapNextLvL - BeliarWeapCurrentLvL) * 5);
* *// уменьших макс. жизнь ГГ
* *hero.attribute[ATR_HITPOINTS_MAX] = (hero.attribute[ATR_HITPOINTS_MAX] - BeliarsTribute);
* *// если жизнь уменьшена
* *if(BeliarsTribute > 0)
* *{
* * * *// создать строку "Жизненная энергия -" кол-во едениц жизни
* * * *concatText = ConcatStrings(PRINT_Beliarshitpoints_MAX,IntToStri ng(BeliarsTribute));
* * * *// вывод на экран
* * * *PrintScreen(concatText,-1,-1,FONT_Screen,4);
* *};
* *// установить текущие шанс доп. повреждения и уровень оружия
* *BeliarDamageChance = BeliarNextDamageChance;
* *BeliarWeapCurrentLvL = BeliarWeapNextLvL;
* *// если ГГ маг Огня
* *if(hero.guild == GIL_KDF)
* *{
* * * *// очистить диалог улучшения рун
* * * *Info_ClearChoices(PC_PrayShrine_UPGRATEBELIARSWEA PON);
* * * *// создать диалог улучшения рун (записать пункты выбора в зависимости от текущего уровня оружия)
* * * *if(BeliarWeapCurrentLvL >= 1) *
* * * *{
* * * * * *Info_AddChoice(PC_PrayShrine_UPGRATEBELIARSWEAPON ,NAME_SPL_GreenTentacle,PС_Pra
yShrine_UPGRATEBELIARSWEAPON_GreenTentacle);
* * * *};
* * * *if(BeliarWeapCurrentLvL >= 2)
* * * *{
* * * * * *Info_AddChoice(PC_PrayShrine_UPGRATEBELIARSWEAPON ,NAME_SPL_SuckEnergy,PC_P
rayShrine_UPGRATEBELIARSWEAPON_SuckEnergy);
* * * * * *
* * * *};
* * * *if(BeliarWeapCurrentLvL >= 3)
* * * *{
* * * * * *Info_AddChoice(PC_PrayShrine_UPGRATEBELIARSWEAPON ,NAME_SPL_SummonGuardian,
PC_PrayShrine_UPGRATEBELIARSWEAPON_NAME_SPL_Summon Guardian);
* * * * * *Info_AddChoice(PC_PrayShrine_UPGRATEBELIARSWEAPON ,NAME_SPL_BeliarsRage,PC_
PrayShrine_UPGRATEBELIARSWEAPON_BeliarsRage);
* * * *};
* * * *if(BeliarWeapCurrentLvL >= 4)
* * * *{
* * * * * *Info_AddChoice(PC_PrayShrine_UPGRATEBELIARSWEAPON ,NAME_SPL_Swarm,PC_PraySh
rine_UPGRATEBELIARSWEAPON_Swarm);
* * * * * *Info_AddChoice(PC_PrayShrine_UPGRATEBELIARSWEAPON ,NAME_SPL_summonZombie,PC
_PrayShrine_UPGRATEBELIARSWEAPON_summonZombie);
* * * *};
* * * *if(BeliarWeapCurrentLvL >= 5)
* * * *{
* * * * * *Info_AddChoice(PC_PrayShrine_UPGRATEBELIARSWEAPON ,NAME_SPL_Skull,PC_PraySh
rine_UPGRATEBELIARSWEAPON_SPL_Skull);
* * * *};
* *}
* *else
* *{
* * * *// если у ГГ более развит одноручник
* * * *if((hero.HitChance[NPC_TALENT_1H]) > (hero.HitChance[NPC_TALENT_2H]))
* * * *{
* * * * * *// создать в инвентаре ГГ одноручник в зависимости от текущего уровня оружия
* * * * * *if * * (BeliarWeapCurrentLvL <= 1) *{ CreateInvItem(hero,ItMw_BeliarWeapon_1H_01); }
* * * * * *else if(BeliarWeapCurrentLvL == 2) *{ CreateInvItem(hero,ItMw_BeliarWeapon_1H_02); }
* * * * * *else if(BeliarWeapCurrentLvL == 3) *{ CreateInvItem(hero,ItMw_BeliarWeapon_1H_03); }
* * * * * *else if(BeliarWeapCurrentLvL == 4) *{ CreateInvItem(hero,ItMw_BeliarWeapon_1H_04); }
* * * * * *else if(BeliarWeapCurrentLvL == 5) *{ CreateInvItem(hero,ItMw_BeliarWeapon_1H_05); }
* * * * * *else if(BeliarWeapCurrentLvL == 6) *{ CreateInvItem(hero,ItMw_BeliarWeapon_1H_06); }
* * * * * *else if(BeliarWeapCurrentLvL == 7) *{ CreateInvItem(hero,ItMw_BeliarWeapon_1H_07); }
* * * * * *else if(BeliarWeapCurrentLvL == 8) *{ CreateInvItem(hero,ItMw_BeliarWeapon_1H_08); }
* * * * * *else if(BeliarWeapCurrentLvL == 9) *{ CreateInvItem(hero,ItMw_BeliarWeapon_1H_09); }
* * * * * *else if(BeliarWeapCurrentLvL == 10) { CreateInvItem(hero,ItMw_BeliarWeapon_1H_10); }
* * * * * *else if(BeliarWeapCurrentLvL == 11) { CreateInvItem(hero,ItMw_BeliarWeapon_1H_11); }
* * * * * *else if(BeliarWeapCurrentLvL == 12) { CreateInvItem(hero,ItMw_BeliarWeapon_1H_12); }
* * * * * *else if(BeliarWeapCurrentLvL == 13) { CreateInvItem(hero,ItMw_BeliarWeapon_1H_13); }
* * * * * *else if(BeliarWeapCurrentLvL == 14) { CreateInvItem(hero,ItMw_BeliarWeapon_1H_14); }
* * * * * *else if(BeliarWeapCurrentLvL == 15) { CreateInvItem(hero,ItMw_BeliarWeapon_1H_15); }
* * * * * *else if(BeliarWeapCurrentLvL == 16) { CreateInvItem(hero,ItMw_BeliarWeapon_1H_16); }
* * * * * *else if(BeliarWeapCurrentLvL == 17) { CreateInvItem(hero,ItMw_BeliarWeapon_1H_17); }
* * * * * *else if(BeliarWeapCurrentLvL == 18) { CreateInvItem(hero,ItMw_BeliarWeapon_1H_18); }
* * * * * *else if(BeliarWeapCurrentLvL == 19) { CreateInvItem(hero,ItMw_BeliarWeapon_1H_19); }
* * * * * *else if(BeliarWeapCurrentLvL == 20) { CreateInvItem(hero,ItMw_BeliarWeapon_1H_20); };
* * * * * *// визуальный эффект улучшения меча (Примечание: правильнее здесь и далее все self заменить на hero)
* * * * * *Wld_PlayEffect("spellFX_BeliarsWeapon_Upgrate",se lf,self,0,0,0,F
ALSE);
* * * * * *// музычка
* * * * * *Snd_Play("CS_Prayer_WaveOfInsanity");
* * * * * *// оружие улучшено
* * * * * *BeliarsWeaponUpgrated = TRUE;
* * * *}
* * * *else // иначе двуручник
* * * *{
* * * * * *// создать в инвентаре ГГ двуручник в зависимости от текущего уровня оружия
* * * * * *if * * (BeliarWeapCurrentLvL <= 1) *{ CreateInvItem(hero,ItMw_BeliarWeapon_2H_01); }
* * * * * *else if(BeliarWeapCurrentLvL == 2) *{ CreateInvItem(hero,ItMw_BeliarWeapon_2H_02); }
* * * * * *else if(BeliarWeapCurrentLvL == 3) *{ CreateInvItem(hero,ItMw_BeliarWeapon_2H_03); }
* * * * * *else if(BeliarWeapCurrentLvL == 4) *{ CreateInvItem(hero,ItMw_BeliarWeapon_2H_04); }
* * * * * *else if(BeliarWeapCurrentLvL == 5) *{ CreateInvItem(hero,ItMw_BeliarWeapon_2H_05); }
* * * * * *else if(BeliarWeapCurrentLvL == 6) *{ CreateInvItem(hero,ItMw_BeliarWeapon_2H_06); }
* * * * * *else if(BeliarWeapCurrentLvL == 7) *{ CreateInvItem(hero,ItMw_BeliarWeapon_2H_07); }
* * * * * *else if(BeliarWeapCurrentLvL == 8) *{ CreateInvItem(hero,ItMw_BeliarWeapon_2H_08); }
* * * * * *else if(BeliarWeapCurrentLvL == 9) *{ CreateInvItem(hero,ItMw_BeliarWeapon_2H_09); }
* * * * * *else if(BeliarWeapCurrentLvL == 10) { CreateInvItem(hero,ItMw_BeliarWeapon_2H_10); }
* * * * * *else if(BeliarWeapCurrentLvL == 11) { CreateInvItem(hero,ItMw_BeliarWeapon_2H_11); }
* * * * * *else if(BeliarWeapCurrentLvL == 12) { CreateInvItem(hero,ItMw_BeliarWeapon_2H_12); }
* * * * * *else if(BeliarWeapCurrentLvL == 13) { CreateInvItem(hero,ItMw_BeliarWeapon_2H_13); }
* * * * * *else if(BeliarWeapCurrentLvL == 14) { CreateInvItem(hero,ItMw_BeliarWeapon_2H_14); }
* * * * * *else if(BeliarWeapCurrentLvL == 15) { CreateInvItem(hero,ItMw_BeliarWeapon_2H_15); }
* * * * * *else if(BeliarWeapCurrentLvL == 16) { CreateInvItem(hero,ItMw_BeliarWeapon_2H_16); }
* * * * * *else if(BeliarWeapCurrentLvL == 17) { CreateInvItem(hero,ItMw_BeliarWeapon_2H_17); }
* * * * * *else if(BeliarWeapCurrentLvL == 18) { CreateInvItem(hero,ItMw_BeliarWeapon_2H_18); }
* * * * * *else if(BeliarWeapCurrentLvL == 19) { CreateInvItem(hero,ItMw_BeliarWeapon_2H_19); }
* * * * * *else if(BeliarWeapCurrentLvL == 20) { CreateInvItem(hero,ItMw_BeliarWeapon_2H_20); };
* * * * * *// визуальный эффект улучшения меча
* * * * * *Wld_PlayEffect("spellFX_BeliarsWeapon_Upgrate",se lf,self,0,0,0,F
ALSE); * * *
* * * * * *// музычка
* * * * * *Snd_Play("CS_Prayer_WaveOfInsanity");
* * * * * *// оружие улучшено
* * * * * *BeliarsWeaponUpgrated = TRUE;
* * * *};
* *};
};

...продолжение следует
Ответить с цитированием