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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 81 82 83 84 85 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Dimanische
сообщение Mar 7 2006, 09:51
Сообщение #2036


Level 1


Класс: Варвар
Характер: Lawful Good
Раса: Полуэльф



Про средние настройки сложности понятно. Мне просто хотелось бы чтобы на максимальной сложности они не задевали друг-друга.
QUOTE
Объясни ситуацию?

Я не знаю важно ли это, но я забыл сказать что монстры эти вылазят когда наступаешь на триггер, тоесть я их через редактор встреч сделал.
Ну а подробнее если: вот я вхожу в него они вылазят, начинают меня мочить, как и другие монстры которые рядом в этот момент были, потом я юзую камень возврата, потом телепортируюсь обратно к монстрам, а они там во всю гасятся магией(такой как стена огня, инферно и все что с огнем короче связано у них есть). Вот.

QUOTE
Dimanische, можно пойти путем, как описал dumbo, а можно подредактировать все площадные заклинания, в которых указать, что если противник враг, то атаковать его, а если нет, то игнорировать.

- я в этом деле новичок и че-то не врубаюсь как так сделать. Может у меня версия ToolSet Старая и нет такого?

Ваще спасибо что не пропустили мимо мой вопрос.

И еще можно вопросик?
Какой скрипт делает завершение игры после выполнения последного задания. Выложите пожалуйста если не лень.

Сообщение отредактировал Dimanische - Mar 7 2006, 10:01
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Mar 7 2006, 10:24
Сообщение #2037


Миловидный Бегрюссунг
Иконки Групп

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



NSS
void main()
{
  string sMovie = "Твой финальный ролик";
  EndGame(sMovie);
}


QUOTE(Dimanische @ Сегодня, 11:51) [snapback]71930[/snapback]
И еще можно вопросик?
Какой скрипт делает завершение игры после выполнения последного задания. Выложите пожалуйста если не лень.

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Mar 8 2006, 00:34
Сообщение #2038


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

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



QUOTE(Aiwan @ Feb 27 2006, 22:09) [snapback]71209[/snapback]

Везде где юзаешь Делей, попробуй сделать так:
NSS
void ActionCreateObject(int nObjType, string sCreature, location lLoc, int iAnimation, string sNewTag="")
{
  CreateObject(nObjType, sCreature, lLoc, FALSE, sNewTag);
}
void CheckIsHere(object oTarget, string sOrder)
{
    object oSelf = OBJECT_SELF;

    if(GetDistanceBetween(oSelf, oTarget) < 4.0)
    {
        AssignCommand(oSelf, PlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 1.0));
        CreateItemOnObject(sOrder, oTarget, 1);
    }
    else
    {
        SpeakString("Куда вы ушли??");
        ActionPlayAnimation(ANIMATION_LOOPING_GET_LOW, 1.0, 1.0);
        ActionCreateObject(OBJECT_TYPE_ITEM, sOrder, GetLocation(OBJECT_SELF), TRUE);
    }
    AssignCommand(oSelf, ActionDoCommand(SetLocalInt(oSelf, "vir_waiter_busy", FALSE)));

    //заблокировать и разблокировать очередь
    AssignCommand(oSelf, ActionDoCommand(SetCommandable(TRUE, oSelf)));
    DelayCommand(0.3, SetCommandable(FALSE, oSelf));
}


Тот же результат... Ничего не изменилось.

Сообщение отредактировал virusman - Mar 8 2006, 00:39
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Mar 8 2006, 01:35
Сообщение #2039


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

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



а что не так?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Mar 8 2006, 01:54
Сообщение #2040


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

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



QUOTE(Lex @ Mar 8 2006, 01:35) [snapback]72016[/snapback]

а что не так?

http://www.wrg.ru/forums/index.php?s=&show...indpost&p=71193
Если снять блокировки/разблокировки - всё работает, но тогда официантку легко сбить.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Mar 8 2006, 05:47
Сообщение #2041


Миловидный Бегрюссунг
Иконки Групп

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



Я же говорил, надо через юзерДеф делать. каждая локалка - блок задач. У тебя не просто задачи, они сложные и просто ей не забъешь стек.

У тебя целый блок AI...

Попробуй так. Этот код верный на 100%. Все на актионах даже локалки в одном блоке. Должна успевать все понимать...
NSS
void ActionCreateObject(int nObjType, string sCreature, location lLoc, int iAnimation, string sNewTag="")
{
  CreateObject(nObjType, sCreature, lLoc, FALSE, sNewTag);
}
void CheckIsHere(object oTarget, string sOrder)
{
    object oSelf = OBJECT_SELF;

    if(GetDistanceBetween(oSelf, oTarget) < 4.0)
    {
        AssignCommand(oSelf, PlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 1.0));
        CreateItemOnObject(sOrder, oTarget, 1);
        // Тут никакой блокировки не надо. Действия простые
    }
    else
    {
        SpeakString("Куда вы ушли??");
        AssignCommand(oSelf, ActionPlayAnimation(ANIMATION_LOOPING_GET_LOW, 1.0, 5.0));
        AssignCommand(oSelf, ActionCreateObject(OBJECT_TYPE_ITEM, sOrder, GetLocation(OBJECT_SELF), TRUE));
        AssignCommand(oSelf, ActionDoCommand(SetLocalInt(oSelf, "vir_waiter_busy", FALSE)));
        AssignCommand(oSelf, ActionDoCommand(SetCommandable(TRUE, oSelf)));
        DelayCommand(0.3, SetCommandable(FALSE, oSelf));
    }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Mar 8 2006, 11:47
Сообщение #2042


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

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



CheckIsHere - это только одна из вложенных функций. Она вызывается после того, как официантка дошла до указанной локации:
NSS
void GoToPlayer(object oTarget, string sOrder, float fTimeout)
{
    ActionForceMoveToLocation(GetLocation(oTarget), TRUE, fTimeout);
    ActionDoCommand(SetFacingPoint(GetPosition(oTarget)));
    ActionDoCommand(CheckIsHere(oTarget, sOrder));

    //заблокировать и разблокировать очередь
    DelayCommand(0.2, SetCommandable(FALSE));
    AssignCommand(OBJECT_SELF, ActionDoCommand(SetCommandable(TRUE)));
}

По отдельности эта функция работать будет, но со вложенностью официантка дойдёт до точки, а функция CheckIsHere не выполнится. Там же из main вызывается GiveBottleTo, оттуда - GoToPlayer, а оттуда - уже CheckIsHere.
Ой, блин, не подумал. Может, просто разблокировку сделать перед вызовом функции. (IMG:style_emoticons/kolobok_light/smile.gif)
З.Ы. Не помогло..

Сообщение отредактировал virusman - Mar 8 2006, 12:08
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Вишес
сообщение Mar 11 2006, 08:51
Сообщение #2043


Level 13
****

Класс: Ниндзя
Характер: Chaotic Evil
Раса: Танар'ри



Народ, существует ли скрипт, меняющий части тела? И если есть, то какой?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
[MoF]Darth_Nick
сообщение Mar 11 2006, 10:32
Сообщение #2044


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

Класс: Некромант
Характер: Chaotic Evil
Раса: Нежить
NWN: Скриптинг [PW]



у ПЦ через лето помойму можно, только не пойму - зачем?
проще целый апиренс изменить

Сообщение отредактировал [MoF]Darth_Nick - Mar 11 2006, 10:37
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Mar 11 2006, 13:57
Сообщение #2045


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

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



QUOTE(Вишес @ Mar 11 2006, 08:51) [snapback]72284[/snapback]
Народ, существует ли скрипт, меняющий части тела? И если есть, то какой?

в 1.67 будут такие функции. Сейчас только целиком.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nuprahtor
сообщение Mar 12 2006, 12:02
Сообщение #2046


Level 3
*

Класс: Некромант
Характер: Chaotic Neutral
Раса: Человек



Большое спасибо Azathoth`у и Zirrex`у.
Скрипт заработал.

Еще вопрос.
Как сделать, чтобы зомби сначала лежали на земле (Анимация смерти) а потом вставали и дралисьс чаром.
Спасибо за внимание.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StalkerDtN
сообщение Mar 12 2006, 13:33
Сообщение #2047


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

Класс: Волшебник
Характер: Chaotic Good
Раса: Дракон
NWN: Скриптинг [Sn]



Nuprahtor, попробуй так:
на зомби на onSpawn
NSS
SetIsDestroyable(FALSE, TRUE, FALSE);
    effect eDeath = EffectDeath();
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, OBJECT_SELF);

далее смотря через что, допустим это триггер, тогда на onEnter добавь строчки
NSS
object oDead = GetObjectByTag("ZOMBI");
    effect eRes  = EffectResurrection();
    effect eHeal = EffectHeal(GetMaxHitPoints(oDead));
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eRes, oDead);
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, oDead);
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Артём
сообщение Mar 12 2006, 13:33
Сообщение #2048


Level 5
**

Класс: Друид
Характер: Neutral Good
Раса: Человек



Скрипт незнаю но область с зомби которые ожывают могу сделать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nuprahtor
сообщение Mar 12 2006, 13:42
Сообщение #2049


Level 3
*

Класс: Некромант
Характер: Chaotic Neutral
Раса: Человек



Может на OnPerception?
Зомби просто лежат, чар к ним подходит они встают и драка.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
[MoF]Darth_Nick
сообщение Mar 12 2006, 15:16
Сообщение #2050


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

Класс: Некромант
Характер: Chaotic Evil
Раса: Нежить
NWN: Скриптинг [PW]



повесь на спаун кат_сцен паралайз или иммобилиз...или и то и то, когда надо удали

Сообщение отредактировал [MoF]Darth_Nick - Mar 12 2006, 15:16
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lorendroll
сообщение Mar 12 2006, 22:31
Сообщение #2051


Level 9
***

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



Если зомби всегда будут лежать на одних и тех же местах (или может это убитые на случайном месте персонажи?) то имхо, легче всего нарисовать тригер со скриптом на OnEnter.
Если нет, можно убить чара на спауне (не забыв поставить нон-дестроибл) а на хертбите организовать подобие персепшена: как увидел игрока лечиться и делаться хостайлом (при мертвом персонаже персепшен работать вроде не будет). Кстати можно сделать так чтобы зомби не просто вскакивал, а поднимался с анимацией. Точно не знаю, но для этого похоже нужно его заставить либо "использовать" самого себя либо идти на локацию где он лежал. Надо выяснять эксперементально (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StalkerDtN
сообщение Mar 13 2006, 06:32
Сообщение #2052


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

Класс: Волшебник
Характер: Chaotic Good
Раса: Дракон
NWN: Скриптинг [Sn]



Lorendroll
QUOTE
Если нет, можно убить чара на спауне (не забыв поставить нон-дестроибл) а на хертбите организовать подобие персепшена


Не смотря на то, что тушка зомби не исчезла, формально для движка зомби мертв, а потому не один эвент с него не сработает, в тч и ХБ.
Имхо удобнее в данной ситуации все же триггер, соответственно всю анимацию туда же...какую - на вкус автора модуля, я бы предложил туже что и при закле воскрешения. (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Mar 13 2006, 10:26
Сообщение #2053


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Есть один прекрасный скрипт, который создает скелетов из сложенных черепов. Работает не на основе триггера, а проверяет, есть ли рядом игрок, если есть, пересоздать объект. Также можно и тут. Лежат, к примеру, мертвые зомби (каламбур; куда уж мертвее), а проходящий мимо игрок их поднимает. Учуяли свежую кровь и душу (IMG:style_emoticons/kolobok_light/smile.gif)

самим зомби сделать в момент появления анимацию. Я так создавал Таннари. Вначале кидал на них эффект нулевого объекта, потом пересоздавал через 1-2 секунды в нормальном облике, чтобы монстры не тупили, а сразу шли в бой. В нашем случае это нужно, чтобы зомби положить на землю, а потом через анимацию их плавно поднять. Но необходимо так подгадать время исчезновения трупов, чтобы это не казалось пропущенными кадрами в плохом кино.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nuprahtor
сообщение Mar 13 2006, 13:25
Сообщение #2054


Level 3
*

Класс: Некромант
Характер: Chaotic Neutral
Раса: Человек



Спасибо вам всем.Придется ставить на триггер.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
helvene
сообщение Mar 13 2006, 13:55
Сообщение #2055


Mystery
Иконки Групп

Класс: Маг
Характер: Lawful Evil
Раса: Тварь
NWN: Контент
Амен



QUOTE(Zirrex @ Mar 13 2006, 10:26) [snapback]72517[/snapback]
Есть один прекрасный скрипт, который создает скелетов из сложенных черепов. Работает не на основе триггера, а проверяет, есть ли рядом игрок, если есть, пересоздать объект. Также можно и тут. Лежат, к примеру, мертвые зомби (каламбур; куда уж мертвее), а проходящий мимо игрок их поднимает. Учуяли свежую кровь и душу

Хм-хм... более того, есть такой объект среди стандартных, во вкладке Battlefield... даже два - Zombie Corpse и одна из Pile of Sculls. Они ровненько это и делают.

(скрипты там назначены на hb)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Артём
сообщение Mar 13 2006, 22:07
Сообщение #2056


Level 5
**

Класс: Друид
Характер: Neutral Good
Раса: Человек



КТО ЗНАЕТ ГДЕ МОЖНО НАЙТИ ЛЕКСИКОН РУССКОЙ ВЕРСИИ?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Mar 13 2006, 22:49
Сообщение #2057


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

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



QUOTE(Артём @ Mar 13 2006, 22:07) [snapback]72578[/snapback]
КТО ЗНАЕТ ГДЕ МОЖНО НАЙТИ ЛЕКСИКОН РУССКОЙ ВЕРСИИ?

НИ КТО НЕ ЗНАЕТ - НЕТ ЕГО!!! (IMG:style_emoticons/kolobok_light/biggrin.gif)

Есть на сайте перевод некоторых статей, а так - промт или сократ в руки и вперед. Я так лексикон и читаю, вроде успешно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Артём
сообщение Mar 13 2006, 22:54
Сообщение #2058


Level 5
**

Класс: Друид
Характер: Neutral Good
Раса: Человек



То-что на сайте я давно скачал.Попробую абайтися переводчиком!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Mar 13 2006, 23:00
Сообщение #2059


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Артём, подобные вещи редко переводят, если только не нужно их пускать в большой тираж и знакомить множество людей с их тематикой. Но если человека интересует данный предмет, он сделает все, чтобы его изучить. Мне хватает английской версии, да и все познается экспериментальным путем.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Mar 14 2006, 12:06
Сообщение #2060


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

Класс: Обыватель
Характер: Lawful Good
Раса: Человек
NWN: Модмейкер
Рыцарская Сага



QUOTE(mamuc @ Feb 27 2006, 09:33) [snapback]71143[/snapback]
Вот кусок скрипта официантки.
Нужно, чтобы она шла так, как нужно, и при этом не зависала и не прерывалась.
Попробовал делать блокировку/разблокировку очереди - официантка подбегает и ничего не делает.
(Скрипт висит на OnConversation)


Нужно отделить мух от котлет. Не все команды станут в очередь, а тем более проверки идут мгновенно. Попробуй повесить подобный скрипт на ХБ официантки. Написан по твой идеи, для 4 персов. Блокировка на весь маршрут, но в конце можно поговорить с персом.
NSS
void GoToObject(object oTarget, object oPC)
{
AssignCommand(oPC, ActionMoveToObject(oTarget, FALSE));
AssignCommand(oPC, ActionSpeakString("Получите ваш заказ."));
AssignCommand(oPC, ActionPlayAnimation(ANIMATION_FIREFORGET_READ, 1.0, 3.0));
AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 2.0));
}
void WalkToObject(object oTarget, object oPC, vector vFace)
{
AssignCommand(oTarget, ClearAllActions());
AssignCommand(oTarget, SetFacingPoint(vFace));
DelayCommand(3.0, AssignCommand(oTarget, ActionSpeakString("Спасибо!")));
DelayCommand(5.0, AssignCommand(oTarget, ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK, 1.0, 5.0)));
}
void main()
{
object oPC = OBJECT_SELF;
object oTarget = GetNearestObjectByTag("POSIT_1");
object oTarget2 = GetNearestObjectByTag("POSIT_2");
object oTarget3 = GetNearestObjectByTag("HOZYAIN");
vector vFace = GetPosition(oPC);
//================  МАРШРУТ ====================================================
if(GetLocalInt(OBJECT_SELF, "MARSH") != 1)
{
SetLocalInt(oPC,"MARSH",1);
AssignCommand(OBJECT_SELF, ClearAllActions());
DelayCommand(0.3, SetCommandable(FALSE, oPC)); // заблокировать очередь
GoToObject(oTarget, oPC);
GoToObject(oTarget2, oPC);
AssignCommand(oPC, ActionMoveToObject(oTarget3, FALSE));
AssignCommand(oPC, ActionSpeakString("Получите выручку. Ох, и жаркий денек!"));
AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 3.0));
DelayCommand(30.1,SetCommandable(TRUE,oPC)); // разблокировать очередь
DelayCommand(30.5, AssignCommand(oPC, SpeakString("Ох, жара!")));
DelayCommand(40.0,SetLocalInt(OBJECT_SELF,"MARSH",FALSE)); // длительность маршрута
}
//---------------- проверки каждый раунд ---------------------------------------
if (GetDistanceBetween(oTarget, oPC) < 3.0)
  WalkToObject(oTarget, oPC, vFace);
if (GetDistanceBetween(oTarget2, oPC) < 3.0)
  WalkToObject(oTarget2, oPC, vFace);
if (GetDistanceBetween(oTarget3, oPC) < 4.0)
   {
switch (Random(3)+1)
{
case 1:
AssignCommand(oPC, SpeakString("Ох, и жаркий денек!"));
AssignCommand(oTarget3, SpeakString("Давай работай!"));
AssignCommand(oTarget3, SetFacingPoint(vFace));
break;
case 2:
AssignCommand(oPC, SpeakString("Давай пива и рыбу, есть еще заказ."));
AssignCommand(oTarget3, SpeakString("Бойко торгуем!"));
AssignCommand(oTarget3, SetFacingPoint(vFace));
break;
case 3:
AssignCommand(oPC, SpeakString("Ноги уже не держат..."));
AssignCommand(oTarget3, SpeakString("Вперед и с песней!"));
AssignCommand(oTarget3, SetFacingPoint(vFace));
break;
}
}
}


Сообщение отредактировал gennady - Mar 15 2006, 06:05
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 81 82 83 84 85 > » 
Ответить в эту темуОткрыть новую тему
5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 30th April 2025 - 05:15