_Призрак_ 11 Опубликовано 22 Октября 2011 Vano_Santuri Не совсем понял какую таблицу ты хочешь сделать. Какие параметры, как они должны быть сгруппированы. Кстати, можно при помощи table.insert(tbl, Msg) вставлять не просто значение (строку), а можно вставлять таблицы, которые будут содержать все что тебе нужно: local t ={ text="text1", id=12, stalker=true } table.insert(tbl,t) Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 22 Октября 2011 Vano_Santuri так прокатило бы если бы у тебя была бы такая таблица: local t ={["text"]="text1",["id"]=12,["stalker"]=true} Поэтому используй такой вариант: local text = tbl[inx].text --Запрашиваем таблицу по индексу, а потом у подтаблицы запрашиваем парметр text Кстати советую вместо table.getn(tbl) использовать #tbl - это не только короче, но еще и быстрее Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 22 Октября 2011 Vano_Santuri Сразу видно что ты знаешь как минимум один серьезный язык программирования, например С, где у ты только и смотришь как бы у тебя что нибудь не переполнилось Только что я создал строку размером 100000 символов и вывел ее. Правда я делал это не в сталкере, а на чистом луа. Но чтобы у тебя что то переполнилось про работе со строками - что-то из разряда фантастики. У меня никогда этого не было З.Ы. Давай переходить в Скриптование и спавн, а то нас здесь быстро разгонят Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 1 Ноября 2011 А что за тип данных в сталкере - "thread"? Сейчас заметил его в описании возвращаемых строк функции type Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 8 Декабря 2011 (изменено) Пища для ума А вот такой код: local i= 0.1+0.1+0.2 if (i==0.4) then print("TRY") end Работает как надо Сейчас проверил на С++ #include <iostream> using namespace std; int main () { float i = 0.1+0.1+0.1; if (i==0.3) cout << "i=0.3"<<endl; else cout << "no i=" << i <<endl; float a = 0.1+0.1+0.2; if (a==0.4) cout << "a=0.4"<<endl; else cout << "no a=" << a <<endl; cout << "done"; getchar(); return 1; } Выводит: no i=0.3 no a=0.2 done Никогда не знал об этом Изменено 8 Декабря 2011 пользователем _Призрак_ Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 8 Декабря 2011 А так у тебя код математически не правилен. Одна десятая + одна десятая + 3 десятых будут равны пяти десятым, но никак не 0.4 Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 8 Декабря 2011 Ух ты О_о Написал такой код в С++ #include <iostream> using namespace std; int main () { double i = 0.1+0.1+0.1; if (i==0.3) cout << "i=0.3"<<endl; else cout << "no i=" << i <<endl; double a = 0.1+0.1+0.2; if (a==0.4) cout << "a=0.4"<<endl; else cout << "no a=" << a <<endl; cout << "done"; getchar(); return 1; } Разница с предыдущим кодом только в изменении типа float на double. Результаты удивили: no i=0.3 a=0.2 done Получается что в ЛУА все дробные числа типа double Но почему так происходит - я не понимаю. Знатоки, объясните Добавлено через 6 мин.: Gun12 Тут даже сказать нечего. Хотя есть чего. Буду меньше пользоваться дробными числами от греха подальше Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 15 Января 2012 Опять у вас начался спор о фломастерах. Тут просто конфликт различных взглядов на разработку. Я например поддерживаю malandrinus'a т.к. считаю что лучше я сейчас, в процессе разработки, найду узкое место которое может приводить к вылетам/лагам/переполнениям/просто к ненужным вызовам, чем я потом буду искать эти места. Но опять же это просто разные взгляды и все Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 7 Мая 2015 Значение "nil" хоть и обозначает отсутствие значения, всё-таки это одно из значений Lua, в отличии от отсутствия вообще какого-либо значения. Прости? Очень интересно высказывание, почему ты так решил? Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 24 Марта 2018 Используй не game_graph():vertex, а game_graph().vertex (через точку). В этом случае ты делаешь не вызов функции, а обращение к полю объекта 1 Freedom Поделиться этим сообщением Ссылка на сообщение