![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#2591
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Генерация лута не просто скриптик - это целая система.
Понятие "хороший" тут вообще не приемлимо, так как все системы пишутся под четкие нужды, концепцию модуля. Для начала нужно понять, что тебе нужно от этой системы, что собственно должно получиться после после ее работы, что она и как должна генерировать. Я не про примудрости скриптинга, не про саму реализацию - об этом скриптер будет думать. А о самой концепции - нужно четко представлять, как она будет работать, и каким должен быть конечный результат. Если что-то о стандартном, то тут где-то на форуме должны быть такие скрипты или примеры. Посмотри в "Базе скриптов", поиск используй. Еще полюбому есть всякие настраиваемые системы на ваулте (тож поиск). Но опять же, советовать что-то по такому поводу очень проблематично. Ты сам должен определиться с тем, что собственно нужно и уже исходя из этого выбрать тот "хороший скриптик". |
![]()
Сообщение
#2592
|
|
Level 3 ![]() Класс: Дварф-Защитник Характер: Chaotic Good Раса: Дварф ![]() |
QUOTE зафиксировать части тела врядли получится.. можно конечно накопировать нужную голову под всеми возможными номерами, чтобы как не переключай, все равно была одна и та же, но это плохой выход. Хвост приделать после генережки.. голову тоже там рекомендую поменять, как и все остальное. Цвета - хз мне нужно, чтобы у игрока, начавшего играть в мой модуль, не было выбора в создании персонажа насчет его внешнего вида. себе я то могу сделать что угодно через эдитор, а вот как так сделать? |
![]()
Сообщение
#2593
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
процитированный тобой текст и есть ответ. Скриптами после генережки игрока (в слоте onClientEnter наверное) функцией указанной выше менять голову, приделывать хвост.. а чтобы не было выбора, тут я имею лишь 2 варианта.. Первый тот, что написан в цитируемой части, а второй - поковырять GUI и попробовать там проскочить настройку внешности или заблокировать возможности ее изменения.. но как - я глубоко хз.
__ ну и вариант 3 - не забивать себе голову такими мелочами. Когда начнешь нормально делать модуль, влезешь в сюжетно-квестовые заморочки, диалоги и скриптование всего этого, такие вот вещи как ненастраеваемая внешность покажутся пустяками, на которые не стоит тратить время. |
![]()
Сообщение
#2594
|
|
![]() Класс: Пьяный Мастер Характер: Lawful Good Раса: Тварь MySQL, PHP, JavaScript Порядок Времени ![]() |
QUOTE(Lex @ Oct 29 2006, 00:45) [snapback]96085[/snapback] поковырять GUI и попробовать там проскочить настройку внешности или заблокировать возможности ее изменения.. но как - я глубоко хз. Ноин, берешь файлО cg_appearance.gui, бирешь любой гыфыфы-едитор, смотришь кнопки по тегу с частью тела, в примере HairButton, конкренто показываю: (IMG:http://www.city-of-masters.ru/portal/uploads/gui.jpg) и убиваешь ее, либо помечаешь неактивной, либо выставляешь координаты точно за пределами экрана. Если не получиццо ничего из этого - делаешь страшшшнае лицо (IMG:style_emoticons/kolobok_light/orc.gif) и кричишь грозным голосом: "Не будешь работать, буду под нывыны2 делать" (IMG:style_emoticons/kolobok_light/biggrin.gif) |
![]()
Сообщение
#2595
|
|
Level 3 ![]() Класс: Дварф-Защитник Характер: Chaotic Good Раса: Дварф ![]() |
QUOTE ну и вариант 3 - не забивать себе голову такими мелочами. Когда начнешь нормально делать модуль, влезешь в сюжетно-квестовые заморочки, диалоги и скриптование всего этого, такие вот вещи как ненастраеваемая внешность покажутся пустяками, на которые не стоит тратить время. Весь смысл всего модуля потеряется если гг будет обычным человеком, а ему будут кричать люди при встрече - демон, демон, страааажа, помогиите! 2NeoJSmith - спасибо |
![]()
Сообщение
#2596
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
С переходом на версию 1.68 возник вопрос, как менять облик плаща скриптово? Пробовал по старинке с помощью функции "CopyItemAndModify". Не копирует. Конечно, спасибо им за плащи, как говорится, не прошло и года. Долго ждали. Но, чувствуется, не все до конца доделали.
Пробовал так, бесполезно: NSS #include "x2_inc_craft" void main() { object oPC = GetPCSpeaker(); object oCloak = CIGetCurrentModItem(oPC); int nPart = StringToInt(Get2DAString("cloakmodel", "MODEL", Random(14)+1)); if (GetIsObjectValid(oCloak)) { object oItem = CopyItemAndModify(oCloak, ITEM_APPR_TYPE_SIMPLE_MODEL, 0, nPart); AssignCommand(oPC, ActionEquipItem(oItem, INVENTORY_SLOT_CLOAK)); DestroyObject(oCloak); CISetCurrentModItem(oPC, oItem); } } Можно, в принципе, обойтись и без "Get2DAString", но все равно ничего не меняется. Из-за этого изменения перестали генерироваться случайные плащи в модуле (IMG:style_emoticons/kolobok_light/sad.gif) |
![]()
Сообщение
#2597
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Хм, копировать руками?
Тобишь создавать плащ, навешивать на него св-ва нужные и мудрить с моделью, а старый удалять???? |
![]()
Сообщение
#2598
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
-fenix-, берем плащ, и изменяем ему, к примеру, модель. С другими вещами эта функция работает как нужно, с новыми плащами она отказывается работать. Плащ просто исчезает. И правильно, потому что функция дальше удаляет старый объект, только нового плаща нет.
Навешивать что-либо на вещь можно и без изменения модели. С этим проблем нет, а вот что касается плащей, тут загвоздка. Видимо придется делать 14 разных моделей плаща, чтобы не менять модель. Я еще это делал для крафта, чтобы можно было поменять облик шлема, ну и плаща, раз такая появилась возможность. Сообщение отредактировал Zirrex - Oct 31 2006, 01:21 |
![]()
Сообщение
#2599
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Для крафта шапок и щитов приходилось делать кучу итемов в палитре, а потом ручками создавать/удалять. Этак "по-скриптерски в лоб" (IMG:style_emoticons/kolobok_light/smile.gif) Но как говорил один мой друг, самый простой метод - самый правильный (IMG:style_emoticons/kolobok_light/smile.gif)
|
![]()
Сообщение
#2600
|
|
Level 9 ![]() Класс: Вор Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] ![]() |
QUOTE(denis0k @ Oct 31 2006, 03:14) [snapback]96282[/snapback] Для крафта шапок и щитов приходилось делать кучу итемов в палитре, а потом ручками создавать/удалять. Этак "по-скриптерски в лоб" (IMG:style_emoticons/kolobok_light/smile.gif) Но как говорил один мой друг, самый простой метод - самый правильный (IMG:style_emoticons/kolobok_light/smile.gif) угу =) особенно если стоит СЕП. 100 плащей и х100 на каждый цвет) итого - плащи весят больше чем модуль (IMG:style_emoticons/kolobok_light/ph34r.gif) (IMG:style_emoticons/kolobok_light/offtopic.gif) (зы. от плащей вылеты чаще раз в 6, может стоит их нафиг отключить?) |
![]()
Сообщение
#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: Модмейкер Проклятие Левора Порядок Времени ![]() |
у меня есть автоопределения типа в системе отдыха (разделяет город и дикую местность), но вообще я пользуюсь системой поинтов. (в каждой локе поинт, который хранит настройки для данной локации.. тип зоны, параметры дикого отдыха, общелокационный запрет/разрешение отдыха, радиус поиска энкаунтеров при опасном отдыхе). Правда там отдых скрещен еще с ожиданием (потому что игровые часы имеют значение) и есть подготовка ко сну (в дикой местности постановка лагеря, в городе просто игрок кладет подстилку)
|
![]() ![]() |
Текстовая версия | Сейчас: 30th April 2025 - 22:13 |