AIPolicy Editor Lite– небольшая программка для редактирования искусственного интеллекта в игре PerfectWorld. Возможности: Поддержка версии 1.5.3, в которую разработчики PerfectWorld добавили множество полезных процедур, такие как: вызов NPC, генерация ресурсов, отправка заданий, гибкая система управления переменными и множество других процедур, условий, и выбора целей; Остался удобный блочный редактор условий; Полностью на русском языке и все значения разобраны; Массовый экспорт и импорт из других файлов разных версий; Умеет сама делать бекапы; Выбор канала чата в процедуре «Отправка сообщения». Цена: 2 000 рублей Для тех, кто приобрёл этот редактор, данный предоставляется бесплатно! Skype: dimonpw2 [IMG] [IMG] [IMG] [IMG] [IMG]
Доброго времени суток! К вашему вниманию предлагаю вам свои услуги по разработке программного обеспечения любой сложности под Windows и Unix. Также берусь за небольшие Web странички, которые будут взаимодействовать с сервером PW. К каждому проекту отношусь с полной серьёзностью, работу выполняю качественно, без каких либо задержек и денег много просить не буду. Если проект средней сложности, желательно чтобы было техническое задание, но не исключаю возможности обычной связи в скайпе. По завершению вы получите полностью готовый продукт, исходные коды и моё честное слово о нераспространении этого продукта. Обращаться в скайп: dimonpw2
ку всем) На днях возникла прикольная идея, запилить в пв Ability Draft(как в доте) К примеру, после создания персонажа, изначально умений у него нету, учить умения своего класса он не может, но может выбрать умения из общего пула умений всех персонажей. Естественно выбирать персонаж сможет только по 2-3 умения с каждой уважухи. К примеру: [IMG] Это только пример, но если подойти к этому грамотно, может получится неплохая фишка, которая добавить уникальности каждому герою, игроки будут придумывать какие нибудь связки, выбирать приоритеты(уйти в бафы или контроль, или как всё нормально совместить), пвп будут не такие предсказуемые, если еще учитывать умения джина, да и игрокам понравится такое разнообразие. И естественно со всех умений убрать ограничение по оружию, и сделать анимацию на все расы. Что скажите по этой фиче? Ну и собственно не случайно я создал тему в разделе "ищю", всё это мне по силам реализовать, но всё сливается в одну банальную проблему. Нет возможности открыть сервер в материальном плане. Если кто заинтересовался, пишите в лс, там всё обсудим.
Прив всем) Вопрос может быть и нубский, но ответа я в интернете не нашел. Есть идея читать пакеты принятые от игровых служб PW с помощью рефлексии и рекурсии. Допустим есть структура GRoleBase из Gamedbd: public class GRoleBase { public byte version { get; private set;} public int id{ get; private set;} public Octets name{ get; private set;} public int race{ get; private set;} public int cls{ get; private set;} public byte gender{ get; private set;} public Octets custom_data{ get; private set;} public Octets config_data{ get; private set;} public int custom_stamp{ get; private set;} public byte status{ get; private set;} public int delete_time{ get; private set;} public int create_time{ get; private set;} public int lastlogin_time{ get; private set;} public GRoleForbid[] forbid{ get; private set;} public Octets help_states{ get; private set;} public int spouse{ get; private set;} public int userid{ get; private set;} public Octets cross_data{ get; private set;} public byte reserved2{ get; private set;} public byte reserved3{ get; private set;} public byte reserved4{ get; private set;} } В этой структуре есть массив из GRoleForbid, и каждый элемент в массиве содержит следующую структуру: public class GRoleForbid { public byte type { get; private set;} public int time { get; private set;} public int createtime { get; private set;} public Octets reason { get; private set;} } И мой метод чтения: public static void DoReflection(object cls, PacketReader packetReader) { foreach (var prop in cls.GetType().GetProperties()) { switch (prop.PropertyType.ToString()) { case "System.Byte": { prop.SetValue(cls, packetReader.ReadByte()); break; } case "System.Int32": { prop.SetValue(cls, (int)packetReader.ReadInt32()); break; } case "SGR.Octets": { prop.SetValue(cls, packetReader.ReadOctets()); break; } default: { if (prop.PropertyType.IsArray) { var length = packetReader.ReadCUInt32(); object value = Activator.CreateInstance(prop.PropertyType, length); //prop.PropertyType равняется GRoleForbid[] foreach (var item in (object[])value) { //Перед вызовом следующего метода, нужно создать экземпляр. DOReflection(item, packetReader); } prop.SetValue(cls, value); } else { object value = Activator.CreateInstance(prop.PropertyType); prop.SetValue(cls, value); DoReflection(value, packetReader); } break; } } } } Проблема возникла с создание экземпляра класса в массиве. Если брать по примеру, то создать экземпляр GRoleForbid. Но для создания нужно узнать сначала тип этого элемента, ведь этот метод будет читать любые структуры, отправленные в этот метод. Собственно в этом и заключается вопрос, как это можно сделать? P.S От безысходности уже хотел согрешить, и использовать велосипед, переведя тип массива в строку и убрать квадратные скобки. Но это уже, по моему мнению, какой-то ад получается.
Привет всем) Представляю Вам свою разработку: [IMG] AIPolicy Editor - редактор логики монстров в MMORPG игре Perfect World. С помощью данного редактора Вы сможете создавать уникальных монстров и боссов, которые будут не только бить персонажа, но и взаимодействовать с миром, создавать новых монстров, использовать умения (и многое другое) при определённых условиях. Редактор предоставляет Вам удобный способ редактирования условий для выполнения действий, окно выбора умения с его описанием, быстрыми перехода между связными действиями и удобный расширенным поиском. Большинство полей расшифровано и подробно описано, чтобы начальный пользователь не запутался в создание логики монстра. Редактор поддерживает AIPolicy.data от версии 1.2.6 до 1.5.1, и в будущем будет обновляться до новых версий. Также в случае возникновения ошибки (никто от этого не застрахован), в редактор встроена функция мгновенной отправки ошибки разработчику, для исправления этой ошибки (по желанию, можно прикрепить сам файл AIPolicy.data). Возможности: Загрузки, редактирования, сохранения файла AIPolicy.data версий от 1.2.6 до 1.5.1 Загрузка файла с описанием умений всех версий и удобный выбор умений Удобный редактор условий, никакого текста, только элементы управления Массовое редактирование всех полей и элементов Удобное массовое позиционирование элементов в программе Сортировка Массовое копирование в буфер обмена и вставка из буфера Расширенный поиск со встроенным редактором Удаления всех пустых контроллеров Удобное редактирование сообщений в игре с выбором канала чата. Расширенный список настроек, включая четыре разных дизайна под Ваш вкус Удобный интерфейс программы с перемещением окон и смены их размера Отправка сообщения разработчику при возникновения ошибки с возможностью прикрепить AIPolicy.data и strskills.txt По желанию, делать Backup файла перед сохранением изменений Скриншоты программы: [IMG] [IMG] [IMG] [IMG] Цена: 5 000 рублей Первым трём покупателям скидка 5%:) Skype: dimonpw2
Есть класс: public class LombardBase { public string ProductName; //Наименование товара public float AssessedValue; //Оценочная стоимость public float AmountOfProduct; //Cумма, выданная под залог public DateTime DeliveryDate; //Дата сдачи public DateTime StorageLife; //Cрок хранения public int[] IDPerson; //Индексы клиентов } Нужно чтоб получилась некая структура данных, пользователь в форме вводит все поля, а программа добавляет новый класс. В ООП слаб, а тут еще и курсач дали) До этого темки делал постоянно так: LombardBase[] LB = new LombardBase[255]; LB[0].ProductName = "Hello world!"; Но мне кажется что это как-то не правильно будет) Пробовал также с списками, но тоже не заладилось( List<LombardBase> LB = new List<LombardBase>(); ) Добавляется 1 элемент, и все. Может кто подсказать решение проблемы, или хотяб как правильно сформулировать мысль чтоб гугл помог:D
Здравствуйте, может кинуть ссылку на топ французских серверов Perfect World?
Имена участников (разделяйте запятой).