Сделал тут предмет один, втыкайте:
instance ItPo_MegDrin(C_Item) //Это все уже расписывалось, повторять не буду.
{
name = "???";
mainflag = ITEM_KAT_POTIONS;
flags = ITEM_MULTI;
value = Value_MegaDrink;
visual = "ItPo_Perm_Mana.3ds";
material = MAT_GLAS;
on_state[0] = UseItPo_MegDrin;
scemeName = "POTIONFAST";
wear = WEAR_EFFECT;
effect = "SPELLFX_ITEMGLIMMER";
description = name;
text[3] = "Эффект неизвестен.";
};
func void UseItPo_MegDrin()
{
if ((hero.guild == GIL_DMT) && (hero.level >= 25)) //Если гильдия ГГ - ищущий и уровень не ниже 25
{
Npc_SetTrueGuild (self, GIL_ORC); //Гильдия меняется на "орк"
self.guild = GIL_ORC;
B_PlayerFindItem (ITAR_Raven_Add, 1); //ГГ находит новую броно
AI_EquipArmor (self,ITAR_Raven_Add); //ГГ одевает эту броню
Wld_PlayEffect ("SPELLFX_Fear", self, self, 0, 0, 0, FALSE); //Проигрывается визуальный эффект
Snd_Play ("MFX_Firestorm_Cast"); //Проигрывается звуковой эффект
if ((self.attribute[ATR_STRENGTH] >= 50) && (self.attribute[ATR_STRENGTH] < 75)) //Если сила то 50
до 74 {
B_RaiseAttribute (self, ATR_STRENGTH, 5); //Сила повышается на 5 едениц. Далее по аналогии.
}
else if ((self.attribute[ATR_STRENGTH] > 75) && (self.attribute[ATR_STRENGTH] <= 100))
{
B_RaiseAttribute (self, ATR_STRENGTH, 10);
}
else if ((self.attribute[ATR_STRENGTH] > 100) && (self.attribute[ATR_STRENGTH] <= 125))
{
B_RaiseAttribute (self, ATR_STRENGTH, 15);
}
else if ((self.attribute[ATR_STRENGTH] > 125) && (self.attribute[ATR_STRENGTH] <= 150))
{
B_RaiseAttribute (self, ATR_STRENGTH, 20);
Mdl_ApplyOverlayMds (self, "HUMANS_SPRINT.MDS");
}
else if (self.attribute[ATR_STRENGTH] > 150) //Особый случай: если сила ГГ=150
{
B_RaiseAttribute (self, ATR_STRENGTH, 25);
Mdl_ApplyOverlayMds (self, "HUMANS_SPRINT.MDS"); //ГГ получает постоянное ускорение.
};
if ((self.attribute[ATR_DEXTERITY] >= 50) && (self.attribute[ATR_DEXTERITY] < 75)) //Тоже, только с ловкостью.
{
B_RaiseAttribute (self, ATR_DEXTERITY, 5);
Npc_SetTalentSkill (self, NPC_TALENT_ACROBAT, 1);
}
else if ((self.attribute[ATR_DEXTERITY] > 75) && (self.attribute[ATR_DEXTERITY] <= 100)) //Сдесь ГГ получает Ещё акробатику.
{
B_RaiseAttribute (self, ATR_DEXTERITY, 10);
Npc_SetTalentSkill (self, NPC_TALENT_ACROBAT, 1);
}
else if ((self.attribute[ATR_DEXTERITY] > 100) && (self.attribute[ATR_DEXTERITY] <= 125))
{
B_RaiseAttribute (self, ATR_DEXTERITY, 15);
Npc_SetTalentSkill (self, NPC_TALENT_ACROBAT, 1);
}
else if ((self.attribute[ATR_DEXTERITY] > 125) && (self.attribute[ATR_DEXTERITY] <= 150))
{
B_RaiseAttribute (self, ATR_DEXTERITY, 20);
}
else if (self.attribute[ATR_DEXTERITY] > 150)
{
B_RaiseAttribute (self, ATR_DEXTERITY, 25);
};
if ((self.attribute[ATR_HITPOINTS_MAX] >= 100) && (self.attribute[ATR_HITPOINTS_MAX] < 150)) //Хитпоинты.
{
B_RaiseAttribute (self, ATR_HITPOINTS_MAX, 15);
}
else if ((self.attribute[ATR_HITPOINTS_MAX] > 150) && (self.attribute[ATR_HITPOINTS_MAX] <= 200))
{
B_RaiseAttribute (self, ATR_HITPOINTS_MAX, 30);
}
else if ((self.attribute[ATR_HITPOINTS_MAX] > 200) && (self.attribute[ATR_HITPOINTS_MAX] <= 250))
{
B_RaiseAttribute (self, ATR_HITPOINTS_MAX, 45);
}
else if ((self.attribute[ATR_HITPOINTS_MAX] > 250) && (self.attribute[ATR_HITPOINTS_MAX] <= 300))
{
B_RaiseAttribute (self, ATR_HITPOINTS_MAX, 60);
}
else if ((self.attribute[ATR_HITPOINTS_MAX] > 300) && (self.attribute[ATR_HITPOINTS_MAX] <= 350))
{
B_RaiseAttribute (self, ATR_HITPOINTS_MAX, 75);
}
else if ((self.attribute[ATR_HITPOINTS_MAX] > 350) && (self.attribute[ATR_HITPOINTS_MAX] <= 400))
{
B_RaiseAttribute (self, ATR_HITPOINTS_MAX, 90);
}
else if (self.attribute[ATR_HITPOINTS_MAX] > 400) //Если НР больше 400
{
B_RaiseAttribute (self, ATR_HITPOINTS_MAX, 100);
self.protection[PROT_EDGE] += 15; //ГГ получает +15 к защите от оружия дальнего и ближнего боя
self.protection[PROT_BLUNT] += 15;
self.protection[PROT_POINT] += 15;
};
if ((self.attribute[ATR_MANA_MAX] >= 75) && (self.attribute[ATR_MANA_MAX] < 100)) //С маной тоже.
{
B_RaiseAttribute (self, ATR_MANA_MAX, 10);
}
else if ((self.attribute[ATR_MANA_MAX] > 100) && (self.attribute[ATR_MANA_MAX] <= 125))
{
B_RaiseAttribute (self, ATR_MANA_MAX, 20);
}
else if ((self.attribute[ATR_MANA_MAX] > 125) && (self.attribute[ATR_MANA_MAX] <= 150))
{
B_RaiseAttribute (self, ATR_MANA_MAX, 30);
}
else if ((self.attribute[ATR_MANA_MAX] > 150) && (self.attribute[ATR_MANA_MAX] <= 175))
{
B_RaiseAttribute (self, ATR_MANA_MAX, 40);
}
else if ((self.attribute[ATR_MANA_MAX] > 175) && (self.attribute[ATR_MANA_MAX] <= 200))
{
B_RaiseAttribute (self, ATR_MANA_MAX, 50);
}
else if ((self.attribute[ATR_MANA_MAX] > 200) && (self.attribute[ATR_MANA_MAX] <= 250))
{
B_RaiseAttribute (self, ATR_MANA_MAX, 60);
}
else if (self.attribute[ATR_MANA_MAX] > 250)
{
B_RaiseAttribute (self, ATR_MANA_MAX, 70);
self.protection[PROT_MAGIC] += 15; //Защита от огня и магии
self.protection[PROT_FIRE] += 15;
};
if ((self.HitChance[NPC_TALENT_1H] >= 60) && (self.HitChance[NPC_TALENT_1H] < 70)) //Владение одноручником
{
B_AddFightSkill (self, NPC_TALENT_1H, 5);
}
else if ((self.HitChance[NPC_TALENT_1H] > 70) && (self.HitChance[NPC_TALENT_1H] <= 80))
{
B_AddFightSkill (self, NPC_TALENT_1H, 10);
}
else if (self.HitChance[NPC_TALENT_1H] > 80)
{
B_AddFightSkill (self, NPC_TALENT_1H, 20);
};
if ((self.HitChance[NPC_TALENT_2H] >= 60) && (self.HitChance[NPC_TALENT_2H] < 70)) //Двуручником
{
B_AddFightSkill (self, NPC_TALENT_2H, 5);
}
else if ((self.HitChance[NPC_TALENT_2H] > 70) && (self.HitChance[NPC_TALENT_2H] <= 80))
{
B_AddFightSkill (self, NPC_TALENT_2H, 10);
}
else if (self.HitChance[NPC_TALENT_2H] > 80)
{
B_AddFightSkill (self, NPC_TALENT_2H, 20);
};
if ((self.HitChance[NPC_TALENT_BOW] >= 60) && (self.HitChance[NPC_TALENT_BOW] < 70)) //Луком
{
B_AddFightSkill (self, NPC_TALENT_BOW, 5);
}
else if ((self.HitChance[NPC_TALENT_BOW] > 70) && (self.HitChance[NPC_TALENT_BOW] <= 80))
{
B_AddFightSkill (self, NPC_TALENT_BOW, 10);
}
else if (self.HitChance[NPC_TALENT_BOW] > 80)
{
B_AddFightSkill (self, NPC_TALENT_BOW, 20);
};
if ((self.HitChance[NPC_TALENT_CROSSBOW] >= 60) && (self.HitChance[NPC_TALENT_CROSSBOW] < 70)) //Арбалетом
{
B_AddFightSkill (self, NPC_TALENT_CROSSBOW, 5);
}
else if ((self.HitChance[NPC_TALENT_CROSSBOW] > 70) && (self.HitChance[NPC_TALENT_CROSSBOW] <= 80))
{
B_AddFightSkill (self, NPC_TALENT_CROSSBOW, 10);
}
else if (self.HitChance[NPC_TALENT_CROSSBOW] > 80)
{
B_AddFightSkill (self, NPC_TALENT_CROSSBOW, 20);
};
if (self.HitChance[NPC_TALENT_1H] > self.HitChance[NPC_TALENT_2H]) //Если владение одноручным оружием больше владения двуручным
{
B_PlayerFindItem (ItMw_BeliarWeapon_1H_21, 1); //В инвентаре появляется этот мечь
AI_EquipBestMeleeWeapon (self); //Одевается лучшее оружие ближнего боя.
};
if (self.HitChance[NPC_TALENT_2H] > self.HitChance[NPC_TALENT_1H])
{
B_PlayerFindItem (ItMw_BeliarWeapon_2H_21, 1);
AI_EquipBestMeleeWeapon (self);
};
if (self.HitChance[NPC_TALENT_2H] == self.HitChance[NPC_TALENT_1H])
{
B_PlayerFindItem (ItMw_BeliarWeapon_2H_21, 1);
AI_EquipBestMeleeWeapon (self);
};
}
else //В другом случае
{
Wld_PlayEffect ("SPELLFX_Firerain", self, self, 0, 0, 0, FALSE); //Проигрывается Эффект "огненный дожь"
AI_PlayAni (self, "S_FIRE_VICTIM");
Wld_PlayEffect ("VOB_MAGICBURN", hero, hero, 0, 0, 0, FALSE); //и еще один, поджигающий ГГ
B_Say (self, self, "$Dead");
AI_StopFX (self, "VOB_MAGICBURN");
Npc_ChangeAttribute (self, ATR_HITPOINTS, -self.attribute[ATR_HITPOINTS_MAX]); //Из НР ГГ вычетается максимальное количество НР.
Npc_StopAni (self, "S_FIRE_VICTIM");
};
};
Такого оружия и доспехов в игре нет - они из моего мода. Можно вставить другие.