Перейти к контенту

Язык Lua. Общие вопросы программирования


Malandrinus

Рекомендуемые сообщения

Vano_Santuri

Не совсем понял какую таблицу ты хочешь сделать. Какие параметры, как они должны быть сгруппированы.

 

Кстати, можно при помощи table.insert(tbl, Msg) вставлять не просто значение (строку), а можно вставлять таблицы, которые будут содержать все что тебе нужно:

local t ={

text="text1",

id=12,

stalker=true

}

table.insert(tbl,t)

Freedom

Поделиться этим сообщением


Ссылка на сообщение

Vano_Santuri

так прокатило бы если бы у тебя была бы такая таблица:

local t ={["text"]="text1",["id"]=12,["stalker"]=true}

 

Поэтому используй такой вариант:

local text = tbl[inx].text --Запрашиваем таблицу по индексу, а потом у подтаблицы запрашиваем парметр text

 

Кстати советую вместо table.getn(tbl) использовать #tbl - это не только короче, но еще и быстрее

Freedom

Поделиться этим сообщением


Ссылка на сообщение

Vano_Santuri

Сразу видно что ты знаешь как минимум один серьезный язык программирования, например С, где у ты только и смотришь как бы у тебя что нибудь не переполнилось

Только что я создал строку размером 100000 символов и вывел ее. Правда я делал это не в сталкере, а на чистом луа. Но чтобы у тебя что то переполнилось про работе со строками - что-то из разряда фантастики. У меня никогда этого не было

 

З.Ы. Давай переходить в Скриптование и спавн, а то нас здесь быстро разгонят

Freedom

Поделиться этим сообщением


Ссылка на сообщение

А что за тип данных в сталкере - "thread"? Сейчас заметил его в описании возвращаемых строк функции type

Freedom

Поделиться этим сообщением


Ссылка на сообщение

Пища для ума

 

А вот такой код:

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

 

Никогда не знал об этом

Изменено пользователем _Призрак_

Freedom

Поделиться этим сообщением


Ссылка на сообщение

А так у тебя код математически не правилен. Одна десятая + одна десятая + 3 десятых будут равны пяти десятым, но никак не 0.4 :D

Freedom

Поделиться этим сообщением


Ссылка на сообщение

Ух ты О_о

 

Написал такой код в С++

#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

Поделиться этим сообщением


Ссылка на сообщение

Опять у вас начался спор о фломастерах. Тут просто конфликт различных взглядов на разработку. Я например поддерживаю malandrinus'a т.к. считаю что лучше я сейчас, в процессе разработки, найду узкое место которое может приводить к вылетам/лагам/переполнениям/просто к ненужным вызовам, чем я потом буду искать эти места. Но опять же это просто разные взгляды и все

Freedom

Поделиться этим сообщением


Ссылка на сообщение

 

 

Значение "nil" хоть и обозначает отсутствие значения, всё-таки это одно из значений Lua, в отличии от отсутствия вообще какого-либо значения.

Прости?

Очень интересно высказывание, почему ты так решил?

Freedom

Поделиться этим сообщением


Ссылка на сообщение

Используй не game_graph():vertex, а game_graph().vertex (через точку). В этом случае ты делаешь не вызов функции, а обращение к полю объекта

  • Нравится 1

Freedom

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...