Перейти к содержанию

Dyx

Граждане
  • Постов

    33
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Dyx

  1. Хм. У меня что-то подобное нашлось, но не знаю, с каких это вообще времен.

    http://ifolder.ru/18915599

    вот спасибствую, а то что они не свежие это не страшно, лишь бы обрезанных локаций небыло, а то разрыв текстур на границе локации 2 глаза режет

  2. И кстати, что-нить придумано было на счет сообщения с материком? Или единственный путь - форсировать море призраков? :thumbup: :scratch:

    Я не силён в ЛОР, но по-моему где то в морке слышал, что по каким то причинам сообщение с материком временно приостановлено (разрешено только восточно имперской компании плавать) Именно по этому нам в Морхолд приходится путешевствовать с помощью мага. Так что, если бригада ТР забудет возобновить сообщение, проблемой это не будет))) к тому же сразу же в след за релизом появится пачка плагинов с разными паромщиками, переправами, двемерскими дирижаблями, и даже мостами=)

     

    Еще вопрос: подскажите - где начинаются квестовые ветки.

    как я понял из примерно на половину прочитанной ветки квестовые ветки ещё не доделаны, есть только отдельные квесты за фракции.

     

     

    ну и повторю свой вопрос:

    у кого нибудь остались хотя бы сырые мапы 3, 4, 5, 6? например вот в этом сообщении ссылка давно устарела, а хотелось бы увидеть это всё хотя бы вот так:

    http://s56.radikal.ru/i154/0909/0b/493719e6a9de.jpg

    мне бы хотя бы размеры посмотреть оценить, да на кораблике поплавать, благо птички и рыбки у меня генерируются повсеместно (спасибо Abot'у) а то первые две поставил и как то обрезанный край портит всю картину =(

     

    кстати на вышеуказанной карте я так понимаю нету собстно мапы 3 и мапы 6? или это просто баг отображения самой карты?

  3. Не пробовал из вот этого поста взять MLShell.exe и MLDRLib.dll?

    взял, спасибо, проблема с "ModuleLoader не установлен" исчезла. Но теперь я совершенно не могу обойти проблему Unknown morowind.exe. может я со своим англиским на уровне "хэлло май нэйм ис" чего то в настройках проглядел? МСР может где то подкрутить надо, или ещё где галочку убрать?

     

    Дело может быть в антивирусе, если установлен - они иногда на MLDRLib.dll неадекватно реагируют.

    нет с ним всё в порядке, даже отдельно файл проверил угроз не нашёл.

     

    как её блин заставить запускаться с пропатченным маровинд.ехе? :"-(

  4. я конечно не исключаю что у меня руки не из плеч... но вообщем беда такая:

    1) Установил голосовые модуляры Николая и Алёны

    2) скачал инсталлятор "Morrowint Talky" откуда сказано

    3) распаковал в морву, даже ошибок ни каких не появилось

    4) InstAllMods.exe запустился сам, все dll'ки и ехе-хи прощёлкал в конце сматерился что не может найти MLDRLib.dll на сём закрылся.

    5) запускаю "MWTalkyCfg.exe" а там пишецо мол "TalkyMorrowind не установлен" и "ModuleLoader не установлен"

    6) В появившейся закладке "УСТАНОВКА" жмыкаю "Установить" появляется надпись "TalkyMorrowind установлен в ModuleLoader" и "ModuleLoader не установлен"

    7) програмку настроил всё норм при проверке читает как надо... НО

    а)игра не запускается, утверждает что "unknown morrowind.exe" ставлю MGE жмыкаю галочку чтобы не обращало внимание на изменение ехе'хи игра запускается и показывает мне.. конечно же краказябру вместо всех русских текстов... естественно и "толки" читать отказывается

     

    вообщем как бы мне эту заразу на русский 1С'вский мор воткнуть помогите пжлст :"-(

     

    Пы.Сы. скачал отдельно MLDRLib.dll кинул в корень игры, при сканировании InstAllMods.exe всё норм, ошибка исчезает но при запуске MLShell.exe он эту MLDRLib.dll кушает в прямом смысле, сносит или что там происходит... корчое она исчезает работоспособность не появляется, а InstAllMods.exe снова начинает матюгаться на её отсутствие...

    уже все нервы измотал три раза игру переставлял... либо ошибка моровинд.хехе либо краказябра на экране :"-(

  5. братцы, тут вот в теме простреливали карты 3-6 но за сроком давности ссылки уже все потёрлись.. может кто перезальёт? а то оч хочется хотя бы посмотреть на землю в заявленном масштабе...

     

    кстати а мне одному показалось что ребята слишком уж близко материк к Ввандефеллу сделали? получается не море, а так речушка какая то... местами перепрыгнуть можно будет же...

    кстати как оно уживается с плагином "рыбацкая академия"? он норм в море попадает или на замлю накладывается?

  6. проблема возникает только в момент снятия денег или руды, ошибка содержит текст мол команда additem не может довать 0 едениц, после чего добавляется 1 еденица (золота или эбонита, в зависимости от того, что снимаем) и скрипт зависает, причём загруска созранённой игры его не спасает приходится перезапускать игру полностью... я вообще не пойму в чём причина... такое ощущние что глобальная переменная пытается вернуть предустановленное значение из геймсэттингс (т.е. 0), причём пытается сделать это в аккурат перед снятием. я пытался подключать трибунал и бладмун проблема не исчезла... дополнял скрипт дебагмэсаджами, которые выводили значение всех переменных на каждом этапе скрипта, все значения присваиваются нормально и в момент снятия руды или денег они содержат корректные значения, но ошибка всёравно вылезает...

    :sos:

  7. Сделать новые кучки золота легко:

    ...

     

    да не.. я когда на движке моры делал другую игру у меня встал вопрос денег, нужны были купюры номиналами 25 50 500 и др т.е. они должны были появляться и при выкладывании тоже....

    просто я вспоминаю в тес есть пара кучек Gold_Dae_cursed_001 и Gold_Dae_cursed_005 так вот их в игре самой нет, и при их выкладывании в мир игра матерится мол "вы чё новое золото добавили???" я уже точно не помню текст ошибки ну что то такое там было...

     

    з.ы. я решил вопрос иначе убрал золото вообще а создал мискайтемы с весом 0кг разных номиналов, типа деньги... места много в инвенторе занимали, зато приходилось разменивать деньгу в магазинах=)

     

     

    интересно, а получится сделать торговца который не берёт деньги, типа только бартер? (например если делать по системе как у скуумы)

  8. спс всем кто откликнулся отдельно olol'у, проверю такой вариант если получится то в скором времени будет плаг...

     

    теперь вопрос по другому скрипту:

    вкрацце: это активатор управления шахтой (в данном случае эбонитовой), менюшка позволяет:

    • продать весь эбонит со склада за стоимость = цена 1 куска * количество кусков * 90% (типа рабочим тоже платить надо вот на 10% дешевле и выходит)
    • взять часть эбонита со склада для своих нужд
    • разработать ещё месторождения (это нужно для работы глобального скрипта, фактически увеличевается ежедневный прирост эбонита, короче тут багов нет)

    вот первые два пункта у меня почему то не удались=(

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

    begin _dyx_mcb_e_sc
    
    ;===========================================================
    ;объявим переменные
    ;===========================================================
    ;long nowsellprice ;моментальная цена продажи. уже глобальная
    short state
    short button
    ;long the_x ;просто какое-то неизвестное. уже глобальная
    ;sklad_e и kolvo_e глобальные
    ;===========================================================
    ;активация, меню1
    ;===========================================================
    if (state == 0)
    if (OnActivate == 1)
    set NowSellPrice to sklad_e*200*0.9	;устанавливаем стоимость продажи для имеющегося количества эбонита 
    set state to 1
    endif
    endif
    if (State == 1);активировали, появляется менюшка1
    messagebox "У Вас в шахте %.0f месторождений эбонита и %.0f едениц эбонита (общей стоимостью %.0f) на складе. Что вы хотите сделать?", kolvo_e, sklad_e, NowSellPrice, "Продать все оптом", "Взять на реализацию", "Разработать еще месторождения (16800 дрэйков)", "Ничего"
    set state to 10
    endif
    ;===========================================================
    ;кнопки меню1
    ;===========================================================
    if (state == 10)
    set button to GetButtonPressed
    if ( button == 0 )	;продаем весь эбонит
    	if (sklad_e == 0)	;а есть ли он?
    		messagebox "На складе пусто! Нечего брать!"
    	else	;есть
    	set NowSellPrice to sklad_e*200*0.9		;я даже ещё раз пересчитал сколько будет стоить продать весь эбонит
    	[color="#FF0000"]player -> additem "gold_100", NowSellPrice[/color]	;игрок получает расчитанную сумму... теоретически... по факту какого то уха игра выдает ошибку "не может быть = 0" и дает только 1 золотой
    	PlaySound "Item Gold Up"			;звук передачи денег
    	set sklad_e to 0				;опустошаем склад
    	endif
    	set state to 1					;возврат к меню1
    elseif (button == 1) 					;берем на реализацию
    	set the_x to sklad_e			;выставляем х в величину того что есть на складе
    	set state to 20					;переходим в меню2
    elseif (button == 2) 					;покупаем месторождение (это работает нормально, так что не описываю)
    	if ( player -> getitemcount "gold_001" >= 16800 )
    		player -> removeitem "gold_001" 16800			
    		PlaySound "Item Gold Up"
    		set kolvo_e to kolvo_e+1
    	else
    		messagebox "У вас недостаточно денег! Вам надо 16800 дрэйков чистой наличкой, акции, чеки и самоцветы не принимаются!"
    	endif
    	set state to 1
    elseif (button == 3) 					;отменяем
    	set state to 0
    	return
    endif
    endif
    ;===========================================================
    ;меню2
    ;===========================================================
    if (state == 20)							;если был запрос на переход к меню2
    	if (sklad_e == 0)					;а на складе нихуя нет
    		messagebox "На складе пусто! Нечего брать!"	;посылаем игрока в...
    		set state to 1					;меню1
    	else							;иначе появляеться меню2
    	messagebox "Сколько берем? (снимаем: %.0f на складе: %.0f)", the_x, sklad_e, "+1", "+10", "-10", "-1", "Ок", "отмена"
    	set state to 30						;переходим к действиям меню 2
    	endif
    endif
    ;===========================================================
    ;кнопки для меню2
    ;===========================================================
    if (state == 30)			;если нас послали в действия меню2
    set button to GetButtonPressed	;смотрим че за кнопка была нажата (кнопки с 0 по 3 работают норм, так что не расписываю подробно)
    if ( button == 0 )				;если "+1"
    	if (the_x >= sklad_e)			;и если х больше чем есть на складе
    		set the_x to sklad_e		;то пусть х будет равно количеству руды на складе
    		playsound "Item Ring Up"	;сообщим игроку звуком что он достиг края изменения числа х (а то испугаеться что игра зависла)
    	else
    		set the_x to the_x+1		;ну а если с числом х все в порядке, то увеличим его на 1
    	endif
    	set state to 20
    elseif (button == 1)				;аналогично для кнопки "+10"
    	if (the_x >= sklad_e)
    		set the_x to sklad_e
    		playsound "Item Ring Up"
    	else
    		set the_x to the_x+10
    	endif
    	set state to 20
    elseif (button == 2)				;аналогично для кнопки "-10"
    	if (the_x <= 11)			;только тут проверяем не (х>sklad_e), а чтобы х не стало 0 или отрицательным
    		set the_x to 1
    		playsound "Item Ring Up"
    	else
    		set the_x to the_x - 10
    	endif
    	set state to 20
    elseif (button == 3)				;аналогично для кнопки "-1"
    	if (the_x <= 2)
    		set the_x to 1
    		playsound "Item Ring Up"
    	else
    		set the_x to the_x-1
    	endif
    	set state to 20
    elseif (button == 4)				;а вот с кнопкой "ок" что то не то
    	set the_x to the_x			;я даже пытался поновой вызвать х, но очевидно она слетает в 0 где то раньше этого места
    	[color="#FF0000"]player -> additem "ingred_raw_ebony_01" the_x [/color];вот на эту строку игра материться мол "х у вас равно 0 а команда аддайтем не может применяться с числом 0"
    	set sklad_e to sklad_e - the_x		;дальше убираем со склада то число руды которое мы забрали (как ни странно но оно работает, хотя если бы х был равен 0 то ничего бы не происходило
    	PlaySound "Item Gold Up"		;играем звук чтобы "типа взяли"
    	messagebox "Вы взяли со склада %.0f кусков эбонита. На складе осталось %.0f кусков", the_x, sklad_e ;сообщаем игроку сколько руды он взял и сколько осталось на складе
    	set state to 1				;возвращаемся в меню1
    elseif (button ==5)				;ну с кнопкой "отмена" вроде проблем не обнаружено
    	set state to 1
    	return
    endif
    endif
    
    end
    

  9. вот тут то и попа, я уже второй раз на это натыкаюсь, вот вчера тоже пользовался функцией choice и такая же фигня, раньше всё получалось а щас чёто где то не так делаю.. почитал МСфД там написано что в одном чойсе не должно быть больше 5 вариантов, но можно в томже резалте писать ещё чойс с 5 вариантами и ещё и тд чойсов 5 можно.. т.е. 25 вариантов, вообщем это я исправил, сделал 2 чойса, ну тоесть

    Choice "бла-бла-бла1" 1 "бла-бла-бла2" 2 "бла-бла-бла3" 3 "бла-бла-бла4" 4 "бла-бла-бла5" 5
    Choice "бла-бла-бла6" 6

    и это во вчерашнем плагине, а в "рабах" там вообще всего тра варианта ответа, и всёравно такая ботва=( так что я не знаю чё я не так делаю=(

    я даже посмотрел стандартные чойсы и методы их использования, всё как и у меня, чё ему не нравиться? :crym:

     

    для тех кто будет искать где это в моём плагине через редактор: это топик "освободить" и гритинг1 в конце списка вы их заметите по графе fun/var1 там будет slavestatus

  10. На расстоянии 300 от каждого костра? С расстояниями и количеством тепла можно подшаманить, чтобы лучше было. А так - да, тепло от всех костров складывается, и можно сгореть, не подходя вплотную ни к одному.

     

    Конечно от каждого, хотя я понял как можно исправить:

    elseif ( GetDistance, Player <= 32 );Если слишком близко
    set warmhere to 15
    set done to 1
    elseif ( GetDistance, Player <= 100 );если расстояние среднее
    set warmhere to 3
    set done to 1
    elseif ( GetDistance, Player <= 300 );если мы все же на оптимальном расстоянии
    set warmhere to 1
    set done to 1
    endif

    if ( globalwarm >= 15 );Если слишком жарко
    MessageBox "Вы горите!";сообщим игроку
    Cast, Firepit_bad_spell, Player;добавим плохой эффект
    set casted to 1;кастанули
    set globalwarm to 0
    elseif ( globalwarm >= 1 );если тепло нормальное
    MessageBox "Вы чувствуете живительное тепло костра...";сообщим игроку
    Cast, Firepit_good_spell, Player;добавим хороший эффект
    set casted to 1;кастанули
    set globalwarm to 0
    endif

     

    эт уже ближе к реальности, от 15 костров ты точно сгоришь=) или от 5 но поближе

  11. написал попытался написать плагин который исправляет в игре один недочёт. помните тех рабов в пещерах и данжах? которым нужен ключ чтобы освободить, кому как но меня всегда бесило что имея этот самый ключ нельзя забрать раба себе, ведь по сути дела раб это вещь, такая же как доспех или клинок, почему его нельзя забрать себе? вот собстно то что я сделал:

    исправил slavescript (теперь раб не постоянно тащиться за ГГ если slavestatus = 2 т.е. если раб твой)

    исправил диалоги рабов, добавил команду "теперь ты мой" она работает корректно выставляя slavestatus = 2

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

    Порабощение_Рабов.esp

     

    з.ы. я на самом деле против рабства=) просто иногда прикалывает плохишом поиграть и тут понимаешь что игра в этом плане "малость" линейна

  12. Сделал небольшую фичу, думаю товарищей модмейкеров порадует :jokingly:

     

    а ещё классно было бы чтобы, при нажатии на эту картинку в подписи, открывалась страничка со списком этих самых плагинов ;-)

  13. Dyx не хотелось бы использовать глобальный скритп. Подругому не как нельзя?

     

    ну если можно трогать других членов фракции, то вешай на каждого скрипт

     

    begin Kane's_faction_member_script
    if ( factionaremed == 1 )
     SetFight 100
     StartCombat->player 
     return
    endif
    if ( OnDead == 1 )
      set factionaremed to 1
    endif
    end

    или такой:

    begin Kane's_faction_member_script
    short done
    if (done == 1)
    return
    endif
    if ( factionaremed >= 1 )
     SetFight 100
     StartCombat->player 
    endif
    if ( OnDead == 1 )
      set factionaremed to factionaremed + 1
    endif
    end

    где factionaremed - глобальная переменная

    во втором случае можешь поставить зависимость от величины factionaremed например вот так:

    begin Kane's_faction_member_script
    short newfight
    short done
    if (done == 1)
    return
    endif
    if ( factionaremed >= 1 )
     set newfight to getfigth + factionaremed*10
     SetFight newfight
    endif
    if ( OnDead == 1 )
    set factionaremed to factionaremed + 1
    set done to 1
    endif
    end

    в последнем скрипте атака будет не с первого убийства а примерно из этой таблицы:

    100 Всегда атакует

    95 Атакует, если игрок ближе 3000 единиц

    90 Атакует, если игрок ближе 2000 единиц

    80 Атакует, если игрок близко или вы ему не нравитесь (1000 единиц, 40 Disp)

    70 Атакует, если игрок близко, и вы ему сильно не нравитесь (1000 единиц, 35 disp)

    60 Атакует, если вы ему не нравитесь и находитесь близко (Disp меньше 30)

    50 Атакует, если он ненавидит вас (Disp 0)

    40 Атакует, если игрок близко или вы ему не нравитесь. (500 единиц, Disp 10)

    30 Будет атаковать, если он ненавидит вас, и вы совершили преступление.

    20 Будет атаковать, если он ненавидит вас, и вы совершили много преступлений.

    10 Атакует, если он ненавидит вас, и вы совершили много преступлений по отношению к нему.

    0 Атакует ТОЛЬКО, если атакован первым

     

    при том что большинство неписей настроено на стандартный файт 20-30

    последний скрипт добавляет по 10 файта каждому члену фракции за каждого убитого члена фракции

    правда не очень уверен по поводу того как я использовал getfigth надо тэстить

     

    p.s.с функцией OnDeath есть какие то неполадки, я так и не понял, толи она не срабатывает в каждом фрейме сама по себе, толи работает только если непись умирает в яйчейке с ГГ, можно попробовать как альтернативу OnMurder, она даёт еденицу если убийство было зарегестрировано и за него был выписан штраф

  14. про подушки я там просто добавлю проверку на локалбный done он чтобы спелл не снимался с игрока каждый фрейм, done ещ у каждой подушки свой будет и сделаю сидение не через getdistance а через GetCollidingPC (кстати тоже с делаю и с повреждениями костра, тогда останеться прописать условия только для благоприятного расстояния)

     

    а в скрипте твоём есть один большой косяк, если вокруг меня будет костров 5 я сгорю даже не расстоянии 300

     

    внимание вопрос: как кастануть на игрока заклинание, не применяя функцию addspell, так чтобы заклинание каставалось не каким либо объектом из мира. тоесть грубо говоря "никто наложил на ГГ заклинание типа "касание". Насколько я помню, игрока нельзя скриптами заставить кастовать заклинания?

  15. Нужен скрипт. Условия: если ГГ атаковал члена фракции(определенной), чтобы все члены фракции начали мочить игрока.

     

    Сразу говорю AI пакеты не катят, они срабатывают только в определенной локации.

    пиши глобальный скрипт такой архитектуры:

    если fractionarmed > N то return
    если умер член1 то set fractionarmed to fractionarmed+1
    если умер член2 то set fractionarmed to fractionarmed+1
    ...итд для каждого...
    если fractionarmed >= 1 то:
    член1 setfigth 100 и атаковать игрока
    член2 setfigth 100 и атаковать игрока
    ...итд перечисляем всех...

    fractionarmed - глобальная переменная считает сколько убил членов фракции можешь от неё поставить зависимость на сколько сильно тебя "любят" выжившие члены фракции

    N - число всех членов фракции, нужно чтобы не гонять скрипт в пустую когда всех порубаешь в капусту

    з.ы. ну и ещё если ты напишешь скрипт в наглую по моей архитектуре, "set fractionarmed to fractionarmed+1" будеть происходить ежефрейменно=)

  16. В два часа ночи зародилась идея для небольшого плагина, и появились два вопроса, связанных со скриптами... Но, к сожалению, лезть в msfd нет настроения... А потому:

    1)можно ли при активации непися вместо стандартного действия (открытия окна диалога, всмысле) вывести меню с текстом и вариантами ответа?

    2)Есть ли переменная, возвращающая занчение определенного навыка гг?

    1) да такой скрипт вешай на непися:

    begin NoDialogTalking_sc
    
    short button
    short QuestionState
    
    if ( OnActivate == 0)
    return
    endif
    
    if ( [условие при котором непись НЕ будет говорить] )
    MessageBox "Прости у меня сейчас нет времени на разговоры." "прощание"
    Return
    endif
    if ( QuestionState == 0 )
    MessageBox "Привет %PCName, как дела?" "Плохо, мне нужна твоя помощь" "Всё в поряде"
    set QuestionState to 10
    
    endif
    if ( QuestionState == 10 )
    Set button to GetButtonPressed
    if ( button == 0 )
    	MessageBox "Что случилось? как я могу помочь?" "Пойдём со мной" "Нет уже ничего"
    	set QuestionState to 20
    elseif ( button == 1 )
    	set QuestionState to 0
    endif
    Return
    endif
    if ( QuestionState == 20 )
    
    Set button to GetButtonPressed
    
    if ( button == 0 )
    	MessageBox "Хорошо! Пойдём!" "Прощание"
    	AIFollow Player 0 0 0 0
    	Set QuestionState to -1
    	Return
    endif
    
    if ( button == 1 )
    	Set QuestionState to 0
    	Return
    endif
    endif
    if ( QuestionState == -1 )
    MessageBox "Мы уже пришли?" "да" "Нет"
    Set button to GetButtonPressed
    
    if ( button == 0 )
    	MessageBox "Хорошо! Я буду тут недалеко!" "Прощание"
    	AIWander 1000 20 20 20 10 10
    	Set QuestionState to 0
    endif
    Return
    endif
    end
    

    2) да блок кода такой:

    if ( player->getstrength <= 80)
    MessageBox "У вас не достаточно силы чтобы открыть эти ворота"
    Return
    endif

    точно не помню так ли её применять, но функция такая, про неё читай в хелпе к скриптам в самом КС, там ищи GetStat

  17. Что такое Лор ваще?

    говоря просто: соответствие миру игры и истории этого мира.

     

    далее чистейшое ИМХО причём именно в значении hamble

    я рассматриваю TES3 не как мор а как движок на котором можно очень легко создать почти любую простяцкую РПГ и посему мой ответ:

    ЛОР нужен дабы в чистом морре нелорные плагины смотряться аляпово

    НО нелорные плагины нужны, вообще нужны все плагины, даже самые глупые, так как они могут содержать пусть одну вещь, пусть один скрипт которые может оказаться очень полезен в создании чего то глобального далёкого от ЛОР морвы но тоже интересного

  18. нужны Доспехи (Даэдрические)

    в них увеличить общее число зарядов (на панцире по дефолту 60) для полного комплекта одинаково (ну там не на много,на 100,150)

    в МорровинД разместить желательно в квартире Кая в единственном экземпляре (чтоб НПС не завидовали :))

    е если не трудно сам доспех не видоизменять,а сделать четче цветность (черное -черным,красное -красным)

    тока не знаю будет ли у меня с изменной цветностью работать,или будет жолтый восклицательный знак :((

    версия Мррика у меня 1.6 (не все доспехи работают) :((

    сделайте пожалуйста :)

     

    1) открой КС

    2) загрузи мор, без ничего, чисто мор

    3) найди на вкладке Armor даедрические доспехи

    4) открываешь первый элемент доспехов, дописываешь "_my_" (без кавычек) в начало строки ID и 100-150 (кстати там по дефолту больше, у кирассы 600) в строку Enchantment, нажми Save, появиться сообщение нажми Yes

    5) тоже самое с остальными доспехами

    6) в окне Cell View найди Balmora, Caius Cosades' House в левом столбце, щёлкни 2 раза мышкой

    7) в провом столбце выбери caius cosades щёлкни один раз по заголовку окна просмотра мира (там серый фон будет и дом косадеса вид сверху), нажми на клаве С

    8) сейчас ты видишь ноги касадеса, используй мышку+левый Shift и мышку+Пробел чтобы двигать камеру, выбери такой ракурс чтобы видеть как бы из угла весь дом

    9) вернись на вкладку Armor прокрути в самый верх, выдели все доспехи начинающиеся с "_my" перетяни их на экран где ты видишь дом касадеса

    10) нажми F (доспехи должны будут упасть на пол, первый раз они встанут лесенкой, потом начнут пресоваться, это маловажно)

    11) можешь побаловаться с мышкой, подвигать доспехи, только не вытащи их за пределы дома, а то потом не подберёшь

    12) сохрани плагин

     

    13) открой браузер и скачай с нета DDS Plug-In for Photoshop (гугл в помощь)

    14) запусти фотожабу

    15) открой C:\Program Files\Bethesda Softworks\Morrowind\Data Files\Textures (ну или где там у тебя морка)

    (кстати для просмотра DDS файлов тебе понадобиться прога IrfanView)

    16) найди текстуры даедрических доспехов (это будет сложно)

    17) загрузи их в фотожабу и подредактируй цвета так как нравиться (но не меняй размеры текстур), сохрани их назад в DDS

    18) играй=)

     

    16.а) возможно ты не найдёшь текстуры, тогда открой BSA архив моры с помощью софта с фулреста и поищи там

     

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

     

     

    З.Ы.: а чтобы восклицательных знаков небыло юзай BSAReg только не Rus-версию она тупит

    и читай ридми;)

  19. Я думаю, так надо. Но ничего не гарантируется!

    РАБОТАЕТ! :yahoo: :bravo: :dance: Спасибо :thumbup:

    единственный глюк в том что при кастовании хорошего эффекта "зависает" звук тоесть костёр кастует раз в 5 секунд а звук каста идёт постоянно, это видимо уже движок тупит(( а ещё бесит противное колечко которое появляеться вокруг костра когда срабатывает каст. (такое же возникает вокруг святилищ, когда подаяния делаешь) ну и разумееться вокруг чара летают всякие сияющие огоньки... это увы неприятно, и совсем нарушает восприятие... я даже не знаю как это убрать, если только текстуры все заменить на прозрачные и звуки отключить у спеллов...

     

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

     

    При локальных нельзя пользоваться постоянными проклятиями и хар-ками.

    И куча прочих проблем... Может просто не понял принципа его работы?

    я понял принцип но не совсем разбираюсь в глобальных скриптах.. а если точнее я их никогда не писал и не вникал.

    если не сложно можешь написать эти скрипты? для костра и глобальный?

     

     

    з.ы. в том же плагине прописал скрипт на подушки:

    begin pillow_sc
    short done1
    short done2
    
    if ( GetPCSleep == 1 )	[color="grey"];если спим[/color]
    if ( GetDistance, Player <= 256 )	[color="grey"];ближе чем на 256 от подушки[/color]
    	Player -> AddSpell "pillow_sleep_spell"	[color="grey"];получаем эффект[/color]
    	if ( done1 == 0 )	[color="grey"];о чём ставим в известность игрока[/color]
    		MessageBox "Вы спите на мягкой подушке, отчего ваш сон много приятнее и вы быстрее высыпаетесь."
    		set done1 to 1	[color="grey"];это чтоб масага не вылезала ещефрейменно:)[/color]
    		return
    	endif
    endif
    else	[color="grey"];если НЕ спим[/color]
    if ( GetDistance, Player <= 16 )	[color="grey"];но находимся на подушке[/color]
    	Player -> AddSpell "pillow_seet_spell"	[color="grey"];то получаем эффект[/color]
    	if ( done2 == 0 )	[color="grey"];о чём ставим в известность игрока[/color]
    		MessageBox "Вы присели на подушку отчего ваша осталость проходит намного быстрее."
    		set done2 to 1
    		return
    	endif
    else	[color="grey"];но если мы не спим и не находимся на подушке[/color]
    	if ( Player -> GetSpellEffects, "pillow_seet_spell" == 1 )	[color="grey"];и на нас действует эффект [/color][color="red"](а тут будет конфликт с соседней подушкой, если на неё сесть)[/color]
    		Player -> RemoveSpell "pillow_seet_spell"	[color="grey"];мы его убираем[/color]
    		set done2 to 0	[color="grey"];и делаем так чтобы масага вылезла в следующий раз когда эффект включиться[/color]
    		return
    	endif
    endif
    if ( Player -> GetSpellEffects, "pillow_sleep_spell" == 1 )
    	Player -> RemoveSpell "pillow_sleep_spell"	[color="grey"];аналогично избавляемся от второго эффекта[/color]
    	set done1 to 0	[color="grey"];и перезаряжаем вторую масагу[/color]
    	return
    endif
    endif
    end pillow_sc

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

  20. Тему перенес. В следующий раз внимательнее.

    сорри :-[

     

    заменил скрипт на вот такой:

    begin Firepit_sc
    
    float timer
    short done
    
    if ( MenuMode == 1 )
    return
    endif
    
    [color="gray"];этот блок не даёт скрипту работать чаще чем раз в 5 секунд, теоретически;)[/color]
    if ( done == 0)							[color="gray"];если таймер не отсчитывает 5[/color]
    set timer to timer + GetSecondsPassed			[color="gray"];то пусть считает[/color]
    set done to 1						[color="gray"];теперь считает[/color]
    else								[color="gray"];если уже считает[/color]
    if ( timer <= 5 )					[color="gray"];и насчитал пока меньше 5сек[/color]
    	MessageBox "Debug: timer is %f", timer		[color="gray"];покажем скока же он насчитал[/color]
    else							[color="gray"];а если насчитал больше 5сек[/color]
    	MessageBox "Debug: timer is OK now"		[color="gray"];пусть напишет нам смску[/color]
    	set timer to 0					[color="gray"];и снова начнёт считать с 0[/color]
    endif
    endif
    [color="gray"];---------------------------------------------------------------[/color]
    if ( GetDistance, Player == 0 ) 				[color="gray"];если вы в самом эпицентре или костёр у вас в рюкзаке[/color]
    return
    elseif ( GetDistance, Player <= 32 )				[color="gray"];Если слишком близко[/color]
    MessageBox "Вы горите!"					[color="gray"];сообщим игроку[/color]
    Cast, Firepit_bad_spell, Player				[color="gray"];добавим плохой эффект[/color]
    elseif ( GetDistance, Player <= 300 )				[color="gray"];если мы все же на оптимальном расстоянии[/color]
    MessageBox "Вы чувствуете живительное тепло костра..."		[color="gray"];сообщим игроку[/color]
    Cast, Firepit_good_spell, Player			[color="gray"];добавим хороший эффект[/color]
    else
    return
    endif
    End
    

    в итоге дебагер показывает число от 0.028 до 0.035 зависящее от фпс а костёр при приближении кастует спелл в каждом фрэйме=((

    как таймер построить? нифига не понимаю %(

     

    з.ы. соответственно поменял Firepit_good_spell и Firepit_bad_spell с "характеристики" на "заклинание" "касание" радиус 0 (на чара применяеться всё норм, если бы тока не в каждом фрэйме :-( )

     

    пробовал ставить ретёрны вот так:

    ...
    set timer to timer + GetSecondsPassed
    set done to 1
    [color="#FF0000"]return[/color]
    else
    if ( timer <= 5 )
    	[color="#FF0000"]return[/color]
    	MessageBox "Debug: timer is %f", timer
    else
    ...

    тогда вообще ничего не происходит так как величина timer не становиться больше 5 :-( то и основной скрипт не выполняеться

  21. Спасибо всем кто откликнулся

    ...

    if ( GetDisabled == 1 )

    SetDelete 1

    ...

    хм... на сколько помниться удаление объекта из скрипта на этом же объекте ведёт к крашу игры :dontknow:

    если это не так, то поправте меня - я тогда так и сделаю, но просто я не люблю делать объекты которые при выкладывании заменяються активаторами. они потом в дисэйбле остаються лежать и сейв засоряют=(

     

    может EW4_Dyx_firepits_world_scpt доработать так чтобы работал с самого костра?

     

    расстояние в 10 единиц игрок может и не достичь из-за роста, 32 - в самый раз, ну а 512 - далекова-то для костра

     

    ну на счёт 10 это я уже проверил, действительно мало, а число 512 брал из радиуса освещения (т.е. костёр "греет" на расстоянии своего освещения)

     

    как альтернатива, может попробовать что-то вроде этого?

    Begin EW4_Dyx_firepits_scrpt_v2.0
    
    short state ; 0 - далеко, 1 - близко, 2 - горит
    
    ;этот блок позволяет подбирать костёр через меню инвентаря и при этом убрать эффекты
    if ( MenuMode == 1 )
    if ( OnActivate == 1 )
    	Player->RemoveSpell "Firepit_good_spell"
    	Player->RemoveSpell "Firepit_bad_spell"
    	Activate
    endif
    return
    endif
    
    ;установка статуса
    set state to 2 * ( Player->GetSpellEffects "Firepit_bad_spell" )
    set state to state + Player->GetSpellEffects "Firepit_good_spell"
    
    if ( GetDistance, Player <= 32 ) ;Если слишком близко
    if ( state != 2 ) ;И мы еще не в этом состоянии
    	MessageBox "Вы горите!" ;сообщим игроку
    	Player->AddSpell "Firepit_bad_spell" ;добавим плохой эффект
    	Player->RemoveSpell "Firepit_good_spell" ;и заберем хороший
    endif
    elseif ( GetDistance, Player <= 300 ) ;если мы все же на оптимальном расстоянии
    if ( state != 1 ) ;И мы еще не в этом состоянии
    	MessageBox "Вы чувствуете живительное тепло костра..." ;сообщим игроку
    	Player->AddSpell "Firepit_good_spell" ;добавим хороший эффект
    	Player->RemoveSpell "Firepit_bad_spell" ;и уберем плохой
    endif
    else ;ежели игрок еще дальше
    if ( state != 0 ) ;если мы слишком далеко
    	Player->RemoveSpell "Firepit_good_spell" ;уберем хороший эффект
    	Player->RemoveSpell "Firepit_bad_spell" ;и плохой тоже
    endif
    endif
    End
    

     

    так же думаю в начале скрипта вставить блок типа такого:

    short timer
    short done
    if ( done == 0)
    set timer to GetSecondsPassed
    set done to 1
    else
    if ( timer <= 5 )
    	return
    else
    	set timer to 0
    	set done to 0
    endif
    endif
    

    таким образом скрипт будет прокручиваться не каждый фрэйм а раз в 5 секунд что разгрузит проц и создаст "постэффект" т.е. после вылезания из огня игрок будет гореть ещё около 5 сек и после удаления эффект будет исчезать не сразу.

     

    или может вообще сделать так:

    при расстоянии меньше 32 костёр кастует (вообщем использовать команду cast вместо addspell) "плохой" эффект типа "заклинание" длительностью 5 секунд, при расстоянии от 32 до 300 "хороший" эффект длительностью 5 секунд, и при расстоянии больше 300 ничего не происходит. и прокручивать скрипт раз в 5 секунд. плюс такого способа в том что можно менять продолжительность эффектов и делать их разными не изменяя скрипт, минус в том что раз в 5 секунд в игрока будет прилетать заклинание, что несколько портит реалистичность всей картины.

     

    посоветуйте какой вариант будет лучше? особенно в плане производительности.

     

    Добавлено:

    проверил EW4_Dyx_firepits_scrpt_v2.0 всё работает как надо кроме одного, при подборе костров вокруг игрока появляеться эффект "урон огня" но повреждения не наносяться (возможно потому что подключен плагин dynamic regeneration)

    то есть получаеться когда какой либо предмет находится у игрока в инвенторе игра считает что его расстояние до игрока равно 0...

    Добавлено:

    добавил проверку на расстояние = 0 получилось что если у чара в рюкзаке есть костёр остальные костры не действуют никак на него=(

    похоже и вправду без деления объектов на "объект для мира" и "объект для инвенторя" не обойтись(

    попробую вариант с cast'ом, если не получиться - я в отчаиньи, придёться делать через 2 объекта=(

×
×
  • Создать...