RU 📌 Pinned

Как сделать?

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

saks:

проблема с его размером и лучшей оптимизацией однотипных действий. разносить код по локациям не вариант, в игре будет 7-9 таких кодов, 90 локаций както многовато

почему 90 локаций? имхо,

Spoiler

локация craft1
act ‘шить платье’:
craft01=1
gt’craft2’
act’шить жилет’:
craft02=1
gt’craft2’
act’шить жакет’:
craft03=1
gt’craft2’
локация craft2
randcraft2=rand(1,2)
if craft01=1:
‘вы начали кроить платье’
if randcraft2=1
craft01=2
gt’craft3’
if randcraft2=2
‘выкройка не получилась’
craft01=0
gt’craft1’
elseif craft02=1:
‘вы начали кроить жилет’
if randcraft2=1
craft02=2
gt’craft3’
if randcraft2=2
‘выкройка не получилась’
craft02=0
gt’craft1’
elseif craft03=1:
‘вы начали кроить жакет’
if randcraft2=1
craft03=2
gt’craft3’
if randcraft2=2
‘выкройка не получилась’
craft03=0
gt’craft1’
локация craft3
randcraft2=rand(1,3)
if craft01=2:
‘вы начали кроить платье’
if randcraft2=1
craft01=3
gt’craft4’
if randcraft2>=2
‘выкройка не получилась’
craft01=0
gt’craft1’

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

Aaaspavel,

Spoiler
act "шить платье": 
	cla 
	*clr 
	'img src="pic/манекен.жпг"'
	"вы начали шить платье" 
	act "разрезать ткань": 
		delact $selact 
		*clr 
		'img src="pic/ткань.жпг"'
		"вы разрезали ткань" 
		act"сшить лоскуты": 
			delact $selact 
			*clr 
			'img src="pic/лоскуты.жпг"'
			"вы сшили лоскуты" 
		end 
	end 
	act "Уйти" : 
		cla 
		*clr 
		gs curloc 
	end 
end

Вот так можно сделать. Но у этого подхода есть один недостаток: действие “Уйти” перемещается на первую позицию в списке действий. Но это не самый главный недостаток. Гораздо важнее, что ваш код не учитывает уже совершенные действия. Например, если после действия “разрезать ткань” не выбирать “сшить лоскуты”, а “Уйти”, то ваш код все равно будет требовать “разрезать ткань”, несмотря на то, что это действие уже сделано.

evp:

Aaaspavel,

Spoiler
act "шить платье": 
	cla 
	*clr 
	'img src="/pic/манекен.жпг"'
	"вы начали шить платье" 
	act "разрезать ткань": 
		delact $selact 
		*clr 
		'img src="/pic/ткань.жпг"'
		"вы разрезали ткань" 
		act"сшить лоскуты": 
			delact $selact 
			*clr 
			'img src="/pic/лоскуты.жпг"'
			"вы сшили лоскуты" 
		end 
	end 
	act "Уйти" : 
		cla 
		*clr 
		gs curloc 
	end 
end

Вот так можно сделать. Но у этого подхода есть один недостаток: действие “Уйти” перемещается на первую позицию в списке действий. Но это не самый главный недостаток. Гораздо важнее, что ваш код не учитывает уже совершенные действия. Например, если после действия “разрезать ткань” не выбирать “сшить лоскуты”, а “Уйти”, то ваш код все равно будет требовать “разрезать ткань”, несмотря на то, что это действие уже сделано.

так и задумано, что после “ухода” весь процесс надо начинать сначала
с перемещением кнопки действительно пичаль, хотя если вынести кнопку активного действия из окна действий в основное, то может получится весьма сносно

Aleks Versus Moderator 06.03.2016 11:21 (9 years ago)

saks,
почитай вот это “действие по условию”.

Aleks Versus,
Это же элементарщина.

Товарищи, прошел обучение, но с большим трудом осваиваюсь в редакторе. Придумал систему боя, но не могу воплотить в жизнь из за отсутствия опыта в редакторе. Прошу помощи) Skype texels2 (Паша loloc). Надеюсь на вашу помощь.

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

смотря как время реализовано.
если абсолютное, то я делаю так:

hunger -= current_time - hunger_lastcheck !отнимаем кол-во пройденых минут от голода
hunger_lastcheck = current_time !обнуляем счетчик

Не знаю, абсолютное время или нет, календарь я брал с этого сайта скажем так :-)

Ну без кода это все что могу сказать. ))

p.s. календарь свой писал так что х.з. в квадрате

А у вас какой календарь ? Можно код на календарь константу и прочее :-))

щя соберу код и выложу.

Вот, я быстро накатал код и пару локаций, тут календарь, сможете сделать голод?111.qsp

Lexon,

minuts+=1
if minuts > 59: hour+=1&minuts = 0
if hour > 24: day+=1&hour = 0
if day > 31: weak+=1&day = 1
if weak > 9: year+=1&weak = 1
GS '#Weak'
$hour = iif (hour < 10, '0<<hour>>', '<<hour>>')
$minuts = iif (minuts < 10, '0<<minuts>>', '<<minuts>>')

#Weak

$weak[1] = 'Ароса'
$weak[2] = 'Новаса'
$weak[3] = 'Огоса'
$weak[4] = 'Латоса'
$weak[5] = 'Дургоса'
$weak[6] = 'Мелоса'
$weak[7] = 'Назоса'
$weak[8] = 'Ураса'
$weak[9] = 'Анолзура'

Как выводить:

*PL '<<day>> день <<weak>> месяца(<<$weak[weak]>>) <<year>> года <<$hour>>:<<$minuts>>'
IF hour > 15: $golod_step1 = 'Вы голодны!'

Oliver:

Lexon,

minuts+=1
if minuts > 59: hour+=1&minuts = 0
if hour > 24: day+=1&hour = 0
if day > 31: weak+=1&day = 1
if weak > 9: year+=1&weak = 1
GS '#Weak'
$hour = iif (hour < 10, '0<<hour>>', '<<hour>>')
$minuts = iif (minuts < 10, '0<<minuts>>', '<<minuts>>')

#Weak

$weak[1] = 'Ароса'
$weak[2] = 'Новаса'
$weak[3] = 'Огоса'
$weak[4] = 'Латоса'
$weak[5] = 'Дургоса'
$weak[6] = 'Мелоса'
$weak[7] = 'Назоса'
$weak[8] = 'Ураса'
$weak[9] = 'Анолзура'

Как выводить:

*PL '<<day>> день <<weak>> месяца(<<$weak[weak]>>) <<year>> года <<$hour>>:<<$minuts>>'
IF hour > 15: $golod_step1 = 'Вы голодны!'

Это ваш календарь? Очень интересно посмотрю, спасибо.

А $weak аж 9 штук, что это? Вроде в недели 7 дней, а в году 12, а что такое 9?

Log in or Register to post comments.