uses crt; var hp, attack, lvlmax, time,escape, enhp,decease,banshik,cemeterytime,injectionprice,chumazaukus,chumaattack,fullhp,osmotrprice, tavernprice, at,birthgod,immunitet,immunitet1,chuma, older, enat, heal, delitel, yearplus, yearup, birthminusyear, f, critheal, year, birth, critheal1, d, e, critheal2, critheal3, def, endef, money, coin, ver, ver1, i, hpminus, enhpminus, dragonslayer, dragonslayerprice, banhammer, krit1, krit2, krit3, banhammerprice, dagger, daggerprice, choice, risky, b, c, lvl, lvlneed, lvlup, strengh, perception, endurance, charisma, intelligence, agility, luck, points : integer; a, first, second, knb1, knb2, firstname, secondname, name, titul, newstroka, cemeteryfirstname, cemeteryname, o,birthint,godsmerti,godrozhdeniya, rodilsya, umer, vozrast: string; cemetery1, cemetery2, cemetery3, cemetery4, cemetery5, cemetery6, cemetery7:string; label 101, 102, 103, 104, 105, 106, 107,108,109,110, 111, 112, 113, 114, 115, 116, 117,118,119,120,121; begin clrscr; year:=1000; 116:writeln('-----------------------------------------------------------------------------'); randomize; writeln('Нынешний год - ', year,' г. после нашей эры.');//Год. Ни на что не влияет, только на то, что бы вы оценили, насколько вы продвинулись. randomize; birth:=18 + random(48); if (birth>=18) and (birth<=30) then delitel:=20; if (birth>=31) and (birth<=37) then delitel:=10; if (birth>=37) and (birth<=48) then delitel:=5; if (birth>=49) and (birth<=65) then delitel:=2; birthgod:=birth mod 10; if birthgod=1 then writeln('Вашему персонажу сейчас ',birth,' год.') else if (birthgod=2) or (birthgod=3) or (birthgod=4) then writeln('Вашему персонажу сейчас ',birth,' года.') else writeln('Вашему персонажу сейчас ',birth,' лет.');//Возраст. Ни на что не влияет, планирую добавить фичи для этого. Обновлено: влияет на характеристики и на здоровье. randomize; if titul='Прокаженный ' then begin immunitet:=random(25); if birth>=55 then immunitet:=immunitet-(birth div 2); if immunitet<0 then immunitet:=0; end else if titul='Эскулап его величества ' then begin immunitet:=random(50); immunitet:=immunitet+20; if immunitet>50 then immunitet:=50; end else begin immunitet:=random(50); if birth>=55 then immunitet:=immunitet-(birth div 2); if immunitet<0 then immunitet:=0; end; writeln('Иммунитет - ',immunitet); randomize; f:=random(19); case f of //перки, или титулы: 0:titul:='Простолюдин ';//Никаких бонусов. 1:titul:='Великий дон ';//Бонус к харизме 2:titul:='Его сиятельство граф ';//Имеете на старте банхаммер 3:titul:='Его милость барон ';//Имеете на старте драконоборца. 4:titul:='Отважный сэр ';//Бонус к силе 5:titul:='Юродивый ';//Уменьшение харизмы 6:titul:='Король воров ';//Увеличение ловкости 7:titul:='Виконт ';//Имеете на старте ржавый нож 8:titul:='Маркиз ';//Дает вам бесплатную комнату в таверне. 9:titul:='Проклятый ';//Уменьшение удачи 10:titul:='Эскулап его величества ';//Увеличение интеллекта, повышает эффективность лечения. 11:titul:='Наследник обедневшего семейства ';//Увеличение стартового капитана 12:titul:='Бакалавр при дворе ';//Увеличение интеллекта. 13:titul:='Берсерк ';//При хп<50 увеличивает урон на 170 очков, увеличение выносливости. 14:titul:='Меткий глаз ';//Бонус к восприятию 15:titul:='Слепец ';//Уменьшает восприятие. 16:titul:='Прокаженный ';//Уменьшение силы, выносливости, иммунитета. 17:titul:='Разгульный пьяница ';//Уменьшение восприятия и ловкости 18:titul:='Сбежавший раб ';//Уменьшение интеллекта 19:titul:='Его святейшество инквизитор ';//Увеличение удачи end; randomize; d:=random(55); case d of 0:firstname:='Нефур'; 1:firstname:='Неин'; 2:firstname:='Рифур'; 3:firstname:='Ноли'; 4:firstname:='Фоли'; 5:firstname:='Ноин'; 6:firstname:='Тефур'; 7:firstname:='Рурин'; 8:firstname:='Дэрин'; 9:firstname:='Урист'; 10:firstname:='Киин'; 11:firstname:='Мекилеф'; 12:firstname:='Маэдгол'; 13:firstname:='Дабрим'; 14:firstname:='Илкил'; 15:firstname:='Аэглор'; 16:firstname:='Артас'; 17:firstname:='Мегинор'; 18:firstname:='Баналор'; 19:firstname:='Деон'; 20:firstname:='Дилек'; 21:firstname:='Тирук'; 22:firstname:='Агагниш'; 23:firstname:='Хупнук'; 24:firstname:='Норзук'; 25:firstname:='Воварг'; 26:firstname:='Мазлык'; 27:firstname:='Ланак'; 28:firstname:='Загниш'; 29:firstname:='Агоплиш'; 30:firstname:='Хираг'; 31:firstname:='Лашнак'; 32:firstname:='Изукор'; 33:firstname:='Курк'; 34:firstname:='Изук'; 35:firstname:='Пирбаг'; 36:firstname:='Милош'; 37:firstname:='Редрик'; 38:firstname:='Кирион'; 39:firstname:='Экхогил'; 40:firstname:='Делегил'; 41:firstname:='Эархолион'; 42:firstname:='Эаррадил'; 43:firstname:='Осрионгил'; 44:firstname:='Осроил'; 45:firstname:='Экоддур'; 46:firstname:='Ослегил'; 47:firstname:='Динелион'; 48:firstname:='Хавирлеб'; 49:firstname:='Эклан'; 50:firstname:='Осонтар'; 51:firstname:='Эархаон'; 52:firstname:='Дирамлег'; 53:firstname:='Элон'; 54:firstname:='Румата'; 55:firstname:='Туррин '; end; randomize; e:=random(46); case e of 0:secondname:=' Бертеал'; 1:secondname:=' МакДворф'; 2:secondname:=' Мундл'; 3:secondname:=' Трудаэм'; 4:secondname:=' Умтерн'; 5:secondname:=' Дорфри'; 6:secondname:=' Бринген'; 7:secondname:=' Лердгриф'; 8:secondname:=' Грисрох'; 9:secondname:=' Одон'; 10:secondname:=' Фрибрен'; 11:secondname:=' Редемунд'; 12:secondname:=' Офдис'; 13:secondname:=' Минот'; 14:secondname:=' Рекжа'; 15:secondname:=' Эйоб'; 16:secondname:=' Аэльлиндис'; 17:secondname:=' Сигиано'; 18:secondname:=' Ликфин'; 19:secondname:=' Этельгейр'; 20:secondname:=' Кает'; 21:secondname:=' Рейвенхарт'; 23:secondname:=' Нанрис'; 24:secondname:=' Бромнош'; 25:secondname:=' Кургрис'; 26:secondname:=' Сеттона'; 27:secondname:=' Гиллейн'; 28:secondname:=' Уторотон'; 29:secondname:=' Джодерс'; 30:secondname:=' Сетми'; 31:secondname:=' Рэба'; 32:secondname:=' Бруфорд'; 34:secondname:=' Эбнел'; 35:secondname:=' Хардстал'; 36:secondname:=' Алро'; 37:secondname:=' Аэльери'; 38:secondname:=' Тиот'; 39:secondname:=' Искариот'; 40:secondname:=' Адальбренд'; 41:secondname:=' Услейв'; 42:secondname:=' Крава'; 43:secondname:=' Ойберт'; 44:secondname:=' Морлейв'; 45:secondname:=' Гордегест'; 46:secondname:=' Бриннио'; end; name:=firstname+secondname; writeln('Ваше имя - ',titul,'',name);// Имя. Абсолютно ни на что не влияет. randomize; strengh:=random(10); //Характеристики. Разбросаны по системе S.P.E.C.I.A.L. if titul='Отважный сэр ' then strengh:=strengh+6; if strengh>10 then strengh:=9; if titul='Прокаженный ' then strengh:=strengh-5; if strengh<0 then strengh:=1; case strengh of 0:writeln('СИЛА - ', strengh,' - ничего'); 1:writeln('СИЛА - ', strengh,' - труп'); 2:writeln('СИЛА - ', strengh,' - плохо'); 3:writeln('СИЛА - ', strengh,' - средне'); 4:writeln('СИЛА - ', strengh,' - удовлетворительно'); 5:writeln('СИЛА - ', strengh,' - обычно'); 6:writeln('СИЛА - ', strengh,' - хорошо'); 7:writeln('СИЛА - ', strengh,' - очень хорошо'); 8:writeln('СИЛА - ', strengh,' - круто'); 9:writeln('СИЛА - ', strengh,' - герой'); 10:writeln('СИЛА - ', strengh,' - бог'); end; randomize; perception:=random(10); if titul='Меткий глаз ' then perception:=perception+6; if perception>10 then perception:=9; if titul='Слепец ' then perception:=perception-5; if perception<0 then perception:=1; if titul='Разгульный пьяница ' then perception:=perception-6; if perception<0 then perception:=1; case perception of 0:writeln('ВОСПРИЯТИЕ - ', perception,' - ничего'); 1:writeln('ВОСПРИЯТИЕ - ', perception,' - труп'); 2:writeln('ВОСПРИЯТИЕ - ', perception,' - плохо'); 3:writeln('ВОСПРИЯТИЕ - ', perception,' - средне'); 4:writeln('ВОСПРИЯТИЕ - ', perception,' - удовлетворительно'); 5:writeln('ВОСПРИЯТИЕ - ', perception,' - обычно'); 6:writeln('ВОСПРИЯТИЕ - ', perception,' - хорошо'); 7:writeln('ВОСПРИЯТИЕ - ', perception,' - очень хорошо'); 8:writeln('ВОСПРИЯТИЕ - ', perception,' - круто'); 9:writeln('ВОСПРИЯТИЕ - ', perception,' - герой'); 10:writeln('ВОСПРИЯТИЕ - ', perception,' - бог'); end; randomize; endurance:=random(10); if titul='Берсерк ' then endurance:=endurance+5; if endurance>10 then endurance:=9; if titul='Прокаженный ' then begin endurance:=endurance-6; if endurance<0 then endurance:=1; end; case endurance of 0:writeln('ВЫНОСЛИВОСТЬ - ', endurance,' - ничего'); 1:writeln('ВЫНОСЛИВОСТЬ - ', endurance,' - труп'); 2:writeln('ВЫНОСЛИВОСТЬ - ', endurance,' - плохо'); 3:writeln('ВЫНОСЛИВОСТЬ - ', endurance,' - средне'); 4:writeln('ВЫНОСЛИВОСТЬ - ', endurance,' - удовлетворительно'); 5:writeln('ВЫНОСЛИВОСТЬ - ', endurance,' - обычно'); 6:writeln('ВЫНОСЛИВОСТЬ - ', endurance,' - хорошо'); 7:writeln('ВЫНОСЛИВОСТЬ - ', endurance,' - очень хорошо'); 8:writeln('ВЫНОСЛИВОСТЬ - ', endurance,' - круто'); 9:writeln('ВЫНОСЛИВОСТЬ - ', endurance,' - герой'); 10:writeln('ВЫНОСЛИВОСТЬ - ', endurance,' - бог'); end; randomize; charisma:=random(10); if titul='Юродивый ' then begin charisma:=charisma-5; if charisma<0 then charisma:=1; end; if titul='Великий дон 'then begin charisma:=charisma+5; if charisma>10 then charisma:=9; end; case charisma of 0:writeln('ХАРИЗМА - ', charisma,' - ничего'); 1:writeln('ХАРИЗМА - ', charisma,' - труп'); 2:writeln('ХАРИЗМА - ', charisma,' - плохо'); 3:writeln('ХАРИЗМА - ', charisma,' - средне'); 4:writeln('ХАРИЗМА - ', charisma,' - удовлетворительно'); 5:writeln('ХАРИЗМА - ', charisma,' - обычно'); 6:writeln('ХАРИЗМА - ', charisma,' - хорошо'); 7:writeln('ХАРИЗМА - ', charisma,' - очень хорошо'); 8:writeln('ХАРИЗМА - ', charisma,' - круто'); 9:writeln('ХАРИЗМА - ', charisma,' - герой'); 10:writeln('ХАРИЗМА - ', charisma,' - бог'); end; randomize; intelligence:=random(10); if titul='Бакалавр при дворе ' then intelligence:=intelligence+6; if intelligence>10 then intelligence:=9; if titul='Эскулап его величества ' then intelligence:=intelligence+5; if intelligence>10 then intelligence:=8; if titul='Сбежавший раб ' then intelligence:=intelligence-5; if intelligence<0 then intelligence:=1; case intelligence of 0:writeln('ИНТЕЛЛЕКТ - ', intelligence,' - ничего'); 1:writeln('ИНТЕЛЛЕКТ - ', intelligence,' - труп'); 2:writeln('ИНТЕЛЛЕКТ - ', intelligence,' - плохо'); 3:writeln('ИНТЕЛЛЕКТ - ', intelligence,' - средне'); 4:writeln('ИНТЕЛЛЕКТ - ', intelligence,' - удовлетворительно'); 5:writeln('ИНТЕЛЛЕКТ - ', intelligence,' - обычно'); 6:writeln('ИНТЕЛЛЕКТ - ', intelligence,' - хорошо'); 7:writeln('ИНТЕЛЛЕКТ - ', intelligence,' - очень хорошо'); 8:writeln('ИНТЕЛЛЕКТ - ', intelligence,' - круто'); 9:writeln('ИНТЕЛЛЕКТ - ', intelligence,' - герой'); 10:writeln('ИНТЕЛЛЕКТ - ', intelligence,' - бог'); end; randomize; agility:=random(10); if titul='Король воров ' then agility:=agility+5; if agility>10 then agility:=9; if titul='Разгульный пьяница ' then agility:=agility-5; if agility<0 then agility:=1; case agility of 0:writeln('ЛОВКОСТЬ - ', agility,' - ничего'); 1:writeln('ЛОВКОСТЬ - ', agility,' - труп'); 2:writeln('ЛОВКОСТЬ - ', agility,' - плохо'); 3:writeln('ЛОВКОСТЬ - ', agility,' - средне'); 4:writeln('ЛОВКОСТЬ - ', agility,' - удовлетворительно'); 5:writeln('ЛОВКОСТЬ - ', agility,' - обычно'); 6:writeln('ЛОВКОСТЬ - ', agility,' - хорошо'); 7:writeln('ЛОВКОСТЬ - ', agility,' - очень хорошо'); 8:writeln('ЛОВКОСТЬ - ', agility,' - круто'); 9:writeln('ЛОВКОСТЬ - ', agility,' - герой'); 10:writeln('ЛОВКОСТЬ - ', agility,' - бог'); end; banshik:=-1; randomize; luck:=random(10); if titul='Проклятый ' then luck:=luck-5; if luck<5 then luck:=1; if titul='Его святейшество инквизитор ' then luck:=luck+5; if luck>10 then luck:=9; case luck of 0:writeln('УДАЧА - ', luck,' - ничего'); 1:writeln('УДАЧА - ', luck,' - труп'); 2:writeln('УДАЧА - ', luck,' - плохо'); 3:writeln('УДАЧА - ', luck,' - средне'); 4:writeln('УДАЧА - ', luck,' - удовлетворительно'); 5:writeln('УДАЧА - ', luck,' - обычно'); 6:writeln('УДАЧА - ', luck,' - хорошо'); 7:writeln('УДАЧА - ', luck,' - очень хорошо'); 8:writeln('УДАЧА - ', luck,' - круто'); 9:writeln('УДАЧА - ', luck,' - герой'); 10:writeln('УДАЧА - ', luck,' - бог'); end; if titul='Наследник обедневшего семейства ' then money:=money+750; lvl:=1; writeln('-----------------------------------------------------------------------------'); 101:writeln('Хотите начать?'); inc(banshik); lvlup:=lvl; read(a); if (a='Пересоздать') or (a='пересоздать') or (a='п') or (a='П') then goto 116; writeln('Ваши финансы - ', money,' монет'); if (a='Да') or (a='да') then begin hp:=(strengh*5)+100; fullhp:=hp; at:=(strengh*5)+25; if titul='Его милость барон ' then dragonslayer:=1; if titul='Его сиятельство граф ' then banhammer:=1; if titul='Виконт ' then dagger:=1; if dragonslayer=1 then at:=at+40; if dagger=1 then at:=at+20; if banhammer=1 then at:=at+100; def:=5+(endurance*5); for i:=1 to 10 do begin randomize; b:=random(14); 113:randomize; c:=random(10); case b of 0:first:='колоссального'; 1:first:='токсического'; 2:first:='огненного'; 3:first:='ледяного'; 4:first:='земляного'; 5:first:='проклятого'; 6:first:='безумного'; 7:first:='яростного'; 8:first:='теневого'; 9:first:='электрического'; 10:first:='чумного'; 11:first:='каменного'; 12:first:='миниатюрного'; 13:first:='лунного'; 14:first:='водного'; end; case c of 0:second:=' дракона. '; 1:second:=' голема. '; 2:second:=' гоблина. '; 3:second:=' эльфа. '; 4:second:=' орка. '; 5:second:=' тролля.'; 6:second:=' зомби. '; 7:second:=' призрака. '; 8:second:=' демона. '; 9:second:=' энта. '; 10:second:=' огра. '; end; writeln('Вы встретили ',first,'', second);//На геймплей влияют только токсические, чумные, колоссальные и миниатюрные монстры, скоро будет исправлено. if first='миниатюрного' then begin randomize; enhp:=random(30) end else begin if first='колоссального' then begin randomize; enhp:=random(1000)+500; randomize; enat:=random(150); end else begin randomize; enhp:=random(250); end; end; randomize; enat:=random(150); randomize; endef:=random(30); repeat critheal1:=20; critheal2:=40; critheal3:=hp * 2; krit1:=10; krit2:=20; krit3:=at*2; risky:=0; attack:=0; if hp=0 then writeln('Вы на последнем издыхании!'); def:=5+(endurance*5); if hpminus>0 then begin//Отравление игрока hp:=hp-5; hpminus:=hpminus-1; end; if enhpminus>0 then begin//Отравление врага enhp:=enhp-5; enhpminus:=enhpminus-1; end; writeln('Ваше здоровье - ', hp, ' HP!');//Информация о бое. Высвечивается при каждом ходе. if hpminus>0 then writeln('Вы отправлены на ближайшие ',hpminus,' ходов!'); writeln('Ваша защита - ', def, ' DEF!'); writeln('Ваша сила атаки - ', at, '!'); writeln('Здоровье врага - ', enhp, ' hp!'); if enhpminus>0 then writeln('Враг отравлен на ближайшие ',enhpminus,' ходов!'); writeln('Защита врага - ',endef,' DEF!'); writeln('Сила атаки врага - ', enat,'!'); writeln('Ваш ход!'); writeln('Вы хотите атаковать, защититься, подлечиться или поставить все на один удар? (Еще вы можете убежать.)'); read(a); if (a='Атака') or (a='атака') or (a='Атаковать') or (a='атаковать') or (a='А') or (a='а') then begin//Атака attack:=1; randomize; if perception>=5 then ver:=random(20)+(perception*2) else ver:=random(20); if ver>10 then begin writeln('Вы попали по врагу! Вы наносите ему ',at-endef,' урона!'); enhp:=enhp-(at-endef); end; if (ver>13) and (ver<=16) then begin if agility>=5 then begin krit1:=krit1+(agility*2); writeln('Дополнительный урон! Вы наносите врагу дополнительно ', krit1 ,' урона!'); enhp:=enhp-krit1 end else begin writeln('Дополнительный урон! Вы наносите врагу дополнительно ', krit1 ,' урона!'); enhp:=enhp-krit1; end; end; if (ver>=17) and (ver<19) then begin if agility>=5 then begin krit2:=krit2+(agility*5); writeln('Удар в голову! Враг получает дополнительно ', krit2 ,' урона!'); enhp:=enhp-krit2; end else begin writeln('Удар в голову! Враг получает дополнительно ', krit2 ,' урона!'); enhp:=enhp-krit2; end; end; if ver=20 then begin if agility>=5 then begin krit3:=krit3+(agility*10); writeln('КРИТИЧЕСКИЙ УДАР! ВЫ ЛОВКИ, ПОЭТОМУ УВЕЛИЧИВАЕТЕ УДВОЕННЫЙ УРОН НА ВЕЛИЧИНУ ВАШЕЙ ЛОВКОСТИ, УМНОЖЕННОЙ НА 10!'); enhp:=enhp-krit3; end else begin writeln('КРИТИЧЕСКИЙ УДАР! ВЫ УМНОЖАЕТЕ СВОЙ УРОН НА ДВА!'); enhp:=enhp-krit3; end; if dragonslayer=1 then begin if (ver>8) then begin writeln('Вы глубоко раните врага! Теперь враг теряет 5 очков здоровья за ход.'); enhpminus:=enhpminus+5 end else if ver>10 then begin writeln('Вы глубоко раните врага! Теперь враг теряет 5 очков здоровья за ход.'); enhpminus:=enhpminus+5 end; end; end; if (ver=0) or (ver=1) then begin writeln('Вы ранили себя неосторожным обращением с оружием.'); hp:=hp-5; chumaattack:=1; end else if (ver<=10) then writeln('Вы промазали'); if (hp<50) and (titul='Берсерк ') then at:=at+170; end; if (a='Защита') or (a='защита') or (a='Защищаться') or (a='защищаться') or (a='з') or (a='З') then begin//Защита attack:=1; randomize; if endurance>=5 then ver:=random(20)+(endurance*2) else ver:=random(20); if ver>10 then begin writeln('Вы увеличили свою защиту на 20 очков!'); def:=def+20; writeln('Ваша текущая защита - ', def); end; if (ver>=15) and (ver<17) then begin writeln('Вот это удача! Защита повышена на 10 дополнительных очков!'); def:=def+10; writeln('Ваша текущая защита - ', def); end; if (ver>=17) and (ver<=19) then begin writeln('Укуси меня лепрекон за четырехлистный клевер! Защита повышена на 50 дополнительных очков!'); def:=def+50; writeln('Ваша текущая защита - ', def); end; if ver=20 then begin writeln('НЕУЯЗВИМОСТЬ'); def:=100; writeln('Ваша текущая защита - ', def); end; if (ver=0) or (ver=1) then begin writeln('Не слишком эффективно! Теперь вы теряете по 5 очков здоровья за ход!'); hpminus:=hpminus+5; end else if ver<10 then writeln('Неудача!'); end; if (a='Лечение') or (a='лечение') or (a='Лечиться') or (a='лечиться') or (a='Л') or (a='л') then begin//Лечение attack:=1; randomize; if intelligence>=5 then ver:=random(20)+intelligence else ver:=random(20); if ver>10 then begin if intelligence>=5 then begin writeln('Вы успешно вылечились на ', heal+(intelligence*5),' очков здоровья!'); if titul='Эскулап его величества ' then begin writeln('Вы знаете много способов вылечить человека, поэтому вы лечите себя дополнительно на 40 очков.'); hp:=hp+40; if hp>fullhp then hp:=fullhp; end; heal:=heal+(intelligence*3); hp:=hp+heal; if hp>fullhp then hp:=fullhp; end else begin writeln('Вы успешно вылечились на 20 очков здоровья!'); hp:=hp+20; if hp>fullhp then hp:=fullhp; end; end; if (ver>13) and (ver<=16) then begin if intelligence>=5 then ver:=random(20)+(intelligence*2) else ver:=random(20); if ver>10 then begin if intelligence>=5 then begin writeln('Удача на вашей стороне! Вы вылечились на ', critheal1+(intelligence*5),' очков здоровья!'); critheal1:=critheal1+(intelligence*5); hp:=hp+critheal1; if hp>fullhp then hp:=fullhp; end else begin writeln('Вы успешно вылечились на 40 очков здоровья!'); hp:=hp+40; if hp>fullhp then hp:=fullhp; end; end; if (ver>=17) and (ver<=19) then begin if intelligence>=5 then ver:=random(20)+(intelligence*2) else ver:=random(20); if ver>10 then begin if intelligence>=5 then begin writeln('Кто вам покровительствует? Вы вылечились на ', critheal2+(intelligence*5),' очков здоровья!'); critheal2:=critheal2+(intelligence*5); hp:=hp+critheal3; if hp>fullhp then hp:=fullhp; end else begin writeln('Вы успешно вылечились на 60 очков здоровья!'); hp:=hp+60; if hp>fullhp then hp:=fullhp; end; end; end; if ver=20 then begin if intelligence>=5 then begin writeln('КРИТИЧЕСКОЕ ЛЕЧЕНИЕ! ВАШЕ ТЕКУЩЕЕ ЗДОРОВЬЕ УМНОЖАЕТСЯ НА ДВА, ДА ЕЩЕ И УВЕЛИЧИВАЕТСЯ НА ВЕЛИЧИНУ ИНТЕЛЛЕКТА, УМНОЖЕННОГО НА 5!'); critheal3:=critheal+(intelligence*5); hp:=hp+critheal3; if hp>fullhp then hp:=fullhp; end else begin writeln('КРИТИЧЕСКОЕ ЛЕЧЕНИЕ! ВАШЕ ТЕКУЩЕЕ ЗДОРОВЬЕ УМНОЖАЕТСЯ НА 2!'); hp:=hp*2; if hp>fullhp then hp:=fullhp; end; end; if (ver=0) or (ver=1) then begin//Неудачное лечение writeln('Вы чувствуете себя нехорошо.'); hpminus:=hpminus+5; end else if ver<=10 then writeln('Неудача!'); end; end; 109:if (a='П') or (a='п') or (a='Поставить') or (a='поставить') then begin//Можно сыграть в камень-ножницы-бумага с монстром на один удар кроме случаев с ничьей writeln('Камень, ножницы, бумага, цуефа!'); risky:=1; writeln('Камень, ножницы или бумага?'); read(a); if (a='Камень') or (a='камень') or (a='к') or (a='К') then begin knb1:='Камень'; writeln('Вы выбрали камень!'); end; if (a='Ножницы') or (a='ножницы') or (a='н') or (a='Н') then begin knb1:='Ножницы'; writeln('Вы выбрали ножницы'); end; if (a='Бумага') or (a='бумага') or (a='б') or (a='Б') then begin knb1:='Бумага'; writeln('Вы выбрали бумагу!'); end; end; if (a='Убежать') or (a='убежать') or (a='У') or (a='у') then begin escape:=escape+1; attack:=1; if escape mod 3 = 0 then begin writeln('Вы не можете сбежать!'); goto 121; end; if luck>5 then begin randomize; ver:=random(20)+luck; if ver>15 then begin writeln('Вы успешно сбежали!'); goto 120; end; if ver<=15 then begin writeln('Неудача!'); goto 121; end; end; if luck<=5 then begin randomize; ver:=random(20)-luck; if ver>15 then begin writeln('Вы успешно сбежали.'); goto 120; end; if ver<=15 then begin writeln('Неудача!'); goto 121; end; end; end; 121:writeln('Ход соперника!');//Ход врага if attack=1 then begin randomize; ver:=random(20); if ver>10 then begin if (first='токсического') or (first='чумного') then begin//Атака врага writeln('Враг отравляет вас!'); chumaattack:=chumaattack+1; hpminus:=hpminus+2; end; if (enat-def)<0 then begin if enat13) and (ver<=16) then begin writeln('Дополнительный урон! Враг наносит вам дополнительно 10 урона!'); hp:=hp-10; chumaattack:=chumaattack+1; end; if (ver>=17) and (ver<=19) then begin writeln('Удар в голову! Враг наносит дополнительно 20 урона!'); hp:=hp-20; chumaattack:=chumaattack+1; end; if ver=20 then begin writeln('КРИТИЧЕСКИЙ УДАР! УРОН ВРАГА УМНОЖАЕТСЯ НА ДВА!'); hp:=hp-(at*2); chumaattack:=chumaattack+1; randomize; ver1:=random(20); if ver1>10 then begin writeln('Враг ранит вас глубоко! Теперь вы теряете 5 очков здоровья за ход.'); hpminus:=hpminus+5; chumaattack:=chumaattack+1; end; end; if (ver<=10) then writeln('Враг промазал'); end; if risky=1 then begin//Ответ врага на камень-ножницы-бумагу 108:randomize; c:=random(3); if knb2=knb1 then begin writeln('Ничья!'); goto 109; end; if c=0 then goto 108; if c=1 then begin knb2:='Камень'; writeln('Враг выбрал камень!'); end; if c=2 then begin knb2:='Ножницы'; writeln('Враг выбрал ножницы!'); end; if c=3 then begin knb2:='Бумага'; writeln('Враг выбрал бумагу!'); end; end; if (knb2='Бумага') and (knb1='Камень') then begin writeln('Враг победил!'); hp:=-1; goto 110; end; if (knb2='Камень') and (knb1='Ножницы') then begin writeln('Враг победил!'); hp:=-1; goto 110; end; if (knb2='Ножницы') and (knb1='Бумага') then begin writeln('Враг победил!'); hp:=-1; goto 110; end; if (knb1='Камень') and (knb2='Ножницы') then begin writeln('Вы победили!'); enhp:=-1; goto 110; end; if (knb1='Бумага') and (knb2='Камень') then begin writeln('Вы победили!'); enhp:=-1; goto 110; end; if (knb1='Ножницы') and (knb2='Бумага') then begin writeln('Вы победили!'); enhp:=-1; goto 110; end; if escape mod 3 = 0 then escape:=escape-1; 110:until (hp<0) or (enhp<0);//Конец боя writeln('Ваше здоровье - ', hp, ' HP!'); writeln('Ваша защита - ', def, ' DEF!'); writeln('Ваша сила атаки - ', at, '!'); writeln('Здоровье врага - ', enhp, ' hp!'); writeln('Защита врага - ',endef,' DEF!'); writeln('Сила атаки врага - ', enat,'!'); 117:if (hp<=0) then begin//Смерть персонажа writeln(Name,' умер в пещерах.'); banhammer:=0; dragonslayer:=0; dagger:=0; money:=0; hp:=0; money:=0; banshik:=0; lvl:=1; hpminus:=0;//Аннулируется хп, деньги и все предметы birthminusyear:=year-birth; str(birth, birthint); str(birthminusyear, godrozhdeniya); str(year, godsmerti); if decease=1 then first:='чумы. '; cemeteryfirstname:='от рук '+first; cemeteryfirstname:=cemeteryfirstname+second; rodilsya:=', родился в ' + godrozhdeniya; rodilsya:=rodilsya+' году'; umer:=', умер в ' + godsmerti; umer:=umer+' году'; vozrast:=' в возрасте ' + birthint; vozrast:=vozrast + ' лет '; name:=name+rodilsya; name:=name+umer; name:=name+vozrast; randomize; yearplus:=50+random(201); year:=year+yearplus; cemeteryname:=cemeteryname+name; cemeteryname:=cemeteryname+cemeteryfirstname; cemeteryname:=titul+cemeteryname; if cemetery1='' then cemetery1:=cemeteryname else if cemetery2='' then cemetery2:=cemeteryname else if cemetery3='' then cemetery3:=cemeteryname else if cemetery4='' then cemetery4:=cemeteryname else if cemetery5='' then cemetery5:=cemeteryname else if cemetery6='' then cemetery6:=cemeteryname else if cemetery7='' then cemetery7:=cemeteryname else begin cemetery1:=cemeteryname;//Нужно для показа имени прошлого персонажа на кладбище. cemetery2:=''; cemetery3:=''; cemetery4:=''; cemetery5:=''; cemetery6:=''; cemetery7:=''; cemeterytime:=1; end; cemeteryname:=''; goto 116; end; if (enhp<=0) then begin //Победа writeln('Вы победили!'); if chumaattack>=1 then begin//Возможность заразиться чумой от дополнительного урона врага. if (first='токсического') or (first='чумного') then begin if luck>=5 then begin randomize; ver1:=random(10)-luck; end else if luck<5 then begin randomize; ver1:=random(10)+(luck*2); end; randomize; ver:=random(20)+ver1; if ver<=10 then begin chumazaukus:=random(150); immunitet1:=immunitet; immunitet:=immunitet-chumazaukus; if (immunitet<=0) then begin decease:=1; chuma:=chuma+20; end; if immunitet>0 then begin immunitet:=immunitet1+(chuma div 2); end; end; end else begin if luck>=5 then begin randomize; ver1:=random(10)-luck; end else if luck<5 then begin randomize; ver1:=random(10)+(luck*2); end else begin randomize; ver1:=random(10); randomize; ver:=random(20)+ver1; if ver<=10 then begin chumazaukus:=random(50); immunitet1:=immunitet; immunitet:=immunitet-chumazaukus; if (immunitet<=0) then begin decease:=1; chuma:=chuma+10; end; if immunitet>0 then begin immunitet:=immunitet1+chuma; if immunitet>100 then immunitet:=100; end; end; end; end; end; end; inc(lvlneed); if (lvlneed mod 5 = 0) then begin//Повышение уровня. inc(lvl); writeln('Вы повысили уровень! Теперь ваш уровень - ', lvl); points:=points+5; lvlneed:=0; end; time:=time+1;//year+1 if time mod 10 = 0 then begin writeln('Прошел год.'); inc(year); inc(birth); inc(yearup); if yearup mod delitel = 0 then begin strengh:=strengh-1; if strengh<0 then strengh:=0; perception:=perception-1; if perception<0 then perception:=0; endurance:=endurance-1; if endurance<0 then endurance:=0; charisma:=charisma-1; if charisma<0 then charisma:=0; intelligence:=intelligence-1; if intelligence<0 then intelligence:=0; agility:=agility-1; if agility<0 then agility:=0; luck:=luck-1; if luck<0 then luck:=0; delitel:=delitel-1; fullhp:=fullhp-2; hp:=hp-2; immunitet:=immunitet-5; writeln('Вы постарели.'); if (strengh=0) and (perception=0) and (endurance=0) and (charisma=0) and (intelligence=0) and (agility=0) and (luck=0) then begin older:=1; writeln('Ваш персонаж отошел от дел'); hp:=-1; goto 117; end; end; end; randomize; if first='колоссального' then begin//Бонус за колоссальных монстров randomize; coin:=random(3000)+(luck*2); end else begin if luck>=7 then//Бонус при удаче>=7 coin:=random(500)+(luck*2) else coin:=random(300); end; money:=money+coin; writeln('За убийство монстра вы получаете ', coin,' монет!'); writeln('Ваши текущие финансы - ', money,' монет'); if lvlup10 then writeln('Вы странно кашляете.'); strengh:=strengh-1; if strengh<0 then strengh:=0; perception:=perception-1; if perception<0 then perception:=0; endurance:=endurance-1; if endurance<0 then endurance:=0; charisma:=charisma-1; if charisma<0 then charisma:=0; intelligence:=intelligence-1; if intelligence<0 then intelligence:=0; agility:=agility-1; if agility<0 then agility:=0; luck:=luck-1; if luck<0 then luck:=0; hp:=hp-2; end; 120:writeln('Вы зашли в город.'); 105:writeln('Доступные локации: Магазин, таверна, кладбище, гильдия, банщик-цирюльник и данжен. Еще вы можете осмотреть себя.');//Город read(a); if a='данжен' then goto 101; if (a='Магазин') or (a='магазин') then begin//Магазин. Пока предметов мало, но планируется больше. 104:writeln('Приветствую, путник! Что привело тебя сюда?'); writeln('Ваши финансы - ', money,' монет'); daggerprice:=100; dragonslayerprice:=300; banhammerprice:=1000; if charisma>=5 then begin daggerprice:=daggerprice-(charisma*10); dragonslayerprice:=dragonslayerprice-(charisma*10); banhammerprice:=banhammerprice-(charisma*10); end; writeln('1. Ржавый кинжал. Увеличивает урон на 20 очков. ', daggerprice,' монет.'); writeln('2. Драконоборец. Увеличивает урон на 40 очков, увеличивает шанс ранить врага. ', dragonslayerprice,' монет.'); writeln('3. Банхаммер. Увеличивает урон на 100 очков. ', banhammerprice,' монет.'); writeln('4. Назад.'); read(choice); case choice of 1:begin writeln('Ржавый, старый нож с разными рисунками на лезвии.'); writeln('Кто будет в здравом уме продавать такое?'); writeln('Покупаете?'); read(a); if (a='Да') or (a='да') then begin if moneyfullhp then hp:=fullhp; hpminus:=0; writeln('Вы славно отдохнули и готовы ринуться в бой!'); goto 105; end; end; tavernprice:=30; if charisma>=5 then tavernprice:=tavernprice-(charisma*2); writeln('Отдохнуть ночь - ',tavernprice,' монет! Берете комнату?'); read(a); if (a='да') or (a='Да') then begin if (hp=fullhp) and (hpminus=0) then begin writeln('Но вы полностью готовы к данжену!'); goto 105; end; if moneyfullhp then hp:=fullhp; money:=money-tavernprice; writeln('Вы славно отдохнули и готовы ринуться в бой!'); goto 105; end; if (a='Гильдия') or (a='гильдия') then begin//Гильдия нужна для повышения характеристик при получении нового уровня. writeln('СИЛА - ', strengh); writeln('ВОСПРИЯТИЕ - ', perception); writeln('ВЫНОСЛИВОСТЬ - ', endurance); writeln('ХАРИЗМА - ', charisma); writeln('ИНТЕЛЛЕКТ - ', intelligence); writeln('ЛОВКОСТЬ - ', agility); writeln('УДАЧА - ', luck); writeln('Опыта для нового уровня накоплено: ',lvlneed); writeln('Осталось накопить - ', 5-lvlneed); if lvlup0 then writeln('У вас ',points,' очков для распределения'); writeln('8. Назад'); writeln('Напишите номер характеристики, которую вы хотите увеличить.'); read(choice); case choice of 1: begin if strengh=10 then begin writeln('Вы достигли лимита!'); goto 115; end; if points=0 then begin writeln('Очков для распределения не осталось!'); goto 115; end; writeln('Вы точно хотите потратить очко на эту характеристику?'); read(o); if (o='Да') or (o='да') then begin points:=points-1; strengh:=strengh+1; goto 115; end else goto 115; end; 2: begin if perception=10 then begin writeln('Вы достигли лимита!'); goto 115; end; if points=0 then begin writeln('Очков для распределения не осталось!'); goto 115; end; writeln('Вы точно хотите потратить очко на эту характеристику?'); read(o); if (o='Да') or (o='да') then begin points:=points-1; perception:=perception+1; goto 115; end else goto 115; end; 3: begin if endurance=10 then begin writeln('Вы достигли лимита!'); goto 115; end; if points=0 then begin writeln('Очков для распределения не осталось!'); goto 115; end; writeln('Вы точно хотите потратить очко на эту характеристику?'); read(o); if (o='Да') or (o='да') then begin points:=points-1; endurance:=endurance+1; goto 115; end else goto 115; end; 4: begin if charisma=10 then begin writeln('Вы достигли лимита!'); goto 115; end; if points=0 then begin writeln('Очков для распределения не осталось!'); goto 115; end; writeln('Вы точно хотите потратить очко на эту характеристику?'); read(o); if (o='Да') or (o='да') then begin points:=points-1; charisma:=charisma+1; goto 115; end else goto 115; end; 5: begin if intelligence=10 then begin writeln('Вы достигли лимита!'); goto 115; end; if points=0 then begin writeln('Очков для распределения не осталось!'); goto 115; end; writeln('Вы точно хотите потратить очко на эту характеристику?'); read(o); if (o='Да') or (o='да') then begin points:=points-1; intelligence:=intelligence+1; goto 115; end else goto 115; end; 6: begin if agility=10 then begin writeln('Вы достигли лимита!'); goto 115; end; if points=0 then begin writeln('Очков для распределения не осталось!'); goto 115; end; writeln('Вы точно хотите потратить очко на эту характеристику?'); read(o); if (o='Да') or (o='да') then begin points:=points-1; agility:=agility+1; goto 115; end else goto 115; end; 7: begin if luck=10 then begin writeln('Вы достигли лимита!'); goto 115; end; if points=0 then begin writeln('Очков для распределения не осталось!'); goto 115; end; writeln('Вы точно хотите потратить очко на эту характеристику?'); read(o); if (o='Да') or (o='да') then begin points:=points-1; luck:=luck+1;; goto 115; end else goto 115; end; 8: goto 105; end; until points=0; lvlneed:=0; end; end; if (a='Осмотреть') or (a='осмотреть') then begin//Осмотреть себя. writeln('Ваше здоровье - ', hp, ' HP!'); if hpminus>0 then writeln('Вы отправлены на ближайшие ',hpminus,' ходов!'); writeln('Ваша защита - ', def, ' DEF!'); writeln('Ваша сила атаки - ', at, '!'); writeln('Вы носите с собой кошель с ',money,' монет!'); if dagger=1 then writeln('Вы носите с собой ржавый кинжал!'); if dragonslayer=1 then writeln('Вы носите с собой драконоборца!'); if banhammer=1 then writeln('Вы носите с собой банхаммер!'); writeln('Ваш уровень - ', lvl); goto 105; end; if (a='кладбище') or (a='Кладбище') then begin//Кладбище, где содержатся убитые за сессию герои. При большом количестве трупов тупо выкидывает вас из программы.Ї\_(?)_/Ї writeln('Кладбище сложивших головы героев.'); if (cemetery1='') and (cemetery2='') and (cemetery3='') and (cemetery4='') and (cemetery5='') and (cemetery6='') and (cemetery7='') then begin writeln('Никого на кладбище не закопано.'); goto 105; end else begin if cemeterytime=1 then writeln('Некоторые камни потрескались, некоторые надписи стерлись...'); writeln(cemetery1); writeln(cemetery2); writeln(cemetery3); writeln(cemetery4); writeln(cemetery5); writeln(cemetery6); writeln(cemetery7); goto 105; end; end; if (a='Банщик-цирюльник') or (a='банщик-цирюльник') or (a='банщик') then begin if banshik mod 7 = 0 then banshik:=0; if banshik=0 then begin writeln('Приветствую тебя, незнакомец. Надеюсь тебе повезет и ты будешь похоронен в могиле, а не сожжен на костре.'); osmotrprice:=100; if charisma>=5 then osmotrprice:=osmotrprice-(charisma*10); writeln('Хочешь провериться на бубонную чуму, пока не поздно? Это будет стоить ',osmotrprice,' монет.'); read(a); if (a='Нет') or (a='нет') then goto 105; if (a='Да') or (a='да') then begin if money=5 then injectionprice:=200-(charisma*10); writeln('Что ж, голубчик, у вас чума. Но не бойтесь, у меня есть революционная сыворотка, она убьет в вас всю чуму за весь курс инъекций. Одна инъекция - ',injectionprice,' монет.'); writeln('Да, дороговато, но зато действенно!'); writeln('Покупаете?'); read(a); if (a='да') or (a='Да') then begin if money=5 then injectionprice:=200-(charisma*10); writeln('Вы не больны, но вы можете ввести себе сыворотку для увеличения иммунитета всего за ',injectionprice,' монет.'); writeln('Да, дороговато, но зато действенно!'); writeln('Покупаете?'); read(a); if (a='да') or (a='Да') then begin if money100 then immunitet:=100; goto 105; end; end; end; end; end; if (a='Нет') or (a='нет') then goto 105; end; if banshik=1 then begin writeln('Приветствую тебя, незнакомец. Надеюсь тебе повезет и ты будешь похоронен в могиле, а не сожжен на костре.'); writeln('Ваш текущий иммунитет - ',immunitet); writeln('Чума в вашем теле - ', chuma); writeln('Пришли за сывороткой?'); read(o); injectionprice:=100; if charisma>=5 then injectionprice:=100-(luck*10); if (o='Да') or (o='да') then begin if money