Для входа на форум нажмите здесь
Новые комментарии
Ищу спеца в LUA
Автор темы: SilverWF_renamed_45896_12032020
Дата создания: 12.09.2013 15:07
Аватар для SilverWF_renamed_45896_12032020
Забанен
Регистрация:
11.05.2006
Волшебник
Ищу спеца в LUA
Господа, а есть ли люди хорошо разбирающиеся в LUA тут?
Я никак не могу постигнуть таблицы, есть пара вопросов.
Напишите в личку, кто может помочь.
Спасибо.
Аватар для SilverWF_renamed_45896_12032020
Забанен
Регистрация:
11.05.2006
Волшебник
Re: Ищу спеца в LUA
Неужели нет русских писателей аддонов?
Re: Ищу спеца в LUA
Неужели ты думаешь, что кому-то очень захочется взвалить на себя неопределённый объём работ для стороннего человека за просто так?

Женщины в брюках не делают реверансов.
Re: Ищу спеца в LUA
Сообщение от SilverWF:
Неужели нет русских писателей аддонов?
Сообщение от Salomea:
Неужели ты думаешь, что кому-то очень захочется взвалить на себя неопределённый объём работ для стороннего человека за просто так?
^this

Сообщение от Гансик:
Лор игры = сюжет игры.
Сообщение от _pain_:
Да лучше порванная жопа чем быть таким тупым
Аватар для SilverWF_renamed_45896_12032020
Забанен
Регистрация:
11.05.2006
Волшебник
Re: Ищу спеца в LUA
Сообщение от Stealer:
^this
Любишь повторять за другими?

Сообщение от Salomea:
Неужели ты думаешь, что кому-то очень захочется взвалить на себя неопределённый объём работ для стороннего человека за просто так?
Я не собираюсь ни на кого ничего взваливать. У меня есть довольно простой вопрос, но на который я не смог найти ответ в официальных факах по ЛУА.
Re: Ищу спеца в LUA
Задал бы его тут, глядишь - и ответил кто сразу. Я к этому веду, если что.


Сообщение от SilverWF:
Любишь повторять за другими?
Посты набивает

Женщины в брюках не делают реверансов.
Re: Ищу спеца в LUA
Сообщение от SilverWF:
Любишь повторять за другими?
А ты чо такой дерзкий, а?
Аватар для SilverWF_renamed_45896_12032020
Забанен
Регистрация:
11.05.2006
Волшебник
Re: Ищу спеца в LUA
Сообщение от Salomea:
Задал бы его тут, глядишь - и ответил кто сразу. Я к этому веду, если что.
Это не совсем то, что я хотел узнать и с таблицами не связано, но убив 8 часов на самые разнообразные извращения истощил всю свою фантазию

Итак, кратко: как сравнивать две строковые переменные с типом WSTRING?

кусок кода:

Цитата:
local myname = GameData.Player.name -- Считать имя персонажа
local victim, killer = wstring.match(msg, "(%a+) has been %a+ by (%a+)'s.+") -- Спарсить имена из чата
if victim == myname then - Сравнение
Выделенное жирным - не работает. Естественно, когда мой персонаж умирает.
Пробовал выводить оба имени в чат, чтобы проверить - они абсолютно одинаковые, даже регистры
Выводил их типы чат - у обоих WSTRING
Переводил оба имени в большую или маленькую раскладку, в тип STRING - все бестолку. Не считает он их равными и хоть ты тресни!

Есть у кого идеи в чем косяк?


В общем, эту проблем сам решил - начал дебажить не только тип переменной, но и ее длину. Оказалось, что параметр мое имя из АПИ имеет в конце имени два лишних непечатных символа. В смысле, что они есть, но не выводятся. Когда после этого оберал это значение с конца на два символа - все стало ок.
Т.е. изменил строку на
local myname = wstring.sub( GameData.Player.name,1,-3 )



Вопрос по таблицам остается в силе.
Вопрос: как они выглядят? Не как пишется их синтаксис, а как мысленно выглядят?
Последний раз редактировалось SilverWF_renamed_45896_12032020; 15.09.2013 в 00:50.
Аватар для Kaname_renamed_623714_28042020
Гигант мысли
Регистрация:
14.08.2008
Re: Ищу спеца в LUA
Сообщение от SilverWF:
Вопрос: как они выглядят? Не как пишется их синтаксис, а как мысленно выглядят?
серьезно?
Код:
local tableName0 = {};
пустая таблица
Код:
local tableName1 = { "elementOne" };
таблица с полем, к которому можно обратиться через tableName[1], его значением будет строка elementOne
Код:
local tableName2 = { ["elementOne"] = "tratata" };
таблица с полем, доступ к нему через через tableName["elementOne"], а его значение строка "tratata"
альтернативой будет
Код:
local tableName2 = {};
local temp = "tratata";
tableName2["elementOne"] = temp;
Код:
local tableName3 = { [1] = "elementOne", [2] = "elementTwo" };
таблица с двумя полями типа string, к которым можно обратиться через tableName[1] и [2].

таблицами очень удобно пользоваться через for i, j in pairs do:
Код:
for i, j in pairs(tableName3) do
  print(i, j)
end
на экране будет результат:
Код:
1 elementOne
2 elementTwo
еще пример:
Код:
for i, j in pairs(tableName1) do
  print(i, j)
end
на экране будет результат:
Код:
1 elementOne
Добавлено через 9 минут
думаю, столь подробный ответ объясняет, как таблица выглядит изнутри? если не понятно, то это очень плохо, тогда для самых маленьких..
есть таблица, в ней поля, у каждого поля есть имя/идентификатор и его значения, проще говоря, это список О_о если нужно чтобы в одном поле хранилось дофига всего, то само поле делаешь таблицей.
Последний раз редактировалось Kaname_renamed_623714_28042020; 15.09.2013 в 07:39. Причина: Добавлено сообщение
Аватар для SilverWF_renamed_45896_12032020
Забанен
Регистрация:
11.05.2006
Волшебник
Re: Ищу спеца в LUA
Спасибо за копипасту фака по ЛУА, но
Сообщение от SilverWF:
Не как пишется их синтаксис, а как мысленно выглядят?


пример:


Я честно не догоняю, как записать такую таблицу в ЛУА.
При этом число строк будет постоянно меняться.
При этом необходима возможность сортировки по любому столбцу
При этом необходимо при необходимости добавить новую строку произвести поиск в таблице на предмет наличия имени.

В принципе у меня есть уже идея: сделать таблицу таблиц, при этом каждая внутренняя таблица имеет имя, соответствующее полю "Имя", но вот как при этом отстортировать их по полю "Урон", например - вообще хз
Аватар для Kaname_renamed_623714_28042020
Гигант мысли
Регистрация:
14.08.2008
Re: Ищу спеца в LUA
Сообщение от SilverWF:
Спасибо за копипасту фака по ЛУА, но

последний абзац читал?

Сообщение от SilverWF:
пример:


Я честно не догоняю, как записать такую таблицу в ЛУА.
При этом число строк будет постоянно меняться.
При этом необходима возможность сортировки по любому столбцу
При этом необходимо при необходимости добавить новую строку произвести поиск в таблице на предмет наличия имени.

В принципе у меня есть уже идея: сделать таблицу таблиц, при этом каждая внутренняя таблица имеет имя, соответствующее полю "Имя", но вот как при этом отсортировать их по полю "Урон", например - вообще хз
опять же последний абзац читал? там как раз про таблицу таблиц О_о

твой пример будет выглядеть так:
Код:
local table1 = {
  ["name1"] = { DD = 1234, H = 12, DPS = 1234.4 },
  ["name2"] = { DD = 1234, H = 12, DPS = 1234.4 }
};
или
Код:
local table2 = {
  DD = { ["name1"] = 1234, ["name2"] = 1235 },
  H = { ["name1" = 12], ["name2"] = 12 },
  DPS = { ["name1"] = 1234.4, ["name2"] = 1234.6 }
};
тут уже надо смотреть, с чем проще работать будет в итоге, хотя и с тем, и с тем можно :)

поэтому я и писал основу синтаксиса, а так же иди читай про работу с таблицами, тебе сюда http://lua-users.org/wiki/TableLibraryTutorial, для запихивания новых элементов в таблицу можно пользоваться банальным tinsert/table.insert, в противовес ему tremove/table.remove, либо же вручную по индексу записывать, все зависит от того в каком виде все это будет, для сортировки есть table.sort - двухместная функция, первое входное значение - таблица, второе - функция сортировки, которые ты пишешь сам.
Аватар для SilverWF_renamed_45896_12032020
Забанен
Регистрация:
11.05.2006
Волшебник
Re: Ищу спеца в LUA
Спасибо, но с момента объявления даты закрытия Вахи интерес к аддоностроению конкретно поугас
Жаль, а идея у меня клевая - такого еще нигде нет, даже в Вовке...
Ваши права в разделе