RU

Проблема с выводом диалога в HTML-таблицу

Чернильный_гость #1208 20.08.2014 08:23 18 comments 10173 views

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

!отключить окно действий
SHOWACTS 0
!Разрешить HTML
USEHTML=1
!Создать таблицу, создать строку таблицы
'<table border=1><tr>'
	!Если время меньше 11:15 или больше 14:45
	IF (varHourNow=11 and varMinuteNow <= 15) or (varHourNow = 14 and varMinuteNow > 45):
		!Определить Открыто/закрыто (0-нет, 1-да)
		IF rand(0,1)=1:
			!Создать пустой столбец для рисунка, создать столбец
			'<td></td><td>'
			'<font color=Green> Закрыто'
		ELSE
			!Создать пустой столбец для рисунка, создать столбец
			'<td></td><td>'
			'<font color=Green> Открыто'
		END
	ELSE	
		!Создать пустой столбец для рисунка, создать столбец
		'<td></td><td>'
		'<font color=Green> Окна нет'
	END
	!открыть окно действий
	SHOWACTS 1
	act 'Залезть':
		'<font color=blue> - Сейчас я залезу.'
		!Удалить действие
		delact $selact
		'<font color=blue> - Получится или нет?'
		'<font color=Magenta> - Не попробуешь - не узнаешь'
		act 'Я тут подумал...':
			'<font color=blue>А может ну его'
			'<font color=green> Отходит от окна'
			delact $selact
			'<font color=Magenta> - Неужели испугался?'
			'<font color=blue> - Ищи дурака!'
			varWindowIn[0]=1
			IF KeyDoorIn[0]=0:
				act 'Ключ от двери':
					'<font color=blue> - Я бы прошел через дверь' 
					delact $selact
					SHOWACTS 0
					'<font color=Magenta> Я сделаю тебе дубликат ключа.'
					KeyDoorIn[0]=2
					KeyDoorIn_ServiceDay[0]=varDayNow
					KeyDoorIn_ServiceDay[1]=varMonthNow
					KeyDoorIn_ServiceDay[2]=varYearNow
					*PL '<a href="exec:gt ''procDateTime'',''locHall'', 30">Уйти</a>'
				end
			ELSE
				SHOWACTS 0
				*PL '<a href="exec:gt ''procDateTime'', ''locHall'', 30">Уйти</a>'
			END	
		end
	end
!Закончить работу со шрифтом, закрыть столбец, закрыть строку, закрыть таблицу	
'</font></td></tr></table>'

Код приведен полностью, без изьятий.

Чернильный_гость #1208 23.08.2014 14:48 (11 years ago)

Aleks Versus,
Я сейчас лишь учусь и рассматриваю различные варианты кода. Если бы мне все было понятно, то наверное и не спрашивал бы. Вариант с ACT’ами забраковал. Использовал как основу твой код, поменяв ACT’ы на ссылки. Дополнительный плюс твоего кода - возможность динамически менять изображения в левой части.

!отключить окно действий
SHOWACTS 0

!Разрешить HTML
USEHTML=1

$left_tada[1]='&nbsp;'
$left_tada[2]='&nbsp;'
$left_tada[3]='&nbsp;'
$left_tada[4]='&nbsp;'

$right_tada[1]='<a href="exec: action[0]=1 & gt ''<<$curloc>>''">Залезть</a><br>'
$right_tada[2]='<a href="exec: action[0]=2 & gt ''<<$curloc>>''">Я тут подумал...</a><br>'
$right_tada[3]='<a href="exec: action[0]=3 & gt ''<<$curloc>>''">Ключ от двери</a><br>'
$right_tada[4]='<a href="exec:gt ''procDateTime'',''locHall'', 30">Уйти</a><br>'

if action[0] = 0:
	$left_tada[0]=$left_tada[1]
    IF (varHourNow=11 and varMinuteNow <= 15) or (varHourNow = 14 and varMinuteNow > 45): 
        !Определить Открыто/закрыто (0-нет, 1-да) 
        IF rand(0,1)=1: 
            $right_tada1 = $right_tada +'<font color=Green> Закрыто.</font><br>'
			$right_tada	= $right_tada1 + $right_tada[1]
        ELSE 
            $right_tada1 = $right_tada + '<font color=Green> Открыто.</font><br>'
			$right_tada	= $right_tada1 + $right_tada[1] 
        END 
    ELSE    
        $right_tada1 = $right_tada + '<font color=Green> Окна нет.</font><br>'
		$right_tada= $right_tada1+$right_tada[1]
    END
END

IF action[0]=1:
	$right_tada2 = $right_tada1 + '<font color=blue> - Сейчас я залезу.</font><br>'+'<font color=blue> - Получится или нет?</font><br>'+'<font color=Magenta> - Не попробуешь - не узнаешь</font><br>'
	$right_tada = $right_tada2 + $right_tada[2]
	$left_tada=$left_tada[1]
END

IF action[0]=2:
	$right_tada3 = $right_tada2 + '<font color=blue>- А может ну его?</font><br>'+'<font color=green> Отходит от окна</font><br>'+'<font color=Magenta> - Неужели испугался?</font><br>'+'<font color=blue> - Ищи дурака!</font><br>'
	$right_tada = $right_tada3 + $right_tada[3]
	$left_tada=$left_tada[2]
END

IF action[0]=3:
	IF KeyDoorIn[0]=0:
		$right_tada4=$right_tada3+'<font color=blue> - Я бы прошел через дверь</font><br>'+'<font color=Magenta> Я сделаю тебе дубликат ключа.</font><br>'
		$right_tada = $right_tada4 + $right_tada[4]
		$left_tada=$left_tada[3]
		KeyDoorIn[0]=2 
		KeyDoorIn_ServiceDay[0]=varDayNow 
		KeyDoorIn_ServiceDay[1]=varMonthNow 
		KeyDoorIn_ServiceDay[2]=varYearNow
	ELSE
		$right_tada = $right_tada3 + $right_tada[4]
	END
END

'<table border=1><tr><td>'+$left_tada+'</td><td>'+$right_tada+'</td></tr></table>'
Aleks Versus Moderator 23.08.2014 18:14 (11 years ago)

Такой подход позволяет не только динамически менять изображения. :) Посмотри замечательную игру Олегуса - там всё вынесено в основное описание, которое почти полностью формируется динамически.

Чернильный_гость #1208 24.08.2014 08:15 (11 years ago)

Aleks Versus,
Спасибо. Буду изучать.

Log in or Register to post comments.