Форум » Вопросы и ответы » Вопросы по скриптам » Ответить

Вопросы по скриптам

Киллер: Задавайте вопросы по скриптовому языку ЗОД и ждите скорейшего ответа на них!

Ответов - 285, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All

VIRUS: Артур можно, но не все ети скрипты там работают

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

VIRUS: Morse или над макросами потрудиться


vlad0dalv: [pre] reset() conf.sv_timelimit = 0 conf.sv_fraglimit = 0 conf.sv_nightmode = true loadmap("campaign/Demo/maps/part1.map") end[/pre] Почему это не действует?

Morse: во-первых действует. во-вторых end в конце не нужен. и в-третьих, а что собственно требуется получить?

vlad0dalv: просто чтоб файл запускал карту и всё

Morse: Файл просто запускает карту и все. Только "end" в конце убери.

vlad0dalv: спасибо

Артур: Morse пишет: скрипт инициализации Morse, а где он???=)

VIRUS: Артур в редакторе нажми ф8

Артур: VIRUS спс

FEAR: Подскажите плиз. Хочу сделать такукую фишку- выключатель), врезаешься в кирпич и включаются прожектора. Можно ли такое сделать? И что тогда писать в строке on_damage у объекта, выполняющего роль выключателя?

FEAR: И ещё, можно ли сделать так чтобы он и включал и выключал прожектора

vlad0dalv: [pre]function user.onToggle1Damage() pset("tog1","health",500); if (user.toggle1Active==0) then user.toggle1Active=1 if (user.toggle1Close == 1) then pset("spotlight","active",(0)); user.toggle1Close=0; pset("tog1","corner",3); else pset("spotlight","active",(1)); user.toggle1Close=1; pset("tog1","corner",1); end pushcmd(function() user.toggle1Active=0 end,3) end end[/pre] Не знаю

Инс: в папке scripts создаем файл lightToggle.lua [pre]local function ToggleLight(light) if light.active == 0 then light.active = 1 else light.active = 0 end end function user.ToggleLights(...) for k,v in ipairs({...}) do ToggleLight(object(v)) end end [/pre] В скрипт инициализации добавляем [pre2]dofile("scripts/lightToggle.lua")[/pre2] В on_damage объекта пишем [pre2]user.ToggleLights("L1","L2","L3","L4");pset("W1","health",500)[/pre2] где L1,L2,... - имена прожекторов, их может быть сколько угодно много, W1 имя самого объекта

FEAR: хорошо, попробую

Morse: теперь уже у меня есть вопросы) 1. зачем пихать всю эту байду в отдельные файл, разве не сработает если пихнуть напрямик в инит-скрипт? 2. а сработает ли такая штука: [pre2] local function ToggleLight(light) light.active = !(light.active) -- или not(light.active), я уж не помню как там end [/pre2]3. какое-то странное применение переменнопараметрической функции... почему пары? в каком виде такие параметры представляются в функции? чему будет равняться, скажем, "a", если я напишу в этой функции [pre2]a={...}[/pre2]

Инс: Morse конечно можно запихать и в инит скрипт, только в одну строчку неудобно же. Штука не сработает из-за особенностей обработки луой булевых значений. Дело в том, что луа воспринимает всего две вещи как false - собственно false и nil. Любая строка, включая пустую, таблица, все числа, включая 0, воспринимаются как true. Свойство active возвращает число, следовательно not active всегда будет false. Кроме того, нельзя неявно конвертировать буль обратно в число, то есть light.active = true даст ошибку. пары потому, что в стандартной луа есть два удобных способа перебрать элементы таблицы - pairs & ipairs. Первое работает с любыми ключами, а второе только c целочисленными ключами до первого промежутка. Троеточие - это способ записи многих аргументов. Оно по сути работает как множественное значение, то есть можно записать local x,y=... и надеяться что число аргументов совпадет. Если троеточие сунуть в скобки {...} то сконструируется таблица, как если бы мы написали {x,y,13}. В такой таблице ключами будут следующие подряд целые числа, начиная с 1 - как нам того и хотелось для ipairs :) Есть еще один менее удобный способ перебрать элементы с целыми ключами - использовать оператор # для определения длины массива.

Morse: навеяно новая карта: dm5_disco_edition! качаем, переименовываем в rar распаковываем

VIRUS: Morse Где?



полная версия страницы