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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 71 72 73 74 75 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Dik Morris
сообщение Dec 26 2005, 17:55
Сообщение #1801


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



Да подойдет под любой :)
Ставь желательно нивидемый обьект, скриптик на OnHeartbeat и вперед.
PS: феникс ведь все расписал...

Сообщение отредактировал Dik Morris - Dec 26 2005, 17:57
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
SeDAl
сообщение Dec 26 2005, 17:56
Сообщение #1802


Level 1


Класс: Друид
Характер: True Neutral
Раса: Эльф



и можно подробнее рассказать об этом:
QUOTE
//это вейпы. они обозначают место, на котором создаются плейсы ночью
object oWP_1 = GetWaypointByTag("ТАГ первого");
object oWP_2 = GetWaypointByTag("ТАГ второго");
object oWP_3 = GetWaypointByTag("ТАГ третьего");


И что такое "ResRes_плейса1"?

Сообщение отредактировал SeDAl - Dec 26 2005, 18:00
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Dec 26 2005, 18:06
Сообщение #1803


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



Neverwinter Script Source
//это вейпы. они обозначают место, на котором создаются плейсы ночью
object oWP_1 = GetWaypointByTag("ТАГ первого");
object oWP_2 = GetWaypointByTag("ТАГ второго");
object oWP_3 = GetWaypointByTag("ТАГ третьего");

Вейпы:
Вайпоинты. (Точки маршрута, в русс. версии)
В данном скрипте, они определяют место где создадутся нужные тебе плейсы. Т.е на том месте где ночью должны быть плейсы, поставь вайпоинты. (плейсы не размещай)
PS: старайся редактировать старые сообщения, ведь форум не резиновый. =)
Так же советую прочитать различные мануалы (раздел файлы) + на форуме огромное кол-во статей в помощь новичкам. ;)
********************************
QUOTE
И что такое "ResRes_плейса1"?

Не: ResRes, а ResRef.
Служебное имя, уникальное для каждого предмета.
Присваивается когда имя создания/плейса/итема/и т.п пишется англ. буквами
********************************
Например:
Neverwinter Script Source
void main()
{
CreateItemOnObject("nw_it_gem012", GetPCSpeaker(), 1);
//Выдаем предмет по ResRes.
}


Сообщение отредактировал Dik Morris - Dec 26 2005, 18:32
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
SeDAl
сообщение Dec 26 2005, 18:20
Сообщение #1804


Level 1


Класс: Друид
Характер: True Neutral
Раса: Эльф



Значит я не ставлю сам плейсейбл на локацию. Ставлю вейпоинт в то место, где должен появляться плейсейбл.
в строке
QUOTE
object oObject_1 = GetObjectByTag("ТАГ первого");

пишу тег плейсейбла
QUOTE
object oWP_1 = GetWaypointByTag("ТАГ первого");

пишу тег вейпоинта
QUOTE
CreateObject(OBJECT_TYPE_PLACEABLE, "ResRes_Плейса1", GetLocation(oWP_1));

ResRef плейса
Так все? У меня не работает что-то.
Так ResRes и ResRef - это одно и тоже? В скрипт нельзя писать ResRef заместо ResRes?
И еще могут быть имена, теги и РесРефи одинаковыми?

Сообщение отредактировал SeDAl - Dec 26 2005, 18:54
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Dec 27 2005, 10:48
Сообщение #1805


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

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



SeDAl я тебе даю скрипт, он делает вот что: есть невидимый объект. У него в слоте (любом) стоит эот скрипт. Любом я конечно пошутил, но я имею ввиду нужном тебе. У меня он стоит на OnUserDefaine. Можно хоть на хертбит, главное НАСТРОЙ УСЛОВИЕ КОГДА ОН СРАБОТАЕТ. Его суть. На этом невидимом объекте вешаем локальные стринги ResRef_PLC_1, ResRef_PLC_2 и т.д. равные ResRef-у объектов что должны создаться. Сам скрипт определит сколько их и создаст каждый раз уникальный из общего числа. Дальше. Если тебе нужно строгое положение, то предварительно поставь объект на локацию. Если тебе нужно разное расположение то тут, то дальше присвой на него "RandomLocation" LocalFloat равную метрам твоего круга. Ну присвоил ты 10, значит на 10 метрах по огружности он будет создаваться каждый раз. Дальше, если ничего не установить, то создаваться будет прямо на месте этого невидимого объекта. Скрипт рабочий, заточи под себя.
Таги. Невидимый объект - это общий таг группы. А все объекты создадутся в таком виде "AM_PLC_SP_"+ТАГ НЕВИДИМОГО ОБЪЕКТА. Соответсвенно, если тебе нужено строгое положение всех спавнящих плейсов, то поставь один такой в любом углу поверни как надо и все следующие пудут на нем спавниться. Зачем такие сложности? Вот у меня есть плейсы кристаллов на стенах. Их поймать трудно куда спавняться, а так я поставил его один раз и забыл. Каждый раз вхожу как бы в новую локацию, кристаллы меняются на стенах и полу. Так же и НПС. Но это уже совсем другой скрипт и настройки...

Neverwinter Script Source
//:://////////////////////////////////////////////
//:: OnUserDefaine  am_cud_spawn
//:: Copyright © 2005 WRG!
//:://////////////////////////////////////////////
/*
    СКРИПТ НЕПОСРЕДСТВЕННО ИСПОЛНЯЕТ ОБМЕН PLC_
    ОБЪЕКТОВ В ЛОКАЦИЯХ В СЛУЧАЕ РАЗРУШЕНИЯ И
    В СЛУЧАЕ ВХОДА РС В ЛОКАЦИЮ ПО СИГНАЛУ

  Скрипт спавнящий разных PLC объекты на локациях.
  AM_PLC_SP_[+ТАГ OBJECT_SELF] - наши объекты.
*/

//:://////////////////////////////////////////////
//:: Created By: Aiwan
//:: Created On: 28.11.2005
//:://///////////////////////////////////////////
location CreateRandomLocation(object oTarget, float fRadius, int bOnLine = TRUE)
{
if(!bOnLine)
fRadius=IntToFloat(Random(FloatToInt(fRadius)));

float iXO=VectorMagnitude(GetPosition(oTarget))*cos(VectorToAngle(GetPosition(oTarget)));
float iYO=VectorMagnitude(GetPosition(oTarget))*sin(VectorToAngle(GetPosition(oTarget)));
float fRndomAngle=IntToFloat(Random(360));
location lNEW=Location(GetArea(oTarget),Vector(iXO+fRadius*cos(fRndomAngle),iYO+fRadius*sin(fRndomAngle)),360.0);
return lNEW;
}

void Debug(string message)
{
    object oPC = GetFirstPC();
    if (!GetLocalInt(GetModule(), "DEBAG_PC"))
    {
      SendMessageToPC(oPC, "Debag message: "+message);
    }
    if (!GetLocalInt(GetModule(), "DEBAG_DM"))
          {
            SendMessageToAllDMs("Debag message to DMs: "+message);
          }
}

void main()
{

  int nEvent = GetUserDefinedEventNumber();
  if (GetLocalInt(OBJECT_SELF, "STOP")) return; // Отключаем, если надо
  if (GetLocalInt(OBJECT_SELF, "DAYS_WAITING")>0) return;
//======================== USER DEFINED EVENT===================================
    if (nEvent == 7000)
  // nEvent == 7000 - сигнализируем скриптом. У меня так, у тебя может быть другое
    {
    if (GetLocalInt(OBJECT_SELF, "STOP"))
      return;

      object oSelf = OBJECT_SELF;
      string sTag = GetTag(oSelf); // Таг невидимого объекта (Общий таг группы)
      object oPlc = GetNearestObjectByTag("AM_PLC_SP_"+sTag);
      int i=1;
      string sResRef = GetLocalString(oSelf, "ResRef_PLC_"+IntToString(i));
      object oNext; // Следующий объект на это место
      location lLoc; // Место где появляется наш объект

    // Задержка для стандартных объектов, зависит от имени OBJECT_SELF
    if(GetName(oSelf)=="Spawn PLC System")
      SetLocalInt(oNext, "DAYS_WAITING", Random(5)+1);

      float f = GetLocalFloat(oSelf, "RandomLocation");
      if(f!=0.0)lLoc = CreateRandomLocation(oSelf, f);
      // Если установить на скрытый объект LocalFloat == "RandomLocation"
      // то ее значение будет радиусом на которм будет пояляться объект.
      // Если поставить один объект в точку, то все следующие будут
      // появляться на его месте. Если не ставить НИЧЕГО, то все объекты
      // будут создаваться на этом невидимом объекте.

      if(f==0.0)
      {
            if(!GetLocalInt(oSelf, "DO_THIS"))
            {
              if(oPlc != OBJECT_INVALID)
              {
                SetLocalLocation(oSelf, "SPAWN", GetLocation(oPlc));
              }
              else
                  {
                    SetLocalLocation(oSelf, "SPAWN", GetLocation(oSelf));
                  }
              SetLocalInt(oSelf, "DO_THIS", TRUE);
            }
          lLoc = GetLocalLocation(oSelf, "SPAWN");
        }

      while(sResRef!="")
      {
        i++;
        sResRef=GetLocalString(oSelf, "ResRef_PLC_"+IntToString(i));
      }
      // Так, как вверху, условие было для первого пустого значения
      // то один порядковый номер мы отнимаем из результата
      i = i-1;
      Debug("Общее число объектов - "+IntToString(i));
      int iNext = Random(i)+1;
      sResRef = GetLocalString(oSelf, "ResRef_PLC_"+IntToString(iNext));
      Debug("Следующий - "+IntToString(iNext));

      //----------------------------------------------------------------------
      //  Если выпал тот же ResRef, что стоит здесь
      //----------------------------------------------------------------------
        if(sResRef == GetResRef(oPlc))
        {
            Debug(IntToString(iNext)+" - этому PLC выпало опять быть здесь.");
            iNext++; // Увеличиваем его номер на еденицу
            if(iNext > i) iNext = 1;
            // Если номер больше общего кол-ва PLC, то начинаем с первого.
            Debug(IntToString(iNext)+" - сменим номер на еденицу больше.");
        }
        oNext = CreateObject(OBJECT_TYPE_PLACEABLE, GetLocalString(oSelf, "ResRef_PLC_"+IntToString(iNext)), lLoc,0, "AM_PLC_SP_"+sTag);
        DestroyObject(oPlc);
    }
//------------------------------------------------------------------------------
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sayran
сообщение Dec 27 2005, 15:53
Сообщение #1806


Level 2
*

Класс: Монах
Характер: Lawful Good
Раса: Человек



Всем привет,народ подскажите пожалуйсто как реализовать в скриптах респаун мобов,хочу сделать чтото типа линки,но в скриптах пока плохо разбираюсь,буду очень благодарен за помощь !!!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Dec 27 2005, 16:25
Сообщение #1807


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

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



Sayran, смотря какой!
Можно с помощью энкаунтера(случайной встречи) - это при наступлении игрока на определенную область, тогда можно вообще без скриптов обойтись.

Еще посмотри в Базе скриптов - тема такая в этом форуме, там есть несколько скриптов про респаун.

QUOTE (Sayran @ Dec 27 2005, 16:53)
чтото типа линки

Эм, а поподробнее, что конкретно нужно?

QUOTE (SeDAl @ Dec 26 2005, 19:20)
Так ResRes и ResRef - это одно и тоже? В скрипт нельзя писать ResRef заместо ResRes?

Есть ТОЛЬКО ResRef , а ResRes - это опечатка!

SeDAl, скачай туториал Айвана с сайта, там очень много полезного!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sayran
сообщение Dec 27 2005, 17:27
Сообщение #1808


Level 2
*

Класс: Монах
Характер: Lawful Good
Раса: Человек



Со встречами случайными я разобрался,это просто,мне нужен такой скрипт,что б например герой появился на карте убил моба,а он допустим через минуту респаунился,на этой же карте в этом же месте,неполучаится ничего и все тут.....
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Dec 27 2005, 17:48
Сообщение #1809


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

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



QUOTE (Sayran @ Dec 27 2005, 17:27)
неполучаится ничего и все тут.....

а как, позволь спросить, ты делаешь, что у тебя не получается?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Dec 27 2005, 18:21
Сообщение #1810


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

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



QUOTE (Sayran @ Dec 27 2005, 18:27)
Со встречами случайными я разобрался,это просто,мне нужен такой скрипт,что б например герой появился на карте убил моба,а он допустим через минуту респаунился,на этой же карте в этом же месте,неполучаится ничего и все тут.....


Вот простенький на слот OnDeath моба.
Neverwinter Script Source
//это мы написали функцию, чтобы можно было CreateObject использовать в функции DelayCommand
void ActionCreateObject(int iIbjectType, string sTemplate, location lLocation, int bUseAppearAnimation=FALSE, string sNewTag="");



void ActionCreateObject(int iIbjectType, string sTemplate, location lLocation, int bUseAppearAnimation=FALSE, string sNewTag="")
{
CreateObject(iIbjectType, sTemplate, lLocation, bUseAppearAnimation, sNewTag);
}

//это само действие
void main()
{
location lLoc = GetLocation(OBJECT_SELF);//место, где умер моб
string sString = "deer002";//тут указываешь его РесРеф в палитре

//создаем его на месте смерти. 3.0 - это время, через которое создастся моб
DelayCommand(3.0, ActionCreateObject(OBJECT_TYPE_CREATURE, sString, lLoc));
}


Обязательно посмотри в Базе скриптов.

QUOTE (Lex @ Dec 27 2005, 19:32)
1. ты даешь тело функции над void main() так что описание функции не нужно.


:yes: , но за то при нажатии на ActionCreateObject в списке функций будет памятка
QUOTE
//это мы написали функцию, чтобы можно было CreateObject использовать в функции DelayCommand

:)

QUOTE (Lex @ Dec 27 2005, 19:32)
2. ты сам проверял? Если труп исчезает, то твой DelayCommand пропадет вместе с ним.

Пардон, запарил. :oops:

Сообщение отредактировал -fenix- - Dec 27 2005, 22:17
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Dec 27 2005, 18:32
Сообщение #1811


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

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



1. ты даешь тело функции над void main() так что описание функции не нужно.
те это:
QUOTE (-fenix- @ Dec 27 2005, 18:21)
//это мы написали функцию, чтобы можно было CreateObject использовать в функции DelayCommand
void ActionCreateObject(int iIbjectType, string sTemplate, location lLocation, int bUseAppearAnimation=FALSE, string sNewTag="");

лишнее.

2. ты сам проверял? Если труп исчезает, то твой DelayCommand пропадет вместе с ним. При задержке 3 сек может еще успеешь.. но при большей, чем 5 - нет. (в случае стандартной настройки с исчезновением тел. Но в любом случае это не надежно). Вешай эту вещь на что-нить.. например на локацию.

3.Sayran, посмотри в разделе Шарды (я так понял, ты всетаки не сингл делаешь, ибо спавн монстров какой-то специфически-шардовый у тя) что-нить по Спавн-Системам. Там было. Скриптить ничего не надо, тока разобраться и настроив, поставить.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sayran
сообщение Dec 27 2005, 19:44
Сообщение #1812


Level 2
*

Класс: Монах
Характер: Lawful Good
Раса: Человек



Огромное спасибо ЗА ПОМОЩЬ !!! МАСТЕРАМ !!! ВЫРУЧЕЛИ !!! :D
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
justshurik
сообщение Jan 2 2006, 02:40
Сообщение #1813


Level 4
**

Класс: Маг
Характер: Chaotic Evil
Раса: Человек



Ситуация такая.Есть два обьекта : рычаг и баллиста. Баллиста нацелена на определенную точку.
Нужно чтобы при нажатии на рычаг баллиста выстреливала (к примеру фаерболом). Если кому не сложно, подскажите, как сделать. Заранее благодарен!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
NedWarN
сообщение Jan 2 2006, 06:19
Сообщение #1814


Level 5
**

Класс: Маг
Характер: Lawful Good
Раса: Тварь



justshurik
Поставь скрипт на ОнЮзет Рычага!
Всем Сорри >> нет Возможности Использовать NSS!
void main()
{
object oPC = GetLastUsedBy();
object oBallista = GetObjectByTag("BALLISTA");
object oCel = GetObjectByTag("CEL");
int nSpell = SPELL_FIREBALL;
PlayAnimation(ANIMATION_PLACEABLE_ACTIVATE);
AssignCommand(oBallista, DelayCommand(0.6, ActionCastFakeSpellAtObject(nSpell,oCel, PROJECTILE_PATH_TYPE_DEFAULT)));
}
Добавлено в [mergetime]1136172081[/mergetime]
А вообще Зачем Тема Вопросы Новичков, или Скрипты. Создана? :D
Пость такие вопросы Там!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jan 2 2006, 09:50
Сообщение #1815


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



Есть множество тем где можно было задать вопрос, повнимательнее в следующий раз:
Одиночный вопрос
Скрипты
Вопросы новичков
Дополнение к скрипту NedWarN’ а.
Neverwinter Script Source
void main()
// Cкрипт на onUsed рычага.
{
object oPC = GetLastUsedBy();//Определяем игрока, в данном случаее ето тот кто юзает обьект.
object oBa = OBJECT_SELF;//Так все упрощается.
object oCel = GetObjectByTag("CEL");//Объект на который должен быть скастован спелл.
int nSpell = SPELL_FIREBALL;//Определяем переменную скастованного спелла, сейчас это фаербол
//Но может быть и другой (набери в фильтре констант: SPELL_*)

if (((GetIsObjectValid(oCel))
&& GetDistanceToObject(oCel)<=40.0f)
&&  GetLocalInt(OBJECT_SELF,"BALL")==!1)
//Длинная проверка. Если обьект "живой" и находится на дистанции больше или равной 40, а так же проверка на локалку (сейчас поймешь зачем)
  {
  AssignCommand(oBa, PlayAnimation(ANIMATION_PLACEABLE_ACTIVATE));//Активируем плейс
  AssignCommand(oBa, DelayCommand(0.6, ActionCastFakeSpellAtObject(nSpell,oCel, PROJECTILE_PATH_TYPE_DEFAULT)));//Запускаем снаряд. НО! Снаряд "пустышка", вреда не наносит, если нужен боевой снаряд то замени фун=цию на: ActionCastSpellAtObject
  SetLocalInt(OBJECT_SELF,"BALL",1);//Уст. локальную переменную для эффекта перезарядки баллисты.
  DelayCommand(5.0, SetLocalInt(OBJECT_SELF,"BALL",0));//Снимаем локалку, типа перезарядилась
  DelayCommand(5.3, AssignCommand(oBa, PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE)));
  }
else if(GetLocalInt(OBJECT_SELF,"BALL")==1)//Думаю по спиакам понятно.
  {
  FloatingTextStringOnCreature("Баллиста перезаряжается...",oPC);
  }
else if(!GetIsObjectValid(oCel))//Думаю по спиакам понятно.
  {
  FloatingTextStringOnCreature("Обьект уничтожен...",oPC);
  }
else if(GetDistanceToObject(oCel)>40.0f)//Думаю по спиакам понятно.
  {
  FloatingTextStringOnCreature("Обьект слишком далеко!",oPC);
  }
}


Сообщение отредактировал Dik Morris - Jan 2 2006, 19:54
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
justshurik
сообщение Jan 2 2006, 18:41
Сообщение #1816


Level 4
**

Класс: Маг
Характер: Chaotic Evil
Раса: Человек



Подскажите пожалуйста. Вот есть некая зона (тригер генерации новый общий). Нужно чтобы когда какой-нибудь обьект входит в нее у него можно было взять тег и использовать этот обьект в качестве мишени для баллисты (см мой предыдущий пост). Причем неизвестно точно какой обьект войдет на эту зону(сам игрок или какой-нибудь монстр) И кроме того, скрипт должен сравнивать по тегу, нужно ли стрелять баллисте в заданный обьект или нет. Т.е. работа скрипта выглядит примерно так: некий обьект вошел в некую зону триггера, находящаяся неподалеку балииста проверяет(по тегам прописаным в скрипте, не по фракции) является ли этот обьект дружественным и соответственно стреляет или не стреляет. Если кто знает как это сделать, расскажите пожалуйста. Заранее спасибо!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jan 2 2006, 20:11
Сообщение #1817


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



Ставь на onEnter триггера.
Neverwinter Script Source
void main()
{
object oEnter = GetEnteringObject();//Тот кто наступил на триггер.
object oBall  = GetNearestObjectByTag("BALLISTA");//Таг ближайшей баллисты.
object oPC = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_IS_PC);//Игрок

if ((GetTag(oEnter)=="TAG_ENTER") || GetIsPC(oPC))
/*
Проверка на таг, если таг вошедшего равен: TAG_ENTER или вошедший игрок, ТО:
(Можешь добавить проверку на другие таги, в этом помогут операторы && - И, || - или)
*/

  {
  AssignCommand(oBall, ActionCastSpellAtObject(SPELL_FIREBALL,oEnter,PROJECTILE_PATH_TYPE_DEFAULT));
  //Кастуем фаерболл.
  }
}


Сообщение отредактировал Dik Morris - Jan 2 2006, 20:12
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
justshurik
сообщение Jan 2 2006, 20:30
Сообщение #1818


Level 4
**

Класс: Маг
Характер: Chaotic Evil
Раса: Человек



Большое спасибо! Еще маленький вопросик. Можно ли сделать так, что бы баллиста кастовала фаерболл все время, пока игрок или кто-либо еще находиться на триггере?
Добавлено в [mergetime]1136224171[/mergetime]
Только с разницей между выстрелами в 1 секунду
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jan 2 2006, 23:49
Сообщение #1819


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

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



QUOTE (Dik Morris @ Jan 2 2006, 09:50)
AssignCommand(oBa, DelayCommand(0.6, ActionCastFakeSpellAtObject(nSpell,oCel, PROJECTILE_PATH_TYPE_DEFAULT)));//

не PROJECTILE_PATH_TYPE_DEFAULT а PROJECTILE_PATH_TYPE_BALLISTIC.
QUOTE (NedWarN @ Jan 2 2006, 06:19)
Всем Сорри >> нет Возможности Использовать NSS!

а это что за бред??? Тэги ручками написать никак, если у тебя яваскрипты не пашут и кнопки не отрабатывают???? пред.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
justshurik
сообщение Jan 3 2006, 00:39
Сообщение #1820


Level 4
**

Класс: Маг
Характер: Chaotic Evil
Раса: Человек



QUOTE (Lex @ Jan 2 2006, 23:49)
не PROJECTILE_PATH_TYPE_DEFAULT а PROJECTILE_PATH_TYPE_BALLISTIC.


И с DEFAULT и с BALLISTIC нормально работает

Обьясните пожалуйста, что значит сообщение: СКРИПТ ххххх, СЛИШКОМ МНОГО ИНСТРУКЦИЙ.


Сообщение отредактировал justshurik - Jan 3 2006, 01:17
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jan 3 2006, 03:18
Сообщение #1821


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

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



QUOTE (justshurik @ Jan 3 2006, 00:39)
И с DEFAULT и с BALLISTIC нормально работает

разница в визуализации. Дефолт это полет по прямой. Балистик - по баллистической траектории. Не критично, но смотрится красиво.
QUOTE (justshurik @ Jan 3 2006, 00:39)
Обьясните пожалуйста, что значит сообщение: СКРИПТ ххххх, СЛИШКОМ МНОГО ИНСТРУКЦИЙ.

то и значит. Скрипт запрашивает выполнение слишком большого количества операций. Скорее всего бесконечный цикл там внутри оказался.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
justshurik
сообщение Jan 3 2006, 13:52
Сообщение #1822


Level 4
**

Класс: Маг
Характер: Chaotic Evil
Раса: Человек



Да. Там был бесконечный цикл. Эт я пытался сделать выстрелы баллисты с интервалом в 1 секунду. Так и не получилось.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jan 3 2006, 14:22
Сообщение #1823


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

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



чтобы палить постоянно с интервалом в 1 секунду (кстати многовато выстрелов больно получается). То надо в ХБ записать 6 выстрелов в задержкой в 0,1,2,3,4,5 секунд.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
justshurik
сообщение Jan 3 2006, 14:53
Сообщение #1824


Level 4
**

Класс: Маг
Характер: Chaotic Evil
Раса: Человек



Спасибо за ответ. Только я не совсем понял, что такое ХБ?

Сообщение отредактировал justshurik - Jan 3 2006, 14:53
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jan 3 2006, 14:57
Сообщение #1825


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



Neverwinter Script Source
//Скрипт на onHeartBeat баллисты.
//Баллиста будет палит по игроку или НПС каждые шесть секунд, вплоть до смерти, //мишени.
void main()
{
object oBal = OBJECT_SELF;//Сама баллиста
object oPC = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_IS_PC);//Игрок
object oNPC = GetNearestObjectByTag("");//НПС (выше ты писал что нужна проверка по тагу)

if ((GetIsObjectValid(oPC)) && GetDistanceToObject(oBal)<=30.0f)
//Приверка, если игрок жив и находится на дистанции 30 метров то:
  {
  AssignCommand(oBal, ActionCastSpellAtObject(SPELL_FIREBALL,oPC,PROJECTILE_PATH_TYPE_DEFAULT));
  //Шарахнем фаербольчиком : D
  }
else if ((GetIsObjectValid(oNPC)) && GetDistanceToObject(oBal)<=30.0f)
/*
А если жив нпс то:
(можно легко добавить еще проверку на НПС, юзая операторы || (или) выглядеть будет примерно так:)
else if ((GetIsObjectValid(oNPC)) || GetIsObjectValid(GetNearestObjectByTag("ТАГ ВТОРОГО НЕПИСЯ")))
*/

  {
  AssignCommand(oBal, ActionCastSpellAtObject(SPELL_FIREBALL,oPC,PROJECTILE_PATH_TYPE_DEFAULT));
  //Шарахнем фаербольчиком : D
  }
}

PS:
QUOTE
Спасибо за ответ. Только я не совсем понял, что такое ХБ?

Эвент onHeartBeat, кратко просто ХБ.
(Служит для того чтобы нужное событие происходило каждые 6 секунд.)

Сообщение отредактировал Dik Morris - Jan 3 2006, 14:58
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

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

 



Текстовая версия Сейчас: 28th April 2025 - 16:11