Добавление большого кол-ва умений в клиент

Низ

Айвазовский
VIP
Участник Новогоднего Фонда 2023
Главный тролль
Победитель в номинации 2023
Победитель в номинации 2022
Победитель в номинации 2021
Победитель в номинации 2020
Победитель в номинации 2019
Боевая финансовая поддержка
Знаток графики и верстки
Сообщения
654
Розыгрыши
0
Решения
1
Репутация
582
Реакции
469
Баллы
1 523
Хроники
  1. Master Class
Исходники
Присутствуют
Сборка
l2script
Здравствуйте. Столкнулся не с тривиальной задачей и хочется получить мнение других пользователей как бы они решали данный вопрос. Задача в следующем - добавить огромное кол-во кастомных умений в клиент игры. Умения расписаны в файле exel с некоторыми атрибутам. На данный момент процесс добавления происходит в ручную с медленным заполнением каждого обязательного поля. Если файл SkillName_ClassicAden-ru относительно быстро заполняется, то вот Skillgrp_ClassicAden совсем уж долго из-за огромного кол-ва строк. Прощу помощи знающих людей, как можно оптимизировать процесс добавления умений?

Спасибо
 
Здравствуйте. Столкнулся не с тривиальной задачей и хочется получить мнение других пользователей как бы они решали данный вопрос. Задача в следующем - добавить огромное кол-во кастомных умений в клиент игры. Умения расписаны в файле exel с некоторыми атрибутам. На данный момент процесс добавления происходит в ручную с медленным заполнением каждого обязательного поля. Если файл SkillName_ClassicAden-ru относительно быстро заполняется, то вот Skillgrp_ClassicAden совсем уж долго из-за огромного кол-ва строк. Прощу помощи знающих людей, как можно оптимизировать процесс добавления умений?

Спасибо
Ескпоритровать данные с excel и сохранить в читабельный формат .txt - после чего откройте skillgrp и просто вставьте из .txt в редатор и сохраняем :)

Если "понятно, но не понятно".
В редакторе ДАТ (который от ВАСЕК-ов ГОД-Варудовских (World)) открываем наш файл skillgrp - сохраняем его как ТХТ.
Парсим книгу из excel -> храним данные как-то в памяти (условно как statset какой-то) -> делаем вывод в .txt файл взяв за основу структуру из "Сохраненного ТХТ" файла из Редактора ДАТ.
 
Здравствуйте. Столкнулся не с тривиальной задачей и хочется получить мнение других пользователей как бы они решали данный вопрос. Задача в следующем - добавить огромное кол-во кастомных умений в клиент игры. Умения расписаны в файле exel с некоторыми атрибутам. На данный момент процесс добавления происходит в ручную с медленным заполнением каждого обязательного поля. Если файл SkillName_ClassicAden-ru относительно быстро заполняется, то вот Skillgrp_ClassicAden совсем уж долго из-за огромного кол-ва строк. Прощу помощи знающих людей, как можно оптимизировать процесс добавления умений?

Спасибо
Восстановил бы структуру(то что у вас в excel файле ) , под протокол нужного клиента.
 
Восстановил бы структуру(то что у вас в excel файле ) , под протокол нужного клиента.
извините, за глупые уточнения, но я совсем зеленый. Что вы имели ввиду под "восстановлением структуры"?
 
Экспортировать в csv/txt, после чего на любом языке программирования сгенерить по данным из файла строки для SkillGrp и даже для SkillName.
На том же пхп это по сути будет простейший скрипт, от силы на десяток-другой строк.
 
извините, за глупые уточнения, но я совсем зеленый. Что вы имели ввиду под "восстановлением структуры"?
Ну вот у вас есть excell файл, в нем столбцы/ячейки и ряды , 1 ряд 1 умение, 1 ячейка это условно ID/айди , 2 ячейка путь до иконки, 3 ячейка путь до эффекта , и так до ... последней ячейки( не знаю какая она у вас ) для клиента игры такая структура скорее всего не подойдет, причин не так много:
1.Ячейка с иконкой не на нужном индексе( должна быть условно на 3, а у вас на 2), нужно изменить индекс( используя скрипт, удалить данные в одной ячейке и вставить в нужную)
2. Не правильный тип данных на вашей ячейке(условно в вашей ячейке ожидается числовое значение(от 0 до 255), а вы вписали туда символ/строку, либо числовое значение которое выходит, за диапазон (чтобы это решить опять таки используется скрипт и правильный тип структуры(берется либо из клиента, либо из программ которые работают с .dat файлами клиента)
3. Отсутствует сама ячейка( условно 10 ячейка должна быть, а у вас всего 8) (решается так же используя скрипт и правильный тип структуры )
и 4.Разделение между ячейками имеет не то тип который ожидается клиентом( вместо табуляции, вы условно использовали пробел ) ( так же исправляется скриптом, при генерации финального вывода данных ).
 
Последнее редактирование:
Огромная благодарность всем, за ваши комментарии. Сколько мне хватает ума, я понял, что и как нужно сделать. Комментарий ув. Gaikotsu дал зацепку, что подобное можно реализовать на php, тк с ним хотя бы работал. Прощу прощение за ошибки в терминологии ниже по тексту, я не программист. Однако я никогда не работал вне среды Weba и мой слабый ум, дает зацепку, что подобное нужно и можно реализовать через исполняемый скрипт на php. Поиск информации дал наводку на полноценную среду DevelStudio, но я насколько понимаю она устарела и более не поддерживается. Далее на главном ресурсе php нашел несколько ответов: - Передать PHP-код напрямую в командной строке. (но это не очень удобно насколько понимаю); передать запускаемый PHP-код через стандартный поток ввода (stdin). А вот по этому методу совсем не нашел внятной информации.. на том же ютубе об stdin совсем ничего нет и на ютубе вне weba мало о php. Могли бы вы дать наводку где можно почитать о том, как создать исполняемый файл на языке php?

 
дык по сути любой пхп-скрипт можно выполнить просто передав его на выполнение php.exe, т.е. банально
Код:
php your_script.php
А написать скрипт можно в чем угодно - я к примеру чаще всего в WeBuilder'е просто пишу - это конечно не полноценное IDE, но мне хватает его функционала. Это по сути навороченный блокнот как раз для web разработки, работы с html/js/css/php

Ну и пример того как может примерно выглядеть простейший скрипт для генерации строк для клиентских файлов
PHP:
<?php
$data = explode("\n", trim(file_get_contents("data.txt")));
$fh = fopen("output.txt", "w+");

foreach ($data as $d)
{
    $d = explode("\t", $d);
    fwrite($fh, "skill_begin\tskill_id={$d[0]}\tskill_level={$d[1]}\tskill_sublevel={$d[2]}\t...\tskill_end\n");
}

fclose($fh);
?>
 
Последнее редактирование:
  • Мне нравится
Реакции: Низ

    Низ

    Баллов: 5
    Огромное спасибо за помощь и наглядный пример скрипта.
Назад
Сверху Снизу