Изучая скрипты, столкнулся с таким типом циклолизации "for - in pairs - do - end". Как работает "for - do - end", знает наверно даже младенец. Но вот, что даёт приставка "in pairs", так и не смог разобраться. В переводе означает "парами", да и в некоторых справочниках, описывается, вроде как связано с таблицами. Но как оно конкретно работает, так и не дошло. Может, кто разбирается в языке lua, будте так добры, попробуйте разъяснить, что эта приставка даёт. :sos
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
#singapur22 :"in pairs", попробуйте разъяснить, что эта приставка даёт.
Попробую. Это служит для обхода элементов таблицы. Любая таблица LUА строится по принципу пар "ключ=значение". Вот пример таблицы:
t = {1,5,"ещё"} - это массив. В нём явно заданны только значения, но LUА это читает так:
ключ 1 = знач. 1
ключ 2 = знач. 5
ключ 3 = знач. ещё
Т.е. ключи - это целочисленные значения. LUА ставит их сама.
Для обхода элементов такой таблицы(массива) используется либо упомянутый тобой оператор:
local i
for i = 1, #t, 1 do
"тело блока"
end
либо обход с итератором:
for i,v in ipairs(t) do
"цикл по элементам массива"
end
где i - ключ(1,2,3 и т.д. по порядку)
v - значение(1,5,"ещё")
in ipairs - итератор, разбирающий таблицу на пары "ключ=значение"
Дополню таблицу выше:
t = {1,5,"ещё",["абв"] = "где"}
В этой таблице добавился элемент, в котором для значения "где" явно задан ключ - ["абв"]
таблица перестала быть массивом, а стала так называемым хеш-ем, т.к. не все ключи целочисленные значения.
Вышеупомянутые способы для обхода такой таблицы не подойдут. Для этого существует итератор in pairs:
for k,v in pairs (t) do
"цикл по элементам хеша"
end
LUА это прочитает так:
ключ 1 = знач. 1
ключ 2 = знач. 5
ключ 3 = знач. ещё
ключ абв = знач. где
Примерно так:)
отредактировал(а) Gun12: 27-05-2009 10:36 GMT3 час. Не стань номинантом премии Дарвина.
Gun12 Спасибо. Я уже разобрался. Но из это назревает другой вопрос.
Итератор in ipairs, производит выборку по целочисленным индексам. Фактически, его уместно использовать в смешанных таблицах, когда нужно выбрать только числовые индексы.
Итератор in pairs, производит выборку по всем индексам, в указанной таблице.
Но, а если мне нужно выбрать в смешанной таблице, не числовые индексы, а только текстовые ключи. Как можно в этом случае поступить? Пересмотрел множество справочников по LUA и другим языкам. Но ничего подобного не нашёл.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Кстати. Ты интерпретатор скачивал, или сам создавал? Я попытался сам его зафигарить, по справочнику, с помощью CodeBlocks. Но у меня даже не получилось первую dll-ку создать. Хотя описано всё очень даже подробно. Может из-за того, что у меня Vista.
отредактировал(а) singapur22: 27-05-2009 15:30 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Я с тела, поэтому не очень удобно писать. Если интересно, зайди. Я делал как там написано (почти в начале). Пост torantbor-a.
_http://www.lua.ru/forum/posts/list/21.page
Есть новый SсiТЕ с кучей библиотек.
отредактировал(а) Gun12: 27-05-2009 16:06 GMT3 час. Не стань номинантом премии Дарвина.
Gun12 Ты меня не понял. Это всё установка и настройки готового интерпретатора. У меня это всё в ажуре. Я имел ввиду, не готовый интерпретатор lua, а создание интерпретатора и всех к нему приложений и dll-ек, ну типа (графика, звук). Кароче, сырец для движка. Глянь по ссылке и ты меня поймёшь ссылка
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22 Хотел вот спросить, а ты умеешь изменять сюжет?
А то я мод начал создавать и хочу новый сюжет сделать. Пока, что получилось: убрать болтовню Сидорыча, указать новое место спавна ГГ ( блокпост, возле перехода на Свалку ), заспаунить предметы и деньги в рюкзак ГГ, увеличить его рост и т.д. Короче можно сказать ничего.:-)
Не пытайся уничтожить Зону, а пытайся понять.
П.Ы.: Посмотрите в моём журнале ПРОМТ версию моего рассказа. :)
Неизвестный ветеран Сюжет. Да там ничего сложного нету. Берёшь файл all.spawn и удаляешь из него всё, что хоть както связанно с сюжетом. Далее, открываешь файлы character_desc_уровень.xml и во всех профилях удаляешь квестовые диалоги. Далее, в файлах gulag_уровень.script и gulag_уровень.ltx удаляешь логику, связанную с сюжетом. И это только малость, из того, что тебе нужно сделать, что удалить старый сюжет. А ваще, лучше вычестить всю игру, до сырца и построить её почти заново. Я так и делал. Это наилучший способ.;-)
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22, теперь понятно о чем ты. Я всё это когда-то листал и осознал, что пока не буду знать LUА в достаточном объеме, за это браться не буду. Так что извини за отнятое время, это не ко мне. Удачи.
singapur22, если не трудно объясни, где я налажал, или как правильно или тутор умный. Подключил новую локу. Хотел создать логику. В алайфе создал смарт, пару персов. В вэй пути. Для начала логику персам прописал в алайфе. Всё работает, они делают как я сказал. Потом решил вынести логику в скрипт и ltх(статический). Прописал всё как и всегда. В скрипте загрузку работ, состояния гулага, чекНПС, лтх = nil. Загружаю, появляюсь на локе, и картинка зависает. Спасает только ребут.
добавлено спустя 1 минуту
Да, новые файлы я прописал в гулаг_таск и хr_гулаг. Где ещё нужно прописать?
отредактировал(а) Gun12: 27-05-2009 17:16 GMT3 час. Не стань номинантом премии Дарвина.
народ как убрать каких либо сталкеров например лагерь новичков(но я не ток их хочу убрать) за ранее спасибо добрые люди
слушаю рассказы, как игроки рассказывают про свои прохождения и очень восхищаются и думают, что типа они теперь супер боги!)
моё мнение:
не забывай, что в игре ты профи, но игра это не жизнь, а в жизни ты себя не проявил никак...эти люди задроты
слушаю рассказы, как игроки рассказывают про свои прохождения и очень восхищаются и думают, что типа они теперь супер боги!)
моё мнение:
не забывай, что в игре ты профи, но игра это не жизнь, а в жизни ты себя не проявил никак...эти люди задроты
----------------------------------------------------------------------------------------------------------------------------------
народ как убрать каких либо сталкеров например лагерь новичков(но я не ток их хочу убрать) за ранее спасибо добрые люди
-----------------------------------------------------------------------------------------------------------------------------------
непонел ты хочеш убрать или переместить сталкеров
добавлено спустя 1 минуту
помогите мне:-(
отредактировал(а) dan8: 27-05-2009 18:16 GMT3 час. Все ,что то пишут в своих подписях а я возьму и не НАПИШУ!!!
если на 0 не то, то больше...но вроде так(у меня работало)
отредактировал(а) lickon: 27-05-2009 18:22 GMT3 час. слушаю рассказы, как игроки рассказывают про свои прохождения и очень восхищаются и думают, что типа они теперь супер боги!)
моё мнение:
не забывай, что в игре ты профи, но игра это не жизнь, а в жизни ты себя не проявил никак...эти люди задроты
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.