|
Ray
Модератор
Откуда: Донецк,Украина Регистрация: Янв. 2004
Всего: 746 сообщений
|
Ты прав Я это вспомнил только через 10 мин. После того как пост отправил. Глюконуло меня малость
----- Не бывает невозможных задач – бывает мало времени.
|
Отправлено: 23:49 - 31 Янв., 2006
|
|
Dar
Пользователь
Откуда: Воронеж Регистрация: Дек. 2004
Всего: 289 сообщений
|
Смешно, но ответы на свои вопросы я тоже через десять минут нашел - тоже надо отдыхать. мою. . //wield_obj_critter(dude_obj,obj_carrying_pid_obj(dude_obj, {pid_Item}));
|
Отправлено: 9:38 - 1 Фев., 2006
|
|
Lesnik7
Пользователь Регистрация: Февр. 2006
Всего: 6 сообщений
|
Я конечно может быть тупойи нехрена не понимаю ,но у меня следующии вопрос. Написал я простой скрипт (хелоу ворд), откомпилировал ( если расширение инт - это откомпилированый скрипт?) засунул в маппер, открываю его и какбыло сказанно, жму s e , выбираю, и.... нет его в выпадающем списке.... что делать, а? где я мог допустить ошибку? В следующий раз прогоняй текст сообщения через Word или что-нибудь в этом духе. Читать же невозможно! WG
|
Отправлено: 15:41 - 6 Фев., 2006
|
|
Inviolatum
Пользователь Регистрация: Янв. 2006
Всего: 14 сообщений
|
Скорее всего ты не прописал скрипт в scripts.lst Как это сделать и зачем смотри тут и тут
|
Отправлено: 16:57 - 6 Фев., 2006
|
|
Keha
Пользователь Регистрация: Янв. 2006
Всего: 31 сообщение
|
Если можно пожалуйста разъясните тут что можно о процедуре combat_p_proc В FScript-HOWTO она не освещена, а из того что есть о ней в доке, понял мало: combat_p_proc - выполняется во время боя. Номер конкретного события, вызвавшего функцию, передаётся в качестве параметра fixed_param: fixed_param = COMBAT_SUBTYPE_WEAPON_USED (1) - было использовано оружие fixed_param = COMBAT_SUBTYPE_HIT_SUCCEEDED (2) - успешное попадание fixed_param = COMBAT_SUBTYPE_SEQUENCING (3) - проверяется боевая последовательность fixed_param = COMBAT_SUBTYPE_TURN (4) - начало хода fixed_param = COMBAT_SUBTYPE_NONCOM_TURN (5) - неизвестно (используется у любимцев Мельхиора, возможно, означает ход игрока) Как понял доку процедура всплывает при 1) было использовано оружие, 2)успешное попадание, 3) проверяется боевая последовательность,4) начало хода,... Как из этой процедуры узнать этот fixed_param? Точнее можно ли из combat_p_proc узнать какой боевой скил был использован при а) атаке , б) нанесении повреждения? (интересует атака и нанесение повреждения со стороны obj_dude по врагу)
|
Отправлено: 19:48 - 9 Фев., 2006 | ИСПРАВЛЕНО: Keha - 19:58 - 9 Фев., 2006
|
|
Dar
Пользователь
Откуда: Воронеж Регистрация: Дек. 2004
Всего: 289 сообщений
|
Keha Туда можно дофига насовать, правда не все будет работать анимации например не будут вроде как они во время боя совсем никак. Вот тебе частный случай: procedure combat_p_proc begin variable tmp_armor; tmp_armor:=critter_inven_obj(dude_obj, INVEN_TYPE_WORN); add_timer_event(self_obj, 1, 2); if (fixed_param == 4) or (fixed_param == 3) then begin if (obj_is_carrying_obj_pid(self_obj, mech_armor_pid) == 1 ) then begin wield_obj_critter(dude_obj, obj_carrying_pid_obj(dude_obj, mech_armor_pid)); display_msg("Bot set brain control"); end if (obj_is_carrying_obj_pid(self_obj, Android_armor_pid) == 1 ) then begin wield_obj_critter(dude_obj, obj_carrying_pid_obj(dude_obj, Android_armor_pid)); display_msg("Bot set brain control"); end if obj_pid(tmp_armor)== mech_armor_pid then begin metarule3(107, self_obj, 16777282, 0); end if obj_pid(tmp_armor)== Android_armor_pid then begin metarule3(107, self_obj, 16777336, 0); end end end
|
Отправлено: 22:12 - 9 Фев., 2006 | ИСПРАВЛЕНО: Dar - 22:14 - 9 Фев., 2006
|
|
Keha
Пользователь Регистрация: Янв. 2006
Всего: 31 сообщение
|
Большое спасибо. Понял правдо в примере не все: procedure combat_p_proc begin присвоение перем. tmp_armor указателя одетой на чузе брони. variable tmp_armor:=critter_inven_obj(dude_obj, INVEN_TYPE_WORN); добавить событие по таймеру (носителю скрипта, задержка=1тик, инфо=2) add_timer_event(self_obj, 1, 2); Если ф_п=4 или 3 то if (fixed_param == 4) or (fixed_param == 3) then begin если количество мех_арморов в инвентаре носителя скрипта = 1 то if (obj_is_carrying_obj_pid(self_obj, mech_armor_pid) == 1 ) then begin Чюз экипируется в эту мех_арморину wield_obj_critter(dude_obj, obj_carrying_pid_obj(dude_obj, mech_armor_pid)); написать: "Бот установил майнд контрол" - Это что арморина гипнознула чюза заставив его одется в нее  ? display_msg("Bot set brain control"; end если количество андроид_арморов в инвентаре владельца скрипта = 1 то if (obj_is_carrying_obj_pid(self_obj, Android_armor_pid) == 1 ) then begin То Чюз экипируется в эту арморину wield_obj_critter(dude_obj, obj_carrying_pid_obj(dude_obj, Android_armor_pid)); написать: "Ктото влип?" display_msg("Bot set brain control"; end Если мех армор была изначально надета то If obj_pid(tmp_armor)== mech_armor_pid then begin metarule3(107, self_obj, 16777282, 0); meta3_switch = METARULE3_ART_SET_BASE_FID_NUM (107), владелец скрипта, FID=16777282, meta3_par = 0: изменить базовый номер FID (идентификатора фрейма) Изменить базовый идентификатор фрайма? хмм? Здесь не понял что делается? заменяется картинка у критера? end if obj_pid(tmp_armor)== Android_armor_pid then begin metarule3(107, self_obj, 16777336, 0); end end end В целом не уверен что понял весь скрипт. О том что тут делает metarule3 у меня только разные предположения. В части скрипта используется указатель dude_obj, а в части self_obj,. Это кусок для скрипта Obj_dude(Чуза)? Или любого другого критера? Если Чуза то понятно. Но зачем тогда указатель self_obj? Не уверен правильно ли понимаю как работает событие по таймеру. Насколько понимаю все что стоит в примере после add_timer_event это то что должно произойти через задержку в 1тик? Те каким то событием инициируется и стартует процедура combat_p_proc, сразу же запоминается указатель надетой на чюзе брони после чего идет задержка в 1тик, и только после этого выполняется все остальное? так?
|
Отправлено: 15:05 - 10 Фев., 2006
|
|
binyan
Пользователь
Откуда: Israel Регистрация: Март 2005
Всего: 292 сообщения
|
Цитата: В целом не уверен что понял весь скрипт. О том что тут делает metarule3 у меня только разные предположения. В части скрипта используется указатель dude_obj, а в части self_obj,. Это кусок для скрипта Obj_dude(Чуза)? Или любого другого критера?
1. У metalure есть несколько функций, по моему, но в данном случае она меняет ФИД - т.е. внешний вид, анимацию, называй как хочешь. 2. Тут я тебя не понял...Ты ж сам выше ответил. self_obj - это указатель на носителя скрипта dude_obj - указатель на чуза.
----- ...выражая озадаченность, граничащую с озабоченностью..
|
Отправлено: 23:11 - 10 Фев., 2006
|
|
Dar
Пользователь
Откуда: Воронеж Регистрация: Дек. 2004
Всего: 289 сообщений
|
Да это скрипт дюда. self_obj было лень испаравлять - разницы то никакой для этого скрипта.
Цитата: "Бот установил майнд контрол" - Это что арморина гипнознула чюза заставив его одется в нее  ?
Мечта такая была у многих сделать новую расу сделать игрока мутантом и ли гулом например и еще многие хотели сделать базу со злыми роботами (2-е сюжетно у меня по другому - не суть важно короче.) из этого появилось а не сделать игрока Андроидом. И я поковырявшись в Mynah'х - скриптах мечвариора стал эксперементировать на предмет неснимаемой брони. Теперь она почти не снимается. :-/ Можешь заменить mech_armor_pid на пид обыкновенной брони, убить add_timer_event(self_obj, 1, 2); , исправить фиды на соответственные и загнать это в скрипт дюда и посмотреть что получится. >>Изменить базовый идентификатор фрайма? хмм? >>Здесь не понял что делается? заменяется картинка >>у критера? Так работает надевание брони на напарниках и на дюде если на текуший момент воспроизводится не нулевая анимация. Например игрок стоит и держит оружие в руках если его экипировать не изменяя фида то он так и будет с тем фидом который двиг определил пока его не заставищь(это не точно) чего нибудь сделать. >>добавить событие по таймеру (носителю скрипта, >>задержка=1тик, инфо=2) >>add_timer_event(self_obj, 1, 2); Это вызов procedure timed_event_p_proc параллельно. К идушим ниже в рамках сомбат проки fixed_param не относится. Мне нужно просто что бы дюд был всегда одет постоянно и снять с себя броню не мог поэтому у меня экиперовать и т.п. напихано почти вовсех процедурах (в которые это имело смысл засовывать).
Цитата: Не уверен правильно ли понимаю как работает событие по таймеру [и далее].
Начался бой - произошла усилием двига инициация сомбат проки после того как у тебя кончились актион поинты(правда кто нибудь может успеть походить еще это я еще не выяснил точно), выполнилась сомбат прока целиком Начала работать procedure timed_event_p_proc спустя один тик - меньше нельзя повиснет комп :-\ там тоже самое- т.е "экипировать". на втором и третьем и т.п ходах timed_event_p_proc уже будет работать на первом не факт. Выполнятся с сомбат прокой они будут обе. Если чего нибудь пропустил переспрашивай, но проше увидеть процедуру в действии.
|
Отправлено: 23:15 - 10 Фев., 2006
|
|
binyan
Пользователь
Откуда: Israel Регистрация: Март 2005
Всего: 292 сообщения
|
Цитата: И я поковырявшись в Mynah'х - скриптах мечвариора стал эксперементировать на предмет неснимаемой брони. Теперь она почти не снимается. :-/
Можно узнать что значит "Почти" ?
----- ...выражая озадаченность, граничащую с озабоченностью..
|
Отправлено: 23:19 - 10 Фев., 2006
|
|
|
|