-
Content Count
71 -
Joined
-
Last visited
-
Days Won
14
Posts posted by Ropedann
-
-
Всем привет!
Решил возобновить работу над проектом.
Начал писать ItemInfoManager
Пока что вот так:
имеется проблема с импортом иконок и их привязкой. Если кто то может помочь решить проблему Добро пожаловать в репозиторий гит! Всетаки делаем общее дело(проект OpenSource и всегда будет в шаре пока пиратия жива =D ).
Так же исправил проблему с кодировкой в NPCManager
Было:
Стало:
- 1
-
Решено!
Сделал так (решил попробовать использовать функцию "SendExchangeXData"):function newbie_traider () Talk( 1, "Всё для кача: Привет! Сегодня распродажа! " ) Text( 1, "Торг ", BuyPage ) Text( 1, "Рынок \"Всякой-Всячены\"", SendExchangeXData) InitExchangeX() ExchangeDataX(2438,10,3094,1,1) ExchangeDataX(2438,25,3095,1,1) ExchangeDataX(2438,10,3096,1,1) ExchangeDataX(2438,25,3097,1,1) ExchangeDataX(2438,30,3098,10,1) ExchangeDataX(2438,30,3099,10,1) Defence( 3844 ) Defence( 3845 ) Defence( 3141 ) Defence( 1847 ) Defence( 1848 ) Defence( 1849 ) Other( 3088 ) Other( 3089 ) Other( 3090 ) Other( 3091 ) Other( 3092 ) Other( 3093 ) AddNpcMission ( 109 ) end function feary_traider() Talk( 1, "Продовщица фей: Приветик, я тебе могу предложить все для феи, заходи!) " ) Text( 1, "Посмотреть ", BuyPage ) Text( 1, "Свадьба фей ", OpenEidolonMetempsychosis ) Text( 1, "Рынок фей", SendExchangeXData) InitExchangeX() ExchangeDataX(2438,50,578,10,1) ExchangeDataX(2438,50,2312,10,1) ExchangeDataX(2438,30,280,5,1) ExchangeDataX(2438,30,279,5,1) ExchangeDataX(2438,30,278,5,1) ExchangeDataX(2438,30,277,5,1) ExchangeDataX(2438,30,276,5,1) InitTrade() Defence( 0262 ) Defence( 0239 ) Defence( 3152 ) Defence( 0226 ) Defence( 0225 ) Defence( 0222 ) Defence( 0224 ) Defence( 0223 ) AddNpcMission ( 107 ) end
- 3
-
Используемая сборка: PKO 1.38 [RUS]
Создаю 2 НПС черный торговец. Товар в скрипте отличается, но на самом сервере продают один и тотже товар.
NpcScript01.lua:
function feary_traider() Talk( 1, "Продовщица фей: Приветик, я тебе могу предложить все для феи, заходи!) " ) Text( 1, "Посмотреть ", BuyPage ) Text( 1, "Свадьба фей ", OpenEidolonMetempsychosis ) Text( 1, "Рынок фей", SendExchangeData) InitExchange() ExchangeData(2438,50,578,10,2) ExchangeData(2438,50,2312,10,2) ExchangeData(2438,30,280,5,2) ExchangeData(2438,30,279,5,2) ExchangeData(2438,30,278,5,2) ExchangeData(2438,30,277,5,2) ExchangeData(2438,30,276,5,2) InitTrade() Defence( 0262 ) Defence( 0239 ) Defence( 3152 ) Defence( 0226 ) Defence( 0225 ) Defence( 0222 ) Defence( 0224 ) Defence( 0223 ) end function newbie_traider () Talk( 1, "Всё для кача: Привет! Сегодня распродажа! " ) Text( 1, "Торг ", BuyPage ) Text( 1, "Рынок \"Всякой-Всячены\"", SendExchangeData) InitExchange() ExchangeData(2438,10,3094,1,1) ExchangeData(2438,25,3095,1,1) ExchangeData(2438,10,3096,1,1) ExchangeData(2438,25,3097,1,1) ExchangeData(2438,30,3098,10,1) ExchangeData(2438,30,3099,10,1) Defence( 3844 ) Defence( 3845 ) Defence( 3141 ) Defence( 1847 ) Defence( 1848 ) Defence( 1849 ) Other( 3088 ) Other( 3089 ) Other( 3090 ) Other( 3091 ) Other( 3092 ) Other( 3093 ) end
variable.lua
ЦитатаChangeItemList = {}
ChangeItemList[1] = { 2438,10,3094,1 }
ChangeItemList[2] = { 2609,25,3095,1 }
ChangeItemList[3] = { 2438,10,3096,1 }
ChangeItemList[4] = { 2438,25,3097,1 }
ChangeItemList[5] = { 2438,30,3098,10 }
ChangeItemList[6] = { 2438,30,3099,10 }
ChangeItemList[7] = { 2438,50,578,10 }
ChangeItemList[8] = { 2438,50,2312,10 }
ChangeItemList[9] = { 2438,30,280,5 }
ChangeItemList[10] = { 2438,30,279,5 }
ChangeItemList[11] = { 2438,30,278,5 }
ChangeItemList[12] = { 2438,30,277,5 }
ChangeItemList[13] = { 2438,30,276,5 }
Может кто то сталкивался и исправлял уже данную проблему. Подскажите пожалуйста.
-
В 05.02.2023 в 10:25, BXlevovich сказал:На первом видео видно , что зависает gui, на втором же плавное заполнение, либо асинхронность, либо в отдельном потоке загрузка выполняется.
там gui подвисает так как погружается новая форма я думаю.
-
В 05.02.2023 в 10:33, BXlevovich сказал:@Ropedann в твоём примере можно спокойной обойтись без интерфейса.
Интерфейсы - это как спецификация, которая определяет какие методы должен содержать класс, если он хочет следовать этому интерфейсу. Они позволяют разработчикам создавать код, который может быть использован вместе с другими классами, не зная их реальной реализации. Это повышает гибкость и повторную используемость кода.
IAnimal - это интерфейс, который определяет метод animalSound().
Pig - это класс, который реализует интерфейс IAnimal и переопределяет метод animalSound().
Спасибо за ответ.
-
Думаю многие знают что в программировании существует такая штука как [ interface ]
Не могу ни как понять зачем и для чего они нужны. Везде описано все как то в общих чертах. Пишут и рассказывают как ими пользоваться, но зачем ни кто адекватно объяснить не может.
Ниже привожу пример использования интерфейса. Но по сути все бы работало и без него.
internal interface IAnimal { void animalSound(); } class Pig :IAnimal { public void animalSound() { Console.WriteLine("wee wee wee..."); } } Pig pig = new Pig(); pig.animalSound();
Хотелось бы вызвать пояснительную бригаду.
-
В 15.08.2022 в 15:39, V3ct0r сказал:Привет, пока что нет не хватает времени из-за учебы в универе. Сейчас на последнем курсе учусь и занят дипломом и закрыванием долгов. Но как только под разгребусь обязательно продолжу работу.
- 1
-
Кто то знает как добавлять в редактор новые текстуры и объекты?
-
Кнопок удаления предметов и блокировки инвернторя не хватает.
- 1
-
2 часа назад, Artstyle сказал:Давненько уже есть вопрос, для чего делают однодневки.
Да прикол в том что Один и тот же чувак это делает. причем из-за бугра. Очень подозрительно и спамом попахивает.
-
Что то много стало серверов без описания вам не кажется это подозрительным
-
В данной теме по подробней разобрал тему кодирования русских символов.
И предоставил исходный код нароботок. при желании можно разобраться.
Скоро внесу его в проект ServerManager
- 1
-
Полный код с кодирование и декодированием
static void Main(string[] args) { string LuaText = @"\206\240\243\230\232\229 \209\236\229\240\242\232"; string TextLua = @"<t> Добро Пожаловать!<n><t>Приходи ко мне, если у тебя есть вопросы относительно классов персонажей. И обдумывай свой выбор по мнению кем быть.<n><t>Ещё я хочу тебе поведать где продаётся неплохое оружие в <pАтланте>.<n><t>Теперь когды ты поднимаешь драгоценные уровни нажимай клавиши Ctrl + A, для того чтобы зайти в окно своих характеристик. Каждый поднятый тобой уровень даёт тебе очки характеристик. <n><t>У тебя в расположении имеется 5 видов антрибутов, таких как: Сила ,которая увеличивает твою атаку в ближнем бою; Ловкость, которая увеличивает твою скорость боя и уворот; Точность, которая увеличивает твоё шанс на попадение и усиливает твою мощь; Дух, который увеличивает твой максимальноый запас маны и магический урон;И Телесложение, которое увеличивает твой запас жизни и Брони."; char[] a = LuaText.ToCharArray(); char[] charTextLua = TextLua.ToCharArray(); List<byte> bytes = new List<byte>(); byte[] bytesTextLua = System.Text.Encoding.GetEncoding(1251).GetBytes(charTextLua); string chars = ""; for (int i = 0; i < a.Length; i++) { if (Char.IsNumber(a[i]) && a[i] != '\\') { chars += a[i]; } else if (Char.IsWhiteSpace(a[i])) { bytes.Add(Convert.ToByte(a[i])); } else if (Char.IsPunctuation(a[i]) && a[i] != '\\') { bytes.Add(Convert.ToByte(a[i])); } if (chars.Length == 3) { byte t = Convert.ToByte(chars); bytes.Add(t); chars = ""; } } Console.WriteLine(DecoderLua(bytes.ToArray())); foreach (var item in CoderLua(charTextLua)) { Console.Write(item); } } public static string DecoderLua(byte[] byteArray) { return System.Text.Encoding.GetEncoding(1251).GetString((byteArray)); } public static string[] CoderLua(char[] charArray) { byte[] byteArray = System.Text.Encoding.GetEncoding(1251).GetBytes(charArray); List<string> strList = new List<string>(); for (int i = 0; i < byteArray.Length; i++) { strList.Add("\\"); strList.Add(byteArray[i].ToString()); } return strList.ToArray(); } }
- 1
- 1
-
разобрался можно закрывать..
Если кому интересно получилось вот так:
static void Main(string[] args) { string LuaText = @"\206\240\243\230\232\229 \209\236\229\240\242\232"; // Входная строка char[] a = LuaText.ToCharArray(); // Переводим строку в массив символов List<byte> bytes = new List<byte>(); // Создаем массив байт string chars = ""; // создаем переменную для запеси символов for (int i = 0; i < a.Length; i++) // Проходим в цикле по массиву символов { if (Char.IsNumber(a[i]) && a[i] != '\\') // Если символ равен числу И НЕ РАВЕН \ то записываем его в переменную chars { chars += a[i]; } else if (Char.IsWhiteSpace(a[i])) // Если символ является пробелом то записываем сразу в массив байт { bytes.Add(Convert.ToByte(a[i])); } else if (Char.IsPunctuation(a[i]) && a[i] != '\\') // Если символ является знаком пунктуации то сразу записываем в массив байт { bytes.Add(Convert.ToByte(a[i])); } if (chars.Length == 3) // Доп условие если длина переменной равна 3 то конвертируем ее в байт и записываем в массив поле очищаяем. { byte t = Convert.ToByte(chars); bytes.Add(t); chars = ""; } } Console.WriteLine(DecoderLua(bytes.ToArray())); // Вызываем метод перевода массива байтов в символы } public static string DecoderLua(byte[] byteArray) { return System.Text.Encoding.GetEncoding(1251).GetString((byteArray)); // Переводим массив байтов в символы }
Код костыльный но вроде рабочий(Ну и над названием переменных поработать нужно)
- 1
- 1
-
Всем привет, многие знают что я пишу некий Server Manager. Для упращения работы с сервером и его разработки.
И в процессе я сталкнулся с такой задачей.
Как все знают Сервер с Кририлицей работает не очень хорошо.
И многие прибегают к кодированию Русского текста в байткод.
Типа токого:
\196\238\225\240\238 \239\238\230\224\235\238\226\224\242\252!
Существует программа которая помогает разработчикам в кодировании и дикодировании этого.
Но задача Server Manager Объеденить весь этот софт в одном приложении.
И так перейдем к сути.
С толкнулся я с тем что не могу разобраться в данной строке.
Понятно что она основывается на таблице ASCII
И написав вот такой небольшой код на C# У меня получилось адекватно декадировать данную строку.
static void Main(string[] args) { string LuaText = @"\196\238\225\240\238 \239\238\230\224\235\238\226\224\242\252!"; byte[] buffer = new byte[] { 196, 238, 225, 240, 238, 32, 239, 238, 230, 224, 235, 238, 226, 224, 242, 252 }; Console.WriteLine(DecoderLua(buffer)); } public static string DecoderLua(byte[] byteArray) { return System.Text.Encoding.GetEncoding(1251).GetString((byteArray)); }
Вывод в консоль:
не смог придумать адекватного способа избавляться от '\' - слэшэй и простовлять пробелы.
Может быть есть какаято библиотека для работы с подобными строками.
Так как штатными методами по типу replace, split и.д. особо выходит.
Зарание спасибо за помощь.
-
-
3 минуты назад, champ сказал:Проще будет найти какую-то либку типа text editor, которая будет подсвечивать. Ручками писать подсветку будет тяжко и долго (если мы говорим о качественном и полностью рабочем коде).
Я нашел библеотеку ICSharpCode.TextEditor
Но не понял как в ней сделать подсветку. Посути как то можно но я не нашел. -
Пока было время накидал небольшой шаблочик для дальнейшего гениратора Lua кода для НПС
Единственной пока не придумал как сделать подсветку синтаксиса. может быть кто то подскажет что то.
-
11 часов назад, V3ct0r сказал:Привет, @Ropedann!
Хочу внести свой вклад в твой проект. Написал редактор списков NPC (файлов GameServer\resource\<map>\<map>npc.txt ). Pull Request отправлен на GitHub.
Я не силен в C#, поэтому мой код может быть не очень качественным. Также хочу поблагодарить @champ за оказанную помощь в решении проблем, с которыми я столкнулся в ходе разработки.
Надеюсь, ты не забросишь этот проект.
Огромное спасибо. Очень мотивирует что комьюнити интересно и оно делает свой вклад)
Главное что бы оно работало без ошибок и вреда для чужих txt файлов в качестве кодировки и формата который у них заведен. Так как сейчас у многих есть исходники нашей игры и многие txt файлов могут имень немного другой формат нежеле стандартный.
Один человек из компьюнити предлогал мне присоединять не отдельные файлы, а сразу папку ресурс и с одним условием что все txt файлы в шапке будет расписанн формат и по нему будут генирироваться все ячейки для изменени. Но это довольно долгая и кропотливая работа. И такую реализацию можно будет прикрутить в дольнейшем.- 1
- 2
-
Временно приостановил разработку из-за нехватки времени(Очень много работы.) Как только разгребу дела продолжу радовать вас результатами.
- 1
-
Сделал чтение файла. Пока что версия чтения сыровата и достаточно медленная. В дальнейшем улучшу.
- 1
-
Да блин это гениально! =D Я писал лаунчер на основе идеии что клиент лежит на фтп сервере и есть софт который гененрирует хэш суммы для каждого файла и измененые файлы заносит в отдельный список после игрок уже получает список этих файлов и качает. а используя гит это все можно опустить)
19 часов назад, champ сказал:Согласен с Вами. Не знаю, почему мне данная идея не пришла в голову, когда был свой сервер В любом случае, надеюсь, что кому-то пригодится.
-
Классаная идея!)
- 1
-
Возможно в режими совсместимости винды запустить никогда на 10ке не замечал такой проблемы.
Piratia Online - Server Manager
in Пиратия: Разработка
Posted · Report reply
Может кто то знает каким алгоритмом шифруется пароль
для CFG файлов?