|
Библиотеки Сторонние библиотеки для Blitz |
16.09.2011, 05:44
|
#1
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,361
Написано 2,473 полезных сообщений (для 6,856 пользователей)
|
Вы не поверите, но LUA Wrapper для Blitz3D
Никто не ждал такого поворота. Немцы такие Немцы. Запилили целый враппер Lua. Вот это да!
Соус: http://www.blitzforum.de/forum/viewtopic.php?t=30995
Долго втуплял как жеж оно работает и в итоге немного понял.
Работает через очень хитро закрученную задницу, но работает :D
Значит что в архиве:
Lua_Wrapper.dll - Главная DLL
Lua_Wrapper.decls - ну тут понятно
Lua_Include.bb - вызывать Include в самом самом начале файла
Lua.bb - мой тестик (зря его я так назвал)
script.txt - скриптик к моему тестику :3
|
Внимание! Класс опастности 9 из 10.
Для неподготовленного новичка эта штука не подходит. Копипастой тут всё не сделаешь.
Все справки что у нас есть: http://www.blitzforum.de/forum/viewtopic.php?t=30995
Переводить лучше на английский, а то на русском не ясно ни зги.
Спасибо за внимание. И да, не оффтопим особо, ок?
Blitz3D Lua wrapper script download engine torrent b3d hight speed decls premium without sms ну ты выдал нахнагель дядька марк не прогадал
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 4090 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
|
(Offline)
|
|
Эти 11 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
|
Артем Валерьевич (16.09.2011), Coks (16.09.2011), Harter (16.09.2011), IgorOK (19.09.2011), LLI.T.A.L.K.E.R. (16.09.2011), moka (16.09.2011), Nerd (02.01.2012), Nex (16.09.2011), radiobutton (17.09.2011), Reks888 (18.09.2011), St_AnGer (17.09.2011)
|
16.09.2011, 21:17
|
#2
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: Вы не поверите, но LUA Wrapper для Blitz3D
так по немецки я почти не понимаю, а твой пример еще не посмотрел, есть непонятное:
1. можно ли из луа-кода вызывать функции блица?
2. можно ли из блица вызывать луа-код?
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо ffinder за это полезное сообщение:
|
|
17.09.2011, 01:13
|
#3
|
|
Ответ: Вы не поверите, но LUA Wrapper для Blitz3D
Ндя...Вот только зачем скриповичку скриптовичок ???
|
|
|
17.09.2011, 01:31
|
#4
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: Вы не поверите, но LUA Wrapper для Blitz3D
Сообщение от Diablo1909
Ндя...Вот только зачем скриповичку скриптовичок ???
|
лол, где ты у блица скриптовый язык увидел?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
17.09.2011, 01:41
|
#5
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,361
Написано 2,473 полезных сообщений (для 6,856 пользователей)
|
Ответ: Вы не поверите, но LUA Wrapper для Blitz3D
Diablo наверное считает, что Blitz3D не компилится (ну в смысле полноценно)
Типа внутри exe исходник и интерпретатор.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 4090 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
|
(Offline)
|
|
17.09.2011, 09:07
|
#6
|
|
Ответ: Вы не поверите, но LUA Wrapper для Blitz3D
Не совсем так...
Blitz3D переводит исходный текст в машинный код... но извините меня, это каждый нормальный скрипт-движок умеет.
Blitz3D - это скриптовичок. В ексе он не пакует свой транслятор и виртуальную машину, а отсюда вытекает невозможность компилить исходники на лету.
А что такого удивительного в том что ЛУА завраплен в Б3Д ??? Скачал исходники ЛУА написал ДЛЛ с интерфейсными функциями по стандарту C_call, обьявил эти функции в decls и вперед писать скрипты...
С таким же успехом можно саму ЛУА заврапить в ЛУУ.
ИМХО - абсолютно бесполезный враппер. Внутри яичка должен быть желток, а тут получается внутри яйца еще одно яйцо...
|
|
|
17.09.2011, 10:36
|
#7
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Ответ: Вы не поверите, но LUA Wrapper для Blitz3D
Сообщение от ffinder
так по немецки я почти не понимаю, а твой пример еще не посмотрел, есть непонятное:
1. можно ли из луа-кода вызывать функции блица?
2. можно ли из блица вызывать луа-код?
|
это врядли !!
Враппер же..
|
(Offline)
|
|
17.09.2011, 11:22
|
#8
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,361
Написано 2,473 полезных сообщений (для 6,856 пользователей)
|
Ответ: Вы не поверите, но LUA Wrapper для Blitz3D
Сообщение от ffinder
так по немецки я почти не понимаю, а твой пример еще не посмотрел, есть непонятное:
1. можно ли из луа-кода вызывать функции блица?
|
Да
Сообщение от ffinder
2. можно ли из блица вызывать луа-код?
|
Да
Любой вызов происходит и туда и обратно, но через хитровыкрученый зад.
Сообщение от Diablo1909
желток, а тут получается внутри яйца еще одно яйцо...
|
Да ты за###. Нахрен скрипты вообще нужны? Чтоб левел дизайнеры, просто дизайнеры и прочие товарищи не лезли в работу программиста. Пускай дизайнер в своей папочке настраивает партиклы, пускай художник в своей папочке назначает шрифты, цвета для контролов. Или ты предлагаешь каждый раз пересобирать ради этого exe? Крутой подход. Вот скажи своему дизайнеру (а он есть?) поставить себе вижуал студию чтоб цвет кнопочек менять. И как он на тебя посмотрит? Ему лучше тупым блокнотом открывать луашки.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 4090 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
|
(Offline)
|
|
Эти 5 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
|
|
17.09.2011, 12:21
|
#9
|
Бывалый
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений (для 546 пользователей)
|
Ответ: Вы не поверите, но LUA Wrapper для Blitz3D
Function Lua_UserFunction()
L = Lua_GetCurrentState()
FuncName$ = Lua_ToString( L, 1 )
Select FuncName$
Case "Print"
Print Lua_ToString( L, 2 )
End Select
End Function
Непойму чем это отличается от того, что если бы ты сам разложил строчку "print "Hello World"" на составляющие. ?
|
(Offline)
|
|
17.09.2011, 12:39
|
#10
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,361
Написано 2,473 полезных сообщений (для 6,856 пользователей)
|
Ответ: Вы не поверите, но LUA Wrapper для Blitz3D
Сообщение от radiobutton
Function Lua_UserFunction()
L = Lua_GetCurrentState()
FuncName$ = Lua_ToString( L, 1 )
Select FuncName$
Case "Print"
Print Lua_ToString( L, 2 )
End Select
End Function
Непойму чем это отличается от того, что если бы ты сам разложил строчку "print "Hello World"" на составляющие. ?
|
Ннна линейкой по пальцам! Бегом читать про Lua.
Хотя ладно, давай я тебе разжую. Допустим у нас есть такой луа код:
x1 = 150 y2 = 350 a = 265 x1 = cos(a) * 33 x2 = sin(a) * 33 CallFunction( "Print", "Position: "+x1+","+x2 )
Парсерка твоя не отвалится?
Понял к чему я веду? Дак вот Lua - это скриптовый язык со всем вытекающим. На нём можно писать в прямом смысле слова.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 4090 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
|
|
17.09.2011, 12:44
|
#11
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: Вы не поверите, но LUA Wrapper для Blitz3D
Сообщение от Diablo1909
Blitz3D переводит исходный текст в машинный код... но извините меня, это каждый нормальный скрипт-движок умеет.
Blitz3D - это скриптовичок. В ексе он не пакует свой транслятор и виртуальную машину, а отсюда вытекает невозможность компилить исходники на лету.
|
какую виртуальную машину, бро? они нужны для исполнения байт-кода, а в блице3д ты сам признаешь - код уже машинный.
короче, выдыхай.
Сообщение от Diablo1909
Внутри яичка должен быть желток
|
внутри яичка, (мы рассматриваем яичко в норме, без патологий), должна быть строма и паренхима. если там желток, то это - птичье яйцо.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо ffinder за это полезное сообщение:
|
|
17.09.2011, 12:46
|
#12
|
Бывалый
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений (для 546 пользователей)
|
Ответ: Вы не поверите, но LUA Wrapper для Blitz3D
Сообщение от Randomize
Ннна линейкой по пальцам! Бегом читать про Lua.
Хотя ладно, давай я тебе разжую. Допустим у нас есть такой луа код:
x1 = 150 y2 = 350 a = 265 x1 = cos(a) * 33 x2 = sin(a) * 33 CallFunction( "Print", "Position: "+x1+","+x2 )
Парсерка твоя не отвалится?
Понял к чему я веду? Дак вот Lua - это скриптовый язык со всем вытекающим. На нём можно писать в прямом смысле слова.
|
а..
я просто попробовал
CallFunction( "a=175")
и в блице создал переменную a.
и она не изменилась. =)
Надеюсь этот скриптовый язык работает с такой же скоростью, как если бы писать команды на блице.
|
(Offline)
|
|
17.09.2011, 12:51
|
#13
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,361
Написано 2,473 полезных сообщений (для 6,856 пользователей)
|
Ответ: Вы не поверите, но LUA Wrapper для Blitz3D
Ещё семпл:
Include "Lua_Include.bb" Local L = LuaL_NewState() LuaL_OpenLibs(L) Lua_InitInterface(L, "CallFunction") Local Status = LuaL_LoadFile(L, "Beispiel.lua") If Status Then RuntimeError("Error while loading script!" + Chr(10) + Lua_ToString(L, 1)) Status = Lua_PCall(L, 0, 0, 0) ;Wichtig: Script vor den Funktionsaufrufen mindestens einmal ausfьhren, damit die Funktionsnamen registriert werden If Status Then RuntimeError("Error while executing script!" + Chr(10) + Lua_ToString(L, 1)) Lua_GetGlobal(L, "TestFunktion1") ;Funktion auf den Stack bringen Lua_PushNumber(L, 42) ;Erstes Argument auf den Stack Lua_PushNumber(L, 25) ;Zweites Argument auf den Stack Lua_PCall(L, 2, 1, 0) ;Die erste Funktion mit zwei Argumenten aufrufen und nur einen Rьckgabewert akzeptieren Local ReturnValue = Lua_ToNumber(L, -1) ;Rьckgabewert vom Stack holen Print("TestFunktion1(42, 25): " + ReturnValue) Lua_Pop(L, 1) ;Rьckgabewert lцschen und Stack in den Originalzustand zurьckfьhren Lua_GetGlobal(L, "TestFunktion2") Lua_PCall(L, 0, LUA_MULRET, 0) ;Zweite Funktion ohne Argumente aufrufen und beliebig viele Rьckgabewerte akzeptieren ;Rьckgabewerte sind in "direct order" auf dem Stack, d.h. letzter Rьckgabewert liegt zuoberst Local ReturnValue3# = Lua_ToNumber(L, -1) Local ReturnValue2$ = Lua_ToString(L, -2) Local ReturnValue1 = Lua_ToNumber(L, -3) Print("TestFunktion2(): " + ReturnValue1 + ", " + ReturnValue2 + ", " + ReturnValue3) Lua_Pop(L, 3) ;Rьckgabewerte lцschen und Stack in den Originalzustand zurьckfьhren Lua_Close(L) WaitKey() End Function Lua_UserFunction() End Function
Beispiel.lua
function TestFunktion1(A, B) return A + B end function TestFunktion2() return 1337, "Hello World!", 3.1415926 end
Сори за неметску жзяцлю. И почему они не пишут по английски...
И чего я так пыжусь по поводу этого луа? Он же мне нафиг не нужен. Откуда эта ответственность за эту тему...
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 4090 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
|
(Offline)
|
|
17.09.2011, 14:45
|
#14
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Вы не поверите, но LUA Wrapper для Blitz3D
Сообщение от Diablo1909
Не совсем так...
Blitz3D переводит исходный текст в машинный код... но извините меня, это каждый нормальный скрипт-движок умеет.
Blitz3D - это скриптовичок. В ексе он не пакует свой транслятор и виртуальную машину, а отсюда вытекает невозможность компилить исходники на лету.
А что такого удивительного в том что ЛУА завраплен в Б3Д ??? Скачал исходники ЛУА написал ДЛЛ с интерфейсными функциями по стандарту C_call, обьявил эти функции в decls и вперед писать скрипты...
С таким же успехом можно саму ЛУА заврапить в ЛУУ.
ИМХО - абсолютно бесполезный враппер. Внутри яичка должен быть желток, а тут получается внутри яйца еще одно яйцо...
|
Попахивает полной мешаниной из терминов.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
|
|
19.09.2011, 01:17
|
#15
|
Мастер
Регистрация: 26.10.2009
Сообщений: 1,194
Написано 615 полезных сообщений (для 2,209 пользователей)
|
Ответ: Вы не поверите, но LUA Wrapper для Blitz3D
Это конечно круто, но поздновато. Я уж для себя свой скриптовик написал.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:05.
|