|
Ray
Модератор
Откуда: Донецк,Украина Регистрация: Янв. 2004
Всего: 746 сообщений
|
Цитата: ObjectPtr self_obj - возвращает указатель на объект, в скрипте которого выполняется ObjectPtr dude_obj - возвращает указатель на игрока
Чиатй доку и внимательно смотри пост Alchemist'а.
Цитата: не получилось но зато Windiws XP висанул а писали что никогда не виснет если хотите это проверить перепишите в скрипт dude_obj в проседуру critter_p_proc
У меня мощности компьютера вполне хватает, чтобы закрыть "подвисший" процесс. Это раз. Обработчик critter_p_proc выполняется всегда, причём несколько раз в секунду (хм... 10 раз? по тикам что-ли...) Отсюда такие результаты. Это два (заразно, блин )
Цитата: Может байтик поменять в fallout2.exe
Блин. Что все так бросаются этой фразой. Хоть бы раз посмотрели на fallout2.exe в дизассемблереном виде и попытались там что-то найти. А также попробывали повозиться с отладчиками или REC Studio...
----- Не бывает невозможных задач – бывает мало времени.
|
Отправлено: 23:37 - 5 Июля, 2007 | ИСПРАВЛЕНО: Ray - 22:39 - 5 Июля, 2007
|
|
Jordan 63
Пользователь
Откуда: Россия, Самара Регистрация: Июль 2007
Всего: 228 сообщений
|
Ray > Чиатй доку и внимательно смотри пост Alchemist'а. Доку читал и пост перечитал то есть нельзя получается > Блин. Что все так бросаются этой фразой. Хоть бы раз посмотрели на fallout2.exe в дизассемблереном Смотрел ниче не понял очень много цифр > виде и попытались там что-то найти. А также попробывали повозиться с отладчиками или REC Studio... Не я в этом полный ноль так я и задал этот вопрос знающим на него ответ Так можно или нет?
|
Отправлено: 0:04 - 6 Июля, 2007
|
|
Spy
Реалист
Откуда: Все там будем... Регистрация: Май 2005
Всего: 374 сообщения
|
Цитата: Так можно или нет?
Конечно можно! Только байтиком тут, боюсь, необойдётся. Чтобы исправить что-то в движке как следует (т.е. так, чтобы потом не было глюков), нужно обладать недюжим интеллектом, памятью, кучей времени и страстным желанием. Практика показывает, что сочетается всё это в одном человеке чрезвычайно редко. Так что я предложу тебе забыть идею про "байтик в движке".
----- Хочешь, чтобы что-то было сделано хорошо - сделай сам.
|
Отправлено: 2:02 - 6 Июля, 2007 | ИСПРАВЛЕНО: Spy - 2:05 - 6 Июля, 2007
|
|
Jordan 63
Пользователь
Откуда: Россия, Самара Регистрация: Июль 2007
Всего: 228 сообщений
|
Spy > Так что я предложу тебе забыть идею про "байтик в движке". Прям как в анекдоте - Хорошее пальто было - Да (печально) - Ну и хрен сним to All Еще пара вопросов вы уж меня не rtfm вопросы у меня не банальные то есть не такие как скомпилировать скрипт или что такое макрос Мне в процедуре combat_p_proc зделать проверку если на self было использовано оружие то есть ударили или выстрелили пример если на self было использовано оружие отравленное копье то повысить отравление self if (weapon_dmg_type(DMG_normal_dam == obj_pid(PID_SPEAR))) then critter_dmg(dude_obj, 50, DMG_normal_dam); Но тут нужно через какойто параметр fixed_param И еще Мне нужно чтобы чуз с одной карты скриптово появился скриптово на другой Пример в наваро но на 2 elevation load_map(Имя_карты,параметр) load_map("Navarro",0); но он загрузит первый ELEVATION dude окажется на бензакалонке а мне нужен 2 или 3 И вот вопросик который я давно хочу задать можно ли сделать проверку у партийуев да у любого персонажа маркус в процедуре combat_p_proc если в руках пулемет и он стреляет в цель а рядом есть сопартийцы 1 вариант убрать оружие и взять другое 2 вариант атаковать другого 3 вариант вывести float и изменить значение GVAR выдает сообщение разайдись GVAR меняется а в скриптах партийцев Если гвара такая то или атаковать других или атайти от цели на 5 tile А то если у него в руках пулемет э таж смерть для всей команды Жмем на dude выбираем бинокль создается окошко как в Mrfixit Там команды если в партии есть маркус то есть команды для маркуса если в партии то тото.... И еще есть команды для всех Пример именно в бою Разойдись или отступаем и все партийцы убегают с карты Или приказ ленни подлечи вика и ленни бежит и лечит Так вот это возможно реализовать я буду пробывать но просто ответье пример Это нельзя реализоватьююю а за это отвечает движок или вот это можно и сделать Кто нибудь может скинуть оригинальные текста fallout1 папку game Ну очень надо
|
Отправлено: 10:35 - 6 Июля, 2007 | ИСПРАВЛЕНО: Jordan 63 - 10:38 - 6 Июля, 2007
|
|
binyan
Пользователь
Откуда: Israel Регистрация: Март 2005
Всего: 292 сообщения
|
Возможно все, дерзай. У меня, когда я писал партийцев, кроме всего прочего, была идея реализации г.и. для командования. Но не хватило времени. Так что доки в руки и вперед.
----- ...выражая озадаченность, граничащую с озабоченностью..
|
Отправлено: 14:55 - 6 Июля, 2007
|
|
Jordan 63
Пользователь
Откуда: Россия, Самара Регистрация: Июль 2007
Всего: 228 сообщений
|
Еще 40 вопросов от Jordan 63 ) Хотел реализовать если у персонажа клинта в руке пулемет и дистанция то есть если dude стоит рядом с врагом примерно <= 3 tile тогда клинт убирает оружие и идет в рукопашку. Без дистанции все отлично работает а вот с дистанцией проблемы fallout2 вылетает я знаю это мой косяк а вот примеры что не так procedure combat_p_proc begin if (critter_inven_obj(self_obj,INVEN_TYPE_RIGHT_HAND)!=0) then begin if (obj_carrying_pid_obj(self_obj, PID_MINIGUN)) а вот примеры and (tile_distance(tile_num(dude_obj), tile_num(obj_pid(PID_DOG)))<=3) then and (tile_distance_objs((obj_pid(PID_DOG)), dude_obj) <=3) then //inven_unwield(self_obj); rm_obj_from_inven(self_obj, obj_carrying_pid_obj(self_obj, PID_MINIGUN)); end end А вот скрипт http://jordan631.narod.ru/party.rar копируйте в папку data и начинайте новую игру
|
Отправлено: 18:15 - 6 Июля, 2007 | ИСПРАВЛЕНО: Jordan 63 - 18:31 - 6 Июля, 2007
|
|
Jordan 63
Пользователь
Откуда: Россия, Самара Регистрация: Июль 2007
Всего: 228 сообщений
|
Как организовать проверку if dude находтится на карте мира в такой то координате но меньше чем в такой то then Пример который не сомпилится ругается что ошибка then if ((worldmap_xpos == 11) and (worldmap_ypos == 9)) > and < ((worldmap_xpos == 493) and (worldmap_ypos == 349)) then
|
Отправлено: 13:40 - 8 Июля, 2007
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
Я бы на месте компилера ещё не так ругалась . Что это за конструкция такая?
Цитата: > and <
Большая просьба грамотно, чётко и полно формулировать вопросы. Если не можешь сформулировать свой вопрос, это означает, что ты сам пока не понимаешь, что тебе нужно.
|
Отправлено: 20:16 - 9 Июля, 2007
|
|
Akkella
Пользователь Регистрация: Авг. 2006
Всего: 175 сообщений
|
Возник такой вопрос. Привязал скрипт к оружию (возьмем просто для примера нож) Одна локальная переменная содержит некое число (не проблема) В скрипте дуда при определенных условиях в процедуре combat записывается в одну глобальную переменную флаг, а во вторую указатель. В скрипте оружия при обновление карты во время боевого режима (по идее несколько раз за ход) идет проверка на эти гвары и изменяется локальная переменная. Вернее должна менятся,но почему-то процедура map_update_p_proc в скрипте предмета не работает. Сам предмет находится в активной руке дуда. Есть ли данные или опыт по этому вопросу? На всякий случай код: procedure start; procedure map_update_p_proc; procedure start begin end procedure map_update_p_proc begin display_msg(message_str(1, 100)); if global_var(775)>0 and global_var(776)==self_obj then begin set_local_var(0, local_var(0)+1); set_global_var(755, 0); set_global_var(776, 0); display_msg(message_str(1, 859)); if local_var(0)==1 and random(local_var(0), 10)==local_var(0) then begin set_local_var(0, 0); display_msg(message_str(1, 850)); destroy_object(self_obj); end end end
|
Отправлено: 20:55 - 9 Июля, 2007 | ИСПРАВЛЕНО: Akkella - 22:49 - 9 Июля, 2007
|
|
Dar
Пользователь
Откуда: Воронеж Регистрация: Дек. 2004
Всего: 289 сообщений
|
Akkella global_var(776)==self_obj Это нормально ? Может тут процесс прерывается? Глобальные вары, там всегда работают. Просто вары тоже variable eklmn тоже. Jordan 63
Цитата: И еще есть команды для всех Пример именно в бою Разойдись или отступаем и все партийцы убегают с карты
anim(self_obj, ANIM_jump_begin, LVar2); jump_begin не использована в оригинале и сюда можно встроить свою анимацию, а затем ее скриптово проигрывать. "Рисуещь" анимацию под джамп(прыжок) в ручную, в смысле перииначиваещь обычную ходьбы/бега (не помню почему она так просто не подходит)(у меня где-то на Анклавера есть) и создаещь иллюзию перемешения, т.е. телепортирующь критера вручную-скриптово, а затем проигрываещь анимацию скриптово, хм, наоборот проигрываещь свою анимацию и затем телепортируещь, подобрав клетку. Но это коряво будет выглядеть в большей или меньшей степени так как синхронизировать их до идеала тоже самое, что подпрыгнуть и схватить пролетающюю мимо пулю - я не смог. Нормально внедряется только команда "Стоять и Недышать" Это предел: (если я код не попутал) procedure combat_p_proc begin /* if (fixed_param == 3) then begin float_msg(self_obj, "Sir!!! fixed_param = 3", 6); reg_anim_clear(self_obj); end If (fixed_param == 5) then begin float_msg(self_obj, "Sir!!! fixed_param = 5", 6); end */ // ждать приказ. if global_var(GVAR_WARCRAFT) == 1 then begin script_overrides; critter_injure( self_obj,DAM_KNOCKED_DOWN); anim(self_obj,ANIMATE_ROTATION,rotation_to_tile(tile_num(self_obj),tile_num(dude_obj))); anim(self_obj, ANIM_stand, rotation_to_tile(tile_num(self_obj),tile_num(dude_obj))); critter_injure( self_obj,DAM_KNOCKED_DOWN); //good //float_msg(self_obj, "Ok, I'm stand, Sir, Ok", 6); end //действовать самостоятельно. if global_var(GVAR_WARCRAFT) == 2 then begin critter_injure( self_obj,DAM_KNOCKED_OUT); //anim(self_obj, ANIM_stand, rotation_to_tile(tile_num(self_obj),tile_num(dude_obj))); critter_injure( self_obj,DAM_KNOCKED_OUT); float_msg(self_obj, "UYUYOYUrrrr, Sir", 6); end // исполнять приказ: Ко мне. if global_var(GVAR_WARCRAFT) == 3 then begin script_overrides; critter_injure( self_obj,DAM_KNOCKED_DOWN); LVar2 := rotation_to_tile(tile_num(self_obj),tile_num(dude_obj)); //float_msg(self_obj, "Sir!!! obj_get_rot(self_obj)=" + LVar2, 6); If (fixed_param == 4) then begin anim(self_obj, ANIMATE_ROTATION, rotation_to_tile(tile_num(self_obj),tile_num(dude_obj))); move_to(self_obj, tile_num_in_direction(tile_num(self_obj),LVar2,5), elevation(dude_obj)); anim(self_obj, ANIM_jump_begin, LVar2); set_global_var(GVAR_WARCRAFT,1); while (time_control_of_anim_combat <=1000) do begin time_control_of_anim_combat:= (time_control_of_anim_combat +1); if time_control_of_anim_combat == 900 then anim(self_obj,ANIM_swing_anim, LVar2); end end critter_injure( self_obj,DAM_KNOCKED_DOWN); end end Зато для раздачи команд можно использовать интерфейсные команды. ps Обработчик critter_p_proc срабатывает не менее ста раз в реальную секунду. ЕМНИП.
|
Отправлено: 0:26 - 10 Июля, 2007
|
|
|
|