RU 📌 Pinned

Как сделать?

Dark[Ol(U23)leneri] #34 18.04.2010 22:57 6408 comments 2435356 views

Aleks Versus Moderator 28.03.2016 20:56 (9 years ago)

Aaaspavel,
act - это оператор, выводящий пункт меню (который мы так же называем действием) в области “действия”. Код, который включается в act может быть абсолютно любым. При щелчке по действию выполняется код, который этому действию “присвоен”. В данном случае он должен выводить надпись. Если скопировать этот код в чистую новую игру, он прекрасно работает. Т.е. выводит надпись. act - не подразумевает goto, ибо goto - так же отдельный оператор.

Если же надпись при щелчке на действии не выводится, это чертовски странно, и представляется мне практически невозможным.

Aleks Versus, как бы странно это не звучало, но я сегодня потратил 2 часа, на то, чтобы запустить код, который был написан правильно. Однако, по странным сечениям обстоятельств, он заработал только с 5 раза. Притом я ничего не менял. Это странно, но быть может какие-либо конфликты в движке.

Aleks Versus Moderator 28.03.2016 21:21 (9 years ago)

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

Я разобрался в чем дело!

Aleks Versus,
А ты знаешь как сделать чтобы все время работала команда:
If сила < 0 :
goto ‘Проигрыш’
If Вер < 0 :
goto ‘Проигрыш’
end
end
end
А не только при в ходе?

Svartberg,
У тебя картинка странная Где взял?? ;)

Пожалуйста расскажите как пользоваться командой COUNTER а то я вообще непонимаю

Aleks Versus Moderator 29.03.2016 07:14 (9 years ago)

KIRILLBIZHIN,
counter - это не команда.

Справка:

$COUNTER - локация-счетчик вызывается через одинаковые промежутки времени

Например пишешь в начале игры:

$COUNTER = 'локация_счётчик'

И создаёшь локацию с названием локация_счётчик, в которую и помещаешь определённый код. Этот код будет выполняться каждые пол секунды (по умолчанию).

Нет у меня просто комп глюканул ! Команда работает!!

Народ, мне нужна помощь. Накатал блок для работы с текстом (изменение, вырезание, подстановка и тд). Это все работает, я доволен. Однако при дальнейшей траспортировке данных в блок выполнением действий по условиям. Ничего не происходит. Вообще…
Код под спойлером. Ссылка на файл с кодом.

Spoiler
$user.input = '/connect {Port:7777}'
$port.memory[] = '7777'
 
  IF STRFIND($user.input, '^(\S+)\s(\S+)$', 1) = '/connect':
	 $txt1box.cnt = STRFIND($user.input, '^(\S+)\s(\S+)$', 2)
	 $txttest.cnt = $MID('<<$txt1box.cnt>>',1,1) + $MID('<<$txt1box.cnt>>',6,1) + $MID('<<$txt1box.cnt>>',11,1)
	 IF $txttest.cnt ! '{:}':
	  'Error 2110: Syntax error {$user.input}'
	 ELSE:
	  IF INSTR($txt1box.cnt,'Port') ! 0:
	   position.cnt = 3 + LEN('Port')
	   $txt2box.cnt =  $MID('<<$txt1box.cnt>>',position.cnt,4)
	   $SCRIPT.init = 'Connect {Port}'
	  END
	 END
  END
  
IF $SCRIPT.init = 'Connect {Port}':
	 IF ARRCOMP('$port.memory',$txt2box.cnt) ! -1:
	  $inputs.cnl = ''
	  $SCRIPT.init = 'Connect {Port true}'
	 ELSEIF ARRCOMP('$port.memory',$txt2box.cnt) = -1:
	 $inputs.cnl = ''
      $SCRIPT.init = 'Connect {Port false}'
     END
     SHOWINPUT 0
!====Вот эта часть отказывается работать=============!	 
ELSEIF $SCRIPT.init = 'Connect {Port true}':
	 $inputs.cnl = 'Port <<$txt2box.cnt>> open...'
	 $SCRIPT.init = 'Open {file true 2}'
     SHOWINPUT 0
ELSEIF $SCRIPT.init = 'Connect {Port true 2}':
     $CONSOLE.draw = ''
     cells = 0	
	 $inputs.cnl = 'Port <<$txt2box.cnt>> open...'
	 $SCRIPT.init = ''
     SHOWINPUT 1
ELSEIF $SCRIPT.init = 'Connect {Port false}':
	 $inputs.cnl = 'Error 3287: Port not found'	
	 $SCRIPT.init = ''
     SHOWINPUT 1        
END
!=====================================================!

Эм… Что я сейчас прочитал?
Что за присоединение порта 7777?
Ты что, мультиплеер делаешь?

Oliver, нет)
Это кое-что другое. Не совсем обычная текстовая адвенчура.

Aleks Versus Moderator 29.03.2016 19:21 (9 years ago)

Svartberg,
после else не нужно двоеточие. Поясни, пожалуйста, как испытывать модуль. Просто сложно разобраться, что не работает, так вот с кода. Можно какие-то данные перед ним ввести, чтобы он сработал? Или же он срабатывает, но что-то нужно посмотреть на выходе? Тогда что?

P.S.^ А хотя вот. Убрал двоеточие, проверил по переменной $SCRIPT.init. В конце Connect  выдаёт.

Edited at 29.03.2016 19:30 (9 years ago)

Aleks Versus, спасибо огромное за отклик) Извини, что не уточнил. Но я все-же только-что додул, почему у меня ничего не выходило.

$user.input = $LCASE($USRTXT)

Тобишь весь текст был в нижнем регистре…

IF INSTR($txt1box.cnt,'Port') = 2:
	$SCRIPT.init = 'Connect {Port}'
END

Проверка INSTR на слово ‘Port’ с заглавной буквой…
Дурная голова, рукам покоя не дает.

задумка такая: к репутации гг привязать шрифт в навигаторе, планируется при положительной репутации один шрифт, при нейтральной другой, при отрицательной третий. как это можно сделать?

Log in or Register to post comments.