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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 35 36 37 38 39 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Tarron
сообщение Mar 21 2005, 18:23
Сообщение #896


Level 2
*

Класс: Дварф-Защитник
Характер: Lawful Evil
Раса: Дварф



Спасибо за помощь.
Насчет штурма замка - от Биоварей система респа проста.Тригером.Выделяеться гобласть при захождении в нее игрок активирует респоун в списке можно выбрать каких монсторов спавнить.Например туда можно сунуть Орка и человека.ОН будет их спавнить но Рендомно на выбор или в зависимости от уровня перса активировавшего тригер.МБ ктонить скажет какже сделать чтобы при убийстве босса менялась переменная и начинали при ее смене спавниться другие монстры.Накрайняк не сложно сделать разные спавнилки для Орков и Людей но вот как сделать чтобы активировались те которые надо а которые не надо не активировались?
Ну думаю что из этой путаницы чтонить ясно -)
Еще раз спасибо за ответы !
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Mar 21 2005, 18:44
Сообщение #897


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

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



QUOTE (Tarron @ Mar 21 2005, 18:23)
Накрайняк не сложно сделать разные спавнилки для Орков и Людей но вот как сделать чтобы активировались те которые надо а которые не надо не активировались?


Есть на энкаунтере (это так называется) флаг active
Убили боса Орка - все энкаунтеры орков отключились, а людские включились. И наоборот.
примерно так: (на смерть боссов обоих)
Neverwinter Script Source
// ENC_ORCS - спавнеры орков
// ENC_HUMANS - спавнеры людей
// ORC_BOSS - ТЭГ босса орков
// HUMAN_BOSS - ТЭГ босса людей

void main()
{
object oSpawner;
int i = 0;
int STATUS;
if (GetTag(OBJECT_SELF)=="ORC_BOSS") STATUS = FALSE;
else if (GetTag(OBJECT_SELF)=="HUMAN_BOSS") STATUS = TRUE;
else return;

oSpawner = GetObjectByTag("ENC_ORCS",i);
while (GetIsObjectValid(oSpawner ))
          {
          SetEncounterActive(STATUS ,oSpawner);
          i++;
          oSpawner = GetObjectByTag("ENC_ORCS",i);
          }
i = 0;
oSpawner = GetObjectByTag("ENC_HUMANS",i);
while (GetIsObjectValid(oSpawner ))
          {
          SetEncounterActive(!STATUS ,oSpawner);
          i++;
          oSpawner = GetObjectByTag("ENC_HUMANS",i);
          }
}


это навскидку. Не тестил, но идея такая примерно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tarron
сообщение Mar 21 2005, 18:50
Сообщение #898


Level 2
*

Класс: Дварф-Защитник
Характер: Lawful Evil
Раса: Дварф



Сенкс.
Да еще вопрос ПОдскажите плз скриптю на дроп рэндомного предмета из того что одето на персе.
Примерно я наверно понимаю как сделать копию слота на землю потом дестракт .ЕСЛИ лень весь скрипт писать то плз неполенитесь напишите без описывания всех слотов на персе вроде их там 14 а только чисто функцию дропа.
просто сегодня я сел править все баги потому столько вопростов
Биг СЕНК Lex !
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Mar 21 2005, 19:11
Сообщение #899


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

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



QUOTE (Tarron @ Mar 21 2005, 18:50)
Да еще вопрос ПОдскажите плз скриптю на дроп рэндомного предмета из того что одето на персе.
Примерно я наверно понимаю как сделать копию слота на землю потом дестракт .ЕСЛИ лень весь скрипт писать то плз неполенитесь напишите без описывания всех слотов на персе вроде их там 14 а только чисто функцию дропа.
просто сегодня я сел править все баги потому столько вопростов

эх..
вот так примерно (на смерть РС):
Neverwinter Script Source
void main()
{
object oPlayer = GetLastPlayerDied();
object oItem = GetItemInSlot(Random(14),oPC);
CopyObject(oItem,GetLocation(oPC));
DestroyObject(oItem);
}


не тестил.

Верните вашего скриптера из командировки.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tarron
сообщение Mar 21 2005, 19:48
Сообщение #900


Level 2
*

Класс: Дварф-Защитник
Характер: Lawful Evil
Раса: Дварф



Вопрос а как там oItem описать?
Добавлено в [mergetime]1111423773[/mergetime]
object oItem = GetPCItemLastEquipped - наверно так?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Mar 21 2005, 19:57
Сообщение #901


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

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



это к чему?
object oItem = GetItemInSlot(Random(14),oPC);
Мы берем атем из рандомного слота. Тебе вроде это надо было. (можето оказаться и стрела... а может ничего не оказаться, кстати. :) Ну это просто циклом правится)
Neverwinter Script Source
void main()
{
object oPlayer = GetLastPlayerDied();
object oItem = GetItemInSlot(Random(14),oPC);

while (!GetIsObjectValid(oItem))
        oItem = GetItemInSlot(Random(14),oPC);

CopyObject(oItem,GetLocation(oPC));
DestroyObject(oItem);
}


Опять же это все весьма СЫРОЕ. Если на РС 1-2 вещи, то цикл это очень неоптимальный вариант. А если почти все слоты заняты, то нормально. Но думать я думаю ясно в какую сторону.



object oItem = GetPCItemLastEquipped()
Это последний одетый айтем. Причем корректо будет работать только в слоте onItemEquipped
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tarron
сообщение Mar 21 2005, 20:02
Сообщение #902


Level 2
*

Класс: Дварф-Защитник
Характер: Lawful Evil
Раса: Дварф



не я к тому что я 0 в скриптах а на эту строку он пишет что неправильно продекларирован тип.Мои мозги думают что просто айтем не описан но они часто ошибаються-)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Mar 21 2005, 20:06
Сообщение #903


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

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



Короче если у вас хороший скриптер, то ждите его, он сам все напишет. То, что ты спрашивал это довольно просто.

И в любом случае посылай его сюда. Думаю он найдет, чему тут поучиться и мы по возможности чего-нить новое узнаем.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Хэнтан
сообщение Mar 21 2005, 21:12
Сообщение #904


Level 1


Класс: Ученик Дракона
Характер: True Neutral
Раса: Дракон



QUOTE (Lex @ Mar 21 2005, 16:38)


дамми. Все просто. Для начала дамми должен быть creature, а не placeable. Есть у кричей такой внешний вид.
На дамаж объекта написать скрипт дачи экспы и наложение heal (чтоб не убили). И естественно поставить флаг immortale

Извините за мою тупость и лаймерство,но немогли бы вы мне объяснить что такое:creature,placeable,кричей,флаг immortale? :unsure:

Еще раз извините!!!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Mar 21 2005, 21:35
Сообщение #905


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

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



creature - монстр или НПС (не игровой персонаж). Живое существо короче, не вещь и не мебель.. (хе...скелет по идее тоже creature)
placeable - это предметы интерьера. Ящики, шкафы, колонны.
крич это creature и есть. Просто так сокращают.
флаг это место, где можно поставить галочку или снять ее. Точнее не место, а что эта галочка, или ее отсутствие значит.
immortale - это бессмертие. Чтобы это сделать надо в свойствах creature в одной из закладок поставить флаг immortale (проще говоря около слоа immortale поставить галочку)


А теперь собсна по теме:
- эти вопросы в раздел новичков.
- почитай статью (тема Вопросы и Ответы, 2-ой пост.) После этого многие вопросы такого рода отпадут.
- и читайте ПРАВИЛА РАЗДЕЛА.

епрть..
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Mar 21 2005, 22:10
Сообщение #906


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

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



QUOTE (Хэнтан @ Mar 22 2005, 00:12)
Извините за мою тупость и лаймерство,но немогли бы вы мне объяснить что такое:creature,placeable,кричей,флаг immortale? 
Еще раз извините!!!

Объясни подробно ЗАЧЕМ тебе это знать?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
][umepa
сообщение Mar 22 2005, 09:05
Сообщение #907


Level 3
*

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



тут вопросик появился, поставил эту команду на непися:
void main()
{
object oPC = GetPCSpeaker();
ActionForceFollowObject(oPC, 1.0);
}
он за мной идёт все нормально, но если начинается бой то непись за мной уже не идёт . Как сделать что бы и после окончания боя он следовал за мной? :bad:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Mar 22 2005, 10:06
Сообщение #908


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

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



Поставь проверку, на хербит или на юзер деф. Твой НПС идет за тобой акцией, она сбилась и он отстал. Можно забить ему стек команд и тогда он ничего делать не будет только тупо бежать за тобой.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ketcalkoatl
сообщение Mar 22 2005, 10:07
Сообщение #909


Level 6
**

Класс: Монах
Характер: Neutral Evil
Раса: Человек
NWN: Тексты



Повесь скрипт на диалог NPC.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tarron
сообщение Mar 22 2005, 20:16
Сообщение #910


Level 2
*

Класс: Дварф-Защитник
Характер: Lawful Evil
Раса: Дварф



О народ вот тут давно хотели реализовать но не смогли ибо не имеем даже представления как.Мб ОТЦЫ помогут=)
Приходишь в темный город и говоришь дескать вот я такой растакой крутан дайте мне отряд и тебе в подчинение выдают отряд гоблинов ну или орков там от уровня.Но главное требование чтобы они бегали за мной и атакили того кто атакит меня или кого атакю я .МБ вы поможите.ЕСли слодно с группой то можно и с одним но конечно важно группу.
Заранее спасибо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
][umepa
сообщение Mar 22 2005, 22:31
Сообщение #911


Level 3
*

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



айв а как проверку например на heartbeat поставить :swoon: я мало ещё чё знаю
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Friedrich
сообщение Mar 22 2005, 22:50
Сообщение #912


Level 5
**

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



Одного - это просто. Сделай его хенчманом (пояснения нужны?).

Группу - это сложно. В принципе, можно сделать главаря группы хенчманом ПС. Второго - хенчманом главаря, третьего - хенчманом второго и т.д.
При этом нужно отслеживать смерть каждого гоблина и соответствующим образом перестраивать цепочку. Т.е.
убили командира - назначаем 2-го гоблина хенчманом ПС.
Убили 2-го гоблина. Подчиняем 3-го командиру. и т.д.

По идее, они будут бегать за игроком а ля бойцы в Rainbow Six. :D
lДобавлено в 23:22
][umepa
айв а как проверку например на heartbeat поставить я мало ещё чё знаю

В скрипте onSpawn раскомментируешь строчкуSetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT);
Сохраняешь скрипт под другим именем.

Теперь скрипт onUserDefined будет вызываться как "хербит". Т.е. каждые 6 сек. (каждый раунд). Туда пишешь:
Neverwinter Script Source
void main()
{
int nEvent = GetUserDefinedEventNumber();

if (nEvent == EVENT_HEARTBEAT)
{
   object oPC = GetLocalObject(OBJECT_SELF, "PC_TO_FOLLOW");
 
   // если ПС не определен ИЛИ идет бой -> прервать сценарий
   if(!GetIsObjectValid(oPC) || GetIsInCombat() ) return;
  
   ActionForceFollowObject(oPC, 1.0);
}
}

В свой скрипт в диалоге добавляешь
SetLocalObject(OBJECT_SELF, "PC_TO_FOLLOW", oPC);

Чтобы отпустить НПС удали локалку:
DeleteLocalObject(OBJECT_SELF, "PC_TO_FOLLOW");

З.Ы. Вместо хербита, пожалуй, лучше испольщыват КомбатРаундЭнд.

Сообщение отредактировал Friedrich - Mar 22 2005, 23:24
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
][umepa
сообщение Mar 23 2005, 08:04
Сообщение #913


Level 3
*

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



спасибо ,Friedrich :yahoo: а чё значит расоментировать?
Добавлено в [mergetime]1111554341[/mergetime]
тьфу :DB: раскоментировать?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tiger Greyhawk
сообщение Mar 23 2005, 08:24
Сообщение #914



Иконки Групп

Класс: Обыватель
Характер: Chaotic Good
Раса: Человек
NWN: Скриптинг [Sn]



QUOTE (Хumepa @ Mar 23 2005, 08:04)
а чё значит расоментировать?

знак // - это комментарий. Все, что находится в этой строчке после него не воспринимается компилятором. Убрать эти знаки и значит раскоментировать.
Лови ссылки: первая и вторая
Вопросы типа "что значит" проще, имхо, на канале (первая ссылка). Здесь большие темы. То, что никак в чате.

Сообщение отредактировал Tiger Greyhawk - Mar 23 2005, 08:25
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
][umepa
сообщение Mar 23 2005, 14:10
Сообщение #915


Level 3
*

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



Friedrich млин чё то не фурычит можешь описать весь процесс по подробней плз :shout: :shout:
Добавлено в [mergetime]1111576693[/mergetime]
памаги плз нужно очень а то я с горя :swoon:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Mar 23 2005, 16:42
Сообщение #916


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

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



Этот кусок вставишь в конце скрипта на heartbeat:
Neverwinter Script Source
if(GetLocalInt(OBJECT_SELF, "PC_TO_FOLLOW") == TRUE)
    {
        SignalEvent(OBJECT_SELF, EventUserDefined(2001));
    }


На UserDefined поставь такой: (скрипты сырой и я его не тестил, учись сам)

Neverwinter Script Source
//:://////////////////////////////////////////////
//:: Created By: WRG! Aiwan aiwan@e-mail.ru
//:: Created On: 23.03.2005
//:://////////////////////////////////////////////
//::
//:://////////////////////////////////////////////

void main()
{
if (GetArea(OBJECT_SELF) != GetArea(GetFirstPC()) || !GetIsObjectValid(oPC) || GetIsInCombat())
      return; // Если НПС не влокации вместе с РС или идет бой или РС базарит то возврат
    object oPC = GetFirstPC();
    object oNPC = OBJECT_SELF;
    int nEvent = GetUserDefinedEventNumber();
    float fDist = GetDistanceBetween(oPC, oNPC); // Расстояние между РС и НПС
    if (nEvent == 2001 && fDist > 20.f) // Если дальше 20 метров, т.е двух тайлов
    {
    AssignCommand(oNPC, ActionForceFollowObject(oPC, 1.0));
              int iRand = Random(4);
              switch (iRand)
              {
                    case 0:
                    {
                        SpeakString("Подожди!");
                    }
                    case 1:
                    {
                        SpeakString("Я не успеваю!");break;
                    }
                    case 2:
                    {
                        SpeakString("Стооой!");break;
                    }
                    case 3:
                    {
                        SpeakString("Не убегай!");break;
                    }
              }
          }
    return;
}

Добавлено в [mergetime]1111585465[/mergetime]
Удалить локалку и не идти за РС в диалоге:
Neverwinter Script Source
SetLocalInt(OBJECT_SELF, "PC_TO_FOLLOW", FALSE)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
][umepa
сообщение Mar 24 2005, 12:17
Сообщение #917


Level 3
*

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



айв, спасибки я всё вставил как ты сказал токо неписи всё равно за мной после боя не идут тут вот из-за этого может: else if ( GetWalkCondition(NW_WALK_FLAG_CONSTANT))
error : no right bracket on expression
и вот ещё
float fDist = GetDistanceBetween(oPC, oNPC); // Расстояние между РС и НПС
error :unexpected end compund statement
не компилируются можешь скажешь как исправить если я тя ещё не достал с нубскими вопросами :swoon:
Добавлено в [mergetime]1111656990[/mergetime]
вот ещё млин че он не компилируется айв подскажи
if (GetArea(OBJECT_SELF) != GetArea(GetFirstPC()) || !GetIsObjectValid(oPC) || GetIsInCombat())
пишет error variable defined without type
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Mar 24 2005, 12:58
Сообщение #918


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

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



поставь это:
[QUOTE=Aiwan, Mar 23 2005, 16:42]object oPC = GetFirstPC();[/QUOTE]
выше этого:
[QUOTE=Aiwan, Mar 23 2005, 16:42]if (GetArea(OBJECT_SELF) != GetArea(GetFirstPC()) || !GetIsObjectValid(oPC) || GetIsInCombat())
return; // Если НПС не влокации вместе с РС или идет бой или РС базарит то возврат[/QUOTE]



[QUOTE=][umepa, Mar 24 2005, 12:17]токо неписи всё равно за мной после боя не идут тут вот из-за этого может: else if ( GetWalkCondition(NW_WALK_FLAG_CONSTANT))
error : no right bracket on expression[/QUOTE]
код приводи полностью
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Friedrich
сообщение Mar 24 2005, 17:17
Сообщение #919


Level 5
**

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



Химера! Открой файл Chapter1 оригинальной кампании НВН. Там на полуострове (Penisula) были НПС которых нужно было проводить (н.п.: Master Johns.) Посмотри как это сделали1 Биовары и успокойся.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Mar 24 2005, 17:53
Сообщение #920


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

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



][umepa эти скрипты я компелили в авроре, только не проверял на деле. Сам проверяй.
Neverwinter Script Source
object oPC = GetFirstPC();
if (GetArea(OBJECT_SELF) != GetArea(GetFirstPC()) || !GetIsObjectValid(oPC) || GetIsInCombat(oPC))
      return; // Если НПС не влокации вместе с РС или идет бой или РС базарит то возврат

Попробуй так, Лекс прав. :D А ВЕДЬ Я КОМПЕЛИЛ! Видать патч что то косячит...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

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

 



Текстовая версия Сейчас: 10th July 2025 - 04:37