Перейти к содержимому


Фотография
* * * * - 9 Голосов

Вопросы по плагиностроению

как создать торговца oblivion cs торговец cs как создать торговца oblivion моделирование

  • Авторизуйтесь для ответа в теме

#1281 Ссылка на это сообщение X-command

X-command
  • Следопыт
  • 70 сообщений

Отправлено

Здесь задавать вопросы по плагиностроению для Обливиона.

Тема по Обливиону. Тема по Морровинду тут.


<a href="http://profile.xfire.../xcommand"><img src="http://miniprofile.x...2/xcommand.png" border="0" class="linked-sig-image" /></a>
Сила - способность улыбаться © Белльмере-сан "One Piece"<img src="http://www.kolobok.u...zer/pirate.gif" border="0" class="linked-sig-image" />


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2639

#1282 Ссылка на это сообщение TES-Diesel modding

TES-Diesel modding
  • Министерва

  • 1 160 сообщений
  •    

Отправлено

Пересохранила, все равно так же. И модель через макс перегоняла. Все едино, нет изменений. Ума не приложу, в чем дела, раньше с такими косяками не встречалась.
Конопля - тоже дерево, просто ему вырасти не дают...
Logo-tesdiesel.png
draOOger.gif

 

#1283 Ссылка на это сообщение Demolir.uptar

Demolir.uptar
  • Новенький
  • 22 сообщений

Отправлено

Все равно какую, главное чтобы скрипт исполнялся независимо от объекта-свечи


Это понятно само собой, т.е. что на сам активатор вешать такой скрипт смысла нет. Но если в квестовом использовать скриптовый таймер по принципу set timer to timer - getsecondspassed, то он будет исполняться пока не истечет заданное время, т.е. временно заморозить его с запоминанием текущего показателя нельзя, можно только досрочно прервать. Единственное, что приходит пока в голову - это использовать 2 независимых скриптовых таймера и целые числа в качестве условий. Но этот вариант плох тем, что для его работы суммарное время в 2 часа придется дробить на участки минут по 20, и использовать постоянно "если-если" (If, elseif и т.д.). В ходе выполнения скрипта 2 таймера стартуют друг за другом, но используют то целочисленное, которое осталось от предыдущего, до тех пор пока все показатели не сведутся к нулю. Правда в итоге суммарное время уже не будет точно = 2 часам, а где-то около этого. В теории такой скрипт работать должен, но на практике...нужно проверять.

#1284 Ссылка на это сообщение Raser

Raser
  • Талант
  • 212 сообщений
  •  

Отправлено

Тут в общем не хотелось бы спорить, но у скриптов на объектах и спеллах есть большой недостаток:

Информация о референсах в них хранится очень короткое время, что может привести к вылетам, при обращении к ним, так же стопроцентный вылет если дать игроку два таких объекта (спелла)со скриптами,

а также такие скрипты исполняются каждый фрейм, что тормозит ЦП,
так уж лучше использовать больше памяти , чем время ЦП и падение фпс,

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


Спасибо, это очень познавательно. Не знал, похоже и вправду верна пословица: "Век живи - век учись"

#1285 Ссылка на это сообщение Raser

Raser
  • Талант
  • 212 сообщений
  •  

Отправлено

Как вариант, можно задать ссылку на назначаемую "горячую клавишу" не через условие в скрипте, а методом создания так называемого внешнего BatchScript. Это отдельный скриптовый файл в формате ini, который располагается в папке с игрой (обычно для этого создается отдельная папка INI), и содержит в себе информацию, которая будут использоваться определенным модом (на подобие этого работает Papyrus Script в Skyrim).

Например, тело скрипта может содержать такую информацию:

scn ScriptName

long Key

Begin GameMode

if getgamerestarted
RunBatchScript "Data\Ini\ModName.ini" ; запуск внешнего скрипта с указанием пути к нему
endif
if ( IsKeyPressed key )
; здесь обычно выполняется нужное действие
endif
end

В таком случае в баш-скрипте ModName.ini указывается информация о назначении клавиши:

set QuestScript.key to 71 ; где QuestScript это QuestID, а 71 кодировка клавиши G (по таблице скан-кодов можно выбрать любую другую)

********
Возможно создание внешнего скрипта это не самый лучший вариант, но определенно заметно, что значительное количество скриптеров используют именно его. Тем более, что во внешнем скрипте можно задать далеко не только назначение "горячей клавиши".




Она работает, просто для этой команды используются скан-коды клавиш Windows (Virtual-Key Codes), а для iskeypressed2 и 3 используются коды DirectX. Клавиши те же, но разная нумерация.



Да, есть и такой способ. Но он немного неудобен потому что задавать клавишу через скан-код не удобно. Хотя да, этот тип задания тоже существует. Но в скриптах можно сделать и так, чтобы клавишу можно было менять когда захочешь, но это будет посложнее. У меня другой вопрос, как записывать информацию в ini файл через скрипт. Ну например id того оружия, которое использовалось?

#1286 Ссылка на это сообщение Demolir.uptar

Demolir.uptar
  • Новенький
  • 22 сообщений

Отправлено

У меня другой вопрос, как записывать информацию в ini файл через скрипт. Ну например id того оружия, которое использовалось?


С помощью функций OBSE вероятно никак, поскольку Batch Script это больше своеобразный аналог .bat script, но конечно же не полноценный соперник Papyrus. Насколько мне известно, RunBatchScript используется лишь для запуска внешнего скрипта, но не для сохранения информации в нем http://cs.elderscrol...:RunBatchScript, т.е. внешний ini/txt служит как хранилище готовых исходников, которые будут использоваться определенным модом (или несколькими модами кстати).

Однако есть такой интересный плагин для OBSE, как Pluggy, и у него есть свои функции (FileToString, UserFileExists, InFile и т.д.) для работы с внешними файлами. Я с ним не работал, но в некоторых модах (Name That Horse например) через скрипты производился экспорт данных в формат .dat и .txt.

Так же есть плагин для OBSE под названием Sistem Dialog. Плаг крайне малоизвестный, но он позволяет экспортировать/импортировать данные во внешний формат .xml. Собственно перебрасывать можно все что угодно, вплоть до цифровых изображений. Есть мод на его основе Ingame Browser, позволяющий даже выходить в интернет (не покидая игры конечно).

#1287 Ссылка на это сообщение Санек

Санек
  • Ленивая ящерка
  • 700 сообщений
  •    

Отправлено

Решил в игре сделать свою книгу и интересует вопрос, какой размер изображения нужно сделать что бы в кс поставить на страницу книги картинку?

Убей одного, и тебя назовут убийцей. Убей миллионы, и тебя назовут победителем. Убей всех, и будешь считаться богом.

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

Те, кто играют в игры дьявола, рано или поздно обнажают его меч.

 

h_1421143739_5550805_d14771aeae.jpg


#1288 Ссылка на это сообщение JIyka

JIyka
  • Талант
  • 251 сообщений

Отправлено

Посмотрите ЗДЕСЬ

Там описаны стандарты изображений:

<FONT face=1>
<DIV align="center"><IMG src="Book/pek/FR01/1.dds" width=480 height=512> (ширина и высота, соответственно)

Otec%20Tyk.gif


#1289 Ссылка на это сообщение Katze Siegie

Katze Siegie
  • Кот-Мизантроп
  • 575 сообщений

Отправлено

Возникла вот такая проблеме. При создании собственного esp, я отмечаю oblivion.esm, нужные мне два мода и делаю активным свой. Но как только я его сохраняю и открываю снова мой esp, он теряет parent masters, кроме oblivion.esm. Я добавлял нужные esp и через Wrye Bash, и через TES4 Edit, но всё равно в следующий раз при открытии мой файл теряет их, и внесённые изменения пропадют. Что тут можно сделать?

Нашёл решение. Перевёл нужные esp в псевдо-esm.

Сообщение отредактировал Siegfried88: 27 Сентябрь 2012 - 21:20

Ein Volk, Ein Reich, Ein Katzen!

Изображение

#1290 Ссылка на это сообщение Санек

Санек
  • Ленивая ящерка
  • 700 сообщений
  •    

Отправлено

Посмотрите ЗДЕСЬ

Там описаны стандарты изображений:

<FONT face=1>
<DIV align="center"><IMG src="Book/pek/FR01/1.dds" width=480 height=512> (ширина и высота, соответственно)


Спасибо глянем.

Убей одного, и тебя назовут убийцей. Убей миллионы, и тебя назовут победителем. Убей всех, и будешь считаться богом.

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

Те, кто играют в игры дьявола, рано или поздно обнажают его меч.

 

h_1421143739_5550805_d14771aeae.jpg


#1291 Ссылка на это сообщение Raser

Raser
  • Талант
  • 212 сообщений
  •  

Отправлено

Все равно какую, главное чтобы скрипт исполнялся независимо от объекта-свечи (такие скрипты работают только когда игрок в одной локации со свечей)
т.е. просто вешаем скрипт на квест и там же управляем всем процессом (в том числе *скоростью* скрипта , т.к. по дефолту квестовые скрипты *медленноваты*.



Подробней надо самому читать , что означают и как работают команды ОБСЕ,
могу показать только работающий скрипт:

scn aaAIQQQ
array_var qai
short busy
float tq
int si

begin menumode
set busy to 1
end

begin gamemode
let tq+=getsecondspassed
if tq>5||busy==1
let tq:=0
if qai
let qai:=ar_null
endif

let si:=ar_size qai
if si<0
let qai:=ar_construct array
endif

let qai:=GetHighActors ;собственно этой командой запоминаем в массив всех нпс в cell
let si:=ar_size qai
if si>0
printC"QAI SIZE==%0f"si
endif
set busy to 0
endif

end


Я нашел более чудодейственный способ обработать всех npc в локации.

scn allnpcwork

ref actor
short nums

float fquestdelaytime

begin gamemode

set fquestdelaytime to 0.0001; самый быстрый тип квестового скрипта.

set nums to getnumsref 69

if(nums > 0)
set actor to getfirstref 69 nums
while(actor)
; тут мы прописываем условия и работу актеров, например:
;if(actor.getdistance player < 150)
;actor.startcombat player
;endif
loop
set actor to getnextref
else
set actor to 0; выгружаем значение переменной actor если в локации нет ни одного персонажа.
endif

end


Вполне рабочий способ, и менее громоздкий в отличие от массива, который просто записывает либо имена, либо количество npc но не помогает при нужде непосредственной работы с ними.

Это понятно само собой, т.е. что на сам активатор вешать такой скрипт смысла нет. Но если в квестовом использовать скриптовый таймер по принципу set timer to timer - getsecondspassed, то он будет исполняться пока не истечет заданное время, т.е. временно заморозить его с запоминанием текущего показателя нельзя, можно только досрочно прервать. Единственное, что приходит пока в голову - это использовать 2 независимых скриптовых таймера и целые числа в качестве условий. Но этот вариант плох тем, что для его работы суммарное время в 2 часа придется дробить на участки минут по 20, и использовать постоянно "если-если" (If, elseif и т.д.). В ходе выполнения скрипта 2 таймера стартуют друг за другом, но используют то целочисленное, которое осталось от предыдущего, до тех пор пока все показатели не сведутся к нулю. Правда в итоге суммарное время уже не будет точно = 2 часам, а где-то около этого. В теории такой скрипт работать должен, но на практике...нужно проверять.


Зачем так утруждать? Есть более проверенный способ. Сначала я расскажу немного теории, но потом от теории к практике.
Вот создали активатор-свечу. Например дали ей referenceid mylight. Теперь же необходимо сделать так, чтобы свеча горела, то есть активатор горел и сгорал когда нужно, ну скажем через 2 часа. Но при этом нужно еще сделать так, чтобы учитывалось и задувание свечи. Нам понадобятся две переменных. 1-я пусть будет time а 2-я пусть будет timermult. Обе формата float. То есть с плавающей запятой, но не об этом я. Дело в том, что ты использовал один таймер, но надеялся что этот таймер будет правильно работать, но с задуванием свечи он аннулируется. Так чтобы не было такого, тебе нужно проверять сколько времени прошло, ну предположим time это таймер основной. То есть теперь сделаем так, чтобы была еще одна переменная, которая говорит сколько времени осталось. Это и будет переменной timermult. Определяем легко, то есть каждую секунду таймер будет отсчитываться от основного времени, тем самым сокращая основное время. timermult - timer. Это будет делаться только пока горит свеча, ну а если она потухла, это значит что таймер не отсчитывается. Легче будет показать на примере:

scn timer

float time
float timer
float timermult

short onlight

float fquestdelaytime; ты же через квест делать собрался?


begim gamemode

set fquestdelaytime to 0.001

if(mylight.isactionref == player) && (onlight == 0) ;определяем активированная ли свеча
set onight to 1;степень включености свечи: 1, 2-включена, 0, 3-выключена
endif

if(onlight == 1)
set timermult to 7200; это количество секунд равная реальным 2-м часам, ну это я для примера, а так вместо 7200 пиши что хочешь
set onlight to 2
endif

if(onlight == 2)
set time to time + getsecondspassed
if(time < timermult)
set timer to timermult - time
; а вот тут ты пишешь основной скрипт, который определяет горение свечи, короче делаешь визуальную картинку из своего скрипта.
endif
endif

If(timer == 0) ; то есть хана пришла, свеча сгорела
set onlight to -1 ; все, свеча сгорела, скрипт тоже.
return
endif

if(onlight == 2) && (mylight.isactionref == player); это выключение свечи
set timermult to timer
;Вот тут ты пишешь выключение своей свечи, просто команду убирания пламени забыл
set onlight to 5
endif

;Скрипт будет настолько быстро работать что активация приведет к одновременному включению выключению свечи, это как предосторожность
if(onlight == 5)
set timerlig to timerlig + getsecondspassed
if(timerlig > 0.5)
set onlight to 3
set timerlig to 0
endif

if(onlight == 3) && (mylight.isactionref == player);это включение повторно своей свечи.
set onlight to 6
endif

;Скрипт будет настолько быстро работать что активация приведет к одновременному включению выключению свечи, это как предосторожность
if(onlight == 6)
set timerlig to timerlig + getsecondspassed
if(timerlig > 0.5)
set onlight to 2
set timerlig to 0
endif

end

Вроде бы все.

Не мультипость!



#1292 Ссылка на это сообщение Demolir.uptar

Demolir.uptar
  • Новенький
  • 22 сообщений

Отправлено

Зачем так утруждать? Есть более проверенный способ.


Спасибо, но мне уже давно ответили в другой теме. Там скрипт намного короче, и тем не менее результативен.

#1293 Ссылка на это сообщение TES-Diesel modding

TES-Diesel modding
  • Министерва

  • 1 160 сообщений
  •    

Отправлено

Что-то не так с некоторыми моделями (а может быть, с текстурами). 

Фишка в том, что в КС при включенном автоосвещением не видно этих черных текстур, а в игре - видно. 

Они самоэкспортированы из макса, наверное, в этом вся проблема.

Вот, гардины на занавесках чеерные:

http://s47.radikal.r...3cd7336a1b1.png

И так с некоторыми мелкими деталями. 

 

Помогите, пожалуста! Т_Т


Конопля - тоже дерево, просто ему вырасти не дают...
Logo-tesdiesel.png
draOOger.gif

 

#1294 Ссылка на это сообщение gkalian

gkalian
  • smoke on helmet
  • 12 518 сообщений
  •    
Наш автор

Отправлено

Я, конечно, не особо уверен, но может быть в моделях в BSLightingShaderProperty все цвета черные? Это через нифскоп смотрится.



#1295 Ссылка на это сообщение TES-Diesel modding

TES-Diesel modding
  • Министерва

  • 1 160 сообщений
  •    

Отправлено

Эээ...а где это можно посмотреть?

http://i064.radikal....6bb244d864d.jpg

Вообще, это во втором доме такие проблемы...

Срез покрывала на кровати также черный. Виноваты наверное настройки экспорта из макса.

Вот здесь видно:

http://i037.radikal....50c7f8a8d60.png

П.С. превью выложить на могу, поэтому скрин через ссылку...


Конопля - тоже дерево, просто ему вырасти не дают...
Logo-tesdiesel.png
draOOger.gif

 

#1296 Ссылка на это сообщение gkalian

gkalian
  • smoke on helmet
  • 12 518 сообщений
  •    
Наш автор

Отправлено

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

А, это же Обливион, тут иначе немного.

На значки со словами Material нажмите, выкрутите на светлые участки, хотя бы все, кроме нижнего левого (он, емнип, может быть темным).



#1297 Ссылка на это сообщение TES-Diesel modding

TES-Diesel modding
  • Министерва

  • 1 160 сообщений
  •    

Отправлено

Всяко попробовала. 

Эти черные дыры как были, так и остались...

http://s017.radikal....1673c436c10.png

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


Конопля - тоже дерево, просто ему вырасти не дают...
Logo-tesdiesel.png
draOOger.gif

 

#1298 Ссылка на это сообщение gkalian

gkalian
  • smoke on helmet
  • 12 518 сообщений
  •    
Наш автор

Отправлено

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



#1299 Ссылка на это сообщение CrazyHackGUT

CrazyHackGUT
  • недокодер © yand3xmail
  • 568 сообщений
  •    

Отправлено

Делаю свой первый мод и заступорился на скрипте :nea:

Делаю банк крови. Там меняешь часть жизни (75%) на деньги (неплохая сумма, 25 000 монеток). Деньги я могу давать:

Player.AddItem 0000000f 25000

Но мне надо забрать жизнь (75%, как уже говорилось) и ещё наложить заклятие, которое не даёт снова взять денег 1 неделю. Не подскажете скрипт? Если нужен OBSE, так и скажите новобранцу. Тем более который впервые пишет скрипты ;)  :lol

Буду премного благодарен.

 

P.S. Если нужен исходник скрипта, даю только в ЛС. В Аську (617161763) или в Скайп (HackGUT)


Сообщение отредактировал HackGUT: 17 Декабрь 2012 - 17:52


#1300 Ссылка на это сообщение TES-Diesel modding

TES-Diesel modding
  • Министерва

  • 1 160 сообщений
  •    

Отправлено

Эм...народ. Столкнулась с проблемой (пожалуй, начну сначала)

Первым делом продублировала расу Альдмеров, заменила модель головы на н06 и поставила соответствующую текстуру.

На ГГ этой расы смотрится вполне приемлемо: 

18510635696e4ab09757fca4a42e1eb5.jpg

А теперь...Пробуем заменить расу на новую у какого-либо непися, итог:

45c7758debcbc10ed4428de784c73f61.jpg 3949affa9121f39b0d1e5cc554acbecc.jpg

Напрашивается вопрос - почему остаются такие следы и что делать?

 

UPD

Странное дело. Стоило только продублировать непися и заменить его расу на новую, лицо становится...хоть и не красивым, но без всяких там разводьев по моське. Но...так каждого непися заменять - это же конфликтов не оберешься!

Ах да. Ползунки все двигала, следы не убираются.


Сообщение отредактировал Death The Kid: 09 Январь 2013 - 07:45

Конопля - тоже дерево, просто ему вырасти не дают...
Logo-tesdiesel.png
draOOger.gif

 

#1301 Ссылка на это сообщение bo1ook

bo1ook
  • Новенький
  • 7 сообщений

Отправлено

Эм...народ. Столкнулась с проблемой (пожалуй, начну сначала)

Первым делом продублировала расу Альдмеров, заменила модель головы на н06 и поставила соответствующую текстуру.

На ГГ этой расы смотрится вполне приемлемо: 

18510635696e4ab09757fca4a42e1eb5.jpg

А теперь...Пробуем заменить расу на новую у какого-либо непися, итог:

45c7758debcbc10ed4428de784c73f61.jpg 3949affa9121f39b0d1e5cc554acbecc.jpg

Напрашивается вопрос - почему остаются такие следы и что делать?

 

UPD

Странное дело. Стоило только продублировать непися и заменить его расу на новую, лицо становится...хоть и не красивым, но без всяких там разводьев по моське. Но...так каждого непися заменять - это же конфликтов не оберешься!

Ах да. Ползунки все двигала, следы не убираются.

 

 

Проблема скорее всего в фалах фейсегена.Или в .egt файле головы.


Сообщение отредактировал bo1ook: 09 Январь 2013 - 23:02






Темы с аналогичным тегами как создать торговца, oblivion cs торговец, cs как создать торговца, oblivion, моделирование

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых