- 363
- 280
Смотрю на некоторые скрипты и хочется плакать, смотря на то, как это реализовано. Поэтому хочу сделать простенький гайд о том, как почти полностью исключить ctrl c + ctrl v в ваших скриптах.
Массивы
Наверняка многие знают что такое массивы, но не знают сколько в них полезного. Ниже я написал, как строить массивы
Массивы
Наверняка многие знают что такое массивы, но не знают сколько в них полезного. Ниже я написал, как строить массивы
Код:
-- Простой массив
local table1 = {
var1 = 0,
var2 = 0,
var3 = 0 -- На последней переменной запятую можно ставить, а можно и не ставить, как вам по душе
}
-- Массив с подтаблицами
local table2 = {
next = {
var = 1,
string = "hello"
},
next1 = {
var = 3,
string = "world"
}
}
-- Помимо обычного строения массивов, можно построить его и так
local table3 = {"Здравствуй небо", "В облаках", "Здравствуй юность", "В сапогах", 12312}
-- Можем сделать такое же, но с подтаблицами
local table4 = {
{"string", 12341},
{"xyi", 123213}
}
-- Заметьте: выше так же ставим запятые в массиве, как и в основной таблице, так и в подтаблице.
-- Одинаково названные переменные в разных подтаблицах не будут конфликтовать с друг другом
Обращение к массивам
Вот тут уже у многих новичков возникают проблемы, потому что они не знают способы обращения к массивам
Вот тут уже у многих новичков возникают проблемы, потому что они не знают способы обращения к массивам
Lua:
-- Возьмём вторую таблицу, которую я написал выше
local table2 = {
next = {
var = 1,
string = "hello"
},
next1 = {
var = 3,
string = "world"
}
}
-- Допустим мы хотим взять var у переменной next1, сделать можем так:
table2.next1.var -- Выведет 3
-- Так же ещё один способ, который используют в циклах
-- Возьмём ещё одну таблицу выше
local table4 = {
{"string", 12341},
{"xyi", 123213}
}
-- Допустим, мы хотим взять у первой подтаблицы первое значение. Индексация у массивов начинается с единицы.
table4[1][1] -- Первая единица - обращение к первой подтаблице, вторая берёт первое значение подтаблицы, или же string.
-- Если ничего не поняли, из этой же таблицы возьмём из второй подтаблицы текстовую переменную xyi, выглядеть будет так:
table4[2][1]
Так же можно посмотреть сколько переменных/подтаблиц в массиве, это делается так
Цикл for
Думаю что много людей о нём знает, но всё же покажу что это.
#table4 -- Выведет 2
Цикл for
Думаю что много людей о нём знает, но всё же покажу что это.
Lua:
for i = 1, 50 do -- i - это значение кругов цикла, цифра 50 - сколько раз цикл повторится
print("Это "..i.." круг")
end
-- Так же можно указать шаг увеличения, но в данном гайде это нам не понадобится
Пример, как можно работать с массивами
Недавно видел какой-то FastBuy, и его реализация заставила меня заплакать...
И так дохренилион раз
Давайте разберёмся, как можно в разы упростить данную задачу.
Создаём массив, туда пихаем подтаблицы, а в эти подтаблицы пихаем следующие данные:
Первое значение: Название предмета
Второе значение: По сколько вирт будем скупать
Третье значение: Страница в диалоге
Четвёртое значение: Сам номер в диалоге
Недавно видел какой-то FastBuy, и его реализация заставила меня заплакать...
И так дохренилион раз
Давайте разберёмся, как можно в разы упростить данную задачу.
Создаём массив, туда пихаем подтаблицы, а в эти подтаблицы пихаем следующие данные:
Первое значение: Название предмета
Второе значение: По сколько вирт будем скупать
Третье значение: Страница в диалоге
Четвёртое значение: Сам номер в диалоге
Код:
local table =
{
{"Наркотики", 500, 1, 1},
{"Дилдо", 123000, 1, 2},
{"Туалетная бумага", 50, 1, 3},
{"Смазка", 999999, 1, 4}
}
Массив готов. На данный момент мне лень реализовывать там всякую подробную чепуху в гайде по типу нажатия на диалог через самп луа и т.д, поэтому я просто сделаю имгуишку, а там просто пофантазируйте что это работает.
Итак, давайте в имгуишке сделаем вот такой цикл:
Итак, давайте в имгуишке сделаем вот такой цикл:
Код:
function imgui.OnDrawFrame()
imgui.Begin(" ")
for i = 1, #table do -- От единицы до конца массива
imgui.Text(u8(i..". "..table[i][1])) -- Сначала скрипт выводит номер предмета и название
imgui.Text(u8"Скуп - "..table[i][2]..u8" Вирт") -- Далее по сколько вирт скупать
imgui.Text(u8"Страница "..table[i][3]) -- Номер страницы
imgui.Text(u8"Номер "..table[i][4]) -- Номер самого предмета
imgui.Separator() -- Горизонтальная линия, что-бы наши строки не смешивались
end
imgui.End()
end
Получаем вот такой результат:
Вот и всё, конец гайда
Этот гайд уже старенький, но всё же скажу что я сделал спамер, в котором можно создавать неограниченное кол-во биндов, как раз подходит в пример для этого гайда (Можете скачать и посмотреть что и как я делал) - https://www.blast.hk/threads/74627/
Вот и всё, конец гайда
Этот гайд уже старенький, но всё же скажу что я сделал спамер, в котором можно создавать неограниченное кол-во биндов, как раз подходит в пример для этого гайда (Можете скачать и посмотреть что и как я делал) - https://www.blast.hk/threads/74627/
Благодарности за исправление ошибок:
@iTz_Vercetti
@imring
@radeber
@KiN4StAt
@iTz_Vercetti
@imring
@radeber
@KiN4StAt
Последнее редактирование: