» TeamX (Архив Форума)«


Форум TeamX » Проекты » Книги

Переход по темам
<< Пред. След. >>
Единственная страница этой темы

 
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

Меня в реализации книг бесит очень многое.

Цитата:
1. После прочтения книжка исчезает. Мы что, ее кушаем чтоли?

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

3. Нельзя дать почитать напарнику.

4. Получать пользу от книг можно только до развитости скилла в 99%, дальше бесполезно. Я никогда не развивал Small Guns до тех пор, пока книжки не переставали действовать.


Багов много, я пока решил остановиться на последнем. Как исправить баг #4? Вот моя задумка:

Цитата:
1. Польза должна измеряться в Skill Points и только в них. Измерять пользу в процентах - порождать обидные читы.

2. Сделать ограничение пользы от книг зависящее не от процентов развитости умения, а от того, сколько книг прочитано ранее и только от этого.


Таким образом, можно будет читать книги когда угодно, но у вас ни за что не получиться развить умение от 50% до 300% только за счет книг. Допустим, за счет книг максимум можно сэкономить 50 Skill Points. Тогда если вы прочитаете все эти книги сначала, вы измените свой уровень от 50% до 100%, а если позже - от 180% до 190%. В этом и была вся идея, вылилась она в примерно в такой код:

Код:
 
/*                                                                           */
/*  Используется не только GVAR_BOOK_POINTS, но и следующие за ней 17 GVAR.  */
/*                                                                           */
#define GVAR_BOOK_POINTS                           (696)

/*                                                                           */
/*  Объявлений, которые совсем не используются, но вроде как нужны для       */
/*  порядка.                                                                 */
/*                                                                           */
#define GVAR_BOOK_POINTS_SMALL_GUNS                (696)
#define GVAR_BOOK_POINTS_BIG_GUNS                  (697)
#define GVAR_BOOK_POINTS_ENERGY_WEAPONS            (698)
#define GVAR_BOOK_POINTS_UNARMED_COMBAT            (699)
#define GVAR_BOOK_POINTS_MELEE                     (700)
#define GVAR_BOOK_POINTS_THROWING                  (701)
#define GVAR_BOOK_POINTS_FIRST_AID                 (702)
#define GVAR_BOOK_POINTS_DOCTOR                    (703)
#define GVAR_BOOK_POINTS_SNEAK                     (704)
#define GVAR_BOOK_POINTS_LOCKPICK                  (705)
#define GVAR_BOOK_POINTS_STEAL                     (706)
#define GVAR_BOOK_POINTS_TRAPS                     (707)
#define GVAR_BOOK_POINTS_SCIENCE                   (708)
#define GVAR_BOOK_POINTS_REPAIR                    (709)
#define GVAR_BOOK_POINTS_CONVERSANT                (710)
#define GVAR_BOOK_POINTS_BARTER                    (711)
#define GVAR_BOOK_POINTS_GAMBLING                  (712)
#define GVAR_BOOK_POINTS_OUTDOORSMAN               (713)

/*                                                                           */
/*  Сколько максимум Skill Points можно получить из книг.                    */
/*                                                                           */
#define BOOK_POINTS_MAX     (50)

/*                                                                           */
/*  Максимум Skill Points из одной книги.                                    */
/*                                                                           */
#define BOOK_POINTS_STEEP   (5)

/*                                                                           */
/*  Должна переводить SkillPoints в SkillPercents.                           */
/*                                                                           */
/*  percents - начальный процент умения                                      */
/*  points - количество баллов, которые мы хотим потратить на его развитие   */
/*  (result bwand 511) - конечный процент умения                             */
/*  (result/512) - количество Skill Points, которые мы перерасходовали       */
/*                                                                           */
procedure points_to_percents(variable percents, variable points) begin
 while points>0 do begin
   if percents<101 then
     points:=points-1;
   else
     if percents<126 then
       points:=points-2;
     else
       if percents<151 then
         points:=points-3;
       else
         if percents<176 then
           points:=points-4;
         else
           if percents<201 then
             points:=points-5;
           else
             points:=points-6;
   percents:=percents+1;
 end
 points:=-points;
 return (512*points+percents);
end

/*                                                                           */
/*  Игрок читает книгу.                                                      */
/*                                                                           */
/*  result - зря (не зря)                                                    */
/*                                                                           */
procedure dude_read_book(variable skill_num) begin
 variable percents;
 variable points;
 /*                                                                         */
 /*  Сколько Skill Points мы можем получить из книжки.                      */
 /*                                                                         */
 if global_var(GVAR_BOOK_POINTS+skill_num)+BOOK_POINTS_STEEP>BOOK_POINTS_MAX then
   points:=BOOK_POINTS_MAX-global_var(GVAR_BOOK_POINTS+skill_num);
 else
   points:=BOOK_POINTS_STEEP;
 /*                                                                         */
 /*  Если книжки нам все еще полезны.                                       */
 /*                                                                         */
 if points>0 then begin
   percents:=has_skill(dude_obj,skill_num);
   points:=points_to_percents(percents,points);
   percents:=(points bwand 511)-percents;
   points:=BOOK_POINTS_STEEP+(points/512);
   /*                                                                       */
   /*  Поднимаем Skill.                                                     */
   /*                                                                       */
   critter_mod_skill(dude_obj,skill_num,percents);
   /*                                                                       */
   /*  Увеличиваем счетчик.                                                 */
   /*                                                                       */
   set_global_var(GVAR_BOOK_POINTS+skill_num,global_var(GVAR_BOOK_POINTS+skill_num)+points);
   return true;
 end else
   return false;
end


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

Конечно, остается еще куча вопросов и ньюансов, но, согласитесь, это уже шаг?

Если у кого-нибудь есть интересные идеи - приглашаю на обсуждение здесь. Лично меня в данный момент интересуют две фичи:

1. Возможность заставить читать наших партийцев (чтобы сделать это прийдестя править ихние скрипты ).

2. Возможность сделать так, чтобы книга после прочтения не улетучивалась, но свою полезность для того, кто ее прочитал, она навеки теряла.

P.S. Хотелось бы услышать мнение людей, делающих обширные моды (патчи).

-----
hit me, nail me, make me god

Отправлено: 18:30 - 2 Янв., 2006 | ИСПРАВЛЕНО: Alan Killenger - 21:39 - 2 Янв., 2006
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Ты это проверял? Спорю, что нет. Перечислю проблемы:
1. Книги после навешивания на них скрипта перестанут складываться в стопку.
2. Увеличивает скиллпойнты не скрипт, а движок. Отменить ты это никак не сможешь.
3. Ну и на закуску: при использовании предмета из окошка инвентаря скрипт use не работает (правда, только для некоторых подтипов, для книжки, может, и сработает, но п.2 обойти не получится).

Убрать исчезание "просто": удаление предметов (и ограничения на наркоту, кстати) привязано к номеру прошника.

Отправлено: 20:41 - 2 Янв., 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

Бла, кто-то читает не слишком внимательно.
Цитата:
Конечно, самый большой недостаток - то, что если мы захотим впихнуть это в игру, то прийдется менять все прошники книг. Иначе никак, двигло корявое.

Т.е. прийдется создавать прошник с другим номером, но с тем же описанием и картинкой и вешать на сам прототип такой скрипт. Все, кроме складывания таких прошников в стопочки (ну не задумывался), я проверял, работает замечательно.

-----
hit me, nail me, make me god

Отправлено: 20:44 - 2 Янв., 2006
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Я читаю очень внимательно, товаристч. Придётся изменять прошники, править все карты и скрипты всех торговцев. Окромя этого ещё вопрос про инвентарь и повышения скилла двигом. Серьёзно. Поддаётся оверрайду? Или нет?

Отправлено: 20:50 - 2 Янв., 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

Нет, никакие script_overrides не помогают, как ни крути. Я и говорю, это может сделать только модификатор, кторый строит глобальный мод (патч) ;(. Вот как раз при использовании такой книжки из инвентаря все нормально и работает, но... обязательно это должен быть другой прошник.

-----
hit me, nail me, make me god

Отправлено: 20:51 - 2 Янв., 2006 | ИСПРАВЛЕНО: Alan Killenger - 21:53 - 2 Янв., 2006
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Вот теперь я спрашиваю: ты внимательно читал? Повторю вопрос: если ты навешиваешь скрипт на книгу, ставишь в use_p_proc script_overrides и юзаешь её из инвентаря, то скилл повышается? Да или нет?

Отправлено: 20:54 - 2 Янв., 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

Да. Все равно идет двигловое повышение скилла и запись в display_msg. Легкой модераторской рукой почистишь тему, OK?

-----
hit me, nail me, make me god

Отправлено: 20:57 - 2 Янв., 2006 | ИСПРАВЛЕНО: Alan Killenger - 22:00 - 2 Янв., 2006
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Зачем чистить?

Итак, если от повышения скилла движком не помогает оверрайд, то идею не сможет реализовать никто. Кроме Mynah'а . И дело тут не в прошниках.

Отправлено: 21:01 - 2 Янв., 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

Почему? И почему дело не в прошниках, когда вопрос именно в них. Точнее в муторной работе по замене номеров прошников.

Оверрайд не помогает от повышения скилла при использовании прошника оригинальной книги, но если создать новый прошник, кинуть ему описание и картинку ориг. книги и присобачить свой скрипт - все будет тип топ. Это так, если меня все-таки неправильно трактовали.

-----
hit me, nail me, make me god

Отправлено: 21:11 - 2 Янв., 2006
Mynah
Модератор

Откуда: Пермь
Регистрация: Окт. 2004

Всего: 469 сообщений

Убрать двиговое повышение скилла не так уж сложно.
Самый "узкий" момент - стопочки. Когда пройдёт похмелье и кончаться праздники - подумаю над этим.

ЗЫ: Имхо, надо реализовывать так:
-Чузен читает книгу
-В инвентарь добавляется итем: начатая книга.
-Её можно юзать до определённого уровня скилла (на следующее прочтение можно поставить различные условия. прошедшее время, навык должен быть больше, etc.)
-Когда скилл достигнет определённого уровня, при юзании книжки будет выводится сообщение, а-ля: для того чтобы усвоить дальнейший материал, вы должны попрактиковаться в уже пройденном.
-После достижения следующего порога, книжку можно юзать вновь.
-Все остальные книжки такого же типа будут складываться в стопку и, при попытке почитать такой "стопочный" вариант будет выводится что-то типа такого: "вы не можете найти страницу, на которой остановились, лучше почитать вариант с закладкой"

Основная грабля - на стопочном варианте тоже должен висеть скрипт. Но именно над этим я буду думать, когда приду в состояние стояния:)

[EDIT]
Alan Killenger,
Замена всех прошников на свои мне кажется не элегантным и громоздким решением. Это ж сколько такой патч будет весить, с учётом изменения всех карт и кучи скриптов? Плюс - несовместимость с модами.

-----
Scio me nihil scire

Отправлено: 21:29 - 2 Янв., 2006 | ИСПРАВЛЕНО: Mynah - 23:36 - 2 Янв., 2006
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

А убрать двиговые ограничения на скриптовую обработку в инвентаре?

И ещё одно: о балансе подумали?

Отправлено: 21:36 - 2 Янв., 2006
Mynah
Модератор

Откуда: Пермь
Регистрация: Окт. 2004

Всего: 469 сообщений

>>А убрать двиговые ограничения на скриптовую обработку в инвентаре?

Над этим можно чего-нибудь помудрить ;) Мучаться долго конечно, но невозможного ничего нет.

>>о балансе подумали?

На данный момент я говорю только о теоретической возможности реализации:) Лично меня книги устраивают as is.

-----
Scio me nihil scire

Отправлено: 21:40 - 2 Янв., 2006
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Вообще, когда речь идёт об изменении самой игровой системы, я всегда против. Зачем? Так было задумано в этой игре. Хочется по-другому, надо делать другую игру .

Отправлено: 21:43 - 2 Янв., 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

Цитата:
Замена всех прошников на свои мне кажется не элегантным и громоздким решением. Это ж сколько такой патч будет весить, с учётом изменения всех карт и кучи скриптов? Плюс - несовместимость с модами.

А я расхожусь особой радостью при этих словах ?

Насчет стопок. Только что попробовал убрать скрипты с прошек и дописать obj_dude.int. Результат: стопочки возвращаются, но:
1. Книгу можно читать только как "использовать предмет на".
2. В obj_dude.int use_obj_on_p_proc нужно поставить script_overrides (хотя не велика потеря).

Цитата:
ЗЫ: Имхо, надо реализовывать так:
-Чузен читает книгу
-В инвентарь добавляется итем: начатая книга.
-Её можно юзать до определённого уровня скилла (на следующее прочтение можно поставить различные условия. прошедшее время, навык должен быть больше, etc.)
-Когда скилл достигнет определённого уровня, при юзании книжки будет выводится сообщение, а-ля: для того чтобы усвоить дальнейший материал, вы должны попрактиковаться в уже пройденном.
-После достижения следующего порога, книжку можно юзать вновь.
-Все остальные книжки такого же типа будут складываться в стопку и, при попытке почитать такой "стопочный" вариант будет выводится что-то типа такого: "вы не можете найти страницу, на которой остановились, лучше почитать вариант с закладкой"

Одну книжку можно будет читать до одурения? Хм... В любом случае слишком сложно .

Цитата:
И ещё одно: о балансе подумали?

Именно о нем и думаю. Книги as is, ИМХО, чит.

И последнее, дались вам так эти стопочки книг? Это ведь не стопки патронов. Много вы с собой эти книги таскаете? Ежели сделать так, чтобы книга исчезала после прочтения - никакой проблемы со стопочками я вообще не вижу. А так - книга будет книгой, и вам не прийдется намеренно ждать пока книжные скиллы не возьмут свое.

-----
hit me, nail me, make me god

Отправлено: 22:40 - 2 Янв., 2006 | ИСПРАВЛЕНО: Alan Killenger - 23:44 - 2 Янв., 2006
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Книга - чит? Насмешил. Тот факт, что она исчезает после прочтения, а не превращается в предмет "прочитанная книга" - это очень даже хорошо. Иначе был бы просто лишний мусор. Что же касается увеличения скиллов... имхо, в оригинале всё нормально: чем меньше знаешь, тем больше тебе даёт книга. Или это "нереально"?

Отправлено: 11:08 - 3 Янв., 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

Реально, но создает довольно обидную ситуацию, когда человек специально оставляет скил без развития (дабы поднять его только книгами).

Так может быть мы более реальным находим ситуацию, когда книгами можно поднять умение с 20% до 99%, но не можем поднять с 99% до 100% (ни разу до этого не прочитавши умной вещи)?

Идея в том, что книга вроде как должна быть полезна вне зависимости от развития скилла, но больше какого-то количества Skill Point'ов ни одна книга уже не даст знания - дальше уже улучшение только практикой.

-----
hit me, nail me, make me god

Отправлено: 4:52 - 4 Янв., 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

Я, кстати, немного ошибался - если исправить в ориг. прошниках флаг ИСП на флаг ИСП НА (это у меня проблемы с клавой), то все вроде тип-топ. О подводном камне в теме о скриптах.

Как народ думает, нужна ли возможность дать читать книги партийцам?

-----
hit me, nail me, make me god

Отправлено: 22:57 - 4 Янв., 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

http://brokenmirror.narod.ru/files/books.rar

Слепил сегодня вечером.

-----
hit me, nail me, make me god

Отправлено: 4:27 - 6 Янв., 2006
Argent
Пользователь

Откуда: МО, г. Красногорск
Регистрация: Дек. 2005

Всего: 44 сообщения

Цитата:

Как народ думает, нужна ли возможность дать читать книги партийцам?


Будет замечательно.

Алан, напиши, пожалуйста, подробные изменения, которые вносит твой мод, а то из предыдущих постов не всё понятно...

Отправлено: 4:55 - 6 Янв., 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

Мод... Оооо... как это круто звучит... Это легкий тупой фикс, который сам не знаю сколько новых багов делает . Кхм... Список изменений... ну ладно:
Код:
scripts\scripts.lst 
scripts\obj_dude.int
proto\items\00000073.pro
proto\items\00000076.pro
proto\items\00000080.pro
proto\items\00000086.pro
proto\items\00000102.pro
text\english\dialog\generic.msg


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

-----
hit me, nail me, make me god

Отправлено: 5:09 - 6 Янв., 2006 | ИСПРАВЛЕНО: Alan Killenger - 6:45 - 6 Янв., 2006
zeeL
Пользователь

Откуда: Киев / Ukraine
Регистрация: Янв. 2006

Всего: 13 сообщений

привет! я тут впервые... больно не бить =)
а зависимости можно ставить насколько разнообразын при чтении ?

как вариант эффект чтения книг может зависеть от:
- % - то что вы обсуждаете
- от уровня (уровень отнимается от степени улучшения навыка через чтение)
- от перков \типа особо одаренным книги не нужны\
- ...

-----
"..vexilla regis prodeunt Inferny" - Данте Алигьери, вечная классика

Отправлено: 13:55 - 22 Янв., 2006
Keha
Пользователь

Регистрация: Янв. 2006

Всего: 31 сообщение

Позвольте вякнуть еще одному новичку, пока еще дилетанту в модинге (мне).
Заранее извините если сморожу какую то глупость.

Мне нравится реалистичность.
Сам подумывал над подобной идеей с книгами.

Если книги не будут складываться в инвентаре стопками, лично по мне большой проблемы в этом не будет.

На счет перековыривания карт, и прочего содержимого всей игры. Да может и не стоит овчинка выделки именно применительно к готовому Falloutу и его модам.

Но если начинаеш писать на движке фола полностью новый сюжет с 0 , то подобные изменения сразу можно будет воткнуть.

На счет реалистичности чтения книг, я бы все же сделал разграничения. Например в реале если вы уже хорошо умеете читать писать то "букварь" вам уже ни как не поможет.

Если делать по реалу - должны быть книги с азами для новичков, которыми скил можно поднять с 0 до какого то новичкового уровня(широко распространены ), книги для экспертов (редко встречающиеся) поднимающие скил при условии что достигнут уровень новичка, с уровня новичка до эксперта, и далее книги для мастеров(очень редкие) помогающие при условии достижения экспертного уровня в умении, поднимающие с экспертных значений скила до мастерских.

Освоение кадой книги можно сделать этапным, с требованием применение освоенного этапа на практике.

Пока только учусь, пытаюсь разобраться со скриптами, но изменение механики книг меня интересуют.
Хочу перескриптить некоторые моменты механики фола на более реалистичные, и уже потом писать на этом свои сюжеты.

Отправлено: 10:40 - 9 Фев., 2006 | ИСПРАВЛЕНО: Keha - 11:13 - 9 Фев., 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

Цитата:
как вариант эффект чтения книг может зависеть от:
- % - то что вы обсуждаете
- от уровня (уровень отнимается от степени улучшения навыка через чтение)
- от перков \типа особо одаренным книги не нужны\
- ...

Как захочу - так и будет зависеть. Как угодно.

Keha
Оно правильно, но: 1) Мод, перепахивающий всю игру никому нафиг не нужен. 2) Делать особо замороченные правила чтения книг поверх уже существующей системы... Кабы делалась новая игра - да, а так... лично я сделал это на уровне фичафикса.

-----
hit me, nail me, make me god

Отправлено: 16:05 - 14 Марта, 2006
iaDUKEia
Пользователь

Откуда: SPB
Регистрация: Апр. 2006

Всего: 1 сообщение

Кто тут говорит что пункт два обойти не получится???
Получитсмя но запары много!
Нужно всеголиш зделать ещё пару прошников
книг которые полезут в другую стопку инвентаоя! Вот! Только зачем это надо????

Отправлено: 7:15 - 13 Апр., 2006
 

Переход по темам
<< Пред. След. >>
Единственная страница этой темы


Powered by Ikonboard 2.1.9 RUS
Modified by RU.Board Team
© 2000 Ikonboard.com