Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.11.30;
Скачать: [xml.tar.bz2];

Вниз

Помогите с lua кодом.   Найти похожие ветки 

 
@!!ex ©   (2008-09-23 17:40) [0]

Вот такая штука:
function Node:haveMoves(et)
local mt = et
error(self.mElement,1)
if mt == "wildcard" and self.mElement ~=nil then
 mt = self.mElement
end

if mt ~= self.mElement and self.mElement ~= "wildcard" and self.mElement ~=nil then
 return true
end
if self.mChildren ~= nil then
for s = 1, #self.mChildren do
 if self.mChildren[s]:haveMoves(mt) then
  return true
 end
end
end
return false
end

функция падает на строчке:
error(self.mElement,1)
и выдает
Lua Error: (null)
если строку error закомментировать, то функция отрабатывает, но не правильно. она всегда возвращает false.

Функция должна возвращать true, если найдены минимум дватипа элементов(не считая wildcard)


 
Городской Шаман   (2008-09-23 18:10) [1]


> @!!ex ©   (23.09.08 17:40)


А в коде обработчик функции error нормально работает? Может грабли там?


 
@!!ex ©   (2008-09-23 19:20) [2]

C error разобрался. Спасибо, GrayFace...
А функция все равно не правильно работает. :(


 
@!!ex ©   (2008-09-23 20:08) [3]

функция не работает, потому что структура данных совсем не та, для которой функция предназначена. так что я ступил.


 
Городской Шаман   (2008-09-23 20:28) [4]


> @!!ex ©   (23.09.08 20:08) [3]
>
> функция не работает, потому что структура данных совсем
> не та, для которой функция предназначена. так что я ступил.


Ну так я и спрашивал об этом в [1].

А вообще в самих обработчиках скриптовых функций(в коде программы) стоит делать получаемых параметров, чтобы не было вылета, а просто корректно возвращался false в случае неудачи. Это чуть замедлит работу, но сделает более стабильной работу программы/игры при багах в скрипте.


 
tesseract ©   (2008-09-23 21:12) [5]


> @!!ex ©   (23.09.08 19:20) [2]


Кто-кто надо мной ржал когда я LUA рекомендовал ?


 
GrayFace ©   (2008-09-23 22:26) [6]

Городской Шаман   (23.09.08 20:28) [4]
А вообще в самих обработчиках скриптовых функций(в коде программы) стоит делать получаемых параметров, чтобы не было вылета, а просто корректно возвращался false в случае неудачи. Это чуть замедлит работу, но сделает более стабильной работу программы/игры при багах в скрипте.

Я у себя сделал проще - убрал вызов exit в случае ошибки, заменил на throw. И собирать Lua надо под C++ - тогда он использует Exception"ы в некоторых местах.


 
@!!ex ©   (2008-09-23 23:22) [7]

> [5] tesseract ©   (23.09.08 21:12)

не помню чтобы я ржал...
в любом случае это не мой выбор. надо было исправить прогу сторонних разработчиков.
исправил вроде, тьфу-тьфу-тьфу.


 
tesseract ©   (2008-09-23 23:46) [8]


> надо было исправить прогу сторонних разработчиков.


С этого всё и начинаеться. LUA в играх, как  1С в бухгалтерии.


 
Городской Шаман   (2008-09-24 00:20) [9]


> tesseract ©   (23.09.08 23:46) [8]
>
> > надо было исправить прогу сторонних разработчиков.
>
> С этого всё и начинаеться. LUA в играх, как  1С в бухгалтерии.


Такая же дрянь? Или вы о чем?


 
@!!ex ©   (2008-09-24 00:33) [10]

> [9] Городской Шаман   (24.09.08 00:20)

как и в случае с 1С - лучше нету.
обычный язык, довольно быстрый, насколько мне известно.
правда его питон тестин, ИМХО.


 
Real ©   (2008-09-24 01:00) [11]


> LUA в играх, как  1С в бухгалтерии.

Спасибо что предупредил. Буду держаться подальше от луа :)


 
Городской Шаман   (2008-09-24 01:15) [12]


> Real ©   (24.09.08 01:00) [11]
>
>
> > LUA в играх, как  1С в бухгалтерии.
>
> Спасибо что предупредил. Буду держаться подальше от луа


Как раз lua это очень удобная быстрая и полностью конфигурируемая вещь. Например, в стандарте языка не определено ни одной функции (есть только рекомендации на определение обработчиков стандартных функций). Так что очень странно выглядит сравнение lua с 1С.

Lua для игр это примерно как чистый С для системного программирования и гибко, и достаточно.

А лучше говенного 1С есть проекты. Например, этот http://debet.kiev.ua/


 
Городской Шаман   (2008-09-24 01:17) [13]

Вот здесь хорошая документация по Lua на русском.
http://www.gamedev.ru/download/?id=1827


 
@!!ex ©   (2008-09-24 09:31) [14]

На самом деле, lua вполне замечательная вещь.
Пока от этого языка только приятные впечатления.
документация есть здесь:
www.lua.ru


 
tesseract ©   (2008-09-24 13:04) [15]


> А лучше говенного 1С есть проекты.


1С, как показала практика, сильно от рук настройщика зависит. За два года база пришла в норму и теперь всё спокойно.


> Например, этот http://debet.
> kiev.ua/


Это они Раду отавтамотизировали ? И они кстати сильно используют GPL лицензии - Движки Mozilla и тд. Накатано на Eclipse RCP + java/ java script. Сиречь "побольше гвоздей и держиться"  и кстати, где тогда исходнички в свободном доступе ? Надо на этих ребят в FSF стукануть. До 8-ки в плане производительности ей, стопроцентно очень далеко.


 
Городской Шаман   (2008-09-24 18:57) [16]


> @!!ex ©   (24.09.08 09:31) [14]
>
> На самом деле, lua вполне замечательная вещь.
> Пока от этого языка только приятные впечатления.
> документация есть здесь:
> www.lua.ru


Там нет готового враппера lua под Delphi. Я его по другой ссылке качал.
http://luapascal.luaforge.net/index.html#download
http://www.matrix44.de/lua/


 
Городской Шаман   (2008-09-24 19:01) [17]


> tesseract ©   (24.09.08 13:04) [15]
>
>  и кстати, где тогда исходнички в свободном доступе ? Надо
> на этих ребят в FSF стукануть.


Мозила и Eclipse RCP под LGL и Mozilla license, тоесть их исходники можно использовать в коммерческих проектах, и не открывать коммерческие исходники.

В общем там все очень хорошо с лицензионной чистоты. Они ж не патентуют исходники Eclipse и Mozilla.

Кстати Gecko - движок мозилы можно спокойно использовать в закрытых коммерческих проектах.


 
Городской Шаман   (2008-09-24 19:02) [18]


> tesseract ©   (24.09.08 13:04) [15]


А по части скорости работы, так как там Java то ставишь 512 памяти и все взлетает. На 256 будет подлагивать.


 
tesseract ©   (2008-09-24 20:30) [19]


> А по части скорости работы, так как там Java то ставишь
> 512 памяти и все взлетает. На 256 будет подлагивать.


большие сомнения - я их документацию почитал. До 1С даже 6 им далеко. У меня 7.7 (исправленная и дополненная) летает на MS SQL. Думаю таки 8.1 поставить. Хотя кода переписывать ой ё...... А там ещё много cвоих и чужих COM-объектов, которые данная разработка поддерживать не собираеться. Про java на 512 - у меня на такой опреативе сэплы из SDK тормозят, а 1С - по барабану, на 32 метра отлично работает.


 
Real ©   (2008-09-25 01:40) [20]


> А лучше говенного 1С есть проекты. Например, этот http://debet.
> kiev.ua/

Такое же г... как и 1С, в чем-то может хуже. Насколько я знаю - с момента появления никем не рассматривалась как реальная замена... В 1С важно не то что она крутая (таковой она не является) а то что ее поставщики конфигурят тебе ее чуть ли ни на 100% так, как тебе надо. И программеры недорогие - везде уже имеются. И саппорт есть и вообще ты спокоен: денег заплатил, если че - есть на кого в суд подать. А с этим дебетом - как и с линухом ситуация ;)


> На самом деле, lua вполне замечательная вещь.

Да на самом деле я и не говорю что отстой, по той постой причине что не знаю, не видел. Просто сравнение с 1С настораживает не по-децки :)


 
Городской Шаман   (2008-09-25 02:22) [21]


> Real ©   (25.09.08 01:40) [20]
>
> > На самом деле, lua вполне замечательная вещь.
>
> Да на самом деле я и не говорю что отстой, по той постой
> причине что не знаю, не видел. Просто сравнение с 1С настораживает
> не по-децки :)


Пока lua это лучший скриптер очень гибкий, быстрый и прикручиваемый без особых бубнов как к Delphi так и к C++ (к любому компилируемому языку).

А вот к .Net его уже не прикрутишь, точнее можно, но лучше не нужно.

Ну и как таковая по причине отсутствия базовых функций lua можно натянуть на любую предметку от игр до cad и бухгалтерии.


 
Real ©   (2008-09-25 20:09) [22]


> Пока lua это лучший скриптер очень гибкий, быстрый и прикручиваемый
> без особых бубнов как к Delphi так и к C++ (к любому компилируемому
> языку).

Сайт посмотрел, но пока не могу понять зачем это может потребоваться скажем в delphi. Расскажите о плюсах на примере какой-либо прикладной задачи


 
Городской Шаман   (2008-09-25 20:50) [23]


> Real ©   (25.09.08 20:09) [22]
>
>
> > Пока lua это лучший скриптер очень гибкий, быстрый и прикручиваемый
> > без особых бубнов как к Delphi так и к C++ (к любому компилируемому
> > языку).
>
> Сайт посмотрел, но пока не могу понять зачем это может потребоваться
> скажем в delphi. Расскажите о плюсах на примере какой-либо
> прикладной задачи


Где нужно поведение программы настраивать без ёё перекомпиляции.


 
tesseract ©   (2008-09-25 22:18) [24]


> Сайт посмотрел, но пока не могу понять зачем это может потребоваться
> скажем в delphi. Расскажите о плюсах на примере какой-либо
> прикладной задачи


LUA предназначено для игр. Его автор топика козлил, если не ошибаюсь, месяца 3 назад. Это стандарт скриптов для игр с 1997 года. Потом LUA начал плавно вытеснять питон. Но он слегка слабо вытесняет. Fallout, Baldur"s Gate и тд и тп - написаны с применением LUA.


 
@!!ex ©   (2008-09-25 22:32) [25]

> Его автор топика козлил, если не ошибаюсь, месяца 3 назад.

Да не козлил я его НИКОГДА.


 
Real ©   (2008-09-25 23:36) [26]


> > Сайт посмотрел, но пока не могу понять зачем это может
> потребоваться
> > скажем в delphi. Расскажите о плюсах на примере какой-
> либо
> > прикладной задачи
>
> Где нужно поведение программы настраивать без ёё перекомпиляции.

И что это объясняет? По-моему любая нормальная программа, способна менять свое поведение без перекомпиляции... Возьмем к примеру calc.exe: нажал юзер на плюс - он складывает, нажал на минус - вычитает... и без всякой перекомпиляции... не думал что луа давным давно в майкрософте на вооружении :)


 
@!!ex ©   (2008-09-25 23:40) [27]

> [26] Real ©   (25.09.08 23:36)

ПРикалывайтесь чтоли?
Простой пример использования lua - скриптование миссий.
Только полный идиот будет засовывать миссии в движок игры.


 
Real ©   (2008-09-25 23:55) [28]


> ПРикалывайтесь чтоли?

Нет, не прикалываюсь. Как объясняют - так и уточняю. цитата: "Где нужно поведение программы настраивать без ёё перекомпиляции" типа есть два пути менять поведение программы: луа и перекомпиляция... Кто тут прикалывается, это еще вопрос ;)

Я спросил о каком-нить примере, желательно из прикладных задач - написание игр, да еще и на делфи, это все таки экзотика. А тут говорят что здорово пригодится и для делфи, вот и дайте пример из "жизни"


> Простой пример использования lua - скриптование миссий.
> Только полный идиот будет засовывать миссии в движок игры.

А что, надо непременно в движок, если луа нет под рукой? А чем вам не по нраву отдельный файл с миссией? Всегда игры так и писались. Никто в движок ресурсы, миссии и проч. никогда не запихивал и не пропагандировал делать это. Вы со своим луа тоже палку перегибаете - мол никак без него теперь ;) И примеры - пока только в играх (игры не пишу, не могу оценить преимущества "скриптования миссий")


 
@!!ex ©   (2008-09-26 00:39) [29]

Лично я писал игры, писал свой скриптовый двиг.
Скрипты удобны тем, что позволяют управлять движком "снаружи".
Файлы конфигов внешние - это замечательно, но не дает нужной гибкости.


 
Городской Шаман   (2008-09-26 06:05) [30]


> Real ©   (25.09.08 23:36) [26]
>
>
> > > Сайт посмотрел, но пока не могу понять зачем это может
> > потребоваться
> > > скажем в delphi. Расскажите о плюсах на примере какой-
>
> > либо
> > > прикладной задачи
> >
> > Где нужно поведение программы настраивать без ёё перекомпиляции.
>
>
> И что это объясняет? По-моему любая нормальная программа,
>  способна менять свое поведение без перекомпиляции... Возьмем
> к примеру calc.exe: нажал юзер на плюс - он складывает,
> нажал на минус - вычитает... и без всякой перекомпиляции.
> .. не думал что луа давным давно в майкрософте на вооружении
> :)


Калькулятор это хорошо, а если нужно написать нечто специализированного маткада - считать формулы по матрицам и на основе вычислений управлять неким устройством. Тот же финансовый анализ по выборке.

Если вопрос стоит чем lua лучше других скриптовых языков, то ответ - кросплатформенностью, гибкостью и компактностью.

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

Так что скриптовый язык позволяет разделить работу программиста программ для исследования информации по тем же нефтяным месторождениям и тех же прикладных математиков которые будут писать формулы на Lua используя функционал, представляемый программой, как по расчётам, так и по визуализации.

Так что подытожим - скриптовые языки просто необходимы для delphi программ где предметная область сложнее самой программы. Игры, учет/бухгалтерия, научно-исследовательские программы, программы с изменяемым поведением, программы, управляющие оборудованием...


 
GrayFace ©   (2008-09-27 19:53) [31]

Еще примеры:
1) Калькулятор. Со скриптовым языком в руках формульный калькулятор наполовину написан с самого начала.
2) Создание отчетов, которые можно настроить.
3) В прогах, в которых есть понятие документа и есть смысл дать возможность интерактивности документов - в прогах типа Ворда, Экселя и т.д.
4) В WEB тоже используется.
5) Пример на гибкость - 010Editor - там С-подобный самописный язык шаблонов. На основе Луа точно можно сделать такую же функциональность скриптов, с иным синтаксисом. (кучу бы времени и денег сэкономили) Чтобы было все чисто, надо, чтобы функция как переменные воспринимала все переменные в определенной структуре, в структуре, агрегирующей её (именно агрегирующей, а не являющейся каким-нибудь наследником), в структуре, агрегирующей ту структуру, и т.д. Такое можно сделать на Питоне?
6) Луа можно использовать для описания данных. Не знаю, когда это нужно в программах, т.к. обычно хватает XML. Но для скриптов на Луа это точно удобно.

Real ©   (25.09.08 23:55) [28]
А что, надо непременно в движок, если луа нет под рукой? А чем вам не по нраву отдельный файл с миссией? Всегда игры так и писались. Никто в движок ресурсы, миссии и проч. никогда не запихивал и не пропагандировал делать это.

Хранить файл со скриптом, который написан на отсутствующем языке? Или карту? Если 2е, то каким боком это относится к скриптованию миссий?



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2008.11.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.012 c
3-1210573854
kadr
2008-05-12 10:30
2008.11.30
Оптимизация запроса


2-1224767025
Real.K
2008-10-23 17:03
2008.11.30
Выполнить функцию по ее имени


2-1224488717
dmitry_12_08_73
2008-10-20 11:45
2008.11.30
Удаление события мыши


15-1222415925
GanibalLector
2008-09-26 11:58
2008.11.30
Утерянный пароль для ОС Vista


3-1210660109
Михаил
2008-05-13 10:28
2008.11.30
Диапазон типа DATE у FB2.03





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский