Полная Версия: Мой новый непись
Cheb
...Посмотрел я, как люди добавляют в игру торговцев с 100000 денег, ил того же Огрима-торговца в Кальдере, который торгует чем угодно, и заклинания на заказ делает... И так мне стало тошно от того, что всё это делают топорно и неизящно, что решил я этому торговцу придать хотя бы видимость личности - придать, так сказать, спойлеру хоть видимость правдоподобия... Передвинул его за город, разложил вокруг даедрические шмотки на продажу... И поцеловал облом. Огрим-то ведь креатура, а креатурам прав собственности не дано. И соответственно, весь товар может быть только у него в инвентаре. А я всю эту кучу так долго и с любовью раскладывал в художественном беспорядке... Короче, пришлось создавать непися, Огриму в партнёры. А потом, дальше-больше, огрим постепенно отошёл в тень, а я все старания сосредоточил на неписе.
Вот скажите, какого типа персонажей явно не хватает в Морровинде?.. Я считаю - подобных мне сдвинутых по фазе манчкинов. Вот.. Так и возникла Слэйара Бешеная - яркий образец махрового манчкинизма. Battlemage 89 уровня, с ног до головы упакованная в даэдрик-армор, заэнчантенный на Констант Эффект лечение... Торгует даэдрическим шмотьём и убойными заклинаниями (но очень трудными в исполнении), например, вызова трёх GoldenSaint'ов одновременно. При попытке наехать на неё, или просто после неосторожно брошенного слова, моего перса 34 уровня мочит, как бог черепаху. Не буду много распространяться - сами увидите, через день-два додавлю глюки в скриптах, и представлю на всеобщее обозрение...
Минус - требует обязательного наличия GIANTS 2.0 и MarksmanMod (у Слэйары раса Seducer, определённая в GIANTS, а в карманах у её парочка убойных стрел $5000 каждая, использующих модели из MarksmanMod)
Cheb
Вот, и что хочу спросить: может, кто знает, как через скрипты увеличить максимальные значения силы там, ловкости и прочего у игрока?.. Слэйара предоставляет подобные услуги, если заплатить ей $5000 и принести череп, но работает это только на наращивание магики (Player->ModMagicka 1). Когда я пытаюсь сделать то же для атрибутов, то или ничего не происходит (Player->ModStrength 1), или нарываюсь на вопль "ошибка! скрипт остановлен!" (Player->SetStrength <новое значение>)... Кто-нить, знает, как обойти?..
Cheb
Да, и ещё вопрос: как отчистить плагин ото всякого мусора?.. А то я посмотрел - аж волосы дыбом встали: в мой английский плагин, построенный на английском Морровинде, каким-то бесом пролезли все диалоги ДаготУра в руском варианте... Уй.
Alina
Мод чистится TESAME - задай поиск Tesame Morrowind в гугле. Если сам не разберёшься, как - напишу подробней или отвечу на вопросы, но идея такова, что в тесаме просто надо удалить все ненужные изменения. То есть если у тебя NPC, в моде должен быть он, написанные тобой ветки диалогов, плюс созданные тобой заклинания - предметы и так далее. Остальное вроде как мусор.
Cheb
О. Спасибо!
Infernal knight
Команда Player->ModStrength, 20 поднимает силу на 20 пунктов - она взята из скрипта оригинального Мора и поэтому 100% работает - взгляни скрипт "bittercup"
Cheb
Что самое смешное, из диалога она не работает (в чём и была проблема) - пришлось сделать так, что диалог устанавливает переменную - флажок в скрипте Слэйары, а уже этот скрипт, обнаружив установленный флажок, увеличивает параметр.
Infernal knight
А может проще сделать, чтобы сразу запускался скрипт из диалога, который поднимет силу?
Alina
В смысле что-то типа StartScript ModPlayerStrength ? - отдельный скрипт сам по себе, который не будет крутиться с персом, а выполнится один раз - в принципе, наверное, более разумное использование ресурсов, но вот интересно, сработает ли. С другой стороны, не будет ли это тормозить из-за подгрузки скрипта?
Infernal knight
Не должно тормозить - постоянно прокручивающийся скрипт следящий за переменной больше ресурсов должен жрать IMHO...
Cheb
Ох, так меня ДОСТАЛА эта отладка, когда сохраняешь скрипт в TES CS, оно говорит ошибок нет, потом сохраняешь файл, сидишь ждёшь пока грузится Морровинд, потом сидишь ждёшь, пока грузится игра, потом ещё ждёшь, пока оно перестанет свопиться, потом подходишь к неписю, долго тестируешь диалоги, а в результате оно орёт "АШЫПКА!!!" и скрипт слетает в момент запуска...

Нетушки! Лучше уж я всё в одном-двух больших скриптах держать буду, чтобы хоть все эти идиотические ляпы сразу обнаруживались... А то как то совестно соседей среди ночи будить некультурными выражениями... Вот.
Cheb
Сейчас я работаю над скриптом преследования - взял за шаблон мод "The Ring of Teleportation", и сейчас правлю точки приземления. Малость нудная работа: телепортироваться, взлевитировать, найти удобную снайперскую позицию, залезть в консоль и узнать свои координаты, и списать их на бумажку, чтобы потом подправить скрипт. И так 64 раза, для всех локаций... =%[

Но зато потом будет прикольно: допустим, вор уровня этак первого что-то спёр у Слэйары, убежал, сохранился, потом выходит от Косадеса - а она уже под дверью радостно ждёт, со своим даэдрическим луком и эбонитовыми стрелами... И "уноси готовенького". :)
TERSERCUTOR


А как узнаются координаты - меня ентот вопрос давно "заедает"?

Cheb
player->getpos, x
player->getpos, y
player->getpos, z
player->getangle, z
Cheb
Вы это, не думайте, что я это забросил. Просто оно это... очень уж навороченным получается. Скриптов там всяких туча, диалогов веток двести, текстур всяких, и прочего мусору.

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

...Хотя, с другой стороны, пляж без моей новой текстуры песка размером 1024х1024 тоже как-то не очень хорошо смотрится...
Alina
Только небо не убирай:) А то с тебя станется%) Небо поместить в отдельный план, а ключи от двери этого плана выкинуть в Sea of Ghosts... А у некоторых аутлендеров, между прочим, нет штанов с констант эффектом "Water breathiing" и тяжёлой дэдрической брони, чтобы за ключами нырять сподручней было:)

Ладно, шуточки:) Насчёт размера - возможно, когда ты его ужмёшь архиватором и почистишь, он будет занимать примерно в два раза меньше:) В конце концов, к маленьким модам люди тоже подозрительно относятся;)

Ладно, а если серьёзно совсем - то размер не главное... ээээ - ну в общем, удачи:)
Cheb
Так эти полтора мега и получаются после ужатия последней версией RAR'а на самой зверской компрессии.
Cheb
...начинаю потихоньку звереть - надетые на непися вещи с Constant Effect вдруг ни с того ни с сего перестают действовать - обычно после окончания боя с монстром или перехода клеточки. Добавил фичу: раздеться-одеться при каждом переходе клеточки. Всё равно не помогает, пару раз при подводном плавании Слэйара у меня захлёбывалась до смерти из-за того, что броня переставала её лечить. Оба раза после того, как нарубала ломтиками акулу. (кстати, а кто-нибудь заметил, что неписи под водой луком отказываются пользоваться?)
Придётся усовершенствовать скрипт до "перенадеть броню если здоровье сильно снизилось за малый промежуток времени"

Докладываю:
- Добавил супер-кольца и амулеты с энчант-ёмкостью 666, но достать их будет малость трудновато.
- Поскольку не имею возможности редактировать NIFы, то взял имевшиеся и вручную хакнул их, подменив имена текстур. Из мрачных и тёмных амулетов Шестого Дома получились весьма красивенькие и блестященькие артефактики. Про кольца вообще молчу.
- Сегодня приступаю к разработке алгоритмов AI. Какие спеллы кастовать - будет определять не тупой движок, а умный скрипт.
- Усовершенствовал противодействие отставанию: вблизи игрока скорость устанавливается в 60, вдали - в 150, а если игрок не виден - в 400(!). Эффективно, но на 100%. Но лучше, чем ничего.
TERSERCUTOR


Алина, гдей то тут давала ссылу на сайт, где, типа - вроде т.е. ;) - девушка создаёт спутников, там проблема "отдаления" решалась более просто:

Если растояние "критично" возрастает - НеПиСяй просто телепортится(!) к Вашей Аватаре(!)

Cheb
Если бы этот **** движок такое позволял, я бы так и сделал. Так ведь нет, половина функций не работает, а оставшаяся половина работает через ****...
:(
Попытка "просто телепортировать к игроку" приводит к тому, что непися швыряет к началу координат, где он благополучно и застревает.
TERSERCUTOR


Вот про что я говорил - глянь их скрипты поведения при сильном отдалении от патагониста...

Cheb
Cкрипты просты, как сибирский валенок: "если отстал, заблудился - телепортироваться в заданную точку встречи в Вивеке".
У меня уже круче В)
У меня таких точек - тьма.
TERSERCUTOR


Нет - чего то не то ты смотришь:

В Вивек ГёллФренда отправляется токмо по твоей личной просьбе, а вот если она просто отстаёт - то телепортируется в одну с тобой точку - я, сначала боялся потерять её, а потом - когда допёр, что к чему ;) , пол континента с ней обегал: сначала орёт: "Подожди" , а после - "Хоп-па" и стоит на тойже точке, что и ты ;)

Vitali
Хоть тема и полумертвая, маленький совет.
Насчет обязательного наличия каких-нить модов (например Giants из-за расы Seducer)... можно выделить из Giants конкретно расу Seducer (с помощью, например, вышеупомянутого TES Advanced Mod Editor) и слить с твоим модом. Все.
Если это общеизвестно, не бейте.
Infernal knight
2Cheb Вот эта функция позволяет телепортировать объект к игроку на определенном расстоянии и направлении:

PlaceAtPC

PlaceAtPC, ItemID, count, distance, direction
PlaceAtPC, “Ninja Man”, 1, 256, 1


Places the object at the PC, in the direction you specify and the distance. If that location is not safe (in the air, in a wall, etc), the object will be placed at one of the other axis or at the player’s exact location (feet).

direction is:

0 = front
1 = back
2 = left
3 = right
Scorpy [ZISpel]
Вношу, блин, поправку. Плэйс СТАВИТ нового нпса в расчете от положения игрока (кстати, попробуйте-ка поставить нпс player, можно будет самому с собой пообщаться и сразиться).
Т.е. через годик по Вварденфеллу будет бродить толпа клонов. В этом случае надо disable предыдущее тело. :)
Cheb
С прискорбием вынужден сообщить, что полностью охладел к Морровинду. (В первую очередь - из-за чудовищной тупизны AI и кривизны скриптовой системы, которые на корню рубят все попытки сделать хоть что-то осмысленное). Также я не собираюсь даже пробовать Трибунал и прочие продукты серии.

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

..только вот вспомню, куда я диск с Морровиндом задевал...
Infernal knight
Зря ты так, Cheb, но иногда такие игры как Мор с первой попытки не проходятся, и изредко порядочно достают... Но после к ним возвращяешься - по своему опыту знаю.
VladZ
2Cheb Насчет того, что что вещи внезапно
у непися в инвентаре оказываются во время
боя с монстрюками: У меня такое тоже было,
и вызвано это было тем, что состояние брони
уменьшилось до 0 и ее выкинуло в инвентарь.
Если амулеты у нее в инвентарь не
скидываются, причина в этом.
Cheb
VladZ
Дело не в износе, у меня на непися надета броня с заэнчантенным константным лечением.
Так вот: она, ни с того ни с сего, вдруг перестаёт лечить, и чтобы заработала, её надо снять и снова надеть.

Infernal knight
Вот я сегодня, вместо того, чтобы развивать мод дальше, четыре часа угробил на то, чтобы понять почему в скрипте лезет ошибка "infix to posfix" - и, между прочим, так и не нашёл, придётся завтра продолжить.
И, естественно, в конструкторе эта ошибка не обнаруживается, говорит "всё окей", а летит скрипт даже не при запуске Морровинда, а только в момент окончания загрузки игры - представьте, сколько времени занимает каждая проверка.

А теперь угадайте с трёх раз, что мне хочется сделать с мудаками-программистами, которые писали этот движок?..
Cheb
Scorpy [ZISpel]
Как только первый раз используешь связку "PlaceAtPc - Disable предыдущее тело", твой непись со всеми его переменными станет невидим для любых скриптов, кроме его собственного. Что, очевидно, недопустимо.
Cheb
Если хотите спросить, чё я столько времени делал и почему Слэйара до сих пор не готова - смотрите сюды: http://forums.newdoom.com/UBB/Forum5/HTML/000741.html
Cheb
Ещё препятствия:
1. если на непися одето что-то с констант эффектом, то в момент окончания боя с монстром констант эффект прекращает действовать, хотя вещь по-прежнему надета.
2. любые операции с инвентарём чудовищно медленные. Протестировал Слэйару - захотелось плакать: в момент перенадевания брони игра замирает секунд этак на десять...

Буду искать обход.
Vitali
2Cheb:
2. Тупой вопрос: как ты реализовывал это самое перенадевание? Я к тому, что если переодевать по типу, например:
if ( npc_slayara->GetItemCount, "cuirass 1" == 1 )
npc_slayara->RemoveItem, "cuirass 1" 1
if ( npc_slayara->GetItemCount, "cuirass 2" == 0 )
npc_slayara->AddItem, "cuirass 2" 1
endif
endif
... то вроде не тормозит (Cel1400), по крайней мере никак не десятисекундное замирание.
То есть пусть у NPC в каждый момент будет только один комплект брони, оружия, etc.
А товаром, если надо, ее нагружать непосредственно перед продажей.
Cheb
Для продажи пришлось ей придать помощницу, иначе никак не получалось избежать потенциального перегружения барахлом и обездвижения.
Опять же, я добавил возможность присоединить Слэйару к партии (ну спойлер, это, спойлер, дык ить вообще весь МОД спойлерный, вырос-то он с попытки оформить торговца-с-100000-денег поизящнее) - а торговать с товарищем по оружию как-то двусмысленно...

Да, замирание на на один предмет на моём Duron-800 меньше секунды (такое же, кстати, как когда аватара переодеваешь). Но ведь броня состоит из семи частей. Плюс оружие. И задержки складываются, к моему глубокому сожалению :(
Но я нашёл изящный обход, потом расскажу, какой, и сегодня же заскриптую.

Пока, вот информация для размышления и критики:
1.
..только что загрузил slayara.esp, отключив GIANTS и Wilderness MOD. Редактор пару раз обиженно хрюкнул, с продавщицы исчезла стильная вампирская накидка, оставив её отсвечивать лысиной... И это всё. Ну, может ещё рыбки и бабочки с пляжа исчезнут. А в целом отлучение прошло подозрительно гладко. Потом придётся ещё проверять насчёт моделей и текстур, делая чистую установку, но, в целом, результат обнадёживает: обязательным к потреблению будет только сравнительно безобидный Marksman MOD (newarrows.esp) - уж больно много разных стрел я оттуда позаимствовал, вовек не распутать.

2.
Как присоединить Слэйару к партии:
1. Не быть аргонианцем :)
2. Быть минимум 15 уровня, и очень ей нравиться (90), или 25-го, и просто нравиться (70), и т.д. ИЛИ побить Дагот-Ура и нравиться ей не меньше чем на 40 пунктов.

3.
Как понравиться Слэйаре (поднять её отношение)
тут я попытался сделать хоть какую ролёвость.
1. Использовать на ней убалтывание и подкуп бесполезно: в лучшем случае, отношение просто упадёт пунктов на 10, в худшем - будете порваны на грелки.
2. Осторожно выбирать ответы в разговоре по душам - это, типа, как ходьба по минному полю :) а повторить разговор не удастся, разве только если отношение и так больше 80.
3. Дарить подарки (доделаю - узнаете, какие). Только таскать придётся тяжелое и много.

4.
Плюсы и минусы присоединения Слэйары:
+1. она легко рвёт на грелки даже ту разновидность спиггана, не помню как называется, что выглядит, как бурый хангер, суммонит двух хангеров и всё время кастует Absorb Health совершенно недетской амплитуды (короче, противник очень серьёзный, Вивек ему в подмётки не годится)
+2. получаешь доступ к её персональному острову, где если постараться, можно нарыть колец и амулетов с лимитом зачарования 666
-1. играть становится неинтересно :)>
-2. можете попрощаться с Косадесом и главной квестовой веткой, эти двое дружат как кошка с собакой.
-3. резко ухудшатся отношения с Великими домами и храмом.

Вот.
У кого какие идеи, что катит, что не катит?..
Alina
Кая Косадеса жа-а-алко:)
Кстати, надеюсь, ты не будешь делать всякую там любовь-морковь:) - а то всякие цветочки-поцелуйчики утомляют:)
Cheb
Никакой моркови. Ей для одной заморочки нужен эбонит в гомерических количествах, и она его скупает втридорога. Хотите - дарите, поднимая отношение, хотите - продавайте за деньги, а можно и вытянуть из неё побольше денег, но тогда отношение упадёт. Его вообще гораздо проще уронить чем поднять. Как и в реальной жизни.

...Надо бы заодно переделать квесть с Кальдерской шахтой, так как в моём раскладе шахту пытаются захватить не Тельванни а Слэйара, но я боюсь не справлюсь столько связей править, и, главное, сам этого квеста не проходил. Подсказать кто-нидь что-нить сможет?..
Alina
Да, но проблема в том, что эта шахта и квест - из гильдии бойцов, так что здесь надо о-очень аккуратно править будет, чтобы не напортачить. И плюс ещё проверить всё у всех, что от этого квеста зависит.
Не проще ли сделать побочный квест? Хмм, пока возникло только предложение - допустим, Слэйара - бывший боец гильдии файтеров, и на неё есть баунти... Или она бывшая любовница Кая Косадеса%) - в общем, у меня пока бредовые идеи:)
Но насчёт квестовой ветки - серьёзно, просто у меня уже штук 10 модов отключено только из-за того, что они портили основную сюжетную ветку квестовыми "доработками".
Cheb
Так, переделал...

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

И вообще, она не местная, а из Даггерфола или откуда ещё дальше.

А основную квестовую ветку никто не заставляет портить - можно дождаться, пока Косадес уедет, и только потом присоединять Слэйару.
Да и не до нуля его отношение упадёт, а лишь на 50 пунктов. Хе-хе.

А если серьёзно - надо же спойлер чем-то компенсировать?..

И, извините, но МОД будет ТОЛЬКО в английском варианте.
Vitali
2Cheb:
Извини за повторы, но насчет "обязательных к потреблению" модов... почему бы не вытащить из них только необходимую инфу и не слить ее с твоим модом?
Cheb
Блин, ну угробиться надо, чтобы MarksmanMod отпутать, там же хрен знает сколько из него используется!
Я и так уже за<CENSORED>ся выковыривать из WildernessMod модели и текстуры акул и бабочек! Хватит с меня.

И Marksman MOD тот добавляет ТОЛЬКО новые виды стрел и луков, ничего больше, так что глючить не должен. С ним в любом случае играть лучше, чем без него.
Vitali
В принципе, если мод небольшой, можно полностью его привязать... или сделать два варианта - один поменьше, но для его работы нужно иметь некоторые моды, другой - побольше, но работает сам по себе.
Cheb
Посмотрел я на размер этого Marksman MOD'а - и мне стало нехорошо.
Семнадцать мегабайт! =:[
Когда я его сам скачать-то успел?.. Вот вам и пример морально-разлагающего влияния коннекта через локальную сеть на 500 килобайт в секунду :(

Так что, пришлось трудиться, связи обрезать. Вроде получилось. Теперь обязательных к подключению модов не будет :)

Сейчас размер моего МОДа - 2169 килобайт в предельно заRARенном виде. Больно уж текстур много: и зверские стрелы самому пришлось ошкуривать, и акулу из Wilderness MOD'а выковыривать... Вот и набралось.
Cheb
*Баги, неустранимые из-за кривости движка и/или скриптового языка:

1. Слэйара практически иммунна к эффектам разрушения брони, и её броня не изнашивается

2. Джинн из амулета обращается "Yes, Master" даже к персонажам женского пола... Ладно, считайте что он просто подслеповатый.

3. Слэйара часто всаживает в какую-нибудь крысу заклинание стоимостью этак 400 маны, а потом бегает разряженная и крутых монстров строгает ножиком.
(Для обхода этого, я добавил возможность уговорить её не драться пока она или игрун не будут сильно ранены.)
Vitali
2Cheb:
Насчет п.2: в чем проблема?
Не помню, есть ли функция, возвращающая пол игрока. Вроде бы нет. Как я понял, амулет с джинном достается у Слэйары. Тогда как вариант могу предложить ввести переменную (пусть будет genie_talk). Пусть первая же слэйарина фраза будет разной для существ одного с ней пола (ж) и другого (м). То есть слова будут одинаковыми, а в результатах равняем genie_talk для ж=1, для м=2. В диалоге с джинном пусть фразы, разные для М и Ж, фильтруются именно по genie_talk. На всякий случай для genie_talk = 0 (если амулет добудется без разговора со Слэйарой) можно прописать что-то универсальное ("Yes, Massa" )). Или для неодинакового пола (м) пусть genie_talk будет равно не 2, а 0.
Или я чего-то не понимаю?
Cheb
Вот и я как раз до этого вчера додумался. Но пока что не реализовал - нашёл в Интернете http://rt.gena.lib.ru/win/design/gena/pages/1961/0.htm , обрадовался, и прочитал её всю.
Ваш ответ: