Tiendil
#46
[НБ] Магистр
могущество: 13811
разработчик
дварф Халлр
87 уровня
По сообщениям.

Не хочу увеличивать и без того большой объём ответа. Лучше воспринимать сообщение не как массив, а как кортеж, тогда всё ок.

Ошибки в форматах исправлю, спасибо.
Zanleo
#47
[^_^] Рекрут
могущество: 112

эльф Zanleo
34 уровня
Tiendil
Не хочу увеличивать и без того большой объём ответа. Лучше воспринимать сообщение не как массив, а как кортеж, тогда всё ок.

Спасибо за ответ, но в таком случае выглядит скорее как полумера, ведь в некоторых местах (например quests) всё вроде структуркой сделано (хотя actors всё-таки тем же кортежем) )
Тут, полагаю надо более основательно подходить к вопросу необходимости разделения возвращаемых данных.(
Tiendil
#48
[НБ] Магистр
могущество: 13811
разработчик
дварф Халлр
87 уровня
Zanleo
Тут, полагаю надо более основательно подходить к вопросу необходимости разделения возвращаемых данных.(
Согласен, но на это время нужно, которого нет.
Пока не хочу менять структуру ответа.
Дарклидер
#49
[^_^] Рекрут
могущество: 562

эльф Гудлауг
36 уровня
Zanleo
Предложение
“hero_info”.“messages”:[ // сообщения из журнала
[ // запись в задании
<timestamp>, // timestamp создания сообщения
“строка”, // текстовое описание времени в игре
“строка”, // текст
]
],

Возможно ли сделать более логическую структуру типа?:
“hero_info”.“messages”:[ // сообщения из журнала
{ // запись в задании
“time_stamp”: <timestamp>, // timestamp создания сообщения
“description”: “строка”, // текстовое описание времени в игре
“text”: “строка”, // текст
}
],

Причина:
1) Само сообщение не является массивом, потому что имеет разнотипные (по сути и типу) поля.
2) Логичнее представлять messages, как массив объектов типа message(условное название), где message = {“time_stamp”:&lt;&gt;, “description”: &lt;&gt;, “text”: &lt;&gt;,}

Аналогично с diary

Сообщение изменено 15.03.2014 2:45
Zanleo
Где ты нашел hero_info?
Я конечно понимаю, что это выглядит лучше:
messages= [
{'time_stamp': 1394882885.511726, 'description': "03:08", 'text': "«Надо в лавку зайти, и попытаться избавиться от хлама в рюкзаке»."},
{'time_stamp': 1394882894.98965, 'description': "03:10", 'text': "«13 монет за пшеничный колосок… Выйдешь ты на тракт… Нет, нет, ничего! Удачной торговли вам! И детям вашим! Крохобор…»"}
]
Чем
messages= [
[
1394882885.511726, "03:08", "«Надо в лавку зайти, и попытаться избавиться от хлама в рюкзаке»."
],
[
1394882894.98965, "03:10", "«13 монет за пшеничный колосок… Выйдешь ты на тракт… Нет, нет, ничего! Удачной торговли вам! И детям вашим! Крохобор…»"
]
]
Но особой выгоды от этого нет, не так ли?



Сообщение изменено
Дарклидер
#50
[^_^] Рекрут
могущество: 562

эльф Гудлауг
36 уровня
Не забываем что перебор асоц. массива это O(n) на поиск ключа, перебор циклом по индексу это тоже O(n), с точки зрения производительности все равно, но при обращении вида arr[1] затраты ресурсов меньше, чем arr['name'], ибо асоц. доступ это поиск совпадения ключа перебором, доступ по индексу это прямой доступ.



Сообщение изменено
Zanleo
#51
[^_^] Рекрут
могущество: 112

эльф Zanleo
34 уровня
Дарклидер
Где ты нашел hero_info?
Но особой выгоды от этого нет, не так ли?
<hero_info> - это как описано в документации), конечно же речь о "hero" в "account".
Выгоды нет (кроме, как описано выше - обращение по индексу всё-таки быстрее) и восприятия принимаемых данных.
Просто как писал выше
Zanleo
выглядит скорее как полумера
Примеры:
1) habits - каждая черта состоит из 2-х элементов raw и verbose. Но они сделаны всё-таки структурой, а не кортежем.
2) line - сделана структурой (хотя намного выгоднее было бы сделать массив, но потеряется читаемость)
3) equipment и bag так и вообще dictionary (хотя можно было бы опять же воспользоваться кортежем и сэкономить на передаваемых данных).

Меня просто это поначалу совсем сбило с толку, что где-то структура, а где-то кортеж и я не понял почему где-то так, а не как везде)
Прощу прощения, что отнимаю время такой, вроде бы, мелочью.
Дарклидер
#52
[^_^] Рекрут
могущество: 562

эльф Гудлауг
36 уровня
Zanleo
Дарклидер
Где ты нашел hero_info?
Но особой выгоды от этого нет, не так ли?
<hero_info> - это как описано в документации), конечно же речь о “hero” в “account”.
Выгоды нет (кроме, как описано выше - обращение по индексу всё-таки быстрее) и восприятия принимаемых данных.
Просто как писал выше
Zanleo
выглядит скорее как полумера
Примеры:
1) habits - каждая черта состоит из 2-х элементов raw и verbose. Но они сделаны всё-таки структурой, а не кортежем.
2) line - сделана структурой (хотя намного выгоднее было бы сделать массив, но потеряется читаемость)
3) equipment и bag так и вообще dictionary (хотя можно было бы опять же воспользоваться кортежем и сэкономить на передаваемых данных).

Меня просто это поначалу совсем сбило с толку, что где-то структура, а где-то кортеж и я не понял почему где-то так, а не как везде)
Прощу прощения, что отнимаю время такой, вроде бы, мелочью.
Быстрее как раз обращение к массиву по индексу, не по ключу.
Приведи пример кортежа, ибо я тебя не понял.
Tiendil
#53
[НБ] Магистр
могущество: 13811
разработчик
дварф Халлр
87 уровня
Давайте не будем тут обсуждать сложность обращения к массивам — эта тема не для этого.
Unit
#54
[МОЛОТ] Рекрут
могущество: 3274

мужчина Призрак Бульрога
39 уровня
Есть ли какие-либо ограничения на использование API? Интересует в частности частота. Если подробнее, то хочу собирать статистику того, что происходит в мире (города, советники, население). Если эти данные обновляются раз в сутки, то может есть какое-либо ненагруженное время, когда можно подолбить сервер не опасаясь доставить возможные неудобства игрокам?
Tiendil
#55
[НБ] Магистр
могущество: 13811
разработчик
дварф Халлр
87 уровня
На текущий момент оганичений нет и, надеюсь, вводить не придётся.
Если появится большая нагрузка от сторонних приложений. то они будут резаться по идентификатору приложения (сначала по версии, если не поможет, по всему). Но это, если действительно будет страдать игра.

Если подробнее, то хочу собирать статистику того, что происходит в мире (города, советники, население)
Похвальное начинание. У меня на это времени нет, а красивые графики все любят смотреть :-)

Данные обновляются раз в час. Их в общем, не очень много, поэтому особой разницы во времени нет, но ночью, конечно, нагрузка меньше.

P.S. Сейчас API методов для получения информации о городах и прочем нет. Если что-то конкретное надо — пиши, постраюсь скорректировать планы по реализации.
Unit
#56
[МОЛОТ] Рекрут
могущество: 3274

мужчина Призрак Бульрога
39 уровня
Спасибо за ответ и предложенную помощь, которая точно понадобиться при выходе на новый уровень. Свяжусь с Вами когда будут результаты, а не лишь планы и пробы.

Текущий данных для начала хватает, их легко можно парсить со страницы, благо статистика и мониторинг область проф деятельности и опыт большой :)
Дарклидер
#57
[^_^] Рекрут
могущество: 562

эльф Гудлауг
36 уровня
Tiendil
На текущий момент оганичений нет и, надеюсь, вводить не придётся.
Если появится большая нагрузка от сторонних приложений. то они будут резаться по идентификатору приложения (сначала по версии, если не поможет, по всему). Но это, если действительно будет страдать игра.

Если подробнее, то хочу собирать статистику того, что происходит в мире (города, советники, население)
Похвальное начинание. У меня на это времени нет, а красивые графики все любят смотреть :-)

Данные обновляются раз в час. Их в общем, не очень много, поэтому особой разницы во времени нет, но ночью, конечно, нагрузка меньше.

P.S. Сейчас API методов для получения информации о городах и прочем нет. Если что-то конкретное надо — пиши, постраюсь скорректировать планы по реализации.
Как нет, а http://the-tale.org/game/map/cell-info?x=42&y=16?
Tiendil
#58
[НБ] Магистр
могущество: 13811
разработчик
дварф Халлр
87 уровня
так это не метод api и никаких герантий на его работоспособность и формат ответа я не даю.
Два Цвета
#59
[​ϟ] Боец
могущество: 966
длань судьбы
эльфийка Весна
58 уровня
введите авторизацию для приложения, не многие хотят вводить свой логин пароль
Tiendil
#60
[НБ] Магистр
могущество: 13811
разработчик
дварф Халлр
87 уровня
Пока авторизовываться вообще нечему. Когда появится что-то работающее, тогда и подумаем над этим.