PainkilleR

Фан-клуб

ОПРОС

Оцените этот сайт

menuleft3
menuleft4
PainkillerClub.Ru » Старый форум » Модификации Painkiller » Мастерская » LUA - Вопросы/Ответы и всё в таком духе

LUA - Вопросы/Ответы и всё в таком духе

Вступление

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

Задаём вопросы по LUA, что и как хочется сделать, моменты, которые вас интересуют и прочее.

И ещё, так как форум этот закрытый, то субординацию соблюдать не обязательно и модераторы за порядком здесь тоже могут не следить. ^_^
[signature]
--------------------
{signature}
[/signature]
[fast]Цитировать[/fast] Жалоба
#0
Havcom
Мастера
  • публикаций
  • комментариев
Цитата (Astaroth)
никак нельзя

Можно.

function o:OnCreateEntity()
--
MATERIAL.Replace("notex","models/granit_05")
end

Переназначаем notex на текстуру. Она покроет весь обьект. Также если ты создашь на карте другой обьект, который также не будет иметь текстур, то он тоже перекрасится в назначенную тобой текстуру. Решай сам, стоит ли это использовать или нет.
Цитировать Жалоба
Sviatoslav
Мастера
  • публикаций
  • комментариев
Havcom, да, в этом и отличие - не перечисляются строки, как обычно, а одно это сообщение.
Цитировать Жалоба
Havcom
Мастера
  • публикаций
  • комментариев
И вспомнить, что ты делал в последний раз, ты не можешь? Что касается мобов.
Цитировать Жалоба
Astaroth
Модераторы
  • публикация
  • комментариев
Havcom, Ясно, то есть это используется для всех незатекстуреных объектов, ну ладно сойдёт и такая идея. Спасиб, думаю пригодится такая мысля!
Цитировать Жалоба
Sviatoslav
Мастера
  • публикаций
  • комментариев
Havcom, да в том и дело - ошибку обнаружил совершенно случайно, даже не знаю, когда она появилась. Да и изменений я вроде глобальных не вносил. Придётся, наверное, методом исключения найти хотя бы файл, в котором кроется причина.
Цитировать Жалоба
dilettante
Мастера
  • публикаций
  • комментариев
Цитата (Sviatoslav)
Загрузка монстра StoneGolem, а, соответственно, и загрузка уровня Shadowland вызывает одно и то же сообщение, без вариантов - C stack overflow. Куда бежать и что делать?


По всей видимости сообщение создано движком, следовательно остаётся возможность увидеть содержимое панели Output, где ведётся лог различных событий. Я бы первым делом заглянул туда. Также надо бы посмотреть на memory.log и memleaks.log в папке Bin. И ещё вопрос, сам голем подвергался каким-то изменениям и вызывает ли ошибку его установка на другом уровне?
Цитировать Жалоба
Sviatoslav
Мастера
  • публикаций
  • комментариев
dilettante, да, его невозможно создать ни в одном уровне. Сам монстр правкам не подвергался. Для верности я скопировал его заново из чистой версии игры. Что интересно, что полное или частичное удаление его скриптов ничего не меняет. Замена файлов Game.lua, Actor.lua и Player.lua на оригинальные ничего не даёт. В memory.log кроме описания самого файла ничего нет. Вот файл memleaks.log: http://files.mail.ru/3A21390D08AB4EEF953CC8103D8D4801 . А где панель Output? :)

Update: Прошу прощения у всех - сам себе устроил подлянку. %) Раньше мой мод не был совмещён с оригиналом, поэтому возможности поймать ошибку не было. Методом исключения я определил, что ошибка происходит при наличии папки с монстрами. Стал копаться, и, в папке NewMonsters, обнаружил, как вы уже, наверное, догадались, монстра StoneGolem, но с некоторыми закомментированными функциями. Я уже не помню, наверное, когда-то хотел что-то с ним замутить и забыл, потом совместил игры и получился вот такой фокус. Так что, здесь, действительно, ошибка движка. Но не того, что в игре. DD
Цитировать Жалоба
Astaroth
Модераторы
  • публикация
  • комментариев
Цитата (Sviatoslav)
А где панель Output?

Здесь

Добавлено (13.07.2013, 13:48)
---------------------------------------------
Sviatoslav, Ну вот и хорошо что ошибки теперь нету. :D

Цитировать Жалоба
Sviatoslav
Мастера
  • публикаций
  • комментариев
Astaroth, спасибо! :)
Цитировать Жалоба
dilettante
Мастера
  • публикаций
  • комментариев
Цитата (Astaroth)
dilettante, А как узнать название текстуры какого нить итема?


Вероятно, на это никто не обращает особого внимания, но Pain Engine, помимо *.mpk файлов, в качестве карты распознаёт также и dat-формат. Другими словами - можно загрузить любой *.dat файл в редактор как объект o.Map, и исследовать его содержимое, в том числе и имена текстур.
Цитировать Жалоба
Astaroth
Модераторы
  • публикация
  • комментариев
dilettante, Спс, за инфу! Я когда-то это заметил, лазяя в редакторе Супернатурального и загрузил какой то там *.dat, но в итоге со временем забыл про это.
Цитировать Жалоба
dilettante
Мастера
  • публикаций
  • комментариев
Цитата (Sviatoslav)
В memory.log кроме описания самого файла ничего нет


Sviatoslav, а что за описание там? Так, любопытно просто. У меня этот файл пуст. А memleaks.log, если всё в порядке, содержит это: "Congratulations! No memory leaks found!".
Цитировать Жалоба
Sviatoslav
Мастера
  • публикаций
  • комментариев
dilettante, у меня там так:
--------------------------------------------------------------------------------
memory.log - Memory logging file created on Sat Jul 13 22:11:30 2013
--------------------------------------------------------------------------------
This file contains a log of all memory operations performed during the last run.
Interrogate this file to track errors or to help track down memory-related
issues. You can do this by tracing the allocations performed by a specific owner
or by tracking a specific address through a series of allocations and
reallocations.
There is a lot of useful information here which, when used creatively, can be
extremely helpful.
Note that the following guides are used throughout this file:
[!] - Error
[+] - Allocation
[~] - Reallocation
[-] - Deallocation

- Generic information
[F]- Failure induced for the purpose of stress-testing your application
[D]
- Information used for debugging this memory manager

...so, to find all errors in the file, search for "[!]"
--------------------------------------------------------------------------------

Да, в memleaks.log, если всё в порядке, так же. :)
Цитировать Жалоба
dilettante
Мастера
  • публикаций
  • комментариев
Sviatoslav, как интересно. А какой движок ты используешь?
Цитировать Жалоба
Havcom
Мастера
  • публикаций
  • комментариев
У меня тоже самое.

Движок? Может версия двигла? так это версия 1.64. Заодно ты не мог бы обьяснить нам, что это за текст?
Цитировать Жалоба
Sviatoslav
Мастера
  • публикаций
  • комментариев
dilettante, если ты имеешь ввиду версию, то - 1.64.
 
Havcom, похоже, тут описывается, что как искать и по какой букве, чтобы было удобнее.
Цитировать Жалоба
dilettante
Мастера
  • публикаций
  • комментариев
Здесь сказано, что файл содержит журнал операций с памятью во время последнего запуска. И он может оказаться крайне полезным, если подойти с умом к его исследованию. Сам журнал, по идее, должен содержать информацию о выделении и перераспределении памяти производимом конкретными её "потребителями".
 
А не мог бы кто-нибудь посчитать хэши для Painkiller.exe и Engine.dll
Вот мои:
Engine.dll
CRC32: A0EB95B2
MD5: 550A078010BAF37FA30E36FBCF8A599E
SHA-1: E124D3BBD364E060E019201C1154A83C6A9D027F
 
Painkiller.exe
CRC32: 2B02A06A
MD5: ECF6CE31FC9F09D3E7C23E9053F06784
SHA-1: 318596BCE70B6340047F12F8B0B761A6D2CB45F2

Пытаюсь понять почему же у меня-то пусто в этом файле.
Цитировать Жалоба
Havcom
Мастера
  • публикаций
  • комментариев
dilettante, проверил. У меня точно такие же показатели для этих файлов.

Добавлено (03.11.2013, 19:28)
---------------------------------------------
Очередной урок: Как прикрепить корону к джоинтам модели


[spoiler]uSpoilerKKGt4Bl
KKGt4B'
KKGt4B'
KKGt4B'
KKGt4B')).val('[\–] Спойлер');$(
KKGt4B'
KKGt4B'
KKGt4B')).val('[+] Спойлер');$(
KKGt4B'[+] СпойлерClasses/CItem.lua

function CItem:Apply(old)
--
if self.DestroyPack or (self.Destroy and self.Destroy.MinSpeedOnCollision) then -- automatycznie synchronizujemy wszytskie rozwalalne itemy
ENTITY.EnableNetworkSynchronization(self._Entity,true,false,1)
else
self.Destroy = nil -- kasuja ta tablice, zeby sie nie sejwowala
end

if self.OnCreateEntity then self:OnCreateEntity() end
----------------------
if self.BillBoard then
local a
a, self._fx = AddObject(self.BillBoard[1],self.BillBoard[2],Vector:New(self.BillBoard[4],self.BillBoard[5],self.BillBoard[6]))
local j = MDL.GetJointIndex(self._Entity,self.BillBoard[3])
ENTITY.RegisterChild(self._Entity, self._fx, true, j)
end

----------------------
-- addditional for ragdolls
if self.Mass then ENTITY.PO_SetMass(self._Entity,self.Mass) end
if self.InertiaTensorMultiplier then ENTITY.PO_ScaleInertiaTensor(self._Entity,self.InertiaTensorMultiplier) end
--
end

---------
После можно добавлять для темплейтов короны с помощью такой команды на примере Energy.CItem

o.BillBoard = { "C4L1_Lamp.CBillboard", nil, "root", 0, 0, 0 }
-- Имя короны, кажется размер, кость, положение относительно этой кости
[/spoiler]
Цитировать Жалоба
Sviatoslav
Мастера
  • публикаций
  • комментариев
Немного оживлю тему новыми проблемами. :) Карта Stonehenge из NecroVisioN нормально переносится и работает в Painkiller, за исключением следующего косяка: текстуры травы непрозрачные, поэтому вся карта утыкана уродливыми чёрными квадратами. Возможно ли это исправить? Проблема в карте или в текстуре? Может быть, её можно скрыть скриптом? Может, кто знает ответ? :)
P.S. Ещё в яме, где финал карты, есть небольшие косяки с текстурами, но там это терпимо.
Цитировать Жалоба
BlooDFloweR
Администраторы
  • публикаций
  • комментариев
Sviatoslav, на сколько я понимаю это проблема карты. В некровижне движок настроен так, что достаточно сделать прозрачную текстуру, а в пэйновском движке нужно ещё альфа канал прописать и у объекта. Хотя я могу ошибаться
Цитировать Жалоба
Havcom
Мастера
  • публикаций
  • комментариев
Да, дело в карте. Текстуры тут не причём.
Цитировать Жалоба
Sviatoslav
Мастера
  • публикаций
  • комментариев
Ну, ладно, так, значит, так. Не карта и была. :)
Цитировать Жалоба
Astaroth
Модераторы
  • публикация
  • комментариев
А как на уровне Больница луну перетащить на другую сторону скайбокса?
Цитировать Жалоба
Havcom
Мастера
  • публикаций
  • комментариев
Насколько я знаю, тут просто специальное небо сделано для этого левла, которое размещает луну(слой с текстурой) в конкретном месте.
Цитировать Жалоба
Astaroth
Модераторы
  • публикация
  • комментариев
Т.Е сам mpk скайбокс надо перекрутить или это в 3dsMax'e надо редачить?
Цитировать Жалоба
Havcom
Мастера
  • публикаций
  • комментариев
Цитата Astaroth ()
в 3dsMax'e надо редачить
Цитировать Жалоба
Astaroth
Модераторы
  • публикация
  • комментариев
Это плохо(  Ну ладно попробую что нить придумать. new_dolf_ru_145
Цитировать Жалоба
BlooDFloweR
Администраторы
  • публикаций
  • комментариев
Astaroth, я для себя решил эту проблему добавлением партикля луны

Цитировать Жалоба
Администраторы
  • публикаций
  • комментариев
Кто-нибудь знает как написать скрипт на смену фога, т.е смена цвета,начало, конец и т.д 
Я сам попробовал написать скрипт и не вкакую. Хочу сделать переход дня в ночь на рагнароке
Цитировать Жалоба
Havcom
Мастера
  • публикаций
  • комментариев
[spoiler]uSpoilerQCeMyvl
QCeMyv'
QCeMyv'
QCeMyv'
QCeMyv')).val('[\–] FOG');$(
QCeMyv'
QCeMyv'
QCeMyv')).val('[+] FOG');$(
QCeMyv'[+] FOGfunction CAction:Action_FOG(R,G,B,A,Start,End)
Lev.Fog.Color = Color:New(R,G,B,A)
Lev.Fog.Start = Start
Lev.Fog.End = End
local f = Lev.Fog
WORLD.SetupFog(f.Mode,f.Start * (Cfg.ClipPlane+100)/200,f.End * (Cfg.ClipPlane+100)/200,f.Density,f.Color:Compose())
end

-- Смена FOG: RGB цвет, альфа, начало, конец (Пример: FOG:193,197,200,0,0,90)[/spoiler]=FOG
Цитировать Жалоба

Добавить комментарий

Автору будет очень приятно узнать обратную связь о своей новости.

Мы в ВК

***
Фан группа по игре
Большая группа по игре
Первая группа по игре
menuright2
menuright3
menuright4
Сайт работает под управлением DataLife Engine.
© PainkillerClub.ru 2011-2023 | © Design by Мария Андрюшечкина.