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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 104 105 106 107 108 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Solmyr2000
сообщение Nov 12 2006, 21:31
Сообщение #2611


Level 3
*

Класс: Тайный Лучник
Характер: Chaotic Good
Раса: Дракон



Короче бился-бился, но так и не удалось (IMG:style_emoticons/kolobok_light/banned.gif) создать систему отдыха.

Идея такая -
Отдыхать на природе по системе HotU.
Отдыхать в городе можно, однако только ночью и в 50% шансов около тебя появляется страж и прерывает твой отдых, днём же прерывается.
Отдыхать в зданиях можно только на кроватях (в "диалоге" с кроватью), остальной отдых автоматически прерывается ClearAllActions().

Ничего не удалось (IMG:style_emoticons/kolobok_light/crazy.gif) всё глючит (IMG:style_emoticons/kolobok_light/crazy.gif)
Дело в том, что проверка на exterior/interior бесполезна, ибо город тоже экстериор.
А отдых на кроватях прерывается также, как и не на ней. (Установка/проверка переменных тоже не помогает)

Может кто-нибудь поможет ?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Nov 13 2006, 10:28
Сообщение #2612


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

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



Скрипт отдыха в студию.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение Nov 13 2006, 13:05
Сообщение #2613


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



QUOTE
Отдыхать в городе можно, однако только ночью и в 50% шансов около тебя появляется страж и прерывает твой отдых, днём же прерывается.
Отдыхать в зданиях можно только на кроватях (в "диалоге" с кроватью), остальной отдых автоматически прерывается ClearAllActions().


самоое простое, что приходит на ум - через свич сделай 2 списка с ресрефами и\ или тегами лок : список лок городских( где стражник может пробудить- а ведь это не все горлские места-врятли разрешит спать например , на центральной площади у храма а где нить в трущобах-другое дело, которче говоря к свичу еще неплохо добавить небольшую структуру с ресрефом локи и вероятностью 1-99%) и список лок, где вообще какая нить кровать находиться... а потом проверять по списку мона или нийзя- сразу массу неосответствующих отметет, а потом уже дальше проверяй другие условия (IMG:style_emoticons/kolobok_light/biggrin.gif)

но , чтобы разобраться с тонкостям неработы ,
QUOTE
Скрипт отдыха в студию.

(с) феникс
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Solmyr2000
сообщение Nov 13 2006, 16:57
Сообщение #2614


Level 3
*

Класс: Тайный Лучник
Характер: Chaotic Good
Раса: Дракон



Пока так и не понял как разделить всё это на группы (IMG:style_emoticons/kolobok_light/blush.gif) всмысле город, внешняя местность и дом.
И - вопрос такой - почему вызываются 2 стража, вместо одного (IMG:style_emoticons/kolobok_light/biggrin.gif)
Скрипт на OnPlayerRest (ТОЛЬКО ГОРОД) (сc_rest_cheking)
NSS
void main()
{
object oPC = GetFirstPC();
int i = (Random(100));
if (i < 50)
{
DelayCommand(0.0, ExecuteScript("cc_rest_town", oPC));
}
   if (i > 50)
    {
    DelayCommand(0.0, ExecuteScript("cc_rest_guards", oPC));
    }
}


Cкрипт с охранниками (cc_rest_guards):

NSS
void main()
{
object oPC = GetFirstPC();
object oTarget;
object oSpawn;
location lTarget;
oTarget = oPC;

DelayCommand(0.0, FadeToBlack(oPC));
DelayCommand(1.0, StopFade(oPC));

lTarget = GetLocation(oTarget);

oTarget = CreateObject(OBJECT_TYPE_CREATURE, "rest_cc_guard", lTarget);

AssignCommand(oTarget, ActionStartConversation(oPC, ""));

}


Нормальный отдых в городе (cc_rest_town):

NSS
void main()
{
object oPC = GetFirstPC();
DelayCommand(1.0, FadeToBlack(oPC));
DelayCommand(10.0, FadeFromBlack(oPC));
}


Сообщение отредактировал Solmyr2000 - Nov 13 2006, 17:13
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Nov 13 2006, 17:11
Сообщение #2615


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

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



у меня есть автоопределения типа в системе отдыха (разделяет город и дикую местность), но вообще я пользуюсь системой поинтов. (в каждой локе поинт, который хранит настройки для данной локации.. тип зоны, параметры дикого отдыха, общелокационный запрет/разрешение отдыха, радиус поиска энкаунтеров при опасном отдыхе). Правда там отдых скрещен еще с ожиданием (потому что игровые часы имеют значение) и есть подготовка ко сну (в дикой местности постановка лагеря, в городе просто игрок кладет подстилку)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
r1Stranger
сообщение Nov 18 2006, 13:45
Сообщение #2616


Level 4
**

Класс: Клерик
Характер: Lawful Neutral
Раса: Человек



Прет всем, сори за вмешательство.
По отдыху: а нельзя ли геру при вхождении в триггер местности отдыха присваивать ТРУЕ (IMG:style_emoticons/kolobok_light/crazy.gif) , а после отбытия ФАЛЬСЕ (IMG:style_emoticons/kolobok_light/crazy.gif) ? А в свойствах мода OnRest проверять этот параметр если он ФАЛЬСЕ, то прерывать?

А вообще такой вопрос? Как сделать, чтобы в скриптах взрывов (баллиста, катапульта, мины) при определении цели учитывалась геометрия местности - чтоб файрболы не летели сквозь стены. Когда создаешь локацию - там же в скриптах нет никакой проверки на геометрию местности - и она может вполне создасться внутри стены или внутри холма и там все и взорвется...Как то нехорошо...Нет ли че-нить учитывающего это?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Neo
сообщение Nov 18 2006, 13:57
Сообщение #2617



Иконки Групп

Класс: Пьяный Мастер
Характер: Lawful Good
Раса: Тварь
MySQL, PHP, JavaScript
Порядок Времени



а в локациях, где возможно прерывание отдыха с какой-то вероятностью, присваивать почти true (IMG:style_emoticons/kolobok_light/crazy.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
r1Stranger
сообщение Nov 18 2006, 14:26
Сообщение #2618


Level 4
**

Класс: Клерик
Характер: Lawful Neutral
Раса: Человек



QUOTE(NeoJSmith @ Nov 18 2006, 14:57) [snapback]98428[/snapback]

а в локациях, где возможно прерывание отдыха с какой-то вероятностью, присваивать почти true (IMG:style_emoticons/kolobok_light/crazy.gif)


не тупи (IMG:style_emoticons/kolobok_light/crazy.gif) (IMG:style_emoticons/kolobok_light/crazy.gif) (IMG:style_emoticons/kolobok_light/crazy.gif) (IMG:style_emoticons/kolobok_light/crazy.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Nov 18 2006, 16:04
Сообщение #2619


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

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



QUOTE(r1Stranger @ Nov 18 2006, 14:26) [snapback]98429[/snapback]
не тупи

если ты не понимаешь ничего в многозначной логике, это не значит, что ее нет.
зы: это была шутка, если плохо доходит (IMG:style_emoticons/kolobok_light/smile.gif)


QUOTE(r1Stranger @ Nov 18 2006, 13:45) [snapback]98427[/snapback]
По отдыху: а нельзя ли геру при вхождении в триггер местности отдыха присваивать ТРУЕ (IMG:style_emoticons/kolobok_light/crazy.gif) , а после отбытия ФАЛЬСЕ (IMG:style_emoticons/kolobok_light/crazy.gif) ? А в свойствах мода OnRest проверять этот параметр если он ФАЛЬСЕ, то прерывать?

так обычно и делают.
QUOTE(r1Stranger @ Nov 18 2006, 13:45) [snapback]98427[/snapback]
А вообще такой вопрос? Как сделать, чтобы в скриптах взрывов (баллиста, катапульта, мины) при определении цели учитывалась геометрия местности - чтоб файрболы не летели сквозь стены. Когда создаешь локацию - там же в скриптах нет никакой проверки на геометрию местности - и она может вполне создасться внутри стены или внутри холма и там все и взорвется...Как то нехорошо...Нет ли че-нить учитывающего это?

нормально проверить не сможешь. Ненормально тоже. Я взрывы делал в рандомной точке около расставленных поинтов, было нормально.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
r1Stranger
сообщение Nov 22 2006, 14:40
Сообщение #2620


Level 4
**

Класс: Клерик
Характер: Lawful Neutral
Раса: Человек



QUOTE(Lex @ Nov 18 2006, 17:04) [snapback]98434[/snapback]

нормально проверить не сможешь. Ненормально тоже. Я взрывы делал в рандомной точке около расставленных поинтов, было нормально.

Спасібо. Се, без флуда больше.
По взрывам. Еслі в скріптах геометрію местності нікак не проверіть - не подскажіте лі (хотя б прімерно) формулу полета ядра із катапульты. Чтоб через определенный шаг правільно проверять налічіе целі. А то вначале полета все норм (есі сам вперед катапульты во время выстрела сунешься, то взрыв все вокруг расхерачіт включая саму катапульту), а потом отклоенніе ідет.

А то очень хочется не по намеченным точкам стелять,перебірая іх, а в завісiмості от меткості стреляющего. (2стрелка/4 катапульты и локация 20/20 за 5 мин зачищена)


Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Nov 23 2006, 18:03
Сообщение #2621


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

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



за форумулой - тебе к физикам-кинетикам. Но вообще тут это и не нужно, ты задаешь тип движения (балистика) и цель. Меткость и прочие навыки можешь включить на уровне расчета радиуса отклонения от точки (чем стреляющий круче, тем меньше радиус и точнее выстрел). Расчитав радиус и взяв цель в качестве центра, расчитываешь случайную точку, куда в итоге полетит снаряд. И усе, вперед.
зы: есть ограничения в плане растояния полета, но я их уже на память не помню.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Nov 23 2006, 18:17
Сообщение #2622


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

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



формула полета ядра из катапульты: парабола, подробно см. глобальную школьную книжку "Алгебра".
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
r1Stranger
сообщение Nov 24 2006, 14:35
Сообщение #2623


Level 4
**

Класс: Клерик
Характер: Lawful Neutral
Раса: Человек



QUOTE(azathoth @ Nov 23 2006, 19:17) [snapback]98989[/snapback]

формула полета ядра из катапульты: парабола, подробно см. глобальную школьную книжку "Алгебра".

Спасибо. Буду все додумывать сам.
А по рандомным точкам все равно не хочется стрелять.
Проблема в чем - на плоскости все идет как надо - все зависит от наводки и меткости - куда направлю и как далеко заряжу туда и летит и там взрывается (IMG:style_emoticons/kolobok_light/crazy.gif) (IMG:style_emoticons/kolobok_light/crazy.gif) , тут чисто и без вопросов.
А ВОТ КОГДА идет штурм Форта - ядра сквозь стены летают (IMG:style_emoticons/kolobok_light/crazy.gif) (IMG:style_emoticons/kolobok_light/crazy.gif) Приколно смотрится. (IMG:style_emoticons/kolobok_light/crazy.gif) (IMG:style_emoticons/kolobok_light/crazy.gif) Но ето ладно - типа если в стену, значит не попал, а если на стене стрелок-защитник, то хотелось бы его в эту пораболу полета ядра и стовить, чтоб он как цель отмечался. А то локацию взрыва надо создавать в точке цели как никак.

ЗЫ Просто хочется штурм переходящих нейтральных (типа завоевал форт - и он за тебя) фортов красивше сделать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение Nov 24 2006, 14:45
Сообщение #2624


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



QUOTE
object oPC = GetFirstPC();

ммм а почему при ресие не используешь
// Get the last PC that has rested in the module.
object GetLastPCRested()

QUOTE
Пока так и не понял как разделить всё это на группы всмысле город, внешняя местность и дом.

ну я же писал - сделай просто свича с списком
1) лок которые у тя город
2) лок у которые у тя дома
а остальные автоматом у тя будет дикой местностью (IMG:style_emoticons/kolobok_light/biggrin.gif) .... вот примерно такой маленький инклюд
NSS
/////////////////////////////////////////
// Rest area base
// filename : ???????????
/////////////////////////////////////////

    struct stRestarea
{
    int nr;
    int type;
    int police
    string name;
    string tag;
};

///////////////////////////////////////
// type = 0 wild area (default)
// type = 1 gorod+ strazhnik
// type = 2 dom s krovatju
// police 1-99%
///////////////////////////////////////

struct stRestarea GetSpecRestArea(int nNr)
{
    struct stRestarea stA;
    stA.nr = nNr;
    switch (nNr)
    {
        case 1:
            stA.name = "gorod 1";
            stA.type = 1;
            stA.police = 50;
            stA.tag = "areatag1";
            break;
        case 2:
            stA.name = "gorod 2-centr";
            stA.type = 1;
            stA.police = 95;
            stA.tag = "areatag2";
            break;
        case 3:
            stA.name = "dom 1";
            stA.type = 2;
            stA.police = 0;
            stA.tag = "areatag3";
            break;
    }
    return stA;
}

int CheckSpecRestArea(string sAreatag)
{
    struct stRestarea stArea;
    int nSpecAreaCount = 3;
    int i, nRez;

    for (i=1;i<=nSpecAreaCount;i++)
    {
        stArea = GetSpecRestArea(i);
        if (sAreatag==stA.tag)
        {
            nRez = i;
        }
    }
    return nRez;
}


Сообщение отредактировал mamuc - Nov 24 2006, 14:49
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Nov 24 2006, 14:48
Сообщение #2625


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

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



ууу.. ну тут все немного похуже. Летит то она скорее всего по параболике, но параметры какие у функции никто кроме тварей не знает, хотя это не беда - можно расчитать по 2м точкам. (старт и финиш собсна). Потом делается анализ координат НПС по отношению к функции траектории полета (фактически нужно оценить длину нормали, опущенной из точки на параболику), и если он оказываются в опасной зоне (те нормаль меньше критического значения), происходит редирект с точки на данного несчастливого НПС. И все.. но заставить снаряд лететь как летел и сымитировать взрыв от ударв в НПС у тя не получится... те это можно но с таким допущением: снаряд полетит дальше, а вот сам взрыв будет у НПС.

Но подумай, надо ли тебе такой геморой. Конечно круто, но это один небольшой эпизод, который и не все игроки то заметят.


-------------
Мамук, это жость... у тебя у лок всего 3 разных тэга? (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение Nov 24 2006, 15:35
Сообщение #2626


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



QUOTE
Мамук, это жость... у тебя у лок всего 3 разных тэга?

цэ пример (IMG:style_emoticons/kolobok_light/biggrin.gif) (сделаный на скорую руку)
...а такие свичи реально гораздо длинее (IMG:style_emoticons/kolobok_light/biggrin.gif)
человек, который это будет применять, сам допишет все свои спец локи, которые нужно .. и еще типы добавит скоко надо .. и структуру поменяет под свои нужды (IMG:style_emoticons/kolobok_light/moil.gif) (IMG:style_emoticons/kolobok_light/biggrin.gif)

Сообщение отредактировал mamuc - Nov 24 2006, 15:50
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Адонтос
сообщение Nov 26 2006, 11:09
Сообщение #2627


Level 3
*

Класс: Самурай
Характер: Neutral Evil
Раса: Человек



Не подскажите, есть ли скрипт не позволяющий сразу прыгнуть в локу как только загрузилась следующая? Тоесть прыгаеш в локу появляешся, но сразу-же обратно прыгнуть не можеш, а к примеру по истечении 6ти секунд.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Nov 26 2006, 11:48
Сообщение #2628


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

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



NSS
// ДЛЯ ДВЕРЕЙ И ТРИГГЕРОВ
void main()
{
object oPoint = GetTransitionTarget(OBJECT_SELF); // Точка перемещениЯ
object oPC = GetFirstPC(); // Наш ПС

if (GetLocalInt(oPC, "AREA_BLOK") == 1) return; // Выход из скрипта
AssignCommand(oPC, ClearAllActions()); // Чистим акции
AssignCommand(oPC,ActionJumpToObject(oPoint)); // Прыгаем в нужное место
}
// помещать в слот OnClick OnAreaTransitionClick
// если триггер, то поставить галку нет точки перемещения.

На вход области
NSS
void main()
{
  object oPC = GetEnteringObject();
  if (!GetIsPC(oPC)) return;
SetLocalInt(oPC,"AREA_BLOK",1);
DelayCommand(6.0, SetLocalInt(oPC,"AREA_BLOK",0));
}


Сообщение отредактировал gennady - Nov 26 2006, 16:03
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Адонтос
сообщение Nov 26 2006, 12:16
Сообщение #2629


Level 3
*

Класс: Самурай
Характер: Neutral Evil
Раса: Человек



Понял. Спасибо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Адонтос
сообщение Nov 29 2006, 23:48
Сообщение #2630


Level 3
*

Класс: Самурай
Характер: Neutral Evil
Раса: Человек



Подскажите, можно ли проскриптить чтоб друид смог кастить в формах, или к примеру в одной форме?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
r1Stranger
сообщение Dec 4 2006, 14:48
Сообщение #2631


Level 4
**

Класс: Клерик
Характер: Lawful Neutral
Раса: Человек



QUOTE(Lex @ Nov 24 2006, 15:48) [snapback]99068[/snapback]

ууу.. ну тут все немного похуже. Летит то она скорее всего по параболике, но параметры какие у функции никто кроме тварей не знает, хотя это не беда - можно расчитать по 2м точкам. (старт и финиш собсна). Потом делается анализ координат НПС по отношению к функции траектории полета (фактически нужно оценить длину нормали, опущенной из точки на параболику), и если он оказываются в опасной зоне (те нормаль меньше критического значения), происходит редирект с точки на данного несчастливого НПС. И все.. но заставить снаряд лететь как летел и сымитировать взрыв от ударв в НПС у тя не получится... те это можно но с таким допущением: снаряд полетит дальше, а вот сам взрыв будет у НПС.

Но подумай, надо ли тебе такой геморой. Конечно круто, но это один небольшой эпизод, который и не все игроки то заметят.



При стрельбе из баллисты - да, херня пока выходит. Но с катапультой у меня все получилось. Проводил испытательные стрельбы по двухуровневому замку. Все потенциальные противники успешно поражены. Полеты ядра при попаданиях нормальные (а если никого нет в локации, то то что заряд на высоте сквозь стену проходит - не беда! Не попал, значит!). При одноуровневом замке - и того проще. Попадание в стену разочарований больших не вызывает, а перелет - взрыв во дворе замка.

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

NSS
#include "cat_damage"
void main()
{
    object oCurrentArea = GetArea(OBJECT_SELF);
    object oPC = GetPCSpeaker();
    object oBomber = GetLastUsedBy();
    vector vCurrentPosition = GetPosition(OBJECT_SELF);
    float fCurrentFacing = GetFacing(OBJECT_SELF);
  /*int iRange = GetLocalInt(OBJECT_SELF,"Range");*/
    float varz = 0.5;
    SetLocalInt(OBJECT_SELF,"high",FloatToInt(varz));
    if (fCurrentFacing > 360.0)
    {
        fCurrentFacing = 720 - fCurrentFacing;
    }
/* ActionWait(10.0);*/
    int iRange = 0;
    SetLocalInt(OBJECT_SELF,"line",iRange);
    vector vDelta;
    vDelta.x = cos(fCurrentFacing) * iRange;
    vDelta.y = sin(fCurrentFacing) * iRange;
    vDelta.z = varz;

    vector vImpact;
    vImpact.x = vCurrentPosition.x + vDelta.x;
    vImpact.y = vCurrentPosition.y + vDelta.y;
    vImpact.z = vDelta.z;

    vector vImpact1 = vImpact;

    location lImpact = Location(oCurrentArea, vImpact, fCurrentFacing);
    object oTarget = GetFirstObjectInShape(SHAPE_SPHERE,6.0,lImpact,TRUE,OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE | OBJECT_TYPE_CREATURE);
    if (GetIsObjectValid(oTarget))
    {
    if (GetDistanceToObject(oTarget)<=6.5 || GetIsDead(oTarget))
    {
      oTarget = OBJECT_INVALID;
    }
    }
    while (oTarget==OBJECT_INVALID && iRange < GetLocalInt(OBJECT_SELF,"Range") && LineOfSightVector(vImpact1,vImpact)==TRUE && GetLocalInt(OBJECT_SELF,"high")>=0)
    {
      iRange = GetLocalInt(OBJECT_SELF,"line")+2;
      SetLocalInt(OBJECT_SELF,"line",iRange);
      if (FloatToInt(iRange * 1.66) <= GetLocalInt(OBJECT_SELF,"Range"))
      {
      varz = GetLocalInt(OBJECT_SELF,"high")+1.9;
      SetLocalInt(OBJECT_SELF,"high",FloatToInt(varz));
      }
      else
      {
        if (FloatToInt(iRange * 1.5) <= GetLocalInt(OBJECT_SELF,"Range"))
        {
        varz = IntToFloat(GetLocalInt(OBJECT_SELF,"high"));
        SetLocalInt(OBJECT_SELF,"high",FloatToInt(varz));
        }
        else
        {
        varz = GetLocalInt(OBJECT_SELF,"high")-3.2;
        if (varz<0.3)
        {
          varz =0.3;
        }
        SetLocalInt(OBJECT_SELF,"high",FloatToInt(varz));
        }
      }
      vector vDelta;
      vDelta.x = cos(fCurrentFacing) * iRange;
      vDelta.y = sin(fCurrentFacing) * iRange;
      vDelta.z = varz;

      vector vImpact;
      vImpact.x = vCurrentPosition.x + vDelta.x;
      vImpact.y = vCurrentPosition.y + vDelta.y;
      vImpact.z = vDelta.z;

      lImpact = Location(oCurrentArea, vImpact, fCurrentFacing);
      oTarget = GetNextObjectInShape(SHAPE_SPHERE,6.0,lImpact,TRUE,OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE | OBJECT_TYPE_CREATURE);
      if (GetIsObjectValid(oTarget))
      {
        if (GetDistanceToObject(oTarget)<=6.5 || GetIsDead(oTarget))
        {
        oTarget = OBJECT_INVALID;
        }
      }
    }
    if (oTarget != OBJECT_INVALID)
    {
    lImpact = GetLocation(oTarget);
    SpeakString("Цель в фокусе:"+GetName(oTarget),TALKVOLUME_TALK);
    }
    float fImpactDelay = IntToFloat(iRange)/12;
    effect eImpact = EffectVisualEffect(VFX_FNF_FIREBALL);
    effect eBump = EffectVisualEffect(VFX_FNF_SCREEN_BUMP);
    ActionCastFakeSpellAtLocation(SPELL_FIREBALL, lImpact, PROJECTILE_PATH_TYPE_BALLISTIC);
    ActionWait(fImpactDelay);
    ActionDoCommand(ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImpact, lImpact));
    ActionDoCommand(ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eBump, lImpact));
    DelayCommand(fImpactDelay,cDamage(lImpact,oBomber));
}

Инклуд - для функции cDamage(lImpact,oBomber).
Чтоб не загромождать не буду его писать. Если напишите - приведу потом. Его нетрудно и самим дописать как угодно.
Для настройки CurrentFacing и GetLocalInt(OBJECT_SELF,"Range") - свои несложные функции.

***К слову - все свершается через диалог и выстрел и повороты/регулировка дальности, вид ядер и тд

В догонку - тут еще проблемы! (IMG:style_emoticons/kolobok_light/crazy.gif) (IMG:style_emoticons/kolobok_light/crazy.gif) (IMG:style_emoticons/kolobok_light/crazy.gif)
Как ее (баллисту) установить и создать?? Что то CreateObject на заказные объекты не работает никак. А то все зря (IMG:style_emoticons/kolobok_light/vava.gif)

И еще: а как свои звуки вставлять в игру - куда копировать ресурсы?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Dec 4 2006, 16:25
Сообщение #2632


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

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



ну.. если тебе надо заранее поставить - то простов тулсете поставь (IMG:style_emoticons/kolobok_light/smile.gif) там в палитре думаю сам знаешь
А если динамически через скрипт делать, то CreateObject. Только предварительно ты создай свою балисту в палитре, с уникальным тэгом, рефом, закрепленными скриптами и диалогом. Н
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Адонтос
сообщение Dec 6 2006, 23:02
Сообщение #2633


Level 3
*

Класс: Самурай
Характер: Neutral Evil
Раса: Человек



Так некто подсказать не может, как можно зделать чтоб друид кастил в форме?

Сообщение отредактировал Адонтос - Dec 6 2006, 23:02
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
r1Stranger
сообщение Dec 16 2006, 12:17
Сообщение #2634


Level 4
**

Класс: Клерик
Характер: Lawful Neutral
Раса: Человек



QUOTE(Lex @ Dec 4 2006, 17:25) [snapback]99795[/snapback]

ну.. если тебе надо заранее поставить - то простов тулсете поставь (IMG:style_emoticons/kolobok_light/smile.gif) там в палитре думаю сам знаешь
А если динамически через скрипт делать, то CreateObject. Только предварительно ты создай свою балисту в палитре, с уникальным тэгом, рефом, закрепленными скриптами и диалогом. Н


А реф обязательно уникальный? Создал балисту со своим тегом и пробую создатоь - и ниче не получается. Что это может быть?
Скрипт создания такой:
void DelayCreate(int iType, string sRes, location lLoc)
{
CreateObject(iType, sRes, lLoc);
}
void main()
{
object oItem = GetItemActivated();
if (GetTag(oItem)=="catapult_unuseable")
{
object oBomber = GetItemActivator();
DestroyObject(oItem,1.0);
DelayCommand(2.0, DelayCreate(OBJECT_TYPE_PLACEABLE,"Catapult_my", GetLocation(oBomber)));
FloatingTextStringOnCreature("Собрана катапульта",oBomber,FALSE);
}
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Waromon
сообщение Dec 16 2006, 12:48
Сообщение #2635


Level 4
**

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



To Адонтос, да скорее всего никак, ИМХО, это движковое, хотя... Возможно я ошибаюсь (IMG:style_emoticons/kolobok_light/pleasantry.gif)


To r1Stranger, насчет звуков;
- Формат WAV;
- Oбязательно Mono;
Запаковываем все в хак, подключаем выбераем нужные звуки. (IMG:style_emoticons/kolobok_light/smile.gif)

А по поводу катапульты;

QUOTE
DelayCommand(2.0, DelayCreate(OBJECT_TYPE_PLACEABLE,"Catapult_my", GetLocation(oBomber)));


Функция CreateObject, работает по ResRef'y, а он как известно не может начинатся с заглавной буквы. (IMG:style_emoticons/kolobok_light/wink3.gif)

Сообщение отредактировал Waromon - Dec 16 2006, 12:49
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

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

 



Текстовая версия Сейчас: 29th April 2025 - 19:18