purebasic.info

PureBasic forum
Текущее время: Пт май 25, 2018 8:16 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: LUA
СообщениеДобавлено: Чт июл 24, 2008 11:18 am 
Не в сети
GameC@Soft
Аватар пользователя

Зарегистрирован: Сб сен 22, 2007 12:45 pm
Сообщений: 1085
Откуда: Я из лесу вышел, и сразу зашел, в босоножках дырявых и взлядом ночным.
Благодарил (а): 1 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
Так как нет раздела создания игр, то пишу сюда...
Что такое LUA это скриптовый язык....
Софтие писал уже, но я хочу открыть по этому вопросу новую ветвь....

Язык впринципе не сложный, но я предлагаю следующие....

Помочь разобраться как его использовать для создания сценариев игры...

Кто со мной, вам большое спасибо

_________________
"Самый большой глюк в PureBasic - это твоя голова...." (с) Артем
Мой сайт: http://feelzone.org.ua/


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 24, 2008 11:33 am 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11131
Благодарил (а): 4 раз.
Поблагодарили: 400 раз.
Ну так LUA основан на Си со всеми вытекающими... :(
Я как-то в кратце с ним знакомился когда искал нормальный язык, с редактором, подсвечивающим синтаксис.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 24, 2008 12:11 pm 
Не в сети
GameC@Soft
Аватар пользователя

Зарегистрирован: Сб сен 22, 2007 12:45 pm
Сообщений: 1085
Откуда: Я из лесу вышел, и сразу зашел, в босоножках дырявых и взлядом ночным.
Благодарил (а): 1 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
без разницы на чем он сонован, главое что есть либы для PB

_________________
"Самый большой глюк в PureBasic - это твоя голова...." (с) Артем
Мой сайт: http://feelzone.org.ua/


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 24, 2008 12:45 pm 
Не в сети
GameC@Soft
Аватар пользователя

Зарегистрирован: Сб сен 22, 2007 12:45 pm
Сообщений: 1085
Откуда: Я из лесу вышел, и сразу зашел, в босоножках дырявых и взлядом ночным.
Благодарил (а): 1 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
Интресно, ведь луа, переводит исходный код в байт код, как бы сделать такое для PB, тогда была бы сказака)

_________________
"Самый большой глюк в PureBasic - это твоя голова...." (с) Артем
Мой сайт: http://feelzone.org.ua/


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 24, 2008 1:11 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11131
Благодарил (а): 4 раз.
Поблагодарили: 400 раз.
Артём писал(а):
Интресно, ведь луа, переводит исходный код в байт код, как бы сделать такое для PB, тогда была бы сказака)
А оно тебе надо?
Это же сродни интерплетации кода, а не компиляции! :?
Тормоза и объём будут... :shock:

Артём писал(а):
главое что есть либы для PB

Где?

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 24, 2008 1:14 pm 
Не в сети
GameC@Soft
Аватар пользователя

Зарегистрирован: Сб сен 22, 2007 12:45 pm
Сообщений: 1085
Откуда: Я из лесу вышел, и сразу зашел, в босоножках дырявых и взлядом ночным.
Благодарил (а): 1 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
на purearea.com, там в разделе либ ты найдешь, это надо для создание взаимодействий объектов в игре, создания квестов

_________________
"Самый большой глюк в PureBasic - это твоя голова...." (с) Артем
Мой сайт: http://feelzone.org.ua/


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 24, 2008 1:46 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11131
Благодарил (а): 4 раз.
Поблагодарили: 400 раз.
Артём писал(а):
на purearea.com, там в разделе либ ты найдешь
Ты имеешь в виду это http://www.purearea.net/pb/download/userlibs/PBLua.zip
Только она наверное для 3.XX :(
Дата выпуска 22.06.2004

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 24, 2008 1:51 pm 
Не в сети
GameC@Soft
Аватар пользователя

Зарегистрирован: Сб сен 22, 2007 12:45 pm
Сообщений: 1085
Откуда: Я из лесу вышел, и сразу зашел, в босоножках дырявых и взлядом ночным.
Благодарил (а): 1 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
нет под 4.0 катит

_________________
"Самый большой глюк в PureBasic - это твоя голова...." (с) Артем
Мой сайт: http://feelzone.org.ua/


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт июл 25, 2008 12:04 am 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс май 04, 2008 12:18 am
Сообщений: 434
Откуда: PointOfPresence.Ru
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Артём писал(а):
Кто со мной, вам большое спасибо

может кто в курсе, наша команда в данный момент разрабатывает 3 игры на пурике. Так вот, все они работают на моей надстройке ClassMaker (позволяет использовать OOP конструкции в пурике, НЕ препроцессор), который интегрирован с Lua (например, при создании экземпляра класса выполняется скрипт, загружающий параметры - это гораздо проще чем использовать ини файлы и прочее говно):

код конструктора
Код:
1
2
3
4
5
6
7
8
9
10
;- Constructor. Note: *thisM.TUBERGIRL_UNIT_YELLOW1X already defined and \props\name gives value!
ClassConstructor (TUBERGIRL_UNIT_YELLOW1X, _TUBERGIRL_UNIT_YELLOW1X_cpext_) : RegLuaProc(TUBERGIRL_UNIT_YELLOW1X)
  With *this\props
    \rootName = IS_LuaReadStr("root")
    \ShadowTexture = IS_LuaReadStr("ShadowTexture")
   
    \IdleSkeleton = IS_LuaReadStr("IdleSkeleton")
    \WalkSkeleton = IS_LuaReadStr("WalkSkeleton")
  EndWith
EndClassConstructor



код скрипта:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
-- pop-script for class TUBERGIRL_UNIT_YELLOW1X generated by SofT MANiAC's ClassMaker v1.20
a = GetObject()
 
-- LocationType values (Int):
YELLOW1X_LEFT = 1;
YELLOW1X_RIGHT = 2;
 
LeftStartX = -50;
LeftStartZ = 500;
 
RightStartX = 0;
RightStartZ = 0;
 
AnimationSpeed = 0.025;
WalkSpeed = 0.05;
 
root = "root";
 
ShadowTexture = "shadow.png"; -- related to unit folder!
IdleSkeleton = "idle.b3d"; -- related to unit folder!
WalkSkeleton = "walk.b3d"; -- related to unit folder!
 
if a == "left" then
        LocationType = YELLOW1X_LEFT;
elseif a == "right" then
        LocationType = YELLOW1X_RIGHT;
end
 
if LocationType == YELLOW1X_LEFT then
        StartX = LeftStartX;
        StartZ = LeftStartZ;
elseif LocationType == YELLOW1X_RIGHT then
        StartX = RightStartX;
        StartZ = RightStartZ;
end



Пётр писал(а):
Это же сродни интерплетации кода, а не компиляции! Confused
Тормоза и объём будут...

Lua использует куча игроделов. Например Луна используется в в World Of Warcraft. Кто найдет тормоза отпишитесь :)

PBLua прекрасно работает с 4 версией.. Одна проблема - она может конфликтовать с другими юзерлибами написаными на сях из-за _fltused (долго объяснять что это, короче конфликт внутренних имен) из-за чего мне пришлось написать свою версию либы - она была названа POPLua. В наших проектах используется именно она.

Наработок по всем вопросам уже такая куча, что капец - команда плачет и просит документацию :) Я все время хочу расшарить свои наработки.. Но по частям это ужас, проще расшарить всю папку с пуриком. Но она опять же уже 700 метров! По мере возможностей буду все выкладывать, если отдельные лица не будут возмущаться, на хрена типа это все нужно

_________________
Изображение Точка.Присутствия - каждому по потребностям!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт июл 25, 2008 1:00 am 
Не в сети
GameC@Soft
Аватар пользователя

Зарегистрирован: Сб сен 22, 2007 12:45 pm
Сообщений: 1085
Откуда: Я из лесу вышел, и сразу зашел, в босоножках дырявых и взлядом ночным.
Благодарил (а): 1 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
Нужно нужно))) Я только за))))

_________________
"Самый большой глюк в PureBasic - это твоя голова...." (с) Артем
Мой сайт: http://feelzone.org.ua/


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт фев 03, 2009 12:32 pm 
Не в сети
студент

Зарегистрирован: Ср янв 21, 2009 4:15 pm
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Нужна помощь с Луа.

1) Скриптом загружаю модель. Скрипт возвращает один и тот-же адрес. т.е. гружу объект 5 раз а в результате имею 1 объект. Приходится грузить затем его копировать и затем уже проводить операции над копиями. Можно это как-то исправить?

2) Как выйти из скрипта? Нужно, просле проверки условия, прервать выполнение скрипта. Как?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LUA
СообщениеДобавлено: Сб авг 30, 2014 2:37 pm 
Не в сети
доцент

Зарегистрирован: Ср апр 28, 2010 4:02 pm
Сообщений: 49
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Пункты репутации: 0
Оживляю тему, ибо довольно часто требуется скомпоновать код программы так, что он сильно походит на выполнение некоего сценария.
Например:
Код:
1
2
3
4
5
6
7
8
9
10
11
...
Procedure MyOutput(String.s)  ; Вывод строки в файл
  WriteStringN(#MyFile, "<p>"+String+"</p>")
EndProcedure
...
; Начало сценария
MyOutput("Первая строка")
MyOutput("Вторая")
MyOutput("И следующая")
...
; Конец сценария


При этом тело сценария часто менять приходится, не компилировать же каждый раз заново.. В общем, скриптовой Lua значительно упростил бы жизнь.
Вопрос связан с его подключением. Есть информация как это сделать?
Я пробовал подключить dll-ку, что на оф.сайте скачать можно. Не клеится что-то. Вот код:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
; Попытка подключить в работу интерпритатор Lua
; Компилятор PB 5.11(х64)
 
#LuaLibrary=0
 
OpenLibrary(#LuaLibrary, "Lua52.dll")
 
If IsLibrary(#LuaLibrary) : Debug "Ура! Библиотека подгружена!"
Else
  Debug "Ну облом( Библиотека не была подгружена!"
  End
EndIf
 
luaVM.i=CallCFunction(#LuaLibrary, "luaL_newstate", 0)
If luaVM : Debug "Создана виртуальная машина Lua"
Else
  Debug "При создании в.м. Lua что-то пошло не так"
EndIf
 
If CallCFunction(#LuaLibrary, "luaL_openlibs", luaVM)
  Debug "Были подгружены стандартные библиотеки Lua"
Else
  Debug "Стандартные библиотеки Lua подгружены не были"
EndIf
 
PrototypeC luaL_loadstring(LuaVM, String.p-ascii)                                            ; Описываем процедуру. По идее, библиотека Lua принимает строки только в ascii кодировке.
LuaL_LoadString.luaL_loadstring=GetFunction(#LuaLibrary, "luaL_loadstring")
 
Debug LuaL_LoadString(luaVM, "a = 1 + 1;")   ; Загружаем строку скрипта
Debug CallCFunction(#LuaLibrary, "lua_pcall", luaVM, 0, -1, 0) ; Выполняем скрипт
 
CallCFunction(#LuaLibrary, "lua_close", luaVM) ; Закрываем VM
CloseLibrary(#LuaLibrary)                               ; и выключаем Lua


Код компилируется и выполняется без сбоев, но действительно проверить его работоспособность не представляется возможным. Может кто занимался данным вопросом?


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB