Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
205 страниц V  « < 192 193 194 195 196 > »   
Ответить в эту темуОткрыть новую тему
> Вопросы новичков, Абсолютные глупости
denis0k
сообщение Feb 23 2015, 18:38
Сообщение #4821


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



http://www.nwnlexicon.com/index.php?title=...abase_Functions
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
NumberOne
сообщение 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
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melisse
сообщение Feb 25 2015, 19:02
Сообщение #4823


Level 11
Иконки Групп

Класс: Волшебник
Характер: Neutral Good
Раса: Фея
NWN: Скриптинг [PW]
Край Лесов



if (!GetIsPC(oPC)) return;
тут у тебя возвращает остальное не идет
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
NumberOne
сообщение Feb 25 2015, 19:38
Сообщение #4824


Level 4
**

Класс: Воин
Характер: Chaotic Good
Раса: Человек



Все остальное как раз идет нормально, кроме DestroyObject...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Feb 25 2015, 20:57
Сообщение #4825


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



Недостаточно данных. Пробуй сам, к примеру, проверять валидность или выводить имя после каждого GetObject, мб объекты не цепляет. Фигурные скобки кстати не нужны в скрипте вообще, мб это выносит мозг компилятору. А "if (!GetIsPC(oPC)) return;" стоит поставить первой строкой.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
NumberOne
сообщение Feb 25 2015, 21:58
Сообщение #4826


Level 4
**

Класс: Воин
Характер: Chaotic Good
Раса: Человек



Учту, благодарю все за ответы.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melisse
сообщение 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
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
NumberOne
сообщение 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
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Fimko
сообщение 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 и по сути является спеллом.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
greye
сообщение Feb 26 2015, 17:02
Сообщение #4830


Level 7
**

Класс: Некромант
Характер: True Neutral
Раса: Нежить



Цитата(Fimko @ Feb 26 2015, 16:56) *
Второй способ - теоретический - сам не пробовал. Попробовать отловить использования хилер кита через SignalEvent и EventSpellCastAt. По идеи должно получится, так как свойство Healer's Kit находится в spells.2da и по сути является спеллом.

Не помню, занимался ли аптечками, но зелья через спеллхук отлавливать можно совершенно точно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
NumberOne
сообщение Feb 26 2015, 17:13
Сообщение #4831


Level 4
**

Класс: Воин
Характер: Chaotic Good
Раса: Человек



Fimko, благодарю тебя! Твой пост навел меня на замечательную мысль, за счет которой я добился нужного результата.

Цитата(NumberOne @ Feb 26 2015, 18:12) *
Не помню, занимался ли аптечками, но зелья через спеллхук отлавливать можно совершенно точно.


И про зелья теперь учту, глядишь пригодится...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Feb 26 2015, 17:14
Сообщение #4832


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



Аптечка в 2да вроде как есть, но все поля там - "****", это больше похоже на свойство-заглушку для тулсета. Они вообще вне механики, например, ими можно хилиться по нескольку раз в раунд или в минусах. Собсно поэтому на шардах их часто выпиливают.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StasMokos
сообщение Mar 29 2015, 02:15
Сообщение #4833


Level 3
*

Класс: Воин
Характер: True Neutral
Раса: Эльф



Приветствую!
Не подскажете, можно ли сделать так, чтобы нельзя было исключить хенча из группы?

Через секунду ответ нашелся сам, уже не надо, прошу прощения.

Сообщение отредактировал StasMokos - Mar 29 2015, 02:18
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Heather
сообщение Mar 29 2015, 17:59
Сообщение #4834


Level 5
Иконки Групп

Класс: Маг
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
История дома Салливан



StasMokos, а можно мне решение? Тоже интересно, и думаю, что может пригодиться.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aztec2012
сообщение May 12 2015, 13:24
Сообщение #4835


Level 2
*

Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Гигант



Доброго времени суток!

Известно что после установки дополнения Hordes of the Underdark в тулсете появляется опция по установке времени исчезновения трупов существ. Значение по умолчанию 5 секунд.

Через NWN Explorer решил покопаться в 2da файлах игры и найти это значение и поставить своё, но не могу найти файл который отвечает за это. Есть всё (существа, классы, расы, заклинания т .п.) кроме этого.

Прошу знающих подсказать в каком файле искать этот параметр. Заранее спасибо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
greye
сообщение May 12 2015, 14:04
Сообщение #4836


Level 7
**

Класс: Некромант
Характер: True Neutral
Раса: Нежить



Цитата(Aztec2012 @ May 12 2015, 14:24) *
Доброго времени суток!

Известно что после установки дополнения Hordes of the Underdark в тулсете появляется опция по установке времени исчезновения трупов существ. Значение по умолчанию 5 секунд.

Через NWN Explorer решил покопаться в 2da файлах игры и найти это значение и поставить своё, но не могу найти файл который отвечает за это. Есть всё (существа, классы, расы, заклинания т .п.) кроме этого.

Прошу знающих подсказать в каком файле искать этот параметр. Заранее спасибо.

В 2да этого нет, насколько мне известно. Для каждого существа время определяется записью DecayTime в соответствующем GFF файле.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aztec2012
сообщение May 12 2015, 18:42
Сообщение #4837


Level 2
*

Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Гигант



Цитата
В 2да этого нет, насколько мне известно. Для каждого существа время определяется записью DecayTime в соответствующем GFF файле.


Спасибо за ответ. Так а GFF файлы где?

Нашёл utc файлы существ в них есть DecayTime, но он есть только у существ из второго аддона. У существ из первого аддона и основой игры такого пункта нет. Хотя в тулсете он есть у всех.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение May 12 2015, 19:58
Сообщение #4838


Тролль
****

Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Тварь



Цитата(Aztec2012 @ May 12 2015, 12:24) *
Значение по умолчанию 5 секунд.
Гхм.

Сообщение отредактировал Flaristan - May 12 2015, 19:59
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melisse
сообщение May 12 2015, 20:00
Сообщение #4839


Level 11
Иконки Групп

Класс: Волшебник
Характер: Neutral Good
Раса: Фея
NWN: Скриптинг [PW]
Край Лесов



Так смени значение на другое. Если тебе нужно чтобы труп не исчезал, нужно сделать скриптами тело не удаляемое. SetDestroyable (FALSE, FALSE , FALSE);
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aztec2012
сообщение May 12 2015, 21:57
Сообщение #4840


Level 2
*

Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Гигант



Цитата
Так смени значение на другое. Если тебе нужно чтобы труп не исчезал, нужно сделать скриптами тело не удаляемое. SetDestroyable (FALSE, FALSE , FALSE);


Спасибо. Но мне нужно чтобы это значение распространилось на все существа всех модулей игры, а в ручную каждое редактировать довольно долго. А скрипт врядли будет работать с теми существа у которых не стандартный скрипт смерти, типа Маугрима или Мораг.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
ud4ever
сообщение May 19 2015, 10:40
Сообщение #4841


Level 3
*

Класс: Бард
Характер: Neutral Evil
Раса: Человек



Прошу помочь со скриптом проверки наличия игрока враждебной фракции в локации. Необходимо для того, чтобы добавить эту проверку в скрипт при активации телепорта.

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melisse
сообщение 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
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
ud4ever
сообщение May 19 2015, 17:49
Сообщение #4843


Level 3
*

Класс: Бард
Характер: Neutral Evil
Раса: Человек



Спасибо за подробный ответ)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение May 20 2015, 05:04
Сообщение #4844


Тролль
****

Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Тварь



Цитата(Melisse @ May 19 2015, 13:11) *
Neverwinter Script
object oNearestPCEnemy = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, oPC, 1, CREATURE_TYPE_REPUTATION,  REPUTATION_TYPE_ENEMY);

if (GetIsObjectValid (oNearestPCEnemy)) // проверка наличия. Сюда можно еще проверку расстояния вставить
{
}
И вот тут мы сразу ловим баг, который делает нашу проверку всегда TRUE, если в модуле присутствует хотя бы 1 враждебный игрок. (IMG:style_emoticons/kolobok_light/biggrin.gif)
На сколько я успел наобщаться со скриптами НВН, если мне не изменяет сей опыт - GetNearestCreature вполне успешно считает расстояние между объектами в разных локациях и оно равно -1. И в этом случае GetIsObjectValid будет совершенно валиден, если он будет где-то (не важно где) в модуле, а исходная задача была сделать проверку по конкретной локации.
Итого, чтоб это было без подобного бага - сделать нужно вот так:..
Neverwinter Script
object oPC = GetObjectLastUsedByGetLastUsedBy(); //к примеру для варианта на OnUse

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
    {
    //тыры-пыры
    }
...Вот так будет работать без сбоев. (IMG:style_emoticons/kolobok_light/rolleyes.gif)

Сообщение отредактировал Flaristan - May 20 2015, 20:29
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
ud4ever
сообщение May 20 2015, 09:54
Сообщение #4845


Level 3
*

Класс: Бард
Характер: Neutral Evil
Раса: Человек



Цитата(Flaristan @ May 20 2015, 06:04) *
И вот тут мы сразу ловим баг, который делает нашу проверку всегда TRUE, если в модуле присутствует хотя бы 1 враждебный игрок. (IMG:style_emoticons/kolobok_light/biggrin.gif)
На сколько я успел наобщаться со скриптами НВН, если мне не изменяет сей опыт - GetNearestCreature вполне успешно считает расстояние между объектами в разных локациях и оно равно -1. И в этом случае GetIsObjectValid будет совершенно валиден, если он будет где-то (не важно где) в модуле, а исходная задача была сделать проверку по конкретной локации.
Итого, чтоб это было без подобного бага - сделать нужно вот так:..
Neverwinter Script
object oPC =  = GetObjectLastUsedBy(); //к примеру для варианта на OnUse

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
    {
    //тыры-пыры
    }
...Вот так будет работать без сбоев. (IMG:style_emoticons/kolobok_light/rolleyes.gif)


Спасибо за дополнение) скорее всего оно сэкономило ощутимый отрезок времени)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

205 страниц V  « < 192 193 194 195 196 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 20th August 2025 - 05:20