:ввод invkill perkill имя1="вы попали вскользь" имя2="удар пришелся в защищенное место" имя3="вы увернулись и контратакуете" имя4="вы смахиваете с лица пот и кидаете во врага меч" имя5="вашу атаку отбили и меч воткнулся в землю" имя6="вы ловко отразили все атаки и ударили мечом наотмашь" имя7="вы подпрыгнули и ударили своего противника ногами" имя8="вы валите своего противника на землю и замахиваетесь мечом" имя9="вы отклоняете атаку противника и наносите удар рукояткой меча" имя10="у вас выбивают оружие и вы бросаетесь на противника с кулаками" количество ударов=10 Сила=10 Интеллект=6 Атака=Сила*2 Здоровье=Сила*10 Мана=Интеллект*10 Выносливость=10 Обаяние=15 Удача=14 udar=0 inv+ Книга заклинаний Искры=1 Молния=1 Яд скорпиона=1 Ледяная игла=1 Use_Книга заклинаний_Искры_hide=1 Use_Книга заклинаний_Молния_hide=1 Use_Книга заклинаний_Ледяная игла_hide=1 Use_Книга заклинаний_Яд скорпиона_hide=1 Ведьмак=0 Знахарь=0 Чародей=0 Шаман=0 Волшебник=0 КаменьП=3 КоличествоЗаклинаний=0 :Шаг3 cls decordel Шаг=3 пиявка=1 p Вы ныряете. В ваших руках оказывается старинный кинжал с изящной гравировкой на рукояти. Вы проводите рукой по лезвию и замечаете на ладони чью-то кровь. В тот же момент воды пруда окрашиваются в красный цвет, и на поверхности появляется уродливая голова с огромной пастью. pln Вы быстро выбираетесь на берег, но чудовище следует за вами. Ваши действия: ;btn Шаг4, закричать и пуститься наутёк btn Вбой, вступить в бой ;btn Шаг6, выбросить кинжал в пруд end :Шаг5 decordel if Шаг#Шаг$_1="cls" then cls if Шаг#Шаг$_2="pln" then pln Шаг=5 Use_Книга заклинаний_Искры_hide=1 Use_Книга заклинаний_Молния_hide=1 Use_Книга заклинаний_Ледяная игла_hide=1 Use_Книга заклинаний_Яд скорпиона_hide=1 if z<=0 then end if z>#Обаяние-5$ then p Ваше Здоровье: & Style_DOS_TextColor=10 & p #Здоровье$ & Style_DOS_TextColor=7 & p Здоровье #%монстр$: & Style_DOS_TextColor=9 & pln #z$ & Style_DOS_TextColor=7 & p Мана: & Style_DOS_TextColor=3 & p #Мана$ & Style_DOS_TextColor=7 & p Мана: & Style_DOS_TextColor=3 & pln #МанаМ$ & Style_DOS_TextColor=7 & textfont="arial.ttf[13]" & p Эффекты: & pln Эффекты: & textfont = "_sysfont" & proc Эффекты заклинаний боя & pln Раздумывать некогда, делайте что-нибудь! & btn Удар1, Кинуть кости & btn Заклинание, Воспользоваться заклинанием end :Эффекты заклинаний боя pln ; процедура вступает в силу, каждый раз при использовании заклинания с доп эффектом и вырисовывает на экране необходимый эффект, а также делает проверку, если эффектов больше чем 1 if описаниеВ="" then ef1="#%описаниеВ$" & ef2="#%описаниеВ$" & ef3="#%описаниеВ$" ; обнуляет значения, если используется заклинание без эффекта if ef1="" and описаниеВ<>"" and описаниеВ<>"Нет" then ef1="#%описаниеВ$" & decoradd ЭффектыЗаклинанийНаВраге (350,135) TEXT "#%ef1$", "arial.ttf[13]" ;записывает первый эффект в переменную ef1, если переменная пустая и значение эффекта существует и не равно значению "Нет", затем выводит на экран декоратор if ef1<>"" and ef1="#%описаниеВ$" then decoradd ЭффектыЗаклинанийНаВраге (350,135) TEXT "#%ef1$", "arial.ttf[13]" ; рисует декоратор со значением эффекта, если эффект существует и не изменился if ef1<>"" and ef1<>"#%описаниеВ$" and описаниеВ<>"Нет" then pln & ef2="#%описаниеВ$" & decoradd ЭффектыЗаклинанийНаВраге (350,135) TEXT "#%ef1$", "arial.ttf[13]" & decoradd ДопЭффектыЗаклинанийНаВраге (350,155) TEXT "#%ef2$", "arial.ttf[13]" ; рисует декораторы двух эффектов, если первый эффект не совпадает со значением нового эффекта, запрещает изменение эффекта, если описаниеВ рано значению "Нет" if ef2<>"" and ef2="#%описаниеВ$" and описаниеВ<>"Нет" then decoradd ЭффектыЗаклинанийНаВраге (350,135) TEXT "#%ef1$", "arial.ttf[13]" & decoradd ДопЭффектыЗаклинанийНаВраге (350,155) TEXT "#%ef2$", "arial.ttf[13]" ; рисует декоратор со значением двух эффектов, если эффекты существуют и не изменились, запрещает изменение эффектов, если описаниеВ рано значению "Нет" if ef2<>"" and ef2<>"#%описаниеВ$" and описаниеВ<>"Нет" then pln & pln & ef3="#%описаниеВ$" & decoradd ЭффектыЗаклинанийНаВраге (350,135) TEXT "#%ef1$", "arial.ttf[13]" & decoradd ДопЭффектыЗаклинанийНаВраге (350,155) TEXT "#%ef2$", "arial.ttf[13]" & decoradd ДопДопЭффектыЗаклинанийНаВраге (350,175) TEXT "#%ef3$", "arial.ttf[13]" ; рисует декораторы трех эффектов, если новый эффект не совпадает со значением двух предыдущих, запрещает изменение эффектов, если описаниеВ рано значению "Нет" ; несколько условий ниже позволяют выводить на экран от 1 до 3 эффектов, если описаниеВ все же изменяется на значение "Нет" if ef1<>"" and описаниеВ="Нет" then decoradd ЭффектыЗаклинанийНаВраге (350,135) TEXT "#%ef1$", "arial.ttf[13]" if ef1<>"" and ef2<>"" and описаниеВ="Нет" then pln & decoradd ЭффектыЗаклинанийНаВраге (350,135) TEXT "#%ef1$", "arial.ttf[13]" & decoradd ДопЭффектыЗаклинанийНаВраге (350,155) TEXT "#%ef2$", "arial.ttf[13]" if ef3<>"" and описаниеВ="Нет" then pln & pln & ef3="#%описаниеВ$" & decoradd ЭффектыЗаклинанийНаВраге (350,135) TEXT "#%ef1$", "arial.ttf[13]" & decoradd ДопЭффектыЗаклинанийНаВраге (350,155) TEXT "#%ef2$", "arial.ttf[13]" & decoradd ДопДопЭффектыЗаклинанийНаВраге (350,175) TEXT "#%ef3$", "arial.ttf[13]" end :Удар1 cls decordel proc Игральные кости proc Шанс доп урона if Шанс>=80 then ранд=rnd#y1$ else ранд=0 if Значение_костей<=4 then p #%имя#rnd#количество ударов$$$, & udar=a1+ранд & proc Крит_a1 & Style_DOS_TextColor=9 & pln -#udar$ & Style_DOS_TextColor=7 & proc Ответный удар1.1 & goto Шаг#Шаг$ ; из них урон #a1$ и доп урон #udar-a1$ & pln & if Шанс>=50 then ранд=rnd#y2$ else ранд=0 if Значение_костей>=5 and Значение_костей<=9 then p #%имя#rnd#количество ударов$$$, & udar=a2+ранд & proc Крит_a2 & Style_DOS_TextColor=9 & pln -#udar$ & Style_DOS_TextColor=7 & proc Ответный удар1.2 & goto Шаг#Шаг$ ; из них урон #a2$ и доп урон #udar-a2$ & pln & if Шанс>=20 then ранд=rnd#y3$ else ранд=0 if Значение_костей>=10 then p #%имя#rnd#количество ударов$$$, & udar=Атака+ранд & proc Крит_Атака & Style_DOS_TextColor=9 & pln -#udar$ & Style_DOS_TextColor=7 & proc Ответный удар1.3 & goto Шаг#Шаг$ ; из них урон #Атака$ и доп урон #udar-Атака$ & pln end :Ответный удар1.1 ; ответный удар врага на значения костей 2-4 z=z-udar if z<=0 then pln Ваш противник - #%монстр$. Повержен. & Use_Книга заклинаний_Осмотреть_hide=1 & btn Награда, Получить награду & end Style_DOS_TextColor=4 pln Ход противника! Style_DOS_TextColor=7 proc Шанс доп урона if Шанс>=20 then ранд=rnd#yv3$ else ранд=0 p вам врезали в ответ, udar_vr=АтакаВрага+ранд proc Крит_АтакаВрага Style_DOS_TextColor=10 p -#udar_vr$ ;, из них урон #АтакаВрага$ и доп урон #udar_vr-АтакаВрага$ Style_DOS_TextColor=7 proc ЭффектыВ #%СнижениеСилы$ if СнижениеСилы<>"" then Атака=Сила*2 & proc Расчет атаки Здоровье=Здоровье-udar_vr end :Ответный удар1.2 ; ответный удар врага на значения костей 5-9 z=z-udar if z<=0 then pln Ваш противник - #%монстр$. Повержен. & Use_Книга заклинаний_Осмотреть_hide=1 & btn Награда, Получить награду & end Style_DOS_TextColor=4 pln Ход противника! Style_DOS_TextColor=7 proc Шанс доп урона if Шанс>=50 then ранд=rnd#yv2$ else ранд=0 p вам врезали в ответ, udar_vr=av2+ранд proc Крит_av2 Style_DOS_TextColor=10 p -#udar_vr$ ; из них урон #av2$ и доп урон #udar_vr-av2$ Style_DOS_TextColor=7 proc ЭффектыВ #%СнижениеСилы$ if СнижениеСилы<>"" then Атака=Сила*2 & proc Расчет атаки Здоровье=Здоровье-udar_vr end :Ответный удар1.3 ; ответный удар врага на значения костей 10-12 z=z-udar if z<=0 then pln Ваш противник - #%монстр$. Повержен. & Use_Книга заклинаний_Осмотреть_hide=1 & btn Награда, Получить награду & end Style_DOS_TextColor=4 pln Ход противника! Style_DOS_TextColor=7 proc Шанс доп урона if Шанс>=80 then ранд=rnd#yv1$ else ранд=0 p вам врезали в ответ, udar_vr=av1+ранд proc Крит_av1 Style_DOS_TextColor=10 p -#udar_vr$ ;, из них урон #av1$ и доп урон #udar_vr-av1$ Style_DOS_TextColor=7 proc ЭффектыВ #%СнижениеСилы$ if СнижениеСилы<>"" then Атака=Сила*2 & proc Расчет атаки Здоровье=Здоровье-udar_vr end :Заклинание cls decordel proc Проверка заклинаний if КоличествоЗаклинаний=0 then pln У вас нет в наличии ни одного заклинания. & btn Шаг#Шаг$("cls"), Ну вот & end pln Выбирите заклинание, да побыстрей. Вы же не хотите остаться без особо важных частей тела... btn Шаг#Шаг$("cls","pln"), Я передумал end :Шанс доп урона Шанс=rnd100 end :Игральные кости Значение_костей=rnd12 if Значение_костей<>1 then p На кубике & Style_DOS_TextColor=13 & p #Значение_костей$, & Style_DOS_TextColor=7 & else Значение_костей=Значение_костей+1 & p На кубике & Style_DOS_TextColor=13 & p #Значение_костей$, & Style_DOS_TextColor=7 end :Use_Книга заклинаний_Искры cls proc Искры if Мана<ЗатратыМаны then pln Не хватает маны на применение заклинания #%Название$. & goto Шаг#Шаг$ Мана=Мана-ЗатратыМаны Искры=0 z=z-udar_zak p Вы нанесли Style_DOS_TextColor=9 p #udar_zak$ Style_DOS_TextColor=7 pln урона применив заклинание #%Название$ if z<=0 then pln Ваш противник - #%монстр$. Повержен. & Use_Книга заклинаний_Осмотреть_hide=1 & btn Награда, Получить награду & end goto Шаг#Шаг$ end :Вбой if пиявка=1 then proc Пиявка & goto Шаг5 if амбал=1 then end end :Пиявка монстр="Большая пиявка" ранг="Новобранец" proc Расчеты Силы врага z=s*10 МанаМ=0 АтакаВрага=s*2 МонетыЗаСмерть=5 ОпытЗаСмерть=z-Здоровье trophy1="Змеиный кинжал (+1 Интеллект)" trophy2="Драконий кинжал (+1 Сила)" trophy3="Соколиный кинжал (+1 Удача)" trophy1_name="Змеиный кинжал" trophy2_name="Драконий кинжал" trophy3_name="Соколиный кинжал" proc Расчет удачи proc Расчет атаки proc Расчет атаки Врага pln БОЙ! & pln Ваш противник - #%монстр$. Сила: #s$. image пиявка.jpg pln pln 2-4 - слабый удар pln 5-9 - средней силы удар pln 10-12 - сильный удар end :Искры Название="Искры" udar_zak=7 ; Урон от заклинания ход="" цели="до 2-х" описаниеВ="- Следующая атака всех целей будет неудачной" ;переменная показывающая существующий эффект на враге в бою описаниеЭ="Следующая атака всех целей будет неудачной" ;переменная показывающая информацию в карточке заклинания ЗатратыМаны=10 end :Проверка заклинаний КоличествоЗаклинаний=Искры+Молния+Ледяная игла+Яд скорпиона ; переменная хранит значение количества заклинаний, записанных в Книгу заклинаний if Искры>=1 then Use_Книга заклинаний_Искры_hide=0 else Use_Книга заклинаний_Искры_hide=1 if Молния>=1 then Use_Книга заклинаний_Молния_hide=0 else Use_Книга заклинаний_Молния_hide=1 if Ледяная игла>=1 then Use_Книга заклинаний_Ледяная игла_hide=0 else Use_Книга заклинаний_Ледяная игла_hide=1 if Яд скорпиона>=1 then Use_Книга заклинаний_Яд скорпиона_hide=0 else Use_Книга заклинаний_Яд скорпиона_hide=1 end :ЭффектыВ if ef1="- Следующая атака всех целей будет неудачной" and ef2="- Враг отравлен (1 ход)" then udar_vr=0 & z=z-udar_dot & эффектВ="" & описаниеВ="" & pln ...но атака не достигла цели & p ...и противник почувствовал на себе побочный эффект яда, & Style_DOS_TextColor=9 & p -#udar_dot$ & Style_DOS_TextColor=7 & pln . & pln & end if ef2="- Следующая атака всех целей будет неудачной" and ef1="- Враг отравлен (1 ход)" then udar_vr=0 & z=z-udar_dot & эффектВ="" & описаниеВ="" & pln ...но атака не достигла цели & p ...и противник почувствовал на себе побочный эффект яда, & Style_DOS_TextColor=9 & p -#udar_dot$ & Style_DOS_TextColor=7 & pln . & pln & end if ef1="- Следующая атака всех целей будет неудачной" then udar_vr=0 & описаниеВ="" & pln ...но атака не достигла цели. if ef1="- Следующая атака всех целей нанесет половину урона" then udar_vr=udar_vr*1.5-udar_vr & описаниеВ="" & pln ...но атака оказалась в два раза слабее. if ef1="- Враг отравлен (1 ход)" then z=z-udar_dot & описаниеВ="" & p ...и противник почувствовал на себе побочный эффект яда, & Style_DOS_TextColor=9 & p -#udar_dot$ & Style_DOS_TextColor=7 & pln . pln end :Расчет удачи ;Коэффициент Удачи для 2-4 изменяется 5,5,5,6,6,6,7,7,7... с шагом Удачи +1 ;Коэффициент Удачи для 5-9 изменяется 6,6,6,7,7,8,8,8,9... с шагом Удачи +1 ;Коэффициент Удачи для 10-12 изменяется 7,8,8,9,9,10,10,11,11... с шагом Удачи +1 ;pln Удача x=Удача/3 fp_prec=0 ;Задаем число знаков после запятой равное нулю y1=#x$ ;Присваиваем переменной y1 целое число. ;округляем число вверх. if x›0 and y1›x then y1=y1-1 ;Для положительных чисел if x‹0 and y1‹x then y1=y1+1 ;Для отрицательных чисел ;pln Целочисленное частное: #y1$ ;коэффициент удачи для значения костей 2-4 ;pln x=Удача/2.5 fp_prec=0 ;Задаем число знаков после запятой равное нулю y2=#x$ ;Присваиваем переменной y2 целое число. ;округляем число вверх. if x›0 and y2›x then y2=y2-1 ;Для положительных чисел if x‹0 and y2‹x then y2=y2+1 ;Для отрицательных чисел ;pln Целочисленное частное: #y2$ ;коэффициент удачи для значения костей 5-9 ;pln x=Удача/2 fp_prec=0 ;Задаем число знаков после запятой равное нулю y3=#x$ ;Присваиваем переменной y3 целое число. ;округляем число вверх. if x›0 and y3›x then y3=y3-1 ;Для положительных чисел if x‹0 and y3‹x then y3=y3+1 ;Для отрицательных чисел ;pln Целочисленное частное: #y3$ ;коэффициент удачи для значения костей 10-12 ;pln end :Расчет удачи Врага ;Коэффициент Удачи для 2-4 изменяется 5,5,5,6,6,6,7,7,7... с шагом Удачи +1 ;Коэффициент Удачи для 5-9 изменяется 6,6,6,7,7,8,8,8,9... с шагом Удачи +1 ;Коэффициент Удачи для 10-12 изменяется 7,8,8,9,9,10,10,11,11... с шагом Удачи +1 ;pln Удача x=dop_uron_v/3 fp_prec=0 ;Задаем число знаков после запятой равное нулю yv1=#x$ ;Присваиваем переменной yv1 целое число. ;округляем число вверх. if x›0 and yv1›x then yv1=yv1-1 ;Для положительных чисел if x‹0 and yv1‹x then yv1=yv1+1 ;Для отрицательных чисел ;pln Целочисленное частное: #yv1$ ;коэффициент удачи для значения костей 2-4 ;pln x=dop_uron_v/2.5 fp_prec=0 ;Задаем число знаков после запятой равное нулю yv2=#x$ ;Присваиваем переменной yv2 целое число. ;округляем число вверх. if x›0 and yv2›x then yv2=yv2-1 ;Для положительных чисел if x‹0 and yv2‹x then yv2=yv2+1 ;Для отрицательных чисел ;pln Целочисленное частное: #yv2$ ;коэффициент удачи для значения костей 5-9 ;pln x=dop_uron_v/2 fp_prec=0 ;Задаем число знаков после запятой равное нулю yv3=#x$ ;Присваиваем переменной yv3 целое число. ;округляем число вверх. if x›0 and yv3›x then yv3=yv3-1 ;Для положительных чисел if x‹0 and yv3‹x then yv3=yv3+1 ;Для отрицательных чисел ;pln Целочисленное частное: #yv3$ ;коэффициент удачи для значения костей 10-12 ;pln end :Расчет атаки ;коэффициент Атаки для 2-4 изменяется 7,7,8,9,9,10... с шагом Атаки +2 ;коэффициент Атаки для 5-9 изменяется 10,11,12,13,14,15... с шагом Атаки +2 ;pln Атака x=Атака/3 fp_prec=0 ;Задаем число знаков после запятой равное нулю. a1=#x$ ;Присваиваем переменной a1 целое число. ;округляем число вверх. if x›0 and a1›x then a1=a1-1 ;Для положительных чисел if x‹0 and a1‹x then a1=a1+1 ;Для отрицательных чисел ;pln Целочисленное частное: #a1$ ;коэффициент атаки для значения костей 2-4 ;pln x=Атака/2 fp_prec=0 ;Задаем число знаков после запятой равное нулю a2=#x$ ;Присваиваем переменной a2 целое число. ;округляем число вверх. if x›0 and a2›x then a2=a2-1 ;Для положительных чисел if x‹0 and a2‹x then a2=a2+1 ;Для отрицательных чисел ;pln Целочисленное частное: #a2$ ;коэффициент атаки для значения костей 5-9 ;pln end :Расчет атаки Врага ;коэффициент атаки для значения костей 10-12 ;pln Атака Врага x=АтакаВрага/3 fp_prec=0 av1=#x$ if x›0 and av1›x then av1=av1-1 if x‹0 and av1‹x then av1=av1+1 ;pln Целочисленное частное: #av1$ ;pln ;коэффициент атаки для значения костей 5-9 x=АтакаВрага/2 fp_prec=0 av2=#x$ if x›0 and av2›x then av2=av2-1 if x‹0 and av2‹x then av2=av2+1 ;pln Целочисленное частное: #av2$ ;pln end :Расчеты Силы врага if ранг="Новобранец" then s=Сила-1 & dop_uron_v=Удача-1 if ранг="Оруженосец" then s=Сила & dop_uron_v=Удача if ранг="Воин" then s=Сила+1 & dop_uron_v=Удача+1 if ранг="Чемпион" then s=Сила+2 & dop_uron_v=Удача+2 if ранг="Правитель" then s=Сила+3 & dop_uron_v=Удача+3 end :Крит_a1 ; Стоит увеличить шанс крита через увеличение вычитаемого числа: 20 - Удача-2, 30 - Удача-3 и т.д. Крит=rnd#Удача$ if крит>=#Удача-1$ then udar=udar+a1 & Style_DOS_TextColor=12 & p КРИТ! & Style_DOS_TextColor=7 end :Крит_a2 Крит=rnd#Удача$ if крит>=#Удача-1$ then udar=udar+a2 & Style_DOS_TextColor=12 & p КРИТ! & Style_DOS_TextColor=7 end :Крит_Атака Крит=rnd#Удача$ if крит>=#Удача-1$ then udar=udar+Атака & Style_DOS_TextColor=12 & p КРИТ! & Style_DOS_TextColor=7 end ; Для значения костей 10-12 :Крит_av1 Крит=rnd#dop_uron_v$ if крит>=#dop_uron_v-1$ then udar_vr=udar_vr+av1 & Style_DOS_TextColor=12 & p КРИТ! & Style_DOS_TextColor=7 end ; Для значения костей 5-9 :Крит_av2 Крит=rnd#dop_uron_v$ if крит>=#dop_uron_v-1$ then udar_vr=udar_vr+av2 & Style_DOS_TextColor=12 & p КРИТ! & Style_DOS_TextColor=7 end ; Для значения костей 2-4 :Крит_АтакаВрага Крит=rnd#dop_uron_v$ if крит>=#dop_uron_v-1$ then udar_vr=udar_vr+АтакаВрага & Style_DOS_TextColor=12 & p КРИТ! & Style_DOS_TextColor=7 end