[Tutorial]Lua
Участников: 5
[Tutorial]Lua
Toribash Lua Tutorial 1 – Основы
Этот туториал я написал про то как делать скрипты в торибашэ используя lua.В этом первом туториале я пройду через то как начать делать скрипты , строки , номера , таблицы , и "циклы"
Приступим к работе :
Тебе нужно:
Toribash (Очевидно).
Notepad++ (или другой тукстовый редактор но в этом тутореале я буду использовать Notepad++)
Привет мир:
Твоя основа будет "привет мир":
Теперь откройте торибаш и идете в Setup -> Scripts => выберите “helloworld.lua” и нажмите “load”.
Ты увидиш “hello world!” темно-красным цветом в чат-боксе. Это и есть функция echo. Используй “echo” Функцию если хочеш вывести темно-красный цвет в чат-боксе, это очень полезно для отладки и с помощью этого можно информировать человека об этом скрипте(также можно втулить туда свой копирайт).
Теперь об этом более продвинутей:
Вернись в свой helloworld.lua скрипт в notepad++. Теперь я хочу чтобы ты вставил туда это:
Попробуйте это!
Номера!
Цифры в Lua объявляються в точности так же, как строки. Давайте мы поменяем в предыдущем скрипте слова на номера и получим примерно вот такое
"45.23" контактирует с "+" , Message2 и скрипт выводит сумму Message2 и Message1.
Таблицы и циклы!
Этот цикл будет повторяться четыре раза(так как в данном случае здесь четыре переменных в сообщении) и каждый раз цифра "i" будет увиличиваться на 1.
При запуске этого скрипта в игре в чат-боксе появиться следующее сообщение
Toribash Lua Tutorial 2 - Условные операторы и функции
В данной статье я расскажу вам про условных операторов , некоторые связанные с toribash'om функции и то как сделать свою функцию.
После прочитения этого туториала ты будеш уметь : Писать скрипт который выводит имя победителя в текущщем бою.
Условные операторы:
Условные операторы это одна из самых важных аспектов любого скрипта.Они позволяют вызывать функции когда ты хочеш этого , например :
Вот операторы которые ты можеш использовать:
Функции связанные с Toribash:
Есть много функций связанных с toribash'om которые мы можем вызвать в lua.
Пример , если мы хотим увидеть у какого игрока больше очков в конце боя.Мы сравним счета двух игроков и узнаем у кого больше очков с помощью следующего скрипта:
Вы можете увидеть список некоторых встроенных функций в Toribash в папке /data/scripts/SDK/
Создание своих функций :
Создание своих собственных функций это жизненно необходимая часть lua она позволяет повторно использовать код быстро и эффективно.
Например, если мы хотим создать функцию, которая будет показывать кто побеждает :
И вот это конец этого туториала!
Toribash Lua Tutorial 3 – Хуки и откладки
В данной статье я буду рассказывать про хуки и отладки скриптов.
После прочтения этого туториала ты будеш уметь :
1)Делать скрипт который показывает кто из игроков лидирует по очкам и замораживает каждого игрока
2)Устранять неполадки в ваших скриптах.
Хуки :
Хук является еще одним важным аспектом lua.Он позволяют выполнять определенные функции в определенное время.
Хук выглядит примерно вот так :
Ты можеш найти лист хуков в файле startup.lua (который находиться в папке data/script/) в таблице events , но сейчас мы будем использовать “enter_freeze” хук.
Давайте используем скрипт который остался с предыдущего туториала из него мы можем сделать скрипт, который будет повторять текущего лидера довольно легко.
Я расскажу больше про хуки в следущих туториалах.
Отладка:
Если ты экспереметировал с скриптами и если у тебя чтото пошло неправильно и ты не мог все починить значит это все изза того что toribash думает что ты допустил ошибку в коде.Чаще всего toribash не говорит где и на какой строке все пошло не так.И здесь приходит “stderr.txt”.
Если ваш скрипт выдаёт ошибку, или работает не должным образом вам необходимо проверить файл stderr.txt, чтобы увидеть, какие ошибки есть в скрипте. Вот пример распространенной ошибки:
Другие ошибки :
На этом мой туториал кончился.
Если у вас возникли вопросы задавайте их в оффициальной теме.
Toribash Lua Tutorial 4 – Рисование
В этом туториале я расскажу вам как рисовать в 2D и 3D
В конце этого туториала ты сможеш :
1.Рисовать текст я динамическим размером и задним фоном
2.Рисовать шарики.
Рисование в 2D
Все рисование в lua происходит благодоря хукам.Чтобы рисовать в 2d тебе нужно использовать draw2d хук и для рисования в 3d тебе нужно использовать хук draw3d .Так давайте рассматривать рисование в двух измерениях.
Важныя заметка:
Координаты (0,0) обозначают что текст находится в верхнем левом углу, тем выше значение "х", правее вы рисуете, тем больше "у" значение, тем более в нижней части экрана вы рисуете. Пример: 100, 300 будет 100px справа от верхнего левого угла и 300px вниз.
Так давайте начнем рисовать наш первый прямоугольник!
Давайте нарисуем немного более продвинутей и попродуем добавить какой-либо текст и динамическую форму прямоугольника.
Рисование в 3D
Как я уже говорил рисование в 3d нужнается в draw3d хуке
А теперь можно и нарисовать что-то
Я нарисовал вот так
Возможен неправильный перевод ибо половина насколько я помню была переведена гуглом
Этот туториал я написал про то как делать скрипты в торибашэ используя lua.В этом первом туториале я пройду через то как начать делать скрипты , строки , номера , таблицы , и "циклы"
Приступим к работе :
Тебе нужно:
Toribash (Очевидно).
Notepad++ (или другой тукстовый редактор но в этом тутореале я буду использовать Notepad++)
Привет мир:
Твоя основа будет "привет мир":
- Код:
echo("hello world!")
Теперь откройте торибаш и идете в Setup -> Scripts => выберите “helloworld.lua” и нажмите “load”.
Ты увидиш “hello world!” темно-красным цветом в чат-боксе. Это и есть функция echo. Используй “echo” Функцию если хочеш вывести темно-красный цвет в чат-боксе, это очень полезно для отладки и с помощью этого можно информировать человека об этом скрипте(также можно втулить туда свой копирайт).
Теперь об этом более продвинутей:
Вернись в свой helloworld.lua скрипт в notepad++. Теперь я хочу чтобы ты вставил туда это:
- Код:
Message1 = "Hello"
Message2 = "world"
Message3 = "!"
echo(Message1 .. " " .. Message2 .. Message3)
- Код:
Message1 = "Hello"
- Код:
Message2 = "world"
Message3 = "!"
- Код:
echo(Message1 .. " " .. Message2 .. Message3)
Попробуйте это!
Номера!
Цифры в Lua объявляються в точности так же, как строки. Давайте мы поменяем в предыдущем скрипте слова на номера и получим примерно вот такое
- Код:
[Message1 = 45.23
Message2 = 2312.3
echo(Message1 .. "+" .. Message2 .. "=" .. (Message2 + Message1))
- Код:
45.23+2312.3=2357.53
"45.23" контактирует с "+" , Message2 и скрипт выводит сумму Message2 и Message1.
Таблицы и циклы!
- Код:
Message = { }
Message[1] = "Word"
Message[2] = 23.232
Message[3] = "This is a sentance."
Message[4] = ":D 2323424" .. 23.232 .. "!"
Echo = "Message: "
for i = 1,#Message do
Echo = Echo .. Message[i]
end
echo(Echo)
- Код:
Message = { }
- Код:
Message[1] = "Word"
- Код:
for i = 1,#Message do
Этот цикл будет повторяться четыре раза(так как в данном случае здесь четыре переменных в сообщении) и каждый раз цифра "i" будет увиличиваться на 1.
- Код:
Echo = Echo .. " " .. Message[i]
При запуске этого скрипта в игре в чат-боксе появиться следующее сообщение
- Код:
Word 23.232 This is a sentance.232342423.232!
Toribash Lua Tutorial 2 - Условные операторы и функции
В данной статье я расскажу вам про условных операторов , некоторые связанные с toribash'om функции и то как сделать свою функцию.
После прочитения этого туториала ты будеш уметь : Писать скрипт который выводит имя победителя в текущщем бою.
Условные операторы:
Условные операторы это одна из самых важных аспектов любого скрипта.Они позволяют вызывать функции когда ты хочеш этого , например :
- Код:
a = 1
b = 2
if(a+b == 3) then
echo("a + b == 3 :O")
else
echo("a + b ~= 3")
end
Вот операторы которые ты можеш использовать:
- Код:
== Равно
~= Не равно
> Больше
< Меньше
>= Больше или равно
<= Меньше или равно
- Код:
a = 2
b = 2
if(a >= b) then
echo("a is greater than or equal to b")
else
echo("a is less than b")
end
Функции связанные с Toribash:
Есть много функций связанных с toribash'om которые мы можем вызвать в lua.
Пример , если мы хотим увидеть у какого игрока больше очков в конце боя.Мы сравним счета двух игроков и узнаем у кого больше очков с помощью следующего скрипта:
- Код:
Player1_Score = get_player_info(1).injury
Player2_Score = get_player_info(0).injury
if(Player1_Score > Player2_Score) then
echo("Player 1 is winning!")
elseif(Player2_Score > Player1_Score) then
echo("Player 2 is winning!")
else
echo("Draw!")
end
Вы можете увидеть список некоторых встроенных функций в Toribash в папке /data/scripts/SDK/
Создание своих функций :
Создание своих собственных функций это жизненно необходимая часть lua она позволяет повторно использовать код быстро и эффективно.
Например, если мы хотим создать функцию, которая будет показывать кто побеждает :
- Код:
function winning()
Player1_Score = get_player_info(1).injury
Player2_Score = get_player_info(0).injury
if(Player1_Score > Player2_Score) then
return "Player 1"
elseif(Player2_Score > Player1_Score) then
return "Player 2"
else
return "Draw!"
end
end
echo("Winning: ^06" .. winning())
И вот это конец этого туториала!
Toribash Lua Tutorial 3 – Хуки и откладки
В данной статье я буду рассказывать про хуки и отладки скриптов.
После прочтения этого туториала ты будеш уметь :
1)Делать скрипт который показывает кто из игроков лидирует по очкам и замораживает каждого игрока
2)Устранять неполадки в ваших скриптах.
Хуки :
Хук является еще одним важным аспектом lua.Он позволяют выполнять определенные функции в определенное время.
Хук выглядит примерно вот так :
- Код:
add_hook("hook name","hook description", functiontocall)
Ты можеш найти лист хуков в файле startup.lua (который находиться в папке data/script/) в таблице events , но сейчас мы будем использовать “enter_freeze” хук.
Давайте используем скрипт который остался с предыдущего туториала из него мы можем сделать скрипт, который будет повторять текущего лидера довольно легко.
- Код:
function winning()
Player1_Score = get_player_info(1).injury
Player2_Score = get_player_info(0).injury
if(Player1_Score > Player2_Score) then
return "Player 1"
elseif(Player2_Score > Player1_Score) then
return "Player 2"
else
return "Draw!"
end
end
echo("Winning: ^06" .. winning())
- Код:
function winning()
Player1_Score = get_player_info(1).injury
Player2_Score = get_player_info(0).injury
if(Player1_Score > Player2_Score) then
return "Player 1"
elseif(Player2_Score > Player1_Score) then
return "Player 2"
else
return "Draw!"
end
end
function enter_frame()
echo("Winning: ^06" .. winning())
end
- Код:
add_hook("enter_freeze","echowinner",enter_frame)
Я расскажу больше про хуки в следущих туториалах.
Отладка:
Если ты экспереметировал с скриптами и если у тебя чтото пошло неправильно и ты не мог все починить значит это все изза того что toribash думает что ты допустил ошибку в коде.Чаще всего toribash не говорит где и на какой строке все пошло не так.И здесь приходит “stderr.txt”.
Если ваш скрипт выдаёт ошибку, или работает не должным образом вам необходимо проверить файл stderr.txt, чтобы увидеть, какие ошибки есть в скрипте. Вот пример распространенной ошибки:
- Код:
Lua script error in file errorscript.lua: data/script/errorscript.lua:2: attempt to index global ‘a’ (a nil value)
Другие ошибки :
- Код:
Lua script error in file errorscript.lua: data/script/errorscript.lua:3: ‘}’ expected (to close ‘(‘ at line 2) near ‘echo’
- Код:
Lua script error in file errorscript.lua: data/script/errorscript.lua:2: attempt to perform arithmetic on global ‘b’ (a nil value)
На этом мой туториал кончился.
Если у вас возникли вопросы задавайте их в оффициальной теме.
Toribash Lua Tutorial 4 – Рисование
В этом туториале я расскажу вам как рисовать в 2D и 3D
В конце этого туториала ты сможеш :
1.Рисовать текст я динамическим размером и задним фоном
2.Рисовать шарики.
Рисование в 2D
Все рисование в lua происходит благодоря хукам.Чтобы рисовать в 2d тебе нужно использовать draw2d хук и для рисования в 3d тебе нужно использовать хук draw3d .Так давайте рассматривать рисование в двух измерениях.
- Код:
add_hook("draw2d","draw", draw2dfunc)
- Код:
set_color(r,g,b,a)
- Код:
draw_quad(x,y,w,h,texture)
- Код:
draw_disk(x, y, inner, outer, slices, loops, start, sweep, blend)
- Код:
draw_text(text,x,y,font)
Важныя заметка:
Координаты (0,0) обозначают что текст находится в верхнем левом углу, тем выше значение "х", правее вы рисуете, тем больше "у" значение, тем более в нижней части экрана вы рисуете. Пример: 100, 300 будет 100px справа от верхнего левого угла и 300px вниз.
Так давайте начнем рисовать наш первый прямоугольник!
- Код:
function draw2dfunc()
set_color(0,0,0,1)
draw_quad(10,300,100,200)
end
add_hook("draw2d","draw", draw2dfunc)
Давайте нарисуем немного более продвинутей и попродуем добавить какой-либо текст и динамическую форму прямоугольника.
- Код:
text = { } -- Blank table
text[1] = "This is some text"
text[2] = "This is more text"
text[3] = "MOOOOOOOOOO"
text[4] = "Just a basic test really"
text[5] = "weeeeeeeeeeeeeeeeeee"
text[6] = "1231923823982938"
text[7] = 123.23
text[8] = "Blam is the best "
placey = 200
function draw2dfunc()
ScreenWidth, ScreenHeight = get_window_size()
set_color(0,0,0,1)
draw_quad(10,placey,ScreenWidth-20,#text*17.5)
set_color(1,1,1,1)
for i = 1,#text do
draw_text(text[i],12,(i*17)-17+placey,1)
end
end
add_hook("draw2d","draw", draw2dfunc)
- Код:
text = { }
text[1] = "This is some text"
text[2] = "This is more text"
text[3] = "MOOOOOOOOOO"
text[4] = "Just a basic test really"
text[5] = "weeeeeeeeeeeeeeeeeee"
text[6] = "1231923823982938"
text[7] = 123.23
text[8] = "Blam is the best "
- Код:
placey = 200
- Код:
ScreenWidth, ScreenHeight = get_window_size()
- Код:
#text*17.5
- Код:
(i*17)-17+placey
Рисование в 3D
Как я уже говорил рисование в 3d нужнается в draw3d хуке
- Код:
add_hook("draw3d","draw", draw3dfunc)
- Код:
draw_sphere(x,y,z,radius)
- Код:
x, y, z = get_joint_pos(0, 0)
- Код:
get_joint_pos(player, joint)
А теперь можно и нарисовать что-то
Я нарисовал вот так
- Код:
function draw3dfunc()
x, y, z = get_joint_pos(0, 0)
set_color(0,0,0,1)
draw_sphere(x,y,z,0.4)
end
add_hook("draw3d","draw", draw3dfunc)
Возможен неправильный перевод ибо половина насколько я помню была переведена гуглом
apozzman- Продвинутый
- Сообщения : 105
Дата регистрации : 2010-03-12
Настроение : хорошее :]
Re: [Tutorial]Lua
Ниасилил. Да и lua я тоже врядле осилю
Денис- Уподобившийся Богам
- Сообщения : 783
Дата регистрации : 2009-04-26
Возраст : 28
Откуда : Из Находки
Настроение : Спартанское!
Re: [Tutorial]Lua
написано понятным языком.
хорошо
хорошо
Sylar95- Админ
- Сообщения : 581
Дата регистрации : 2009-09-12
Возраст : 29
Откуда : Омск
Re: [Tutorial]Lua
написано может и понятно, но
Денис пишет:Ниасилил.
BaTHblU- Профи
- Сообщения : 348
Дата регистрации : 2010-10-30
Re: [Tutorial]Lua
оу.. ночью уже не буду вникать, но как время будет может соберусь себе сделать уникальные опены в скрипте =D
Re: [Tutorial]Lua
можешь не мучиться, возьми скрипт слко movie saver
или как там
или как там
Sylar95- Админ
- Сообщения : 581
Дата регистрации : 2009-09-12
Возраст : 29
Откуда : Омск
Re: [Tutorial]Lua
да лучше вообше просто не мучаться и забить.
BaTHblU- Профи
- Сообщения : 348
Дата регистрации : 2010-10-30
Похожие темы
» [Video][Tutorial]Tutorial on acrobatic moves in toribash
» [News]Toribash Wii In-Game Tutorial
» [FAQ]Offer/Survey Completion Tutorial
» [Video]Boomhits tutorial by Markmad
» [Tutorial]Создание реплея с 4 игроками
» [News]Toribash Wii In-Game Tutorial
» [FAQ]Offer/Survey Completion Tutorial
» [Video]Boomhits tutorial by Markmad
» [Tutorial]Создание реплея с 4 игроками
Права доступа к этому форуму:
Вы не можете отвечать на сообщения