RU 📌 Pinned

Как сделать?

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

svandrus, так вопрос не касался способа. Мне тоже видится, что выбранный способ не совсем удобен.

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

Всем привет! Хочу на основе игры контракт начать делать свою. Хочу задать вопрос более опытным игроделам: На чем редактировали эту игру? Я скачал редактор QGen он хорошо отрывает QSP игры но контракт почему то отрыть не может. https://drive.google.com/file/d/0B4cFOrWVsPv9RDd3MklRLVZ4bVk/view

AmberT, Обязательно было давать ссылку на zip-архив размером 161 MB? Можно было просто файл .qsp выложить.

Скачал и не обнаружил в архиве ничего особенного. Файл Контракт.qsp открывается редактором QGen 4.0.0 beta 1 нормально, даже не защищен паролем.

Aleks Versus Moderator 04.07.2015 14:16 (10 years ago)

AmberT,
а случаем не ты ли автор “контракта”? Уж больно ошибки похожи… :=D

Aleks Versus,
Нет, это не он… Настоящего автора уже месяца четыре найти не могут..

Скажу честно, все страницы не читал, так что вопрос может повториться.
Вопрос такой. Есть начальная локация (после вступления), нужно добавить кнопку “прогулка”. При выполнении в первый раз, должно попасться первое оружие (допустим “труба”). При последующих прогулках должно выпасть одно из 4-х действий: шанс 50% - ничего не произошло, 30%- встретили врага (условно примем “крыса” с выбором напасть или идти дальше), 15%- найти монетку и 15% на вас напали (та же крыса, но уже без выбора действий, а переход к бою).
И еще есть такой код: gs ‘ia_obj_count’, ‘деньги’, 10 как из него сделать что бы он добавлял по 10 монет, а не держал сумму на 10 монетах.

Драккан,
Как-то так… Но ты почитай про первые уроки, FAQ … там такие примеры есть.

Spoiler
$text

ACT 'Прогуляться': 
	IF weapon = 0: 
		weapon = 1 
		addobj 'Дубина'
	ELSE
		событие = rand(1,100)
		IF событие <= 50:
			$text = 'Ничего не произошло'
			gt $curloc
		END
		IF событие > 50 AND событие <=80:
			addobj 'Монетка'
			$text = 'Вы нашли монетку'
			gt $curloc
		END
		IF событие > 80 AND событие <= 90:
			cla
			'Вы заметили крысу'
			act 'Напасть': gt 'Бой'
			act 'Убежать': gt $curloc
		END
		IF событие > 90 AND событие <= 100:
			!На вас напала крыса
			gt 'Бой'
		END
	END
END

Отлично работает, прямо под мою систему боя. Спасибо.

Белый Шарик #100 07.07.2015 08:37 (10 years ago)

Да что ж я делаю не так? В локации Battle при выполнении условия Battle = 0 , действия “атака” и “защита” пропадают, появляется действие “Битва завершена”. При выполнении данного действия выводит сообщение :
“Локация Battle
Место: при посещении
Строка : (та где у меня оператор exit)
Код ошибки : 113
Описание : Указанная метка не найдена”

Spoiler

battle_dice = rand (1,2)
If Battle = 0 :
delact ‘Атака’
delact ‘Защита’
act ‘Битва завершена’ :
if victory > 0 :
‘Победа!’
jump ‘victory’
else : jump ‘lose’
end
end
end
exit
:victory

:lose

Белый Шарик #100 07.07.2015 09:09 (10 years ago)

Сделал не через jump на метки, а через go to на локации victory и lose - все работает. Но что же было не так в первоначальном варианте?

Такая проблема.. Делаю таблицу..

Spoiler
'<table>
	<tr><td rowspan = 13><img src = "content/Town/bankir.jpg"></td><td>	</td><td>Сегодняшние цены:</td></tr>
	<tr><td>	</td><td>Золотые слитки:	$<<townGoldbarPrice>></td></tr>
	<tr><td>	</td><td>Акции: 	$<<townStockPrice>></td></tr>
	<tr><td>	</td><td><p></td></tr>
	<tr><td>	</td><td>Ваши средства:</td></tr>
	<tr><td>	</td><td>Деньги (монеты): <<money>></td></tr>
	<tr><td>	</td><td>Золотые слитки:	<<townGoldbars>></td></tr>
	<tr><td>	</td><td>Акции: 	<<townStock>></td></tr>
	<tr><td>	</td><td><p></td></tr>
	<tr><td>	</td><td>Всего на счете:</td></tr>
	<tr><td>	</td><td>Золотые слитки:	$<<townGoldbarPrice * townGoldbars>></td></tr>
	<tr><td>	</td><td>Акции:	$<<townStock * townStockPrice>></td></tr>
</table>'

Табличка в порядке, но вот если располагать ниже неё ещё какой-нибудь текст, появляется здоровенный пробел… Величина пробела подозрительно соответствует количеству строк, которые использовались для создания таблицы, т.е. если всю таблицу записать одной строкой, то и пробел будет 1-2 строки… Почему так? И нельзя ли это как-нибудь ликвидировать?

Задам еще 2 вопроса, как после случайного события вернуться на локацию срабатывания этого события.
IF событие > 90 AND событие <= 100:
!На вас напала крыса
gt ‘Бой’
Происходит бой, как после победы вернуться на ту локацию в которой случилось событие?
Вопрос 2: После запуска игры в папке с игрой образуется файл .tmp, как сделать что бы он не создавался каждый раз заново?

Табличка: Попробуй писать без перевода строк. Тоесть ‘<table>’ - кавычки закрывай на каждой строчке и открывай на следующей.

Вопрос 1: Попробуй запомнить имя локации на которую нужно вернуться в какой-нибудь переменной.

Вопрос 2: Я не видел никаких tmp. Какой плеер, классический?

Axil,
Пробовал… И в одну строчку и разбивая кавычками.. Самое интересное, что вот этот кусок кода если скопировать отдельно и запустить с текстом внизу - всё работает как надо. А в игре - делает отступ…

svandrus,

*nl'<table>' 
    *p'<tr><td rowspan = 13><img src = "content/Town/bankir.jpg"></td><td>    </td><td>Сегодняшние цены:</td></tr>' 
    *p'<tr><td>    </td><td>Золотые слитки:    $<<townGoldbarPrice>></td></tr>'
    *p'<tr><td>    </td><td>Акции:     $<<townStockPrice>></td></tr>'
    *p'<tr><td>    </td><td><p></td></tr>'
    *p'<tr><td>    </td><td>Ваши средства:</td></tr>'
    *p'<tr><td>    </td><td>Деньги (монеты): <<money>></td></tr>'
    *p'<tr><td>    </td><td>Золотые слитки:    <<townGoldbars>></td></tr>'
    *p'<tr><td>    </td><td>Акции:     <<townStock>></td></tr>'
    *p'<tr><td>    </td><td><p></td></tr>'
    *p'<tr><td>    </td><td>Всего на счете:</td></tr>'
    *p'<tr><td>    </td><td>Золотые слитки:    $<<townGoldbarPrice * townGoldbars>></td></tr>'
    *p'<tr><td>    </td><td>Акции:    $<<townStock * townStockPrice>></td></tr>'
*p'</table>'

Log in or Register to post comments.