|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
Не работает желудок. Там в коде целая куча ошибок. Например, там везде сравниваются указатель и PID . Забей на этот код .
|
Отправлено: 13:08 - 21 Ноября, 2006
|
|
Jordan 63
Пользователь
Откуда: Россия, Самара Регистрация: Июль 2007
Всего: 228 сообщений
|
Я хотел задать характеристики персонажа то есть self через скрипт например все параметры в PID персонажа ставить в ноль а потом скриптом их задавать пример Эти характеристики не задаются, это вообще осуществимо может нужно как то по-другому или это движок, а если движок, то может байтик какой-нибудь поменять set_critter_stat(self_obj, STAT_current_hp, 200); set_critter_stat(self_obj, STAT_st, 10); set_critter_stat(self_obj, STAT_pe, 10); set_critter_stat(self_obj, STAT_en, 10); set_critter_stat(self_obj, STAT_ch, 10); set_critter_stat(self_obj, STAT_iq, 10); set_critter_stat(self_obj, STAT_ag, 10); set_critter_stat(self_obj, STAT_lu, 10); Эти характеристики задать можно critter_mod_skill(self_obj, SKILL_SMALL_GUNS, 100); critter_mod_skill(self_obj, SKILL_BIG_GUNS, 100); critter_mod_skill(self_obj, SKILL_ENERGY_WEAPONS, 100); critter_mod_skill(self_obj, SKILL_UNARMED_COMBAT, 100); critter_mod_skill(self_obj, SKILL_MELEE, 100); critter_mod_skill(self_obj, SKILL_THROWING, 100); critter_mod_skill(self_obj, SKILL_FIRST_AID, 100); critter_mod_skill(self_obj, SKILL_DOCTOR, 100); critter_mod_skill(self_obj, SKILL_SNEAK, 100); critter_mod_skill(self_obj, SKILL_LOCKPICK, 100); critter_mod_skill(self_obj, SKILL_STEAL, 100); critter_mod_skill(self_obj, SKILL_TRAPS, 100); critter_mod_skill(self_obj, SKILL_SCIENCE, 100); critter_mod_skill(self_obj, SKILL_REPAIR, 100); critter_mod_skill(self_obj, SKILL_CONVERSANT, 100); critter_mod_skill(self_obj, SKILL_BARTER, 100); critter_mod_skill(self_obj, SKILL_GAMBLING, 100); critter_mod_skill(self_obj, SKILL_OUTDOORSMAN, 100);
|
Отправлено: 20:13 - 4 Июля, 2007
|
|
Alchemist
Модератор
Откуда: Арзамас-17 Регистрация: Дек. 2004
Всего: 298 сообщений
|
Базовые характеристики явно задать нельзя. Но для каждой из них можно установить аддитивный модификатор, который может принимать и отрицательные значения. Попытку выхода результирующего значения за пределы 1...10 ограничит движок.
----- /// What'ya be sain'? Vault 100+? We need nothing o'that!
|
Отправлено: 21:16 - 4 Июля, 2007
|
|
Jordan 63
Пользователь
Откуда: Россия, Самара Регистрация: Июль 2007
Всего: 228 сообщений
|
Alchemist Вы можете показать пример как установить аддитивный модификатор?
|
Отправлено: 21:26 - 4 Июля, 2007
|
|
Alchemist
Модератор
Откуда: Арзамас-17 Регистрация: Дек. 2004
Всего: 298 сообщений
|
Код:
variable adj; adj := -1; set_critter_stat(self_obj, STAT_pe, adj);
Уменьшить значение Perception на единицу.
----- /// What'ya be sain'? Vault 100+? We need nothing o'that!
|
Отправлено: 14:20 - 5 Июля, 2007
|
|
Jordan 63
Пользователь
Откуда: Россия, Самара Регистрация: Июль 2007
Всего: 228 сообщений
|
Alchemist variable adj; adj := -1; set_critter_stat(self_obj, STAT_pe, adj); Сделал все так же но stat не увеличивается и не уменьшается (Добавление от 15:33 - 5 Июля, 2007.) Кто нибудь знает как одет броню персонажа через скрипт Не заменить вид персонажа а именно одеть Вот как я делал но что то не получается wield_obj((critter_inven_obj(self_obj, INVEN_TYPE_WORN)==create_object(PID_METAL_ARMOR, tile_num(self_obj), elevation(self_obj))); wield_obj((critter_inven_obj(self_obj, INVEN_TYPE_WORN)==create_object(PID_METAL_ARMOR, 0, 0)); И даже так add_obj_to_inven(self_obj, (critter_inven_obj(self_obj, INVEN_TYPE_WORN)==create_object(PID_METAL_ARMOR, 0, 0))) add_obj_to_inven(self_obj, (critter_inven_obj(self_obj, INVEN_TYPE_WORN)==create_object(PID_METAL_ARMOR, tile_num(self_obj), elevation(self_obj))));
|
Отправлено: 15:14 - 5 Июля, 2007
|
|
Alchemist
Модератор
Откуда: Арзамас-17 Регистрация: Дек. 2004
Всего: 298 сообщений
|
Цитата: Я декомпелирую скрипты fallout1
Надо было вот с этого начинать. В F1 базовыми характеристиками действительно заведует движок и только движок. В F2 же этот код вполне работает. -- Update --
Код:
variable armour; armour := create_object(PID_METAL_ARMOR, 0, 0); add_obj_to_inven(self_obj, armour); wield_obj(obj_carrying_pid_obj(self_obj, PID_METAL_ARMOR));
Со скриптами -- детский сад. Твои примеры сводятся к wield_obj(false) и add_obj_to_inven(self_obj, false). Если не понимаешь синтаксиса языка, посмотри для начала, как это сделано в исходниках. Благо, доступ к ним имеется, да и декомпилятор в помощь.
----- /// What'ya be sain'? Vault 100+? We need nothing o'that!
|
Отправлено: 16:57 - 5 Июля, 2007 | ИСПРАВЛЕНО: Alchemist - 18:46 - 5 Июля, 2007
|
|
Jordan 63
Пользователь
Откуда: Россия, Самара Регистрация: Июль 2007
Всего: 228 сообщений
|
Alchemist > Надо было вот с этого начинать. В F1 базовыми характеристиками действительно заведует движок и только движок. В F2 же этот код вполне работает. variable adj; adj := -1; set_critter_stat(self_obj, STAT_pe, adj); Я это делаю в fallout2 но ничего не изменяет в map_enter_p_proc variable adj; adj := -1; set_critter_stat(self_obj, STAT_st, adj); Сила персонажа critter_p_proc в proto файле персонажа сила = 8 Чтобы проверить изменяет ли он или нет if (get_critter_stat(self_obj, STAT_st )==8) then float_msg(self_obj,"сила равна 8", 3); else float_msg(self_obj,"сила неравна 8", 3); Он выдает это float_msg(self_obj,"сила равна 8", 3); > детский сад. Эх, давненько это было > Если не понимаешь синтаксиса языка, посмотри для начала, как это сделано в исходниках Ну что ж посмотрю
|
Отправлено: 19:41 - 5 Июля, 2007
|
|
Alchemist
Модератор
Откуда: Арзамас-17 Регистрация: Дек. 2004
Всего: 298 сообщений
|
Цитата: Я это делаю в fallout2 но ничего не изменяет в map_enter_p_proc
Для криттера этот обработчик может и не вызываться. Выбери другой. Это раз. Данная операция вообще имеет смысл только для dude_obj. Это два. Контролировать значения параметров надёжнее всего через окошко персонажа. Это три. Плохой, но рабочий пример обращения с базовой характеристикой персонажа можно посмотреть в скрипте Pariah Dog. Только обрати внимание, что их там два: один для локации, другой -- для собаки. Это четыре.
----- /// What'ya be sain'? Vault 100+? We need nothing o'that!
|
Отправлено: 20:19 - 5 Июля, 2007
|
|
Jordan 63
Пользователь
Откуда: Россия, Самара Регистрация: Июль 2007
Всего: 228 сообщений
|
Выяснил что self_obj через скрипты нельзя повышать или понижать характеристики а dude_obj можно (Добавление от 22:14 - 5 Июля, 2007.) Ну и последний вопрос как сделать так чтобы единицы здоровья больше 100 не повышались. Пробывал так while (get_critter_stat(dude_obj, STAT_max_hp) > 100) do begin set_critter_stat(dude_obj, STAT_max_hp, - (1)); end не получилось но зато Windiws XP висанул а писали что никогда не виснет если хотите это проверить перепишите в скрипт dude_obj в проседуру critter_p_proc еще пробывал так if (get_critter_stat(dude_obj, STAT_current_hp) > 100) then begin set_critter_stat(dude_obj, STAT_current_hp ,100); end и так if (get_critter_stat(dude_obj, STAT_max_hp) > 100) then begin set_critter_stat(dude_obj, STAT_max_hp,100); end Так вот это реализуемо? Может байтик поменять в fallout2.exe
|
Отправлено: 21:11 - 5 Июля, 2007
|
|
|
|