Показать сообщение отдельно
Старый 16.08.2005, 11:27   #234
Vam

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

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

* *32. Функция обучения изготовлению рун.

Файл B_TeachPlayerTalentRunes.d

// ************************************************** **************
// Функция обучения изготовлению рун
// ************************************************** **************
// Аргументы: slf - учитель, oth - обучаемый (ГГ), spell - заклинание
// Возвращаемое значение: TRUE - обучение успешно, FALSE - обучение невозможно

func int B_TeachPlayerTalentRunes(var C_NPC slf,var C_NPC oth,var int spell)
{
* *var int kosten;
* *// получить стоимость обучения в LP
* *kosten = B_GetLearnCostTalent(oth,NPC_TALENT_RUNES,spell);
* *// если очков обучения недостаточно
* *if(oth.lp < kosten)
* *{
* * * *// вывод текста: "Недостаточное количество оч. обучения!"
* * * *PrintScreen(PRINT_NotEnoughLearnPoints,-1,-1,FONT_ScreenSmall,2);
* * * *// учитель говорит ученику (SVM фраза) "ГГ не хватает опыта"
* * * *B_Say(slf,oth,"$NOLEARNNOPOINTS");
* * * *return FALSE;
* *};
* *// использовать очки обучения
* *oth.lp = oth.lp - kosten;
* *// создать в дневнике тему "Руны"
* *Log_CreateTopic(TOPIC_TalentRunes,LOG_NOTE);
* *// сделать запись
* *B_LogEntry(TOPIC_TalentRunes,"Для создания магической руны, кроме необходимого заклинания мне еще нужны некоторые составляющие. С помощью этих составляющих и рунического камня я могу создать необходимую руну на руническом столе.");
* *var C_NPC ScrollTrader;
* *// у кого ГГ может приобрести свитки заклинаний
* *if(Npc_IsDead(Gorax) == FALSE)
* *{
* * * *ScrollTrader = Hlp_GetNpc(Gorax); * * * // Горакс
* *}
* *else if(Npc_IsDead(Isgaroth) == FALSE)
* *{
* * * *ScrollTrader = Hlp_GetNpc(Isgaroth); * *// Исгарот
* *}
* *else if(Npc_IsDead(Engor) == FALSE)
* *{
* * * *ScrollTrader = Hlp_GetNpc(Engor); * * * // Енгор
* *}
* *else if(Npc_IsDead(Orlan) == FALSE)
* *{
* * * *ScrollTrader = Hlp_GetNpc(Orlan); * * * // Орлан
* *}
* *else if(Npc_IsDead(Cronos_ADW) == FALSE)
* *{
* * * *ScrollTrader = Hlp_GetNpc(Cronos_ADW); *// Кронос
* *};
* *// освоить соответствующую руну
* *if(spell == SPL_PalLight) * * * * * { PLAYER_TALENT_RUNES[SPL_PalLight] * * * * = TRUE; };
* *if(spell == SPL_PalLightHeal) * * * { PLAYER_TALENT_RUNES[SPL_PalLightHeal] * * = TRUE; };
* *if(spell == SPL_PalHolyBolt) * * * *{ PLAYER_TALENT_RUNES[SPL_PalHolyBolt] * * *= TRUE; };
* *if(spell == SPL_PalMediumHeal) * * *{ PLAYER_TALENT_RUNES[SPL_PalMediumHeal] * *= TRUE; };
* *if(spell == SPL_PalRepelEvil) * * * { PLAYER_TALENT_RUNES[SPL_PalRepelEvil] * * = TRUE; };
* *if(spell == SPL_PalFullHeal) * * * *{ PLAYER_TALENT_RUNES[SPL_PalFullHeal] * * *= TRUE; };
* *if(spell == SPL_PalDestroyEvil) * * { PLAYER_TALENT_RUNES[SPL_PalDestroyEvil] * = TRUE; };
* *if(spell == SPL_PalTeleportSecret) *{ PLAYER_TALENT_RUNES[SPL_PalTeleportSecret]= TRUE; };
* *if(spell == SPL_TeleportSeaport) * *{ PLAYER_TALENT_RUNES[SPL_TeleportSeaport] *= TRUE; };
* *if(spell == SPL_TeleportMonastery) *{ PLAYER_TALENT_RUNES[SPL_TeleportMonastery]= TRUE; };
* *if(spell == SPL_TeleportFarm) * * * { PLAYER_TALENT_RUNES[SPL_TeleportFarm] * * = TRUE; };
* *if(spell == SPL_TeleportXardas) * * { PLAYER_TALENT_RUNES[SPL_TeleportXardas] * = TRUE; };
* *if(spell == SPL_TeleportPassNW) * * { PLAYER_TALENT_RUNES[SPL_TeleportPassNW] * = TRUE; };
* *if(spell == SPL_TeleportPassOW) * * { PLAYER_TALENT_RUNES[SPL_TeleportPassOW] * = TRUE; };
* *if(spell == SPL_TeleportOC) * * * * { PLAYER_TALENT_RUNES[SPL_TeleportOC] * * * = TRUE; };
* *// освоить соответствующую руну
* *if(spell == SPL_LIGHT)
* *{
* * * *// освоить изготовление
* * * *PLAYER_TALENT_RUNES[SPL_LIGHT] = TRUE;
* * * *// создать свиток заклинания у торговца
* * * *CreateInvItems(ScrollTrader,ItSc_LIGHT,1);
* * * *// сделать запись
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'СВЕТ': 1 золотая монета.");
* *};
* *if(spell == SPL_Firebolt)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_Firebolt] = TRUE;
* * * *CreateInvItems (ScrollTrader,ItSc_Firebolt,1);
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'ОГНЕННАЯ СТРЕЛА': 1 сера.");
* *};
* *if(spell == SPL_Icebolt)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_Icebolt] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_Icebolt,1);
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'ЛЕДЯНАЯ СТРЕЛА': 1 кварц.");
* *};
* *if(spell == SPL_LightHeal)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_LightHeal] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_LightHeal,1); * * * * * * *
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'ЛЕЧИТЬ ЛЕГКОЕ РАНЕНИЕ': 1 лечебное растение.");
* *};
* *if(spell == SPL_SummonGoblinSkeleton)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_SummonGoblinSkeleton] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_SumGobSkel,1);
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'ВЫЗВАТЬ СКЕЛЕТ ГОБЛИНА': 1 кость гоблина.");
* *};
* *if(spell == SPL_InstantFireball)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_InstantFireball] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_InstantFireball, 1);
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'ОГНЕННЫЙ ШАР': 1 смола.");
* *};
* *if(spell == SPL_Zap)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_Zap] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_Zap,1); * * * * * * * * * * * *
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'МОЛНИЯ': 1 горный хрусталь.");
* *};
* *if(spell == SPL_SummonWolf)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_SummonWolf] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_SumWolf,1); * * * * * * * * * *
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'ВЫЗВАТЬ ВОЛКА': 1 шкура волка.");
* *};
* *if(spell == SPL_WINDFIST)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_WINDFIST] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_WINDFIST,1);
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'ПОРЫВ ВЕТРА': 1 уголь.");
* *};
* *if(spell == SPL_Sleep)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_Sleep] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_Sleep,1);
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'СОН': 1 болотник.");
* *};
* *if(spell == SPL_MediumHeal)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_MediumHeal] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_MediumHeal,1);
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'ЛЕЧИТЬ СРЕДНЕЕ РАНЕНИЕ': 1 лечебная трава.");
* *};
* *if(spell == SPL_LightningFlash)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_LightningFlash] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_LightningFlash,1 );
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'УДАР МОЛНИИ': 1 горный хрусталь и 1 кварц.");
* *};
* *if(spell == SPL_ChargeFireball)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_ChargeFireball] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_ChargeFireball,1 );
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'БОЛЬШОЙ ОГНЕННЫЙ ШАР': 1 сера и 1 смола.");
* *};
* *if(spell == SPL_SummonSkeleton)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_SummonSkeleton] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_SumSkel,1);
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'ВЫЗВАТЬ СКЕЛЕТ': 1 кость скелета.");
* *}; * * *
* *if(spell == SPL_Fear)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_Fear] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_Fear,1);
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'СТРАХ': 1 черный жемчуг.");
* *};
* *if(spell == SPL_IceCube)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_IceCube] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_IceCube,1);
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'ЛЕДЯНАЯ ГЛЫБА': 1 кварц и 1 аквамарин.");
* *};
* *if(spell == SPL_ChargeZap)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_ChargeZap] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_ThunderBall,1);
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'ШАРОВАЯ МОЛНИЯ': 1 сера и 1 горный хрусталь.");
* *};
* *if(spell == SPL_SummonGolem)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_SummonGolem] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_SumGol,1);
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'ВЫЗВАТЬ ГОЛЕМА': 1 сердце каменного голема.");
* *};
* *if(spell == SPL_DestroyUndead)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_DestroyUndead] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_HarmUndead,1);
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'УНИЧТОЖИТЬ НЕЖИТЬ': 1 святая вода.");
* *};
* *if(spell == SPL_Pyrokinesis)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_Pyrokinesis] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_Pyrokinesis,1);
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'БОЛЬШАЯ ОГНЕННАЯ БУРЯ': 1 сера и 1 огненный язык.");
* *};
* *if(spell == SPL_Firestorm)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_Firestorm] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_Firestorm,1);
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'ОГНЕННАЯ БУРЯ': 1 сера и 1 смола.");
* *};
* *if(spell == SPL_IceWave)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_IceWave] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_IceWave,1);
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'ЛЕДЯНАЯ ВОЛНА': 1 кварц и 1 аквамарин.");
* *};
* *if(spell == SPL_SummonDemon)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_SummonDemon] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_SumDemon,1);
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'ВЫЗВАТЬ ДЕМОНА': 1 сердце демона.");
* *};
* *if(spell == SPL_FullHeal)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_FullHeal] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_FullHeal,1);
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'ЛЕЧИТЬ СИЛЬНОЕ РАНЕНИЕ': 1 лечебный корень.");
* *};
* *if(spell == SPL_Firerain)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_Firerain] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_Firerain,1);
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'ОГНЕННЫЙ ДОЖДЬ': 1 смола и 1 огненный язык.");
* *};
* *if(spell == SPL_BreathOfDeath)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_BreathOfDeath] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_BreathOfDeath,1) ;
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'ДЫМ СМЕРТИ': 1 уголь и 1 черный жемчуг.");
* *};
* *if(spell == SPL_MassDeath)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_MassDeath] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_MassDeath,1);
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'ВОЛНА СМЕРТИ': 1 кость скелета и 1 черный жемчуг.");
* *};
* *if(spell == SPL_ArmyOfDarkness)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_ArmyOfDarkness] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_ArmyOfDarkness,1 );
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'АРМИЯ МРАКА': 1 кость скелета, 1 черный жемчуг, 1 сердце каменного голема и 1 сердце демона.");
* *};
* *if(spell == SPL_Shrink)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_Shrink] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_Shrink,1);
* * * *B_LogEntry(TOPIC_TalentRunes,"Составляющие для руны 'УМЕНЬШИТЬ МОНСТРА': 1 кость гоблина и 1 клык тролля.");
* *};
* *if(spell == SPL_Whirlwind)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_Whirlwind] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_Whirlwind,1);
* * * *// "Ингредиенты для руны "Смерч": 1 крыло"
* * * *B_LogEntry(TOPIC_TalentRunes,Log_Text_Addon_Talen tRune_Whirlwind);
* *};
* *if(spell == SPL_WaterFist)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_WaterFist] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_Waterfist,1);
* * * *// "Ингредиенты для руны "Водный кулак": 1 Аквамарин и 1 горный кристалл"
* * * *B_LogEntry(TOPIC_TalentRunes,Log_Text_Addon_Talen tRune_Waterfist);
* *};
* *if(spell == SPL_IceLance)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_IceLance] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_Icelance,1);
* * * *// "Ингредиенты для руны "Ледяное копье": 1 Ледниковый кварц"
* * * *B_LogEntry(TOPIC_TalentRunes,Log_Text_Addon_Talen tRune_Icelance);
* *};
* *if(spell == SPL_Geyser)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_Geyser] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_Geyser,1);
* * * *// "Ингредиенты для руны "Гейзер": 1 Аквамарин"
* * * *B_LogEntry(TOPIC_TalentRunes,Log_Text_Addon_Talen tRune_Geyser);
* *};
* *if(spell == SPL_Thunderstorm)
* *{
* * * *PLAYER_TALENT_RUNES[SPL_Thunderstorm] = TRUE;
* * * *CreateInvItems(ScrollTrader,ItSc_Thunderstorm,1);
* * * *// "Ингредиенты для руны "Непогода": 1 ледниковый кварц и 1 крыло"
* * * *B_LogEntry(TOPIC_TalentRunes,Log_Text_Addon_Talen tRune_Thunderstorm);
* *};
* *// вывод текста: "Обучение: Создание руны"
* *PrintScreen(PRINT_LearnRunes,-1,-1,FONT_Screen,2);
* *// отобразить в окне характеристик
* *Npc_SetTalentSkill(oth,NPC_TALENT_RUNES,1);
* *return TRUE;
};


* *33. Функция обучения кузнечному ремеслу.

Файл B_TeachPlayerTalentSmith.d

// ************************************************** **************
// Функция обучения кузнечному ремеслу
// ************************************************** **************
// Аргументы: slf - учитель, oth - обучаемый (ГГ), waffe - умение ковать
// Возвращаемое значение: TRUE - обучение успешно, FALSE - обучение невозможно

func int B_TeachPlayerTalentSmith(var C_NPC slf,var C_NPC oth,var int waffe)
{
* *var int kosten;
* *// получить стоимость обучения в LP
* *kosten = B_GetLearnCostTalent(oth,NPC_TALENT_SMITH,waffe);
* *// если очков обучения недостаточно
* *if(oth.lp < kosten)
* *{
* * * *// вывод текста: "Недостаточное количество оч. обучения!"
* * * *PrintScreen(PRINT_NotEnoughLearnPoints,-1,-1,FONT_ScreenSmall,2);
* * * *// учитель говорит ученику (SVM фраза) "ГГ не хватает опыта"
* * * *B_Say(slf,oth,"$NOLEARNNOPOINTS");
* * * *return FALSE;
* *};
* *// использовать очки обучения
* *oth.lp = oth.lp - kosten;
* *// создать в дневнике тему "Ковка"
* *Log_CreateTopic(TOPIC_TalentSmith,LOG_NOTE);
* *// сделать запись
* *B_LogEntry(TOPIC_TalentSmith,"Для того, чтобы ковать оружие, мне необходимо немного сырой стали. Сначала я должен накалить сталь на огне, а затем придать необходимую форму. Для качественного оружия необходимы также некоторые составляющие, которые придадут оружию особенные свойства.");
* *// выучить соответствующее умение
* *if(waffe == WEAPON_Common)
* *{
* * * *PLAYER_TALENT_SMITH[WEAPON_Common] = TRUE; *
* * * *B_LogEntry(TOPIC_TalentSmith,"Для простого самокованного меча не требуется никаких дополнительных составляющих.");
* *};
* *if(waffe == WEAPON_1H_Special_01)
* *{
* * * *PLAYER_TALENT_SMITH[WEAPON_1H_Special_01] = TRUE; *
* * * *B_LogEntry(TOPIC_TalentSmith,"Добавление 1 части руды позволяет выковать меч: 'ДЛИННЫЙ РУДНЫЙ МЕЧ'.");
* *};
* *if(waffe == WEAPON_2H_Special_01)
* *{
* * * *PLAYER_TALENT_SMITH[WEAPON_2H_Special_01] = TRUE;
* * * *B_LogEntry(TOPIC_TalentSmith,"Добавление 2 части руды позволяет выковать меч: 'РУДНЫЙ ДВУРУЧНИК'.");
* *};
* *if(waffe == WEAPON_1H_Special_02)
* *{
* * * *PLAYER_TALENT_SMITH[WEAPON_1H_Special_02] = TRUE;
* * * *B_LogEntry(TOPIC_TalentSmith,"Добавление 2 части руды позволяет выковать меч: 'РУДНЫЙ МЕЧ ЧУДОВИЩА'.");
* *};
* *if(waffe == WEAPON_2H_Special_02)
* *{
* * * *PLAYER_TALENT_SMITH[WEAPON_2H_Special_02] = TRUE; *
* * * *B_LogEntry(TOPIC_TalentSmith,"Добавление 3 части руды позволяет выковать меч: 'ТЯЖЕЛЫЙ ДВУРУЧНИК'.");
* *};
* *if(waffe == WEAPON_1H_Special_03)
* *{
* * * *PLAYER_TALENT_SMITH[WEAPON_1H_Special_03] = TRUE;
* * * *B_LogEntry(TOPIC_TalentSmith,"Добавление 3 части руды позволяет выковать меч: 'РУДНЫЙ БОЕВОЙ КЛИНОК'.");
* *};
* *if(waffe == WEAPON_2H_Special_03)
* *{
* * * *PLAYER_TALENT_SMITH[WEAPON_2H_Special_03] = TRUE; *
* * * *B_LogEntry(TOPIC_TalentSmith,"Добавление 4 части руды позволяет выковать меч: 'ТЯЖЕЛЫЙ РУДНЫЙ БОЕВОЙ КЛИНОК'.");
* *};
* *if(waffe == WEAPON_1H_Special_04)
* *{
* * * *PLAYER_TALENT_SMITH[WEAPON_1H_Special_04] = TRUE; *
* * * *B_LogEntry(TOPIC_TalentSmith,"Если я добавлю 4 части руды и 5 частей крови дракона, то я выкую 'РУДНОГО УБИЙЦУ ДРАКОНОВ'.");
* *};
* *if(waffe == WEAPON_2H_Special_04)
* *{
* * * *PLAYER_TALENT_SMITH[WEAPON_2H_Special_04] = TRUE;
* * * *B_LogEntry(TOPIC_TalentSmith,"Если я добавлю 5 частей руды и 5 частей крови дракона, то я выкую 'БОЛЬШОГО РУДНОГО УБИЙЦУ ДРАКОНОВ'.");
* *};
* *if(waffe == WEAPON_1H_Harad_01)
* *{
* * * *PLAYER_TALENT_SMITH[WEAPON_1H_Harad_01] = TRUE;
* * * *B_LogEntry(TOPIC_TalentSmith,"Я могу теперь выковать благородный меч.");
* *};
* *if(waffe == WEAPON_1H_Harad_02)
* *{
* * * *PLAYER_TALENT_SMITH[WEAPON_1H_Harad_02] = TRUE;
* * * *B_LogEntry(TOPIC_TalentSmith,"Я могу теперь выковать благородный длинный меч.");
* *};
* *if(waffe == WEAPON_1H_Harad_03)
* *{
* * * *PLAYER_TALENT_SMITH[WEAPON_1H_Harad_03] = TRUE;
* * * *B_LogEntry(TOPIC_TalentSmith,"Я могу теперь даже выковать рубиновый клинок.");
* *};
* *if(waffe == WEAPON_1H_Harad_04)
* *{
* * * *PLAYER_TALENT_SMITH[WEAPON_1H_Harad_04] = TRUE;
* * * *B_LogEntry(TOPIC_TalentSmith,"Харальд научил меня ковать "Эль Бастардо" - одно из лучших одноручных оружий!");
* *};
* *// вывод текста: "Обучение: Кузнечное дело"
* *PrintScreen(PRINT_LearnSmith,-1,-1,FONT_Screen,2);
* *// отобразить в окне характеристик
* *Npc_SetTalentSkill(oth,NPC_TALENT_SMITH,1);
* *return TRUE;
};


* *34. Функция обучения добыче трофеев.

Файл B_TeachPlayerTalentTakeAnimalTrophy.d

// ************************************************** **************
// Функция обучения добыче трофеев
// ************************************************** **************
// Аргументы: slf - учитель, oth - обучаемый (ГГ), trophy - умение добыть трофей
// Возвращаемое значение: TRUE - обучение успешно, FALSE - обучение невозможно

func int B_TeachPlayerTalentTakeAnimalTrophy(var C_NPC slf,var C_NPC oth,var int trophy)
{
* *var int kosten;
* *// получить стоимость обучения в LP
* *kosten = B_GetLearnCostTalent(oth,NPC_TALENT_TAKEANIMALTROP HY,trophy);
* *// если очков обучения недостаточно
* *if(oth.lp < kosten)
* *{
* * * *// вывод текста: "Недостаточное количество оч. обучения!"
* * * *PrintScreen(PRINT_NotEnoughLearnPoints,-1,-1,FONT_ScreenSmall,2);
* * * *// учитель говорит ученику (SVM фраза) "ГГ не хватает опыта"
* * * *B_Say(slf,oth,"$NOLEARNNOPOINTS");
* * * *return FALSE;
* *};
* *// использовать очки обучения
* *oth.lp = oth.lp - kosten;
* *// создать в дневнике тему "Животные"
* *Log_CreateTopic(TOPIC_TalentAnimalTrophy,LOG_NOTE );
* *// сделать запись
* *B_LogEntry(TOPIC_TalentAnimalTrophy,"Теперь я умею:");
* *// выучить соответствующее умение
* *if(trophy == TROPHY_Teeth)
* *{
* * * *PLAYER_TALENT_TAKEANIMALTROPHY[TROPHY_Teeth] = TRUE;
* * * *B_LogEntry(TOPIC_TalentAnimalTrophy,"...вырывать зубы.");
* *};
* *if(trophy == TROPHY_Claws)
* *{
* * * *PLAYER_TALENT_TAKEANIMALTROPHY[TROPHY_Claws] = TRUE;
* * * *B_LogEntry(TOPIC_TalentAnimalTrophy,"...ломать когти.");
* *};
* *if(trophy == TROPHY_Fur)
* *{
* * * *PLAYER_TALENT_TAKEANIMALTROPHY[TROPHY_Fur] = TRUE;
* * * *B_LogEntry(TOPIC_TalentAnimalTrophy,"...снимать шкуры.");
* *};
* *if(trophy == TROPHY_ReptileSkin)
* *{
* * * *PLAYER_TALENT_TAKEANIMALTROPHY[TROPHY_ReptileSkin] = TRUE;
* * * *B_LogEntry(TOPIC_TalentAnimalTrophy,"... Сдирать кожу с рептилий");
* *};
* *if(trophy == TROPHY_Heart)
* *{
* * * *PLAYER_TALENT_TAKEANIMALTROPHY[TROPHY_Heart] = TRUE;
* * * *B_LogEntry(TOPIC_TalentAnimalTrophy,"...вырезать сердца у големов и демонов.");
* *};
* *if(trophy == TROPHY_ShadowHorn)
* *{
* * * *PLAYER_TALENT_TAKEANIMALTROPHY[TROPHY_ShadowHorn] = TRUE;
* * * *B_LogEntry(TOPIC_TalentAnimalTrophy,"...отламыват ь рог у мракорисов.");
* *};
* *if(trophy == TROPHY_FireTongue)
* *{
* * * *PLAYER_TALENT_TAKEANIMALTROPHY[TROPHY_FireTongue] = TRUE;
* * * *B_LogEntry(TOPIC_TalentAnimalTrophy,"...вырезать огненный язык у огненных ящериц.");
* *};
* *if(trophy == TROPHY_BFWing)
* *{
* * * *PLAYER_TALENT_TAKEANIMALTROPHY[TROPHY_BFWing] = TRUE;
* * * *B_LogEntry(TOPIC_TalentAnimalTrophy,"...отрезать крылья у кровяных шершней.");
* *};
* *if(trophy == TROPHY_BFSting)
* *{
* * * *PLAYER_TALENT_TAKEANIMALTROPHY[TROPHY_BFSting] = TRUE;
* * * *B_LogEntry(TOPIC_TalentAnimalTrophy,"...вырезать жало у кровяных шершней.");
* *};
* *if(trophy == TROPHY_Mandibles)
* *{
* * * *PLAYER_TALENT_TAKEANIMALTROPHY[TROPHY_Mandibles] = TRUE;
* * * *B_LogEntry(TOPIC_TalentAnimalTrophy,"...вырезать жвало у ползунов и полевых жуков.");
* *};
* *if(trophy == TROPHY_CrawlerPlate)
* *{
* * * *PLAYER_TALENT_TAKEANIMALTROPHY[TROPHY_CrawlerPlate] = TRUE;
* * * *B_LogEntry(TOPIC_TalentAnimalTrophy,"...снимать панцирь с ползунов.");
* *};
* *if(trophy == TROPHY_DrgSnapperHorn)
* *{
* * * *PLAYER_TALENT_TAKEANIMALTROPHY[TROPHY_DrgSnapperHorn] = TRUE;
* * * *B_LogEntry(TOPIC_TalentAnimalTrophy,"...отламыват ь рог у остеров.");
* *};
* *if(trophy == TROPHY_DragonScale)
* *{
* * * *PLAYER_TALENT_TAKEANIMALTROPHY[TROPHY_DragonScale] = TRUE;
* * * *CreateInvItems(Swampdragon,ItAt_DragonScale,12);
* * * *CreateInvItems(Rockdragon,ItAt_DragonScale,12);
* * * *CreateInvItems(Firedragon,ItAt_DragonScale,12);
* * * *CreateInvItems(Icedragon,ItAt_DragonScale,12);
* * * *B_LogEntry(TOPIC_TalentAnimalTrophy,"...снимать чашую с драконов.");
* *};
* *if(trophy == TROPHY_DragonBlood)
* *{
* * * *PLAYER_TALENT_TAKEANIMALTROPHY[TROPHY_DragonBlood] = TRUE;
* * * *CreateInvItems(Swampdragon,ItAt_DragonBlood,2);
* * * *CreateInvItems(Rockdragon,ItAt_DragonBlood,2);
* * * *CreateInvItems(Firedragon,ItAt_DragonBlood,2);
* * * *CreateInvItems(Icedragon,ItAt_DragonBlood,2);
* * * *B_LogEntry(TOPIC_TalentAnimalTrophy,"...сцеживать кровь с драконов.");
* *};
* *// вывод текста: "Обучение: Разделка зверей"
* *PrintScreen(PRINT_LearnTakeAnimalTrophy,-1,-1,FONT_Screen,2);
* *// отобразить в окне характеристик
* *Npc_SetTalentSkill(oth,NPC_TALENT_TAKEANIMALTROPH Y,1);
* *return TRUE;
};


Ответить с цитированием