|
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; };
|