Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
Feb 23 2015, 18:38
Сообщение
#4821
|
|
|
Level 19 Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов |
|
Feb 25 2015, 11:46
Сообщение
#4822
|
|
|
Level 4 ![]() ![]() Класс: Воин Характер: Chaotic Good Раса: Человек |
Ребят... что за ересь? У меня НПС не удаляются с помощью DestroyObject (IMG:style_emoticons/kolobok_light/diablo.gif)
Скрипт Код #include "nw_i0_2q4luskan"
void main() { object oPC = GetEnteringObject(); object oOrt = GetObjectByTag("ortai1"); object oTr1 = GetObjectByTag("tr1"); object oTr2 = GetObjectByTag("tr2"); object oTr3 = GetObjectByTag("tr3"); object oTarget = GetWaypointByTag("wp_spawn_ort"); object oCoster = GetWaypointByTag("wp_koster"); location lTarget = GetLocation(oTarget); location lCoster = GetLocation(oCoster); if (!GetIsPC(oPC)) return; { DestroyObject(oOrt); CreateObjectVoid(OBJECT_TYPE_CREATURE, "creature", lTarget); CreateObject(OBJECT_TYPE_PLACEABLE, "koster_lager", lCoster); DelayCommand(1.0, DestroyObject(oTr1)); DelayCommand(1.0, DestroyObject(oTr3)); DelayCommand(1.0, DestroyObject(oTr2)); } } Сообщение отредактировал NumberOne - Feb 25 2015, 12:12 |
Feb 25 2015, 19:02
Сообщение
#4823
|
|
|
Level 11 Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов |
if (!GetIsPC(oPC)) return;
тут у тебя возвращает остальное не идет |
Feb 25 2015, 19:38
Сообщение
#4824
|
|
|
Level 4 ![]() ![]() Класс: Воин Характер: Chaotic Good Раса: Человек |
Все остальное как раз идет нормально, кроме DestroyObject...
|
Feb 25 2015, 20:57
Сообщение
#4825
|
|
|
Level 19 Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов |
Недостаточно данных. Пробуй сам, к примеру, проверять валидность или выводить имя после каждого GetObject, мб объекты не цепляет. Фигурные скобки кстати не нужны в скрипте вообще, мб это выносит мозг компилятору. А "if (!GetIsPC(oPC)) return;" стоит поставить первой строкой.
|
Feb 25 2015, 21:58
Сообщение
#4826
|
|
|
Level 4 ![]() ![]() Класс: Воин Характер: Chaotic Good Раса: Человек |
Учту, благодарю все за ответы.
|
Feb 25 2015, 22:12
Сообщение
#4827
|
|
|
Level 11 Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов |
Есть еще момент, проверь:
1. Если ты тэги созданий пишешь верхним регистром в них, а в скрипте нижним - то это разные тэги. 2. Попробуй поставить AssignCommand(oTr1, SetDestroyable (TRUE, FALSE, FALSE)); А потом удалять через DestroyObject(oTr1); 3. DelayCommand(1.0, DestroyObject(oTr1)); Лучше не использовать так, оно так может потеряться по ряду причин. Попробуй DestroyObject(oTr1, 1.0f); или если делаешь вешай на модуль через AssignCommand(GetModule(), DelayCommand(1.0, DestroyObject(oTr1))); Сообщение отредактировал Melisse - Feb 25 2015, 22:15 |
Feb 26 2015, 14:41
Сообщение
#4828
|
|
|
Level 4 ![]() ![]() Класс: Воин Характер: Chaotic Good Раса: Человек |
Нужна помощь. Цель такая: я использую набор целителя на существе с уникальным тегом и запускается скрипт. У кого есть какие идеи?
Пытался написать скрипт в слот модуля на OnActivateItem Код void main() { object oTarget = GetItemActivatedTarget(); object oItem = GetItemActivated(); string sTagItem = GetTag(oItem); string sTagTarget = GetTag(oTarget); if (sTagItem == "NW_IT_MEDKIT001") { if (sTagTarget == "wolfica") { Действия } } } Но он не работает( Сообщение отредактировал NumberOne - Feb 26 2015, 14:42 |
Feb 26 2015, 15:56
Сообщение
#4829
|
|
|
Level 3 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек |
Фунецией GetItemActivated() вызывается только свойством Cast Spell: Unique Power. (или Unique Power SelfOnly). Могу посоветовать скриптом менять свойство Healer's Kit на свойство уникальной силы. Только для этого надо будет в itemprops.2da "открыть" доступ к свойству "Cast Spell" для данного типа вещей. Гемор короче (IMG:style_emoticons/kolobok_light/smile.gif)
Второй способ - теоретический - сам не пробовал. Попробовать отловить использования хилер кита через SignalEvent и EventSpellCastAt. По идеи должно получится, так как свойство Healer's Kit находится в spells.2da и по сути является спеллом. |
Feb 26 2015, 17:02
Сообщение
#4830
|
|
|
Level 7 ![]() ![]() Класс: Некромант Характер: True Neutral Раса: Нежить |
Второй способ - теоретический - сам не пробовал. Попробовать отловить использования хилер кита через SignalEvent и EventSpellCastAt. По идеи должно получится, так как свойство Healer's Kit находится в spells.2da и по сути является спеллом. Не помню, занимался ли аптечками, но зелья через спеллхук отлавливать можно совершенно точно. |
Feb 26 2015, 17:13
Сообщение
#4831
|
|
|
Level 4 ![]() ![]() Класс: Воин Характер: Chaotic Good Раса: Человек |
|
Feb 26 2015, 17:14
Сообщение
#4832
|
|
|
Level 19 Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов |
Аптечка в 2да вроде как есть, но все поля там - "****", это больше похоже на свойство-заглушку для тулсета. Они вообще вне механики, например, ими можно хилиться по нескольку раз в раунд или в минусах. Собсно поэтому на шардах их часто выпиливают.
|
Mar 29 2015, 02:15
Сообщение
#4833
|
|
|
Level 3 ![]() Класс: Воин Характер: True Neutral Раса: Эльф |
Приветствую!
Не подскажете, можно ли сделать так, чтобы нельзя было исключить хенча из группы? Через секунду ответ нашелся сам, уже не надо, прошу прощения. Сообщение отредактировал StasMokos - Mar 29 2015, 02:18 |
Mar 29 2015, 17:59
Сообщение
#4834
|
|
|
Level 5 Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Модмейкер История дома Салливан |
StasMokos, а можно мне решение? Тоже интересно, и думаю, что может пригодиться.
|
May 12 2015, 13:24
Сообщение
#4835
|
|
|
Level 2 ![]() Класс: Страж Тьмы Характер: Chaotic Evil Раса: Гигант |
Доброго времени суток!
Известно что после установки дополнения Hordes of the Underdark в тулсете появляется опция по установке времени исчезновения трупов существ. Значение по умолчанию 5 секунд. Через NWN Explorer решил покопаться в 2da файлах игры и найти это значение и поставить своё, но не могу найти файл который отвечает за это. Есть всё (существа, классы, расы, заклинания т .п.) кроме этого. Прошу знающих подсказать в каком файле искать этот параметр. Заранее спасибо. |
May 12 2015, 14:04
Сообщение
#4836
|
|
|
Level 7 ![]() ![]() Класс: Некромант Характер: True Neutral Раса: Нежить |
Доброго времени суток! Известно что после установки дополнения Hordes of the Underdark в тулсете появляется опция по установке времени исчезновения трупов существ. Значение по умолчанию 5 секунд. Через NWN Explorer решил покопаться в 2da файлах игры и найти это значение и поставить своё, но не могу найти файл который отвечает за это. Есть всё (существа, классы, расы, заклинания т .п.) кроме этого. Прошу знающих подсказать в каком файле искать этот параметр. Заранее спасибо. В 2да этого нет, насколько мне известно. Для каждого существа время определяется записью DecayTime в соответствующем GFF файле. |
May 12 2015, 18:42
Сообщение
#4837
|
|
|
Level 2 ![]() Класс: Страж Тьмы Характер: Chaotic Evil Раса: Гигант |
Цитата В 2да этого нет, насколько мне известно. Для каждого существа время определяется записью DecayTime в соответствующем GFF файле. Спасибо за ответ. Так а GFF файлы где? Нашёл utc файлы существ в них есть DecayTime, но он есть только у существ из второго аддона. У существ из первого аддона и основой игры такого пункта нет. Хотя в тулсете он есть у всех. |
May 12 2015, 19:58
Сообщение
#4838
|
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь |
|
May 12 2015, 20:00
Сообщение
#4839
|
|
|
Level 11 Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов |
Так смени значение на другое. Если тебе нужно чтобы труп не исчезал, нужно сделать скриптами тело не удаляемое. SetDestroyable (FALSE, FALSE , FALSE);
|
May 12 2015, 21:57
Сообщение
#4840
|
|
|
Level 2 ![]() Класс: Страж Тьмы Характер: Chaotic Evil Раса: Гигант |
Цитата Так смени значение на другое. Если тебе нужно чтобы труп не исчезал, нужно сделать скриптами тело не удаляемое. SetDestroyable (FALSE, FALSE , FALSE); Спасибо. Но мне нужно чтобы это значение распространилось на все существа всех модулей игры, а в ручную каждое редактировать довольно долго. А скрипт врядли будет работать с теми существа у которых не стандартный скрипт смерти, типа Маугрима или Мораг. |
May 19 2015, 10:40
Сообщение
#4841
|
|
|
Level 3 ![]() Класс: Бард Характер: Neutral Evil Раса: Человек |
Прошу помочь со скриптом проверки наличия игрока враждебной фракции в локации. Необходимо для того, чтобы добавить эту проверку в скрипт при активации телепорта.
|
May 19 2015, 14:11
Сообщение
#4842
|
|
|
Level 11 Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов |
Neverwinter Script //Смотря как у тебя активируется телепорт - игрок, активирующий, будет определятся для диалога через функцию = GetPCSpeaker(); //или если на юз = GetObjectLastUsedBy(); object oPC = // Игрок тут выбрать того как определяется игрок, активирующий телепорт object oNearestPCEnemy = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, oPC, 1, CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY); if (GetIsObjectValid (oNearestPCEnemy)) // проверка наличия. Сюда можно еще проверку расстояния вставить { // Тут то что тебе нужно } О функции GetNearestCreature можно почитать тут Сообщение отредактировал Melisse - May 19 2015, 14:13 |
May 19 2015, 17:49
Сообщение
#4843
|
|
|
Level 3 ![]() Класс: Бард Характер: Neutral Evil Раса: Человек |
Спасибо за подробный ответ)
|
May 20 2015, 05:04
Сообщение
#4844
|
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь |
Neverwinter Script object oNearestPCEnemy = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, oPC, 1, CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY); if (GetIsObjectValid (oNearestPCEnemy)) // проверка наличия. Сюда можно еще проверку расстояния вставить { } На сколько я успел наобщаться со скриптами НВН, если мне не изменяет сей опыт - GetNearestCreature вполне успешно считает расстояние между объектами в разных локациях и оно равно -1. И в этом случае GetIsObjectValid будет совершенно валиден, если он будет где-то (не важно где) в модуле, а исходная задача была сделать проверку по конкретной локации. Итого, чтоб это было без подобного бага - сделать нужно вот так:.. Neverwinter Script object oPC = ...Вот так будет работать без сбоев. (IMG:style_emoticons/kolobok_light/rolleyes.gif)
object oNearestPCEnemy = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, oPC, 1, CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY); if ((GetIsObjectValid (oNearestPCEnemy)) &&(GetArea(oPC)== GetArea(oNearestPCEnemy))) //приклеиваем чудную проверочку, что наш oNearestPCEnemy находится в той же локации, что и oPC { //тыры-пыры } Сообщение отредактировал Flaristan - May 20 2015, 20:29 |
May 20 2015, 09:54
Сообщение
#4845
|
|
|
Level 3 ![]() Класс: Бард Характер: Neutral Evil Раса: Человек |
И вот тут мы сразу ловим баг, который делает нашу проверку всегда TRUE, если в модуле присутствует хотя бы 1 враждебный игрок. (IMG:style_emoticons/kolobok_light/biggrin.gif) На сколько я успел наобщаться со скриптами НВН, если мне не изменяет сей опыт - GetNearestCreature вполне успешно считает расстояние между объектами в разных локациях и оно равно -1. И в этом случае GetIsObjectValid будет совершенно валиден, если он будет где-то (не важно где) в модуле, а исходная задача была сделать проверку по конкретной локации. Итого, чтоб это было без подобного бага - сделать нужно вот так:.. Neverwinter Script object oPC = = GetObjectLastUsedBy(); //к примеру для варианта на OnUse ...Вот так будет работать без сбоев. (IMG:style_emoticons/kolobok_light/rolleyes.gif) object oNearestPCEnemy = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, oPC, 1, CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY); if ((GetIsObjectValid (oNearestPCEnemy)) &&(GetArea(oPC)== GetArea(oNearestPCEnemy))) //приклеиваем чудную проверочку, что наш oNearestPCEnemy находится в той же локации, что и oPC { //тыры-пыры } Спасибо за дополнение) скорее всего оно сэкономило ощутимый отрезок времени) |
![]() ![]() |
| Текстовая версия | Сейчас: 20th August 2025 - 05:20 |