ZX-Ревю 1995 №2 1994 г.

Читатель-читателю - Простейшая неполная русификация G.A.C.


    Как-то на  страницах  РЕВЮ  мы  
 опубликовали   описание    пакета  
 G.A.C.  (Graphics Adventure Crea-  
 tor).  Не знаем  поэтому ли,  или  
 просто  время подошло - но мы по-  
 лучаем теперь письма больше не  с 
 вопросами  а  с  советами по этой 
 программе.  Сегодня мы предлагаем 
 вниманию наших читателей подборку 
 материалов по пакету G.A.C.       

 (C) Евгений Федяев,                
         Алексей Федяев, г.Москва.  
                                    
       Простейшая  неполная         
        русификация G.A.C.          
                                    
    Для начала переделайте загруз-  
 чик следующим образом:             
                                    
    1 REM RET                       
          LD   HL,#5FB4 (24500)     
          LD   DE,#5DC0 (24000)     
          LD   BC,#4790 (18320)     
          LDIR                      
          ADD  HL,DE                
          JP   #8526                
    10 POKE 23609,40   (PIP)        
       POKE 23675,192  (UDG)        
       POKE 23676,93                
       CLEAR 24499                  
    20 - оставить без изменений     
    30 PAPER 7: INK 7: LOAD "RUS"   
  CODE 64599: LOAD ""CODE: BORDER   
  7: INK 0: CLEAR 64598: RANDOMIZE  
  USR 23761                         
                                    
    То есть надо вставить загрузку  
 русского символьного набора и из-  
 менить RAMTOP. Запишите этот заг-  
 рузчик, а  после  него   запишите  
 русский символьный набор.          
    Далее наберите следующую прог-  
 рамму:                             
                                    
     5 LOAD ""CODE VAL "24500"      
     6 LET k=4: RESTORE 60          
    10 READ a: READ d : REM адрес,  
            длина блоков сообщений  
    15 LET n=PEEK a                 
    20 IF (n=>97 AND n<=122) THEN   
  LET n=n-32: POKE a,n              
    30 LET a=a+1: LET d=d-1:        
              IF d>0 THEN GO TO 15  
    40 LET k=k-1: IF k=0 THEN SAVE  
  "G.A.C."CODE 24500,18330: STOP    
    50 GO TO 10                     
    60 DATA 38977,2819,41968,161,   
  27075,55,27714,136                
                                    
    Эта программа  после  загрузки  
 основного кодового блока  заменит  
 все строчные  буквы  на заглавные 
 (это займет приличное время). За- 
 тем Выгрузит переделанный кодовый 
 блок. Программа готова к работе.  
    Русский символьный   набор   - 
 КОИ-7. Этот способ неполной руси- 
 фикации позволяет  русифицировать 
 выдаваемые сообщения, а команды - 
 оставлять неизменными   (на  анг- 
 лийском).                         
    Можно также  русифицировать  и 
 сообщения, выдаваемые самой прог- 
 раммой (дополнив строку DATA).    
                                   
                                   
    (С) Владимир Цуриков,          
                   г.Херсон, 1995. 
                                   
       Опыт работы с G.A.C.        
           по материалам           
        западных источников        
                                   
    Сначала - "разминка".  В гото- 
 вую  адвентюру  можно  установить 
 свой символьный  набор.  Делается 
 это так:                          
                                   
    10 CLEAR 64599                 
    20 LOAD "chr"CODE 64600,768    
    30 RANDOMIZE 64600             
    40 POKE 23606,88               
    50 POKE 23607,251              
    60 LOAD "ADVENTURE"            
                                   
    Конечно, если у Вас  есть  эк- 
 ран-заставка, то добавьте:        
                                   
    25 LOAD ""SCREEN$              
                                   
    Дальше - круче. Вывод информа- 
 ции  (какой  пожелаете)  на экран 
 можно сделать еще до первой Вашей 
 команды.                          
    а) введите как описание комна- 
 ты 9998  информацию,  которую  Вы 
 хотите напечатать;                
    б) измените  "Begin Where?" на 
 9998;                             
    в) введите строку в High Prio- 
 rity, которая  будет   проверять, 
 первый ли это ход.                
 IF (RES?6) SET 6 LF MESS 238       
        HOLD 65000*23LF*GOTO 1 END  
                                    
    Маркер 6 - первый ли ход.  Со-  
 общение 238 -"Press any key". Ос-  
 тальные команды (например,  уста-  
 навливающие маркеры) должны  сто-  
 ять за GOTO 1.                     
    Работает это  следующим  обра-  
 зом. Если это 1-й ход (RES?6) вы-  
 полняется (SET 6) и программа ос-  
 танавливается  и  говорит  "Press  
 any key" (MESS 238).  Кстати, ин-  
 формация, которую Вы хотели напе-  
 чатать - уже на экране  (описание  
 локации 9998),  поэтому нужно LF,  
 Далее пауза (HOLD 65000), очистка  
 экрана (23  команды LF) и переход  
 к локации No.1, с которой начина-  
 ется Ваша игра.                    
    Предложенный "жучок" хорош для  
 того, чтобы  перед  игрой вывести  
 краткую инструкцию и т.п.          
                                    
    Дальше - глубже. Возможно, ко-  
 му-то  эта  вещь  попортила  нер-  
 вы.Когда Вы сохраняете  состояние  
 в адвентюре,  сделанной с помощью  
 G.A.C.,    происходят    какие-то  
 странные вещи:                     
    - G.A.C. возвращается в графи-  
 ческий режим,   даже  если  перед  
 этим был текстовый;                
    - экран очищается с белым цве-  
 том PAPER.                         
    Это Вас  не  будет беспокоить,  
 если Вы пишите адвентюру с графи-  
 кой, но  если  это только тексто-  
 вая...                             
    Пользуйтесь следующей строкой,  
 вместо той,  что  Вы  используете  
 для SAVE  (допустим,  SAVE - verb  
 14)                                
                                    
 IF (VERB 14) SAVE TEXT             
            * 23LF * LOOK WAIT END  
                                    
    С ее помощью экран очищается с  
 текущим цветом PAPER и сохраняет-  
 ся текстовый режим.                
                                    
    Проблема точки (.) Заметили ли  
 Вы уже,  что невозможно поставить  
 точку в  конце  описания комнаты,  
 если после него  Вы  вводите  еще  
 "You can also see"? И Вы не може-  
 те поместить MESS '.' END на  са-  
 мом верху  High  Priority потому, 
 что Вам ведь не нужна точка после 
 каждого сообщения.   Вот  "обход" 
 (опять же на "вершине" High Prio- 
 rity).                            
    IF (SET?0) RESE0 MESS 237 END  
                                   
    MESS 237 это просто '.'  (точ- 
 ка). Можно использовать любой но- 
 мер.                              
    Сообщение 253  должно быть пе- 
 реназначено  как  '. You can also 
 see' (с точкой прямо перед You).  
    Эта строка  печатает  точку  в 
 конце описания   каждой   локации 
 (включая любые дополнительные со- 
 общения). Только  в этих дополни- 
 тельных сообщениях  точка  должна 
 быть вначале,  а не в конце.  И в 
 описании локации (в конце)  точку 
 ставить не надо.                  
                                   
    Еще пара  примечаний.  Команда 
 OKAY работает как                 
         MESS 254 LF WAIT          
 (вместо ожидаемого MESS 254 WAIT) 
 так как  вставляет  пустую строку 
 после "OKAY". Избавиться от этого 
 можно, заменив  все  команды OKAY 
 цепочкой MESS 254 WAIT.           
    Та же  проблема  с Message 242 
 (Pardon?) исправляется            
   IF (NOT VBNO) MESS 242 WAIT END 
 на вершине High Priority.         
    IF (NOT  VBNO) занимает меньше 
 места, чем VERB 0 или IF VBNO 0.  
                                   
    "Байты  экономят   килобайты". 
 Используйте  вместо  чисел токены 
 команд:                           
    GOTO 1 -> GOTO VERB            
                  экономит 1 байт. 
    И еще   одна   "академическая" 
 проблема G.A.C.  Если Вы сделаете 
 адвентюру  на  48К,  потом решите 
 стереть все,  кроме пары локаций, 
 у  Вас  в итоге будет файл длиной 
 48К!  Да, по непроверенным данным 
 G.A.C.  не  "восстанавливает" па- 
 мять на месте  удаленной  записи. 
 По  моим  данным на западе ходила 
 программа "The  Reclaimer"  (Rel- 
 soft). Проблема открыта для наших 
 "асов клавиатуры".                
                                   



СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Стихи - Приход смерти.
Обзоринг - За последние два месяца кое какой новый софт поступил.
Фенечки - говорят дети.
Code - 3D движок для Elite
Железо - Правила по использованию Vicomm модема.

В этот день...   21 ноября