Воскресенье, 20.05.2012, 04:42
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 3123»
Форум » Модификации Painkiller » Создание карт и модов » Lua-скрипт
Lua-скрипт
БаянДата: Вторник, 21.02.2012, 20:56 | Сообщение # 1
Новичок
Группа: Заблокированные
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
В чём ошибка?

Как правильно?
 
Str_GhostДата: Среда, 22.02.2012, 09:08 | Сообщение # 2
Админ
Группа: Администраторы
Сообщений: 380
Награды: 2
Репутация: 24
Статус: Offline
Если я не ошибаюсь, то этой строчки вообще быть не должно. Хотя, наверное надо в Language.clevel букву "c" написать большой, должно получиться так: Language.Clevel . Будь осторожен с регистром, кстати, lua не любит когда даже пропускаются заглавные буквы!

P.S. Переместил в более подходящий раздел





Открыл свой блог, заодно добавил историю создания pkrus.ru
 
ned18kДата: Среда, 22.02.2012, 12:55 | Сообщение # 3
Охотник
Группа: Пользователи
Сообщений: 64
Награды: 0
Репутация: 6
Статус: Offline
Код можно был и простой цитатой вставить, без картинки. Как делают на форумах программистов обычно.

Ошибка может быть много от чего:
- нет данных для присвоения
- неправильный тип данных
- неправильно написан код (ошибки орфографии)

и т.д.

Потом, почему ты считаешь, что ошибка именно в этой строке. К компиляторе (или что там у пк используется) может быть указание на эту строку, а ошибка может быть в другом месте.

Чтобы лучше понять почему ошибка, нужно понимать, что должна делать эта строка. Можешь сказать, что она точно делает?

Сообщение отредактировал ned18k - Среда, 22.02.2012, 13:04
 
ItramariNДата: Среда, 22.02.2012, 17:42 | Сообщение # 4
Охотник
Группа: Модераторы
Сообщений: 51
Награды: 1
Репутация: 13
Статус: Offline
ЛУА различает строчные и прописные буквы, т.е. переменная АБВ и абв - разные переменные. Во вторых, имя класса - CLevel. В третьих, для ответа на данный вопрос недостаточно данных - не указан текст ошибки. В четвертых - строка делает какую-то хрень - в классе CLevel нет и не может быть переменной CLevel, к которой ты обратился. В пятых - обращение к языковым текстам - Languages.Texts[i], как видно из строчки выше. В шестых - отсутствует текст проверки на получение карты, следовательно первые две строчки можно удалить.
Quote (ned18k)
Потом, почему ты считаешь, что ошибка именно в этой строке. К компиляторе (или что там у пк используется) может быть указание на эту строку, а ошибка может быть в другом месте.

ЛУА походу юзает не компилятор, а интерпретатор (первый создает исполняемый файл и доволен. Второй при запуске обрабатывает прогу без создания исполняемого файла). Не в этом суть - если ты что-то неправильно написал, прога тебе скажет, в какой строке ошибка. Но последующие ошибки могут возникнуть из-за самой первой.
Итак, если есть вопросы по ошибкам в ЛУА, то выкладываем не только скрипт (желательно помечая измененную вами часть и строку ошибки), но и сообщение Пейнкиллера.
 
БаянДата: Среда, 22.02.2012, 19:37 | Сообщение # 5
Новичок
Группа: Заблокированные
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Я хочу добавить свой уровень в игру
 
Str_GhostДата: Среда, 22.02.2012, 20:12 | Сообщение # 6
Админ
Группа: Администраторы
Сообщений: 380
Награды: 2
Репутация: 24
Статус: Offline
Баян, Если просто добавить уровень, то эта строчка вообще не нужна. wink





Открыл свой блог, заодно добавил историю создания pkrus.ru
 
БаянДата: Среда, 22.02.2012, 20:33 | Сообщение # 7
Новичок
Группа: Заблокированные
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
А как добавить,чтобы через игру запустить?
 
Str_GhostДата: Среда, 22.02.2012, 20:44 | Сообщение # 8
Админ
Группа: Администраторы
Сообщений: 380
Награды: 2
Репутация: 24
Статус: Offline
Через игру карту запускают обычно через Powermad (в консоли набираешь pmloadlevel "названиеуровня", без кавычек) или через PainEditor. А если прямо в игре, то это надо скрипты ковырять, позже посмотрю поподробнее, если хочешь wink





Открыл свой блог, заодно добавил историю создания pkrus.ru
 
БаянДата: Среда, 22.02.2012, 23:05 | Сообщение # 9
Новичок
Группа: Заблокированные
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
посмотри
 
Str_GhostДата: Четверг, 23.02.2012, 15:55 | Сообщение # 10
Админ
Группа: Администраторы
Сообщений: 380
Награды: 2
Репутация: 24
Статус: Offline
Quote (Баян)
посмотри

Посмотрел. Архив со скриптами я приложил, качай и клади в "/Painkiller/Data/". Скрипт не сам придумал, а нагло стащил из Hills, надеюсь, автор мода меня простит happy Изначально скрипт отвечает за то, что через меню можно запустить карту "Собор".

Изменения в файле PainMenu.lua (ищи в самом низу):

Code

function PainMenu:PlaySPMap()
         local map = "C1L1_Cathedral"
  local path = "../Data/Levels/C1L1_Cathedral/"         
  local files = FS.FindFiles(path.."*.CLevel",1,0)
  if table.getn(files)<=0 then  
   CONSOLE.AddMessage("Level 'C1L1_Cathedral' not found!!!")
   return 0  
  end
   
  CONSOLE.Activate(false)
  Lev._Name = map
  EDITOR.PostMessage(1,0)
  PMENU.MapSetCurrLevel( 1, 1 )
  PMENU.SwitchToMenu()
  PMENU.Activate(false)
end


Итак, здесь тебе нужно изменить все "C1L1_Cathedral" на название своего уровня, который и будет грузиться (по названию .lua файла который ты приложил выше, я так понял тебе нужно написать Ruins, обязательно не забудь кавычки!)
Code
  CONSOLE.AddMessage("Level 'C1L1_Cathedral' not found!!!")

Эта строчка отвечает за то, что если карта отсутствует, то в консоль будет выведена надпись в скобках.
Code
    if table.getn(files)<=0 then  
   CONSOLE.AddMessage("Level 'C1L1_Cathedral' not found!!!")
   return 0  
  end

А это отвечает за то, что если карта вдруг не найдётся, то игра ничего не запустит.

Изменения в файле GameMenu.lua:

Code
  Painkiller =
   {
    text = TXT.Menu.Painkiller,
    desc = "Play Cathedral!",
    x  = -1,
    y  = 300,
    action = "PainMenu:PlaySPMap()",
    sndLightOn = "menu/menu/option-light-on_main",
   },


А это и есть кнопочка, по нажатии которой загрузится наша карта.

P.S. Надеюсь, понятно объяснил. Качайте, используйте в своих картах/модах. smile
Прикрепления: LevelLoader.zip(95Kb)






Открыл свой блог, заодно добавил историю создания pkrus.ru
 
ItramariNДата: Четверг, 23.02.2012, 22:05 | Сообщение # 11
Охотник
Группа: Модераторы
Сообщений: 51
Награды: 1
Репутация: 13
Статус: Offline
Quote (Баян)
Я хочу добавить свой уровень в игру

Сингл, мультиплеер? Замена существующей карты или добавление? И не лезь пока в скрипты вообще!
 
Str_GhostДата: Четверг, 23.02.2012, 23:03 | Сообщение # 12
Админ
Группа: Администраторы
Сообщений: 380
Награды: 2
Репутация: 24
Статус: Offline
Quote (ItramariN)
Сингл, мультиплеер?

Разумеется сингл, .lua скрипты с настройками уровня прилагаются только к сингл уровням. teehee





Открыл свой блог, заодно добавил историю создания pkrus.ru
 
ItramariNДата: Пятница, 24.02.2012, 15:20 | Сообщение # 13
Охотник
Группа: Модераторы
Сообщений: 51
Награды: 1
Репутация: 13
Статус: Offline
Quote (Str_Ghost)
Разумеется сингл, .lua скрипты с настройками уровня прилагаются только к сингл уровням.

То, что это сингл понятно, но мало ли что юзверь может написать... А скрипты с настройками теоретически могут прилагаться и к мультиплеерным уровням, только смысла в этом мало.
Кстати, Str_Ghost, у тебя помнится идеи для карт Таро были? Излагай, будем думать вместе)

Сообщение отредактировал ItramariN - Пятница, 24.02.2012, 15:23
 
Str_GhostДата: Пятница, 24.02.2012, 20:46 | Сообщение # 14
Админ
Группа: Администраторы
Сообщений: 380
Награды: 2
Репутация: 24
Статус: Offline
ItramariN, Идеи? Да вроде не было... Хотя было бы интересно увидеть восстановленную карточку "Summon Fighter". Я так понял, теоритически это так: Призывается (спаунится) уже готовый в папке Template монстр, ходит с игроком и бъёт остальных монстров. Монстров, которые бьют друг друга я видел ещё в Overdose на уровне Riot (полиция и хулиганы, в качестве примера), можно там посмотреть как и что. Вобщем, интересно как-то стало! Попробовать чтоли happy Только вот на карточках были нарисованы демоны из мультиплеера, но таких я пока даже не представляю как монстрами засунуть. wacko





Открыл свой блог, заодно добавил историю создания pkrus.ru
 
ItramariNДата: Суббота, 25.02.2012, 17:07 | Сообщение # 15
Охотник
Группа: Модераторы
Сообщений: 51
Награды: 1
Репутация: 13
Статус: Offline
Quote (Str_Ghost)
Хотя было бы интересно увидеть восстановленную карточку "Summon Fighter"

Теоретически это более чем возможно - Можно заюзать мультиплеерного бота, а можно обойтись стандартным ИИ, но вот как заставить моба атаковать только монстров - это уже другой вопрос...
 
Форум » Модификации Painkiller » Создание карт и модов » Lua-скрипт
Страница 1 из 3123»
Поиск: