Отправлено: 10.01.10 22:38. Заголовок: а еще можно микроско..
а еще можно микроскопом гвозди забивать. в каждой карте есть такая шняга как скрипт инициализации. туда всю эту радость можно преспокойно запихать. вот только скрипта на бесконечную бомбежку никто покамест не писал - придется потрудиться самому.
Подскажите плиз. Хочу сделать такукую фишку- выключатель), врезаешься в кирпич и включаются прожектора. Можно ли такое сделать? И что тогда писать в строке on_damage у объекта, выполняющего роль выключателя?
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
Отправлено: 18.01.10 14:47. Заголовок: теперь уже у меня ес..
теперь уже у меня есть вопросы)
1. зачем пихать всю эту байду в отдельные файл, разве не сработает если пихнуть напрямик в инит-скрипт?
2. а сработает ли такая штука:
local function ToggleLight(light) light.active = !(light.active) -- или not(light.active), я уж не помню как там end
3. какое-то странное применение переменнопараметрической функции... почему пары? в каком виде такие параметры представляются в функции? чему будет равняться, скажем, "a", если я напишу в этой функции
Отправлено: 18.01.10 16:26. Заголовок: Morse конечно можно..
Morse конечно можно запихать и в инит скрипт, только в одну строчку неудобно же.
Штука не сработает из-за особенностей обработки луой булевых значений. Дело в том, что луа воспринимает всего две вещи как false - собственно false и nil. Любая строка, включая пустую, таблица, все числа, включая 0, воспринимаются как true. Свойство active возвращает число, следовательно not active всегда будет false. Кроме того, нельзя неявно конвертировать буль обратно в число, то есть light.active = true даст ошибку.
пары потому, что в стандартной луа есть два удобных способа перебрать элементы таблицы - pairs & ipairs. Первое работает с любыми ключами, а второе только c целочисленными ключами до первого промежутка. Троеточие - это способ записи многих аргументов. Оно по сути работает как множественное значение, то есть можно записать local x,y=... и надеяться что число аргументов совпадет. Если троеточие сунуть в скобки {...} то сконструируется таблица, как если бы мы написали {x,y,13}. В такой таблице ключами будут следующие подряд целые числа, начиная с 1 - как нам того и хотелось для ipairs :)
Есть еще один менее удобный способ перебрать элементы с целыми ключами - использовать оператор # для определения длины массива.
Все даты в формате GMT
3 час. Хитов сегодня: 13
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет