Пятница, 29.03.2024, 02:56


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Форум » Модификации Painkiller » Разработка модификаций и контента к ним » Помощь с Lua-скриптами (Задаем вопросы, отвечаем.)
Помощь с Lua-скриптами
ItramariNПятница, 15.03.2013, 19:20 | Сообщение # 241
Аластор
Сообщений: 591
Награды: 12
Репутация: 55
Статус: Offline
dilettante, несколько моментов хотелось бы отметить: во-первых, это не руководство по работе со скриптами, а скорее по устранению ошибок. Во-вторых по-моему, нужно еще сказать, что вначале нужно исправить самую первую ошибку в сообщении и тогда остальные могут исчезнуть сами. В остальном отлично все расписал!

Я люблю людей... особенно - убивать!^__^
 
dilettanteПятница, 15.03.2013, 22:00 | Сообщение # 242
PK_GOD_and_KING
Сообщений: 170
Награды: 34
Репутация: 145
Статус: Offline
Цитата (ItramariN)
во-первых, это не руководство по работе со скриптами, а скорее по устранению ошибок

Документ так и озаглавлен "Script Error: приёмы поиска ошибок", но в целом получилось своего рода пособие, дающее некоторые навыки, полезные именно при работе со скриптами.

Цитата (ItramariN)
Во-вторых по-моему, нужно еще сказать, что вначале нужно исправить самую первую ошибку в сообщении

ItramariN, ты предлагаешь просто выкинуть функцию Dist3D? Или организовать проверку валидности входящих данных в ней, вместо того, чтобы найти настоящий источник ошибки?
 
HavcomПятница, 15.03.2013, 23:34 | Сообщение # 243
Painkiller
Сообщений: 2995
Награды: 65
Репутация: 374
Статус: Offline
В большинстве случаев стоит обращать внимание на первую строку скриптового сообщения об ошибке, если она указывает на прямой источник проблемы. В данном примере всё оказалось намного сложнее. Несомненно статья ещё принесёт пользу в решении будущих проблем. :)
 
ItramariNСуббота, 16.03.2013, 06:52 | Сообщение # 244
Аластор
Сообщений: 591
Награды: 12
Репутация: 55
Статус: Offline
Цитата (dilettante)
Документ так и озаглавлен "Script Error: приёмы поиска ошибок"

Это я увидел, я имел ввиду, что в твоем посте неплохо было бы сказать о чем собственно ссылка.
Цитата (dilettante)
ItramariN, ты предлагаешь просто выкинуть функцию Dist3D? Или организовать проверку валидности входящих данных в ней, вместо того, чтобы найти настоящий источник ошибки?

Я ничего не предлагаю для конкретного примера, я говорю, что вся куча ошибок в сообщении зачастую появляется по причине самой первой. Впрочем, Havcom это и так уже сказал.
Ладно, это все мелочи, главное что ты сделал хороший пример по поиску и устранению ошибок в скриптах)


Я люблю людей... особенно - убивать!^__^
 
HavcomСуббота, 16.03.2013, 07:26 | Сообщение # 245
Painkiller
Сообщений: 2995
Награды: 65
Репутация: 374
Статус: Offline
Цитата (ItramariN)
неплохо было бы сказать о чем собственно ссылка

В недавно появившейся тебе я оставил следующий пост про одну из критических ошибок игры

Цитата (Сам себя в который раз)
у монстра под именем HellAngel (версия 3, шо с ракетницей ходит), есть критическая ошибка, когда он выполняет RocketJump

http://i54.fastpic.ru/big....fb6.jpg

Вот об этом он и расписал пример решения проблемы.
 
ItramariNСуббота, 16.03.2013, 11:44 | Сообщение # 246
Аластор
Сообщений: 591
Награды: 12
Репутация: 55
Статус: Offline
Цитата (Havcom)
Вот об этом он и расписал пример решения проблемы.

Я прекрасно понял о чем он написал. Не нужно считать меня настолько тупым.


Я люблю людей... особенно - убивать!^__^
 
HavcomСуббота, 16.03.2013, 11:51 | Сообщение # 247
Painkiller
Сообщений: 2995
Награды: 65
Репутация: 374
Статус: Offline
Никто и не говорит о тупости. Может ты не знал, вот я и уточнил. :)

Сообщение отредактировал Havcom - Суббота, 16.03.2013, 12:31
 
dilettanteСуббота, 16.03.2013, 23:09 | Сообщение # 248
PK_GOD_and_KING
Сообщений: 170
Награды: 34
Репутация: 145
Статус: Offline
Цитата (ItramariN)
нужно еще сказать, что вначале нужно исправить самую первую ошибку в сообщении и тогда остальные могут исчезнуть сами


Цитата (ItramariN)
Я ничего не предлагаю для конкретного примера, я говорю, что вся куча ошибок в сообщении зачастую появляется по причине самой первой.


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

Во-первых, в ОДНОМ сообщении мы получаем сведения всего об ОДНОЙ ошибке, а не о куче, как может показаться. И все эти строки это последовательность корректных шагов выполнения программы, исключая саму ошибку.

Во-вторых, и об этом я упомянул в своём разборе, хронология событий приведших к критической ошибке представлена СНИЗУ ВВЕРХ, а не сверху вниз, как принято читать обычный текст.

В любом случае, ItramariN, спасибо, что дал оценку. Havcom не в счёт, ибо он лицо заинтересованное. :D


Сообщение отредактировал dilettante - Суббота, 16.03.2013, 23:10
 
ItramariNПонедельник, 18.03.2013, 08:41 | Сообщение # 249
Аластор
Сообщений: 591
Награды: 12
Репутация: 55
Статус: Offline
Цитата (dilettante)
Во-вторых, и об этом я упомянул в своём разборе, хронология событий приведших к критической ошибке представлена СНИЗУ ВВЕРХ, а не сверху вниз, как принято читать обычный текст.

А вот этого я не знал и в статье как-то пропустил... извиняюсь за невнимательность)


Я люблю людей... особенно - убивать!^__^
 
UnSlayeRLBarsikЧетверг, 21.03.2013, 09:52 | Сообщение # 250
Люцифер
Сообщений: 770
Награды: 35
Репутация: 277
Статус: Offline
dilettante, Хороший пост, даже как-то я лучше стал разбираться с ошибками скриптов.

Добавлено (21.03.2013, 09:52)
---------------------------------------------
Небольшой скрипт для поднятия аммо.паков в игре взятый из Necrovision, как все знают в Painkiller скриптах нужно прописывать все аммо.паки для оружия указывая их названия и т.д. (сами гляньте увидите).
Так вот Некровиженский скрипт упрощает все эту хрень, заменяя небольшой по размеру функцией:

function CPlayer:CheckMaxAmmo() -- По поиску ищите начало скрипта!
local ma = CPlayer.s_SubClass.MPMaxAmmo.Standard
if MPCfg.GameplayMode == MultiplayerGameplayMode.ArcadeGame then
ma = CPlayer.s_SubClass.MPMaxAmmo.Arcade
end
if Game.GMode == GModes.SingleGame then ma = CPlayer.s_SubClass.MaxAmmo end
for i,v in self.Ammo do
if ma[ i ] and v > ma[ i ] then self.Ammo[ i ] = ma[ i ] end
end

for i,o in self.Ammo do
self.Ammo [i]= math.floor(o)
end
end

Пропишите) ее в Cplayer.lua скрипте, заменив старый скрипт.

P.S. выкладываю так как у меня все работает нормально, пока не проверял на Painkiller оригинале, а только на своей версии скриптах.


- Painkiller Сайт PKRC.RU Вконтакте!
- Группа по Игре Painkiller: Hell & Madness (2015)


Сообщение отредактировал UnSlayeR - Четверг, 21.03.2013, 15:36
 
Doctor20Четверг, 21.03.2013, 15:54 | Сообщение # 251
Painkiller
Сообщений: 2307
Награды: 37
Репутация: 146
Статус: Offline
Цитата (UnSlayeR)
Небольшой скрипт для поднятия аммо.паков в игре взятый из Necrovision, как все знают в Painkiller скриптах нужно прописывать все аммо.паки для оружия указывая их названия и т.д. (сами гляньте увидите).Так вот Некровиженский скрипт упрощает все эту хрень, заменяя небольшой по размеру функцией:

function CPlayer:CheckMaxAmmo() -- По поиску ищите начало скрипта!
local ma = CPlayer.s_SubClass.MPMaxAmmo.Standard
if MPCfg.GameplayMode == MultiplayerGameplayMode.ArcadeGame then
ma = CPlayer.s_SubClass.MPMaxAmmo.Arcade
end
if Game.GMode == GModes.SingleGame then ma = CPlayer.s_SubClass.MaxAmmo end
for i,v in self.Ammo do
if ma[ i ] and v > ma[ i ] then self.Ammo[ i ] = ma[ i ] end
end

for i,o in self.Ammo do
self.Ammo [i]= math.floor(o)
end
end

Пропишите) ее в Cplayer.lua скрипте, заменив старый скрипт.

P.S. выкладываю так как у меня все работает нормально, пока не проверял на Painkiller оригинале, а только на своей версии скриптах.
А зачем поднимать паки? И как упроститься их поднятие? new_search
 
UnSlayeRLBarsikЧетверг, 21.03.2013, 16:01 | Сообщение # 252
Люцифер
Сообщений: 770
Награды: 35
Репутация: 277
Статус: Offline
Цитата (Doctor20)
паки?
Doctor20
, Этот скрипт для мододелов, которые добавляют в мод новые виды оружия. А скрипт упрощает это. Чтобы к примеру подобрать аммо.пак к новому оружию, надо прописывать его туда и только затем он будет подбираться инче зависнет игра.
под аммо.паками я имел ввиду скрипт ammo.pack (все оружие) а не Мегапаки в игре! В скрипты пейна у себя глянь все поймешь сразу.


- Painkiller Сайт PKRC.RU Вконтакте!
- Группа по Игре Painkiller: Hell & Madness (2015)
 
Doctor20Четверг, 21.03.2013, 16:06 | Сообщение # 253
Painkiller
Сообщений: 2307
Награды: 37
Репутация: 146
Статус: Offline
Цитата (UnSlayeR)
Doctor20, Этот скрипт для мододелов, которые добавляют в мод новые виды оружия. А скрипт упрощает это. Чтобы к примеру подобрать аммо.пак к новому оружию, надо прописывать его туда и только затем он будет подбираться инче зависнет игра.под аммо.паками я имел ввиду скрипт ammo.pack (все оружие) а не Мегапаки в игре! В скрипты пейна у себя глянь все поймешь сразу.

Теперь понятно. Ну я тоже правда подумал что это что-то для редактора.
 
UnSlayeRLBarsikЧетверг, 21.03.2013, 16:11 | Сообщение # 254
Люцифер
Сообщений: 770
Награды: 35
Репутация: 277
Статус: Offline
Doctor20, да у меня просто желание загорелось поиграть в уровни Painkiller на Necrovision. Вот и сидел изучал и смотрел скрипты.

- Painkiller Сайт PKRC.RU Вконтакте!
- Группа по Игре Painkiller: Hell & Madness (2015)
 
HavcomПятница, 22.03.2013, 21:27 | Сообщение # 255
Painkiller
Сообщений: 2995
Награды: 65
Репутация: 374
Статус: Offline
Мне много раз задавали этот вопрос и вот я наконец решил немного расписать, что, да как. Тема пойдёт про то, как добавить музыку в меню.
------------------------------------------

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

Прикрепления: 5632260.jpg (193.6 Kb)


Сообщение отредактировал Havcom - Суббота, 13.07.2013, 18:35
 
Форум » Модификации Painkiller » Разработка модификаций и контента к ним » Помощь с Lua-скриптами (Задаем вопросы, отвечаем.)
Поиск: