PDA

Просмотр полной версии : президент, не умереть от старости.



ondas
16.10.2019, 17:10
президент, не умереть от старости.
1. игра заканчивается когда умираю от старости
2. игра заканчивается когда становлюсь президентом

как сделать чтоб так не заканчивалась, чтоб игра была очень долгоиграющая.

Syntal
16.10.2019, 19:53
Брат мой, президент не должен умирать от старости! Президент став президентом должен перестать становиться президентом и умирать от старости не президентом.

ZX_NOVOSIB
16.10.2019, 20:14
Это президент курильщика. Президент здорового человека вообще не должен умирать, он должен быть вечным.

ondas
16.10.2019, 20:46
-если можно листинг киньте.

Labrador
17.10.2019, 04:33
президент, не умереть от старости.
1. игра заканчивается когда умираю от старости
2. игра заканчивается когда становлюсь президентом

как сделать чтоб так не заканчивалась, чтоб игра была очень долгоиграющая.

На сколько я помню, Президент написан на бейсике, найдите условие окончания игры и удалите/измените. Если конечно это тот президент, в которого я в детстве играл :)

ALKO
22.10.2019, 11:28
Вот бы мод-хак "симулятор Путина". Тогда да, было бы очень долгоиграющим.

- - - Добавлено - - -


На сколько я помню, Президент написан на бейсике

То-то он так долго соображает после каждого ввода...

Destr
28.10.2019, 18:30
Если конечно это тот президент, в которого я в детстве игра
Оказывается во даже какое есть PRESIDENT 2+ (https://vtrd.in/full_ver/PRESID2+.zip)
Я тащусь

Black Cat / Era CG
28.10.2019, 18:44
Президент не умереть от старости! Президент жить вечно!

ALKO
28.10.2019, 18:55
виват президент!

Labrador
29.10.2019, 21:30
Оказывается во даже какое есть PRESIDENT 2+ (https://vtrd.in/full_ver/PRESID2+.zip)
Я тащусь

Если касаемо этой версии президента, то проверка возраста происходит в строке 1890 и если он больше или равен прогнозу смерти, то переходит на 1950 где выводится никролог и игра перезапускается после нажатия любой кнопки (PAUSE 0: RUN)
На президенство уже ковырять лень, надо какую-нибудь софтину написать, чтобы можно было загружать и править бейсик файлы в удобном редакторе, а то отвык от спектрумовского уже - разбаловался :)
P.S. Мы с братом играли в другую версию, что точно помню, шрифт там был не утолщенный на белом фоне, и кажется скролла не было, но это не точно :)

Black Cat / Era CG
29.10.2019, 22:17
Редакторы Барсика имеются на вос.

Labrador
30.10.2019, 12:26
Редакторы Барсика имеются на вос.

Чет я на этом вос вообще ни чего найти не смог, какой-то страшный он стал. Утилиты так вообще одним списком без всякого описания :(
Зато на втрд нашел :)

Destr
31.10.2019, 10:20
Мы с братом играли в другую версию
Пять штук их на втырдосе (https://vtrd.in/)

ondas
31.10.2019, 13:41
https://b.radikal.ru/b27/1910/96/c6a85beaa34b.jpg (https://radikal.ru)

привет всем, обнаружил тут счётчик, помоему показывает возраст, делал 2 раза снап в возрасте за 60 и перед самой смертью :) сна который жёлтым поставил значение 02 после че стал очень долгожителем. далее глубже копать серое вещество не хватает.
теперь вопрос как отключить или сделать предельный возраст до 200 хотя бы, да простят меня противники президента.:)

goodboy
31.10.2019, 15:40
обнаружил тут счётчик, помоему показывает возраст
как вариант надо в отладчике поставить прерывание на изменение этой ячейки,
а когда оно сработает посмотреть в системных переменных номер выполняемой строки/оператора (если прога действительно на бейсике)

Labrador
31.10.2019, 16:26
Зачем такие сложности? Загружает игру, нажимаешь бреак и правишь или удаляешь ту строку о которой я писал выше. Сохраняешь файл на диск (можно даже просто через сохранение в игре, оно как раз просто перезаписывает исполняемый файл).
Если дашь ссылку на версию которую надо пофиксить, завтра постараюсь сделать, сей час я на работе просто.

Upd: не заметил аттач, завтра расковыряю. :)

jerri
31.10.2019, 18:53
Labrador, там защита от Бреак стоит

goodboy
31.10.2019, 19:45
Зачем такие сложности?
этот способ самый точный. бейсик можно написать так запутанно что чёрт ногу сломит.
вот простой пример

https://a.radikal.ru/a03/1910/b2/6cc7a40135b1.png (https://radikal.ru)

ondas
31.10.2019, 19:53
https://b.radikal.ru/b00/1910/18/39bf1dc515e9.jpg (https://radikal.ru)

https://c.radikal.ru/c29/1910/db/99547b4d8226.jpg (https://radikal.ru)
Пошёл от противного, умер в 0х18 лет

ondas
31.10.2019, 22:17
https://c.radikal.ru/c09/1910/d9/effd3399f491.jpg (https://radikal.ru)


вот такие пироги. дальше не стал экспериментировать

Labrador
01.11.2019, 04:15
А есть trd версия этого президента?
UPD: На vtrd вроде нашел, там их минимум 3 версии именно этого автора, 1 оригинал, 1 - 95 года прокачаная вроде, и еще 1 крякнутая, в ней как раз защиты от брика нет уже.

ZX_NOVOSIB
01.11.2019, 11:07
Помню, в бейсик-играх "с защитой" нужно было просто подгадать, и вовремя успеть нажать брейк, когда прога уже загрузилась, но ещё не начала исполняться. Помню так "взломал" Ленин в Октябре, нашёл там "защиту" и стал в свои бейсик-поделки её вставлять. Королевство зерна тоже взламывал, делал там астрономические цифры типа "На вас нападает 5.7Е+12 воинов, они в хх милях от вас!"

ALKO
01.11.2019, 11:15
Эта за-shit'a ведь какой-то системной переменной делается (что расположена между видеопамятью и началом бейсцык-программы).
Достаточно нужный poke ввести. Но то в эмуле просто.
А на реале.. хм.. сложновато. Загрузчик надо ковырять.

goodboy
01.11.2019, 11:22
merge наше всё, в тяжких случаях есть load/merge из известной книги "тайники zx",
ну или (под эмулем) можно прямо во время загрузки подменить оператор в строке на STOP или SAVE

Labrador
01.11.2019, 13:23
В общем с защитой пока не разобрался, но за проверку возраста отвечает строка:

4117 LET AGE=AGE+SGN PI: IF AGE>=MAX THEN GO TO DIE
Можно попробовать отредактировать ее каким-нибудь хекс редактором.

ZX_NOVOSIB
01.11.2019, 13:28
угу, IF заменить на REM

Labrador
01.11.2019, 14:03
Вот тут не должен умирать. Но не проверял, лень играть :)
70542

goodboy
01.11.2019, 15:10
изящней SGN на NOT

ZX_NOVOSIB
01.11.2019, 15:14
Эта за-shit'a ведь какой-то системной переменной делается (что расположена между видеопамятью и началом бейсцык-программы).
Не, это ламерская защита. Правильная защита была процедурой на асме, тогда брейк приводил не к остановке бейсика, а к переходу на определенную строку.

- - - Добавлено - - -

goodboy, тада у президента возраст вообще не будет меняться (

Labrador
01.11.2019, 15:21
изящней SGN на NOT

Тогда возраст не будет увеличиваться. Долгожителем не станешь, не хорошо :)

- - - Добавлено - - -


Не, это ламерская защита. Правильная защита была процедурой на асме, тогда брейк приводил не к остановке бейсика, а к переходу на определенную строку.

- - - Добавлено - - -

goodboy, тада у президента возраст вообще не будет меняться (

Да, тут как раз на асме защита, она в "presid 2".c расположена, я не смотрел что там :)

goodboy
01.11.2019, 17:18
Тогда возраст не будет увеличиваться. Долгожителем не станешь, не хорошо
тогда надо вообще перед стартом игры запрашивать MAX?

Labrador
01.11.2019, 17:50
тогда надо вообще перед стартом игры запрашивать MAX?

Можно так, можно каждый раз когда пора умереть, спрашивать, пойдем ли за черной с косой...
Вот версия с остановкой по бреак, можете поковырять сами, может я поковыряю если время будет:70543

- - - Добавлено - - -

Я еще не совсем понял как сохранения работают, такое чувство, что при сохранении в определенные ячейки бейсик программы сохраняются параметры, а потом она уже на диск пишется, при изменении эти ячейки могут сместится, но это не точно, забыл уже, как сохранение в спектруме работают, но факт, что при сохранении в одной из версий президента, просто перезаписывалась вся бейсик программа.

goodboy
01.11.2019, 18:12
да, переменные сохраняются вместе с программой и такое иногда встречается в качестве защиты.
их значения просто задаются перед выгрузкой (нормальное LET a=x может отсутствовать),
но запускать такое нужно только через GO TO. RUN/CLEAR чистят все значения.

если все переменные задаются непосредственно в игре то можно сделав CLEAR перед выгрузкой чуток сократить размер программы.
есть ещё всякие оптимизаторы, но они сокращая размер программы могут увеличить время её выполнения.

Labrador
09.11.2019, 13:56
Возник интересный вопрос, в программе после 9995 строки идет строка с "не правельным номером" и мусором вместо кода. Интересно, это глюк снапшота или какая-то защита?

9988 DATA "999","1900","1100","1700","1300","1500","2100","END"
9989 DATA "2200","2400","2500","2600","2700","OLD","2160","2160"
9990 DATA "biznesmen","lider musor]ikow","redaktor gazety","okruvnoj [erif","glawnyj sudxq","gospodin senator","premxer-ministr","prezident"
9991 DATA "saraj","kwartiru","awtomobilx","bassejn","willu","morsku` qhtu","park otdyha","li/nyj samolet"
9992 DATA "woditelq","powara","maklera","wra/a","sekretarq","adwokata","detektiwa","li/noj ohrany"
9993 DATA "zabegalowku","restoran","magazin","taksopark","otelx","kazino","supermarket","predpriqtie"
9994 DATA "PEPSI","FORD","SNICKERS","AKAI","MICROSOFТ","HONDA","SANYO","SONY"
9995 DATA LEV,YEAR,MAX,AGE,MON,ACC,KACC,SUD,SYE,SSU,SPR,SCH, CRE,CYE,CCR,CPR
COS n DATA COS tar POKE PIam RESTORE AT NEXT <------- Вот такого вида строка

goodboy
09.11.2019, 14:20
программа явно портится. после загрузки такого нету или это глюк конвертера

Labrador
11.11.2019, 18:18
программа явно портится. после загрузки такого нету или это глюк конвертера

Не получается у меня остановить программу без глюка. Т.е. в редакторе то ни каких строк после 9995 не видно, но если 9995 удалить то вылазит абракадабра, ну и пролистывая вниз указатель после 9995 прыгает куда глаза глядят (куда то в середину программы или на 1 строку) :(
Напрочь забыл структуру бейсик программы в спектруме. Как конец программы обозначается, указывается ли вся длина программы или только каждой строки (точно помню что там строки в формате типа n,n,l,l,STR - n,n 2 разряда номера строки, l,l - 2 разряда длинна строки, а больше ни чего не помню :) )

Black Cat / Era CG
11.11.2019, 18:23
А где образ? Дайте.

Labrador
11.11.2019, 19:26
А где образ? Дайте.
Я вот этот ковыряю, он больше всего походит на снапшоты топикстартера. https://vtrd.in/full_ver/PRESID+.ZIP
Вот тут я его подправил чтобы из главного меню по кнопке "b" вываливал в бейсик:70626

- - - Добавлено - - -

Такое чувство, что программа во что-то упирается, добавил 1 строку и после 1 круга игры (до старости) начал "сыпаться" шрифт, тоже самое если в трдос зайти и выполнить команду LIST...
Вот так: https://imgur.com/LS3YOaf

Black Cat / Era CG
11.11.2019, 20:30
Вот этот кусман.

9988 DATA "999","1900","1100","1700","1300","1500","2100","END"[0D] 9989 DATA "2200","2400","2500","2600","2700","OLD","2160","2160"[0D]
9990 DATA "biznesmen","lider musor]ikow","redaktor gazety","okruvnoj [erif","glawnyj sudxq","gospodin senator","premxer-ministr","prezident"[0D]
9991 DATA "saraj","kwartiru","awtomobilx","bassejn","willu","morsku` qhtu","park otdyha","li\nyj samolet"[0D]
9992 DATA "woditelq","powara","maklera","wra\a","sekretarq","adwokata","detektiwa","li\noj ohrany"[0D]
9993 DATA "zabegalowku","restoran","magazin","taksopark","otelx","kazino","supermarket","predpriqtie"[0D]
9994 DATA "PEPSI","FORD","SNICKERS","AKAI","MICROSOFT","HONDA","SANYO","SONY"[0D]
9995 DATA LEV,YEAR,MAX,AGE,MON,ACC,KACC,SUD,SYE,SSU,SPR,SCH, CRE,CYE,CCR,CPR[0D][80]SCREEN$ [01][00][00][00][00][00][00][00][00][00][00][00][00]@B[00][00] STOP [07]SCREEN$ [01]@B[00][00] TO [0C]
Красным пометил конец строки, видимо, задана излишняя длина. Мб в целях защиты.

Labrador
11.11.2019, 20:30
В общем снес половину инструкции, вроде теперь не затирает шрифт. По достижению максимального возраста спрашивает не хотите ли вы умереть, если нет, то игра продолжается и каждые 10 лет спрашивает о смерти.
https://drive.google.com/file/d/1ngdWwnnBWJK-0_gRfi80gZHPGjmEeAFT/view?usp=sharing

Black Cat / Era CG
11.11.2019, 20:33
Кроч, можно попробовать поиском найти строку DATA LEV,YEAR,MAX,AGE,MON,ACC,KACC,SUD,SYE,SSU,SPR,SCH, CRE,CYE,CCR,CPR и пропатчить ее длину.

Labrador
11.11.2019, 20:46
Кроч, можно попробовать поиском найти строку DATA LEV,YEAR,MAX,AGE,MON,ACC,KACC,SUD,SYE,SSU,SPR,SCH, CRE,CYE,CCR,CPR и пропатчить ее длину.

Вполне возможно, что длина строки увеличена не только/столько ради защиты. Возможно там сохраняются какие-то значения через POKE. Просто их там много в коде и я не стал разбираться что они сохраняют и зачем...

- - - Добавлено - - -

Хотя нет, бред, пролистал, вроде там в основном с внутренними часами действия через poke/peek