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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  < 1 2 3 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Tomb
сообщение Apr 22 2004, 08:13
Сообщение #16


Светлый лорд Корелии
Иконки Групп

Класс: Тайный Лучник
Характер: Lawful Good
Раса: Полуэльф
NWN: Тестер



Lex (IMG:style_emoticons/kolobok_light/help.gif) помоги со скриптами для AI бота...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Apr 22 2004, 08:33
Сообщение #17


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

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



Tomb у Лекса работы по ... (IMG:style_emoticons/kolobok_light/unsure.gif) Лучше Баал попроси (IMG:style_emoticons/kolobok_light/good.gif) Он помогет, наверняка.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Elven king
сообщение May 4 2004, 00:19
Сообщение #18


Level 12
****

Класс: Мастер Оружия
Характер: Lawful Good
Раса: Эльф
NWN: Маппинг



На рельсах уже просил такой скрипт, но попрашу и тут (IMG:style_emoticons/kolobok_light/smile.gif)
Нужен такой скриптик:
Когда нпц ведет игрока он должен останавливатся если игрок находится от него в четырех метрах и подгонять игрока.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение May 4 2004, 08:31
Сообщение #19


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

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



Могу дать свой код, где Стинки ведет игрока к пролому в стене. Годится?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Elven king
сообщение May 4 2004, 09:45
Сообщение #20


Level 12
****

Класс: Мастер Оружия
Характер: Lawful Good
Раса: Эльф
NWN: Маппинг



Годится. (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение May 4 2004, 13:08
Сообщение #21


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



2Tarre Talliorne.
Цитата
1. Можно ли определять момент кражи как-нибудь иначе, чем через хертбитные проверки наличия итема в инвентор НПС?
2. Можно ли определять уровень ПС проще, чем суммируя все его уровни в разных областях?


Лекс, теск, я тебя исправлю (IMG:style_emoticons/kolobok_light/wink3.gif) .
1. Момент кражи. Есть событие OnDisturb - по нему можно смотреть момент изъятия-приема предмета (плэйсэблом, неписью)...
2. Можно. GetHitDice(oPC).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение May 4 2004, 13:08
Сообщение #22


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

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



Вейпов должно быть столько сколько я нарисовал, но либо меньше 10 ли бо больше чем у меня. Почему? Не знаю, неделю гонял Стинки по вейпам и он гад прыгал на некоторые из них при количестве 10, а так нет. Идет как миленький.
и расчитай скорость так, что бы НПС НЕ ЗАСТРЯЛ и не опаздал на 15 сек до точки. Иначе вы просто прыгнете на следующий вейп и диалог прервется. А так он остановится и продолжите диалог.

Neverwinter Script Source
//:://////////////////////////////////////////////
//:: Copyright © 2004 WRG!  www.wrg.ru
//:: am_pc_stinki_go2
//:://////////////////////////////////////////////
/*
  ПЕРЕДВИЖЕНИЕ оРС ЗА НПС, СКРИПТ СТАВИТСЯ
    НА СТРОКУ В ДИАЛОГЕ oPC (!)

*/

//:://////////////////////////////////////////////
//:: Created By: Aiwan    Aiwan@e-mail.ru
//:: Created On: 20.03.2004
//:://////////////////////////////////////////////
void main()
{
    object oPC = GetPCSpeaker();
    object oStinki = GetObjectByTag("MM_STINKI");
    object oWp01 = GetObjectByTag("WP_STINKI_01");
    object oWp02 = GetObjectByTag("WP_STINKI_02");
    object oWp03 = GetObjectByTag("WP_STINKI_03");
    object oWp04 = GetObjectByTag("WP_STINKI_04");
    object oWp05 = GetObjectByTag("WP_STINKI_05");
    object oWp06 = GetObjectByTag("WP_STINKI_06");
    object oWp07 = GetObjectByTag("WP_STINKI_07");
    object oWp08 = GetObjectByTag("WP_STINKI_08");
    object oWp09 = GetObjectByTag("WP_STINKI_09");
    object oWp10 = GetObjectByTag("WP_STINKI_10");
    object oWp11 = GetObjectByTag("WP_STINKI_11");
    object oDoor = GetObjectByTag("AM_DOOR_FLEG_NO");
    effect eHaste = EffectHaste(); // ЧТО БЫ ИГРОК НЕ ОТСТАВАЛ!

    SetLocalInt(oPC, "STINKI", 3);
    AssignCommand(oStinki, ActionPauseConversation());
    AssignCommand(oPC, ActionForceFollowObject(oStinki, 4.0f));
    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eHaste, oPC, 9999.0);
    AssignCommand(oStinki, ActionDoCommand(SetCommandable(FALSE, oPC)));
    AssignCommand(oStinki, ActionForceMoveToObject(oWp02, TRUE, 4.0));
    AssignCommand(oStinki, ActionDoCommand(SetFacingPoint(GetPosition(oPC))));
    AssignCommand(oStinki, ActionDoCommand(SpeakString("Не отставай!")));
    AssignCommand(oStinki, ActionWait(1.0));
    AssignCommand(oStinki, ActionForceMoveToObject(oWp03, TRUE, 4.0));
    AssignCommand(oStinki, ActionWait(2.0));
    AssignCommand(oStinki, ActionForceMoveToObject(oWp04, TRUE, 4.0));
    AssignCommand(oStinki, ActionDoCommand(SetFacingPoint(GetPosition(oPC))));
    AssignCommand(oStinki, ActionDoCommand(SpeakString("Не сильно быстро?")));
    AssignCommand(oStinki, ActionWait(2.0));
    AssignCommand(oStinki, ActionForceMoveToObject(oWp05, TRUE, 4.0));
    AssignCommand(oStinki, ActionWait(2.0));
    AssignCommand(oStinki, ActionForceMoveToObject(oDoor, TRUE, 4.0));
    AssignCommand(oStinki, ActionDoCommand(SpeakString("Не обращай внимание, нас никто не тронет.")));
    AssignCommand(oStinki, ActionForceMoveToObject(oWp06, TRUE, 4.0));
    AssignCommand(oStinki, ActionWait(2.0));
    AssignCommand(oStinki, ActionForceMoveToObject(oWp07, TRUE, 4.0));
    AssignCommand(oStinki, ActionWait(2.0));
    AssignCommand(oStinki, ActionForceMoveToObject(oWp08, TRUE, 1.0));
    AssignCommand(oStinki, ActionDoCommand(SpeakString("Мы почти пришли!")));
    AssignCommand(oStinki, ActionForceMoveToObject(oWp09, TRUE, 1.0));
    AssignCommand(oStinki, ActionWait(2.0));
    AssignCommand(oStinki, ActionForceMoveToObject(oWp10, TRUE, 1.0));
    AssignCommand(oStinki, ActionWait(2.0));
    AssignCommand(oStinki, ActionForceMoveToObject(oWp11, TRUE, 1.0));
    AssignCommand(oStinki, ActionDoCommand(SetFacingPoint(GetPosition(oPC))));
    AssignCommand(oStinki, ActionDoCommand(RemoveEffect(oPC, eHaste)));
    AssignCommand(oStinki, ActionDoCommand(SetCommandable(TRUE, oPC)));
    AssignCommand(oStinki, ActionResumeConversation());
}


Сообщение отредактировал Twin - Jan 5 2005, 14:23
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Elven king
сообщение May 4 2004, 15:20
Сообщение #23


Level 12
****

Класс: Мастер Оружия
Характер: Lawful Good
Раса: Эльф
NWN: Маппинг



Ну спасибо! (IMG:style_emoticons/kolobok_light/good.gif)
Теперь опять вопросик, даже два (IMG:style_emoticons/kolobok_light/smile.gif)
1. Как сделать так чтобы когда все враги в локе будут мертвы, в журнале появляется запись... это наверное просто, но я не догоняю.
2. Непись стоит в хайде, но когда ПК отходит на пять метров, то НПЦ подкрадывается к нему и атакует, как это реализовать?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение May 4 2004, 17:35
Сообщение #24


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



2Elven king
1. Сделать всех врагов в локе в какой-нить пометкой допустим в поле Deity. Проверить всех существ с наличием этой метки GetDeity.
Можно вообще по всякому, и фракцию проверить и еще че-нить... (IMG:style_emoticons/kolobok_light/wink3.gif)
2. Это сложно. Надо писать скрипт поведения в UserDefined событии. Сейчас нет времени его написать, правлю баги первой части Левора... А вообще если сам прорвешься, то научишься кой-чему в скриптинге AI. Кстати, самая сложная часть скриптинга... Попробуй начать сам. Когда появятся более детальные вопросы - с удовольствием ответим (IMG:style_emoticons/kolobok_light/wink3.gif) .
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение May 4 2004, 18:55
Сообщение #25


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

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



Цитата
1. Как сделать так чтобы когда все враги в локе будут мертвы, в журнале появляется запись... это наверное просто, но я не догоняю

На OnDeath поставь переменную
Neverwinter Script Source
SetLocalInt(oPC, "KILL", GetLocalInt(oPC, "KILL") + 1); // На каждом НПС при смерти будет для оРС +1 переменная
Как только она будет равна количеству твоих враггов, например их 10 в локации...

if (GetLocalInt(oPC, "KILL") >= 10)
{
  AddJournalQuestEntry("TAG_JRNALA", 1, оPC);
}

Это для одиночной компании.

Для крутого шарда сделай так: Поставь в закрытой локе СУПЕР МАНЬЧКИНА НПС с фракцией врага.

И дальше проверка на наличие в локации этих врагов путем сравнивания с Боссом:
Neverwinter Script Source
{
    object oNPC = GetFirstObjectInShape(SHAPE_CUBE, 250.0, GetLocation(GetFirstPC()));
    object oBOSS = GetObjectByTag("KRUSHIMORDA_FACTION_LEADER");
    while (GetIsObjectValid(oNPC))
    {
      if (GetFactionEqual(oNPC, oBOSS))
      {
        return FALSE;
      }
      oNPC = GetNextObjectInShape(SHAPE_CUBE, 250.0, GetLocation(GetFirstPC()));
    }
    return TRUE;
}

// КОД DBColl-a

Можешь вместо

Neverwinter Script Source
// GetFirstObjectInShape
// ВЗЯТЬ
GetFirstObjectInArea
object oArea= GetArea(OBJECT_SELF);  // ТИПА ТУТА (IMG:style_emoticons/kolobok_light/smile.gif)


В общем кумекай... (IMG:style_emoticons/kolobok_light/blum3.gif)

Сообщение отредактировал Twin - Jan 5 2005, 14:25
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
2GoDoom
сообщение May 6 2004, 14:24
Сообщение #26


Level 11
***

Класс: Обыватель
Характер: True Neutral
Раса: Человек
NWN: Маппинг



Заинтерисовала идея Элвен Кинга... Начал реализовывать...
Атакует не из хайда (хотя в хайд на долю секунды уходит - когда двигается ко мне - из хайда опять же выходит).
Не подскажите как написать чтобы моб из хайда долбил?
Код писал сам. (IMG:style_emoticons/kolobok_light/smile.gif)
Код

//Ставиться в OnPerception (При замечении).
void main()
{
object oPC = GetLastPerceived(); //Определяем Объект как ПОСЛЕДНИЙ УВИДЕННЫЙ
if(GetIsPC(oPC)) //Проверяем является увиденный объект ПС
{
ClearAllActions(FALSE); //Убираем все действия из списка действий к моба (кроме АТАКИ - если он уже дерется)
ActionUseSkill(SKILL_HIDE,OBJECT_SELF); //Моб уходит в хайд
ActionWait(1.5); //Ждет долю секунды
ActionMoveToObject(oPC, FALSE, 1.0f); //Медленно двигается к ПС
ActionAttack(oPC, FALSE); //Атакует (Агрессивно)
} else
{
ActionSpeakString("Хух, напугал!", TALKVOLUME_TALK); //Если это не ПС говорит фразу "Хух, напугал!" в talk (разговор).
}
}


Моб - гоблин, 7 вора и 1 шадоуденсер.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение May 6 2004, 18:25
Сообщение #27


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



Попробуй через SetSpawnInCondition(NW_FLAG_STEALTH_MODE); вроде так пишется...

А еще у тебя ошибка в определении Perception. Надо делать дополнительную проверку на GetIsPerseptionSeen();.

GetLastPerceived срабатывает, когда объект увиден-услышан-перестал быть видимым-перестал быть слышимым. Поэтому надо дополнительно проверять.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
2GoDoom
сообщение May 7 2004, 10:12
Сообщение #28


Level 11
***

Класс: Обыватель
Характер: True Neutral
Раса: Человек
NWN: Маппинг



Окей, спасибо! (IMG:style_emoticons/kolobok_light/smile.gif)
Будем разбираться дальше (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Plut
сообщение May 10 2004, 19:53
Сообщение #29


Стилспатер
**

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



Народ, всвязи с моим не оч хорошим знанием правил AD&D, разъясните глупому, как правильно кидаются кости. Например, на убеждение при диалоге.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
2GoDoom
сообщение May 10 2004, 21:49
Сообщение #30


Level 11
***

Класс: Обыватель
Характер: True Neutral
Раса: Человек
NWN: Маппинг



хм... На убеждение при диалоге? Это типа в тех что в Сингле? (обычно кубики там кидаются как укажешь). (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Plut
сообщение May 10 2004, 23:04
Сообщение #31


Стилспатер
**

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



Цитата
обычно кубики там кидаются как укажешь

Вот это я как раз понял. Существуют ли какие-то ограничения, кроме здавого смысла, по поводу того, сколько у какого перса могет быть конретного скилла (типа Persuade)?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение May 12 2004, 00:26
Сообщение #32


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



Это система зовется d20(). Кидается d20() + скилл, против d20() непися.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
2GoDoom
сообщение May 13 2004, 16:41
Сообщение #33


Level 11
***

Класс: Обыватель
Характер: True Neutral
Раса: Человек
NWN: Маппинг



Ага...

Цитата
Вот это я как раз понял. Существуют ли какие-то ограничения, кроме здавого смысла, по поводу того, сколько у какого перса могет быть конретного скилла (типа Persuade)?

Если я понял - это имеется ввиду какие ограничения на скилл? (IMG:style_emoticons/kolobok_light/smile.gif)
Когда я ДМил, через Лето повышал себе все статы - помойму 125 - максимум (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sir_Sarles
сообщение May 25 2004, 20:55
Сообщение #34


Level 2
*

Класс: Рейнджер
Характер: Lawful Good
Раса: Человек



1. Как попросить своего вора обокрасть какого-нибудь гражданина?

А как самому обокрасть его? Я воров обычно не перевариваю, но сделал
как-то для проверки вора 15 уровня, нарастил ему воровство по максимуму,
а все равно при попытке ограбить происходит облом.


(Спросил в другом месте, но тут вроде более по теме)
Как сделать так, что бы sir/madam (и т.п.) выдавали не "sir" или "мадам",
а другие определенные мной слова?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение May 25 2004, 21:20
Сообщение #35


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

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



Цитата
Как сделать так, что бы sir/madam (и т.п.) выдавали не "sir" или "мадам",
а другие определенные мной слова?

Это надо делать свои <CUSTOM>, насколько я знаю. Но я их не делал, посему звиняй. Жди БДа или Лекса с Баалом.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sir_Sarles
сообщение May 26 2004, 08:24
Сообщение #36


Level 2
*

Класс: Рейнджер
Характер: Lawful Good
Раса: Человек



Конкретизирую про вора:
У вас есть хенчмен Томми. Вы сами воровать не умеете.

1) Вы говорите "Томми, проверь этого господина". И он кидается
проверять господина, на которого укажешь мышкой. Либо, если это невозможно,
то он сам определяет ближайшего господина в радиусе 1-5 метров либо
вообще ближайшего. Примерно так.

2) Дополнительное условие - чтобы не было
обломов. То биш Томми, получив приказ, кидает кости. Если результат не в его
пользу, то он говорит "облом, сир". Если нормально, то {ворует колечко и т.д.}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение May 28 2004, 01:11
Сообщение #37


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



Сарлес, я когда-то начинал писать эту системку, но боюсь не дописал и она де-то у меня потерялась... На самом деле здесь ничего сложного нет. Один диалоговый скриптик средних размеров. Скажу сразу, кликать мышой, указывая цель вора, не получится. Придется делать что-то вроде "поиска ближайшего нейтрала к PC" и броски костей. Сам я сейчас не сяду писать этот скрипт (банально нет времени), ты уж попробуй сам. Что будет в упор непонятно - спрашивай. Если надо могу расписать по броскам:
[d20 + скилл PickPocket за вора] против [d20 за непися].
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sir_Sarles
сообщение May 29 2004, 22:28
Сообщение #38


Level 2
*

Класс: Рейнджер
Характер: Lawful Good
Раса: Человек



Как называются функции "украсть что-то у кого-то" и "получить результат броска?"
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Osiris
сообщение May 30 2004, 16:31
Сообщение #39


Level 7
**

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Тексты



Начал разбираться в днём и ночью. в OnSP простолюдинов повесил скрипт


#include "NW_O2_CONINCLUDE"
#include "NW_I0_GENERIC"

void main()
{
SetSpawnInCondition(NW_FLAG_DAY_NIGHT_POSTING);
SetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS);
SetSpawnInCondition(NW_FLAG_ESCAPE_RETURN);
SetListeningPatterns();
WalkWayPoints();
}

Осталось дело за малым, создать дневные и ночные POST-ы, а вот как это сделать я не понимаю. Помогите пожалуйста.

Спасибо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение May 30 2004, 17:11
Сообщение #40


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



Sir_Sarles А зачем тебе это???
ActionUseSkill(SKILL_PICKPOCKET, ...), но я бы писал собственную функцию с ActionTakeItem(...) с посылом далее кастомного Event'а этому неписю, у которого крадут. Этот эвент и сам процесс кражи обрабатывается уже само собой неписем (можно даже подвязать к OnDisturb непися). Результат броска делаешь сам, внешний. Пример:
Код

if (d20() < d20() + скилл кражи хенча)
{
....... кража удачна
}
else
{
....... облом-с
}


Osiris
Ставишь пост с таким тэгом:
Дневной - POST_[тэг непися]
Ночной - NIGHT_[тэг непися]

Можно тоже самое сделать с вейпами (чтобы ходили по-разному днем и ночью)
Дневной - WP_[тэг непися]_[номер вейпа]
Ночной - WN_[тэг непися]_[номер вейпа]

Само собой это все без квадратных скобок. (IMG:style_emoticons/kolobok_light/wink3.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  < 1 2 3 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 18th May 2025 - 22:53