avatar_epmak

Как создать ReadItems класс для чтения вещей из MU online?

Автор epmak, 2013 Фев. 09, 11:47

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

____

Проголосовало пользователей: 26

epmak

меня терзают противоречивые чувства
с одной стороны, хочется сказать, что мол, где ты был полгода назад?!
с другой стороны, спасибо, что не было. сделал все сам и не хуже  
кстати, задам вопрос брейна: за скока он у тебя генерит контент для высера на экран?
и, это FE = empty socket, если мне не изменяет память..

valerik

#21
Цитата: epmak от 2013 Март 21, 17:33  кстати, задам вопрос брейна: за скока он у тебя генерит контент для высера на экран?


Хз.. у меня на ноутбуке страничка с выводом инфы об одном предмете генерируется за 0,05 с в среднем.. Ну она в составе движка, т.е. это время генерации всей страницы (получение инфы о юзере, всякие проверки доступа, и т.д. и т.п), а не конкретно вывод предмета.

Страница сундука с 7ю предметами генерируется за 0,12 с
Ну т.е. чем больше предметов, тем медленнее будет работать.

epmak

#22
не, я веду речь о всех вещах без сундука, просто, за скока он перемалывает это все
хотя.. если брать среднее 15 групп по 35 вещей в среднем ~ 525 - 600 вещей (более точное считать нет смысла но можно)
исходя из того что 7 вещей 0.12, а 1 за 0,05, то есть гипотетически на все вещи(хотя, правильнее будет на бОльшую часть вещей) уйдет ~ 26,25 -  30 о_О... не надо тестировать, не может быть чтобы так долго.

valerik

#23
Цитата: epmak от 2013 Март 23, 05:34  не, я веду речь о всех вещах без сундука, просто, за скока он перемалывает это все
хотя.. если брать среднее 15 групп по 35 вещей в среднем ~ 525 - 600 вещей (более точное считать нет смысла но можно)
исходя из того что 7 вещей 0.12, а 1 за 0,05, то есть гипотетически на все вещи(хотя, правильнее будет на бОльшую часть вещей) уйдет ~ 26,25 -  30 о_О... не надо тестировать, не может быть чтобы так долго.

Я не понял о чём ты щас говоришь.
Алгоритм  у меня такой.
$hex = '257FFFB3F2FDC27F00C000FFFFFFFFFF';
$item = Items::me()->hex2item($hex);
print_r($item);

Сначала из $hex получаем тип предмета $type и его $id
Затем парсим файл item(Kor).txt получаем массив $itemKor
Затем достаём из этого массива инфу по нашему предмету $item['KOR'] = $itemKor[$type][$id];
Ну так же получаем всю оставшуюся инфу о предмете.

Если будем получать инфу о двух предметах:

$hex = '257FFFB3F2FDC27F00C000FFFFFFFFFF';
$item = Items::me()->hex2item($hex);
print_r($item);

$hex = '067F5416A914627F009000FFFFFFFFFF';
$item = Items::me()->hex2item($hex);
print_r($item);

То второй раз файл item(Kor).txt уже не парсится.. используется результат первого запроса
т.к. в функции itemKor() прописано так
static $items;
if (isset($items)) {
return $items;
}

Короче увеличение кол-ва предметов в 10 раз не приведёт к увеличению времени генерации в 10 раз. Это во первых.
Во вторых я не понял о каких в среднем ~ 525 - 600 вещах ты говоришь?

Если ты имеешь ввиду, как вывести весь Item(Kor).txt в виде массива, то это можно сделать так
$itemKor = Items::me()->ItemKor();
print_r($itemKor);
И это займёт времени даже меньше чем вывести всю инфу об одном предмете.. Т.к. при выводе инфы о предмете эта функция тоже используется, но дополняется ещё другими функциями.

Вот пример работы
$hex = '067F5416A914627F009000FFFFFFFFFF';
$item = Items::me()->hex2item($hex);
print_r($item);

Спойлер
Array
(
[id] => 6
[is_skill] => 0
[level] => 15
[luck] => 1
[option] => 28
[durability] => 84
[serial] => 16A91462
[ancient] => 0
[type] => 9
[opt108] => 0
[h_type] => 0
[h_val] => 0
[socks] => Array
(
[0] =>
[1] =>
[2] =>
[3] =>
[4] =>
)

[socks_hex] => Array
(
[0] => FF
[1] => FF
[2] => FF
[3] => FF
[4] => FF
)

[option_str] => Additional defense +15
[excellent_str] => Array
(
[0] => Increase max HP +4%
[1] => Increase max Mana +4%
[2] => Damage decrease +4%
[3] => Reflect damage +5%
[4] => Defense success rate +10%
[5] => Increases acquisition rate of Zen after hunting monsters +40%
)

[excellent] => Array
(
[1] => 1
[2] => 1
[3] => 1
[4] => 1
[5] => 1
[6] => 1
)

[KOR] => Array
(
[id] => 6
[slot] => 4
[skill] => 0
[x] => 2
[y] => 2
[serial] => 1
[option] => 1
[drop] => 1
[name] => Scale Pants
[level] => 25
[def] => 14
[magdef] => 0
[dur] => 40
[lvlreq] => 0
[strreq] => 110
[agireq] => 0
[enereq] => 0
[vitreq] => 0
[cmdreq] => 0
[setattr] => 4
[dw/sm] => 0
[dk/bk] => 1
[elf/me] => 0
[mg] => 1
[dl] => 1
[sum] => 0
[rf] => 1
)

[addoption] => Array
(
[0] => Array
(
[opt1] => 6
[val1] => 1080
[opt2] => 3
[val2] => 1800
[time] => 0
[opt1_name] => Max SD
[opt2_name] => Defense Success Rate
[option_kat] => PVP
)

)

[skill] => Array
(
)

[type_name] => Pants
[HEX] => 067F5416A914627F009000FFFFFFFFFF
[img] => 9-6.gif
)
[свернуть]

epmak

понаписал-то.. я тебя про время генерации спрашивал... только время. как это работает у тебя я увидел как только ты выложил класс...
мне просто нужно понять, что производительней. не более. тут 1 теория, которая сейчас не нужна. просто время генерации, за сколько твой класс полностью формирует свою утробу для всех вещей интересует. написать можешь?

Profesor08

Цитата: epmak от 2013 Март 23, 09:05  за сколько твой класс полностью формирует свою утробу для всех вещей интересует.
Смысл это вычислять? Самое главное - время генерации странички сайта. Остальное не имеет значения.

positive


epmak

это ля веб-разработчиков тулзина, скажем так, без навыков программирования тут делать нечего

GreeNLine

Если честно, то велосипед) Можно сделать намного проще)

epmak

можно и в 2 функции сунуть. но есть 1 но, я вначале его писал.
да и не нравится - не кушай.

Похожие темы (5)

Сообщений: 37
Просмотров: 21541

Сообщений: 127
Просмотров: 37986

Сообщений: 32
Просмотров: 12318