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


Форум TeamX » Тех. поддержка » Скрипты (Все вопросы по скриптингу - сюда)

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 ] Все собщения

 
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
 

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 ] Все собщения


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