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


Форум TeamX » Проекты » Идея мода со жратвой (Может кому понравится)

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 ] Все собщения

 
DREDDus
Пользователь

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

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

Помнится в Fallout первом была такая приблуда: умер от жажды - не взял с собой фляжек. Это была версия от какой-то компании, не помню какой. Точно не Фаргус.

Ещё сходил я один раз в свечение, наглотался радиации и умер по дороге домой.  Сначала не понял, почему. Потом дошло, что от радиации.

Разве нельзя сделать таково же с едой? И вообще, зачем нужны всякие Игуаны? Не для еды - ли?

-----
Мы все - жители 13-го

Отправлено: 19:52 - 30 Янв., 2005
tracktor
Пользователь

Откуда: Москва
Регистрация: Март 2004

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

Цитата:
Quote: from DREDDus on 19:52 - 30 Янв., 2005
Помнится в Fallout первом была такая приблуда: умер от жажды - не взял с собой фляжек. Это была версия от какой-то компании, не помню какой. Точно не Фаргус.

Ещё сходил я один раз в свечение, наглотался радиации и умер по дороге домой.  Сначала не понял, почему. Потом дошло, что от радиации.

Это движок... Исходников же пока ни у кого нет.
Цитата:

Разве нельзя сделать таково же с едой? И вообще, зачем нужны всякие Игуаны? Не для еды - ли?

А жратва немного здоровье повышает

Отправлено: 22:54 - 30 Янв., 2005
DREDDus
Пользователь

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

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

Кроме фруктов, ни за какой больше едой не замечал такого.

-----
Мы все - жители 13-го

Отправлено: 20:03 - 2 Фев., 2005
Aman
Пользователь

Откуда: Киев
Регистрация: Апр. 2005

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

Вот решил пополнить эту темку на предмет "stomach'a" в obj_dude.int(SSL). Подробностей по этому делу нигде не нашёл, а так может кому-то будет интересно.
Ковырять "желудок" гемор страшный, но вот что получается:

"Желудок" имеет наполненность от 0 до 100 (на maximum влияет endurance). Значение наполненности хранит 104 гвара, при старте принимает значение 75, что при беглом взгляде видно в command.h. Но для того чтоб это дело хоть как-то начало работать, надо подкорректировать макрос в command.h, меняем
#define dude_eat_food(amt)  inc_global_var(GVAR_DUDE_STOMACH, amt);
// такой кажись оригинал ?
на #define dude_eat_food(amt)  inc_global_var_amt(GVAR_DUDE_STOMACH, amt);

Тобиш в оригинале в "желудок" всё время добавлялось 1 с ограничением не больше 100 и дальнейшие "фишки" по этому делу не имели смысла. Едем дальше - стартанули, получили свои начальные 75 пищи, тут вроде всё нормально. Теперь procedure map_update_p_proc каждые 3 мин отнимает от наполненности какое-то число (за час 20), то есть за 4-5 часов dude голодный (вроде с алгоритмом всё нормально, но таки есть где-то ошибка - смотреть ниже).
Чтоб наполнять желудок исправим макросы
#define pid_is_drink_pid(x)  ((obj_pid(x)==PID_NUKA_COLA) or (obj_pid(x)==PID_BEER)... ну и так дальше для pid_is...

Теперь паримся с procedure use_obj_on_p_proc: тут такой алгоритм - если НА dude было использована скажем, бутылка пива, то в "желудок" добавляется +5. Теперь начинаются разные но: чтоб добавить +5, надо положить сабж в слот, кликать на слот, потом на себя (тобиш из рюкзака юзать не выйдет - в оригинале нет такого алгоритма, здесь надо как-то завязать на use_p_proc). Второе "но": сабж должен быть юзабельный, что катит не для всех предметов пищи (например BOX_OF_NOODLES - макароны). Надо править PRO. Тут у меня возникала проблема: при достижении 104й гвары 0 (dude голодный) макрос dude_eat_food как-то неправильно работал - ничего не прибавлялось, при значении > 0 всё нормально , с этим я обломался пока разбираться, в общем это не проблема.

 На этом оригинальный скрипт заканчивается и, увы, нет никакого алгоритма что-то делающего при голоде, НО имеем нереализованные макросы: dude_stomach_full и dude_stomach_hungry они просто возвращают значения TRUE, FALSE проверяя процентную наполненность желудка.
К примеру, я вставлял в map_update_p_proc такое: if dude_stomach_full then display_mstr(170); if dude_stomach_hungry then display_mstr(175);
и в obj_dude.msg добавляем к примеру {170}{}{Вы сыты и довольны жизнью.} {175}{}{Вы голодны - надо есть, а то долго не протянешь!}. Делаем, запускаем, получаем через каждые 25 секунд раздражающие надписи . Это конечно грубый набросок.

Два макроса в command.h (касательно "желудка" ) вообще нигде не используются, я тоже не знаю куда их можно приспособить (dude_can_eat(x) и dude_can_eat_food(amt) - одинаковые). Остальные (типа pid_is_medium_meal(x)) можно задействовать наклепав парочку новых ПРОшэк, но это не критично. В игре макрос(ы) "желудка" есть ещё только в скрипте dcmom.int (ресторан-мамы).

Можно попробовать добавить уменьшение жизни, характеристик при голоде. Вот сейчас возникла "сумашедшая" идея по поводу управления здоровьем чуза при движении по warldmap'у: введём алгоритм проверяющий наличие еды в инвентаре при ВЫХОДЕ "в мир", сделаем серию ПРОшэк-наркотиков которыми алгоритм соответстенно пичкал бы чуза на выходе (то есть динамически при выходе создаём энное кол-во наркотиков и use_obj_on_obj). Действия наркотиков ведь обрабатываются при востлэндиньи ? В ПРОшках указывается время различных модификаций характеристик. По-моему должно получится.

Хотелось бы услышить комментарии, особенно по идее с наркотиками-регуляторами и завязке сабжей на use_p_proc. Пробные тесты жизни с едой в фоле показались мне интересными.

Отправлено: 1:13 - 26 Апр., 2005
Wasteland Ghost
Маленькое Злое Привидение

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

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

А чего тут комментировать... Вот ошибка:
pid_is_drink_pid(obj_being_used_with)
obj_being_used_with возвращает указатель, а pid_is_drink_pid хочет ПИД. Ещё один затык - невозможно контролировать юзание предметов из инвентаря. Факты известные, сто раз обсуждались.

Отправлено: 10:34 - 26 Апр., 2005
Aman
Пользователь

Откуда: Киев
Регистрация: Апр. 2005

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

С PID заменив макрос на
#define pid_is_drink_pid(x)   (obj_pid(x)==PID_NUKA_COLA)
проблем нет. После препроцессора получаем  obj_pid(obj_being_used_with)==(106).

Нашёл причину ошибки возникавшей у меня (упорно державшаяся на 0 гвара GVAR_DUDE_STOMACH). В оригинале очки пищи отбирались каждый раз при срабатывании map_update_p_proc. Стоило начать играть, выйти в деревню, отдохнуть с помощью будильника и эта процедура вызывается очень часто (юзнул что-нибудь, сразу map_update_p_proc), чтобы то что есть в оригинале, работало надо:

procedure map_update_p_proc begin
variable x;
variable days_since_exposed; //вара MUTATION CODE
 // digest food
 if (game_time - local_var(LVAR_Last_Digest_Time) > (ONE_GAME_MINUTE * 3)) then begin
 x := amt_food_digested_in_time(local_var(LVAR_Last_Digest_Time));
 dude_eat_food(-x);
 set_local_var(LVAR_Last_Digest_Time,game_time); // будет работать лет 7
 end //дальше идёт MUTATION CODE

 Теперь всё что было задействано в оригинале у меня работает (еда из СЛОТА при отсутствии эффектов при голоде).

Вопрос немного не по теме: use_p_proc ну никак нельзя использовать для еды из инвентаря ??

Отправлено: 1:11 - 28 Апр., 2005
Wasteland Ghost
Маленькое Злое Привидение

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

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

2Aman
Пока проблема не решена.

ЗЫ Все технические трудности лучше обсуждать в Техподдержке.

Отправлено: 11:12 - 28 Апр., 2005
 

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 ] Все собщения


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