![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#2601
|
|
Level 5 ![]() Класс: Волшебник Характер: Chaotic Good Раса: Дракон NWN: Скриптинг [Sn] ![]() |
QUOTE(2_advanced @ Oct 31 2006, 16:01) [snapback]96300[/snapback] и х100 на каждый цвет) Цвет, по крайней мере, можно менять. Например так, поменяется на ура: NSS object oItem = CopyItemAndModify(oCloak, ITEM_APPR_TYPE_ARMOR_COLOR, ITEM_APPR_ARMOR_COLOR_CLOTH2, 175);
|
![]()
Сообщение
#2602
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
denis0k, и зачем? Все это изменяется легко с помощью одной вещи.
Принцип работы генератора простой. Создаем магазин, закидываем туда все типы вещей, которые нужно генерировать, потом выбираем из него случайную вещь, видоизменяем модель, перекрашиваем, если есть такая возможность, добавляем случайные параметры (зависят от уровня персонажа), и выкладываем перед персонажем. Все. Кстати видоизменить шлем можно точно так же, как я показал в скрипте. Если его немного доработать, то можно просто перебирать, начиная с первой модели шлема и заканчивая последней, а когда достигнешь предела, начать заново. StalkerDtN, цвет то меняется, это и так понятно. Попробуй модель плащу поменять скриптово (IMG:style_emoticons/kolobok_light/smile.gif) З.Ы. Как доработаю генератор, выложу на обозрение скрипт. Покритикуете (IMG:style_emoticons/kolobok_light/smile.gif) Сообщение отредактировал Zirrex - Oct 31 2006, 20:47 |
![]()
Сообщение
#2603
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
QUOTE Принцип работы генератора простой. Создаем магазин, закидываем туда все типы вещей, которые нужно генерировать, потом выбираем из него случайную вещь, видоизменяем модель, перекрашиваем, если есть такая возможность, добавляем случайные параметры (зависят от уровня персонажа), и выкладываем перед персонажем. Все. Упс, по-моему мы говорим о разных вещах (IMG:style_emoticons/kolobok_light/smile.gif) Генератор лута понятное дело берет базовую шмотку и потом накручивает ее в зависимости от уровня (иначе палитра будет больше самого мода). Я имел в виду крафт, доступный игрокам, где игрок для готовой вещи сам меняет внешний вид. Вот для него пришлось шлемы и щиты в палитру добавлять. Конечно в описании CopyItemAndModify() про шлемы сказано, но вот у меня не очень получилось их там менять - при любых значених nPart создает пустую модель. Но это в 1.66 было.
|
![]()
Сообщение
#2604
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
denis0k, не знаю, как это было в версии 1.66, ибо она давно уже ушла в историю, но в версии 1.67 поменять облик можно любой вещи, пользуясь только одним объектом. Со щитами несколько сложнее, потому что от вида щита зависит базовый коэффициент брони. Поэтому, когда будет изменяться облик щита, придется сделать три разных щита, и в зависимости от размеров щита, такой облик щита и предлагать. Плохо, что щиты нельзя перекрашивать, иначе можно было бы составлять наборы. Правда, визуально видно лишь шлем, броню, щит и оружие, но, начиная с версии 1.68, видно теперь плащ, которому, увы, нельзя изменить модель скриптово.
Видимо все же придется сделать 14 моделей плаща и перебирать их, что не самое лучшее решение. |
![]()
Сообщение
#2605
|
|
Level 3 ![]() Класс: Волшебник Характер: Neutral Evil Раса: Человек ![]() |
2_advanced, при возможности отрубать это уродство(плащи) в 1.68 было бы очень хорошо (IMG:style_emoticons/kolobok_light/biggrin.gif) Поэтому если вы сможете создать нечто такое, что будет отрубать их, буду вам очень признателен(и я думаю не один я).
|
![]()
Сообщение
#2606
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
замени назад строку плащей в baseitems.2da (возьми из версии 1.67, там модели указаны другие.. ну и вообще)
И исправь cloakmodel.2da (а может эту и не надо): CODE LABEL MODEL TEXTURE ICON HIDEWING HIDETAIL HIDESHOL HIDESHOR ENVMAP 0 **** 0 0 0 0 0 0 0 **** 1 **** 0 0 0 0 0 0 0 **** ..... 12 **** 0 0 0 0 0 0 0 **** 13 **** 0 0 0 0 0 0 0 **** |
![]()
Сообщение
#2607
|
|
Level 3 ![]() Класс: Волшебник Характер: Neutral Evil Раса: Человек ![]() |
Спасибо (IMG:style_emoticons/kolobok_light/thank_you.gif)
|
![]()
Сообщение
#2608
|
|
Level 5 ![]() Класс: Волшебник Характер: Chaotic Good Раса: Дракон NWN: Скриптинг [Sn] ![]() |
QUOTE(Zirrex @ Nov 1 2006, 01:45) [snapback]96340[/snapback] Попробуй модель плащу поменять скриптово На досуге попробывал - тож меняется (IMG:style_emoticons/kolobok_light/biggrin.gif) ... правда не совсем только скриптами. Вообщем дело обстоит так. В начале правим baseitems.2da а именно строчку cloak, столбец Category: вместо 4, ставим 5 (сие делается по аналогии со шлемами, которые в отличии от плащей модифицируются). Далее уже скрипт: NSS oItem = CopyItemAndModify(oItem, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_BELT, 1); Вот собственно и все. (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#2609
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
StalkerDtN, а ты не пробовал менять их, не правя baseitems.2da, и используя эту же строчку? Или ты просто плащ подвел под типы брони, из-за чего появился облик "ITEM_APPR_ARMOR_MODEL_BELT"?
Работает отлично, надо поправить будет и сам генератор по этому же типу. |
![]()
Сообщение
#2610
|
|
Level 5 ![]() Класс: Волшебник Характер: Chaotic Good Раса: Дракон NWN: Скриптинг [Sn] ![]() |
Пробывал, но работает только так...хотя возможно комбинации "Category" и "ITEM_APPR_ARMOR_MODEL_*" могут быть и другими, честно говоря, не экспериментировал.
|
![]()
Сообщение
#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 бесполезна, ибо город тоже экстериор. А отдых на кроватях прерывается также, как и не на ней. (Установка/проверка переменных тоже не помогает) Может кто-нибудь поможет ? |
![]()
Сообщение
#2612
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Скрипт отдыха в студию.
|
![]() ![]()
Сообщение
#2613
|
|
Лорд AxisTown'a ![]() Класс: Монах Характер: Lawful Good Раса: Дварф NWN: Маппинг ![]() |
QUOTE Отдыхать в городе можно, однако только ночью и в 50% шансов около тебя появляется страж и прерывает твой отдых, днём же прерывается. Отдыхать в зданиях можно только на кроватях (в "диалоге" с кроватью), остальной отдых автоматически прерывается ClearAllActions(). самоое простое, что приходит на ум - через свич сделай 2 списка с ресрефами и\ или тегами лок : список лок городских( где стражник может пробудить- а ведь это не все горлские места-врятли разрешит спать например , на центральной площади у храма а где нить в трущобах-другое дело, которче говоря к свичу еще неплохо добавить небольшую структуру с ресрефом локи и вероятностью 1-99%) и список лок, где вообще какая нить кровать находиться... а потом проверять по списку мона или нийзя- сразу массу неосответствующих отметет, а потом уже дальше проверяй другие условия (IMG:style_emoticons/kolobok_light/biggrin.gif) но , чтобы разобраться с тонкостям неработы , QUOTE Скрипт отдыха в студию. (с) феникс |
![]()
Сообщение
#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 |
![]()
Сообщение
#2615
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
у меня есть автоопределения типа в системе отдыха (разделяет город и дикую местность), но вообще я пользуюсь системой поинтов. (в каждой локе поинт, который хранит настройки для данной локации.. тип зоны, параметры дикого отдыха, общелокационный запрет/разрешение отдыха, радиус поиска энкаунтеров при опасном отдыхе). Правда там отдых скрещен еще с ожиданием (потому что игровые часы имеют значение) и есть подготовка ко сну (в дикой местности постановка лагеря, в городе просто игрок кладет подстилку)
|
![]()
Сообщение
#2616
|
|
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Neutral Раса: Человек ![]() |
Прет всем, сори за вмешательство.
По отдыху: а нельзя ли геру при вхождении в триггер местности отдыха присваивать ТРУЕ (IMG:style_emoticons/kolobok_light/crazy.gif) , а после отбытия ФАЛЬСЕ (IMG:style_emoticons/kolobok_light/crazy.gif) ? А в свойствах мода OnRest проверять этот параметр если он ФАЛЬСЕ, то прерывать? А вообще такой вопрос? Как сделать, чтобы в скриптах взрывов (баллиста, катапульта, мины) при определении цели учитывалась геометрия местности - чтоб файрболы не летели сквозь стены. Когда создаешь локацию - там же в скриптах нет никакой проверки на геометрию местности - и она может вполне создасться внутри стены или внутри холма и там все и взорвется...Как то нехорошо...Нет ли че-нить учитывающего это? |
![]()
Сообщение
#2617
|
|
![]() Класс: Пьяный Мастер Характер: Lawful Good Раса: Тварь MySQL, PHP, JavaScript Порядок Времени ![]() |
а в локациях, где возможно прерывание отдыха с какой-то вероятностью, присваивать почти true (IMG:style_emoticons/kolobok_light/crazy.gif)
|
![]()
Сообщение
#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) |
![]()
Сообщение
#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] А вообще такой вопрос? Как сделать, чтобы в скриптах взрывов (баллиста, катапульта, мины) при определении цели учитывалась геометрия местности - чтоб файрболы не летели сквозь стены. Когда создаешь локацию - там же в скриптах нет никакой проверки на геометрию местности - и она может вполне создасться внутри стены или внутри холма и там все и взорвется...Как то нехорошо...Нет ли че-нить учитывающего это? нормально проверить не сможешь. Ненормально тоже. Я взрывы делал в рандомной точке около расставленных поинтов, было нормально. |
![]()
Сообщение
#2620
|
|
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Neutral Раса: Человек ![]() |
QUOTE(Lex @ Nov 18 2006, 17:04) [snapback]98434[/snapback] нормально проверить не сможешь. Ненормально тоже. Я взрывы делал в рандомной точке около расставленных поинтов, было нормально. Спасібо. Се, без флуда больше. По взрывам. Еслі в скріптах геометрію местності нікак не проверіть - не подскажіте лі (хотя б прімерно) формулу полета ядра із катапульты. Чтоб через определенный шаг правільно проверять налічіе целі. А то вначале полета все норм (есі сам вперед катапульты во время выстрела сунешься, то взрыв все вокруг расхерачіт включая саму катапульту), а потом отклоенніе ідет. А то очень хочется не по намеченным точкам стелять,перебірая іх, а в завісiмості от меткості стреляющего. (2стрелка/4 катапульты и локация 20/20 за 5 мин зачищена) |
![]()
Сообщение
#2621
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
за форумулой - тебе к физикам-кинетикам. Но вообще тут это и не нужно, ты задаешь тип движения (балистика) и цель. Меткость и прочие навыки можешь включить на уровне расчета радиуса отклонения от точки (чем стреляющий круче, тем меньше радиус и точнее выстрел). Расчитав радиус и взяв цель в качестве центра, расчитываешь случайную точку, куда в итоге полетит снаряд. И усе, вперед.
зы: есть ограничения в плане растояния полета, но я их уже на память не помню. |
![]()
Сообщение
#2622
|
|
Level 12 ![]() Класс: Оборотень Характер: Chaotic Neutral Раса: Нежить NWN: Скриптинг [Sn] ![]() |
формула полета ядра из катапульты: парабола, подробно см. глобальную школьную книжку "Алгебра".
|
![]()
Сообщение
#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) Но ето ладно - типа если в стену, значит не попал, а если на стене стрелок-защитник, то хотелось бы его в эту пораболу полета ядра и стовить, чтоб он как цель отмечался. А то локацию взрыва надо создавать в точке цели как никак. ЗЫ Просто хочется штурм переходящих нейтральных (типа завоевал форт - и он за тебя) фортов красивше сделать. |
![]() ![]()
Сообщение
#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 |
![]()
Сообщение
#2625
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
ууу.. ну тут все немного похуже. Летит то она скорее всего по параболике, но параметры какие у функции никто кроме тварей не знает, хотя это не беда - можно расчитать по 2м точкам. (старт и финиш собсна). Потом делается анализ координат НПС по отношению к функции траектории полета (фактически нужно оценить длину нормали, опущенной из точки на параболику), и если он оказываются в опасной зоне (те нормаль меньше критического значения), происходит редирект с точки на данного несчастливого НПС. И все.. но заставить снаряд лететь как летел и сымитировать взрыв от ударв в НПС у тя не получится... те это можно но с таким допущением: снаряд полетит дальше, а вот сам взрыв будет у НПС.
Но подумай, надо ли тебе такой геморой. Конечно круто, но это один небольшой эпизод, который и не все игроки то заметят. ------------- Мамук, это жость... у тебя у лок всего 3 разных тэга? (IMG:style_emoticons/kolobok_light/smile.gif) |
![]() ![]() |
Текстовая версия | Сейчас: 29th April 2025 - 18:07 |