Форум » » Как это сделать? » Ответить

Как это сделать?

denis: Только начал программить на QSP. Вопрос: как сделать так, чтобы после выполнения одного действия, в этой же локации становились видны другие, до этого не видимые? Хелп читал - не нашёл ответа. И ещё - можно ли с помощью оператора DYNAMIC создавать новые действия и предметы?

Ответов - 201, стр: 1 2 3 4 5 6 7 8 9 10 11 All

[Ray]: Byte нет, addqst не решит проблему. нужно загружать файл как таблицу. а лучше сразу в массив.

Byte: А, ещё есть разбор текста - можно данные в виде строки оформить, потом их разобрать.

Ntropy: 16 параметров в локации это перебор, для разбора текста можно использовать разбиение по пробелам.


WladySpb: [Ray] Я такого рода проблему решал передавая в локацию только название противника, тип места боя и время суток. При обработке боёвки игра обращалась к БД (отдельная лока) где на основе названия противника и на основе уровня определяла все статсы и прочие переменные.

[Ray]: WladySpb кинь кусочек кода, который определяет по названию противника все его характеристики; я уверен там такой же мусор как у mioirel'я в его The Underworld Slayer. угу. я за чистоту нации кода.

[Ray]: Byte разбор текста? круто! а поподробнее?

WladySpb: [Ray] Ну, примерно это происходит так: Задаём тип противника, запускаем бой, в начале локации-боя инициализация противника, делаем gs на локацию с БД. Там что-то такое: if $enemy['кто']='волк': $enemy['кого']='волка' $enemy['кому']='волку' ......... enemy['жизнь']=10+level*2 \\ у меня сила мобов вычислялась в зависимости от уровня героя. enemy['мин_урон']=4+level enemy['макс_урон']=7+level ........ end if $enemy['кто']='бандит': ....... Ну вот как-то так. Весь список параметров приводить не буду)

Nex: Одному мало 10, другому 16 мало, и т.д.

Byte: [Ray], ну есть текст с данными, например $data=' волк,10,23,45,67,88,99,44,22 коза,100,3,5,66,78,49,40,20 капуста,12,45,67,2,43,12,0,5 .... ' Далее этот текст разбиваем по переносам строк и каждую строку по запятым. Проще всего сделать через регэкспы, но можно и без них.

[Ray]: Nex а что, шестнадцати жалко? :) действительно, я думал что изменить количество нетрудно) Byte а что за функции это делают?

Nex: [Ray] 16 - нелогично. В QSP те ограничения, которые еще остались, кратны 10. Так легче запоминается. Если все будет кратно 10, а одно-единственное будет 16, будет просто некрасиво.

WladySpb: Nex На самом деле, ограничения вообще нелогичны, если не являются следствием конкретных особенностей языка. Хотя в данном случае мне не кажется аккуратным сам метод, но и ограничений я не понимаю. кстати, что меня приятно порадовало в куспе, когда я начинал, это то, что нет глупых ограничений. Переменные не нужно объявлять заранее(как в паскале или Си), к примеру. Нет разграничений переменных по типам, экономить несколько байт информации уже не нужно, хотя раньше наверное это было критично...

Nex: WladySpb из двух зол следует выбирать меньшее. И из ограничений на 16 и на 10 параметров, я выберу 10, т.к. это более соответствует всему остальному.

Byte: [Ray] пишет: действительно, я думал что изменить количество нетрудно) Изменить нетрудно.

flir3: Подскажите, пожалуйста, а размер переменной строкового типа в qsp ограничен?

Byte: Практически нет.

flir3: Практически нет. Byte, а можно поподробнее?

Byte: Грубо говоря, действует ограничение доступной приложению оперативной памяти.

ShamanEdy: Короче, мне нужно сделать так, что бы мои числовые переменные, выводились текстом. Например, если у меня перемнная Реклама=2, то в игре выводилось Реклама = слабая.

werewolf: создаешь массив текстовых значений с числовыми индексами например $характеристики[1] = 'плохая' $характеристики[2] = 'слабая' и т.д. потом останется только вывести *p 'Реклама = <<$характеристики[Реклама]>>'



полная версия страницы