Jump to content

V3ct0r

Administrators
  • Content Count

    2,887
  • Joined

  • Last visited

  • Days Won

    519

Everything posted by V3ct0r

  1. GameServer.exe версии 1.38 с включенным антиботом. Антибот не работает, если: Персонаж игрока GM или HD (GM-уровень > 0); Персонаж игрока находится в безопасной зоне; Персонаж игрока находится в PvP зоне. Награда за правильно введенный проверочный код настраивается в функции WGPrizeBegin(), файл functions.lua. Использовать на свой страх и риск. Ответственность за вылеты, краши и прочие баги не несу.
  2. Try this: Also add a player check. There is no need to check gold from monsters and NPCs
  3. Check lua_err.txt log. Also there is undefined 'ignore' variable in cha_timer call.
  4. I think it is POST query. Check for hidden input tags
  5. I think you are trying to start GroupServer with incompatible GroupServer.cfg. For example, 1.38 GroupServer.exe with GroupServer.cfg for 1.36 version.
  6. GameServer\resource\script\calculate\forge.lua Function can_unite_item_main if ItemType2 == 49 and ItemType3 == 49 then if Item2_Lv >= 9 or Item3_Lv >= 9 then SystemNotice ( role , "Gem Lv max") return 0 end end
  7. Я привык явно указывать пространство имен, это мой стиль, мне так нравится. Становится понятно, что откуда берется, например, запись std::rand() говорит о том, что я использую функцию rand() из стандартной библиотеки, а не из какой-либо другой. Далее такой пример: у меня есть большой проект, в котором я использую ряд библиотек. Я решил использовать using namespace: using namespace foo; using namespace bar; Из библиотеки foo я использую функцию func1(), а из библиотеки bar - функцию func2(). Все замечательно, все работает. Далее, через какое-то время библиотека foo обновляется и в нее добавляется функция func2() - функция с таким же именем, как и в библиотеке bar. В лучшем случае мой код не скомпилируется, а в худшем, если сигнатуры функций совпадают, это приведет к трудноуловимым багам и ошибкам. Потом есть довольно общие названия различных объектов: string, iterator, list и так далее. Эти имена могут использоваться в разных библиотеках в рамках одного и того же проекта. Таким образом, явное указание пространства имен избавляет от потенциальных проблем в будущем. Что касается данной темы, то рассматриваемая программа очень простая и к тому же учебная. Поэтому вполне можно использовать using namespace std. Но все же я советую указывать пространство имен явно.
  8. [C++] Игра "Угадай число!" Привет! В данной статье мы напишем на языке программирования C++ простую игру "Угадай число". Компьютер загадывает натуральное число от 1 до 100 включительно, а игрок в свою очередь должен его отгадать. Если игрок назвал неправильное число, то компьютер дает подсказку: загаданное число больше или меньше числа игрока. Игра продолжается до тех пор, пока игрок не отгадает число. Статья предназначена для начинающих программистов. Код будет выполнен в рамках стандарта C++11, автор будет использовать среду разработки Microsoft Visual Studio Community 2017 (скачать). Код должен успешно компилироваться как под Windows, так и под Linux, то есть является кроссплатформенным. У игры очень простой алгоритм: 1) Компьютер "загадывает" случайное натуральное число от 1 до 100 включительно; 2) Игрок вводит предполагаемое число (ответ) с клавиатуры; 3) Программа сравнивает два числа и выдает результат. 4) Если числа не равны, то "сказать" пользователю больше его ответ или меньше числа, загаданного компьютером. Перейти на шаг 2; 5) Числа равны. Поздравить игрока с победой и перейти на шаг 1. Приступим к реализации игры. Сначала компьютер загадывает случайное натуральное число от 1 до 100. Для этого используется генератор случайных чисел. Для работы с генератором случайных чисел будем применять 2 функции из стандартной библиотеки: srand() и rand(). Функция srand() нужна чтобы задать начало псевдослучайной последовательности чисел, генерируемой функцией rand(). Обычно, в функцию srand() передается текущее системное время. Чтобы получить текущее системное время можно использовать функцию time(). Функция srand() должна вызываться перед вызовом функции rand(), как правило, это делается один раз в начале работы программы. Если этого не сделать, то функция rand() все время будет "отдавать" одинаковые "случайные числа", и наша игра будет загадывать одни и те же числа. // Запускаем генератор случайных чисел std::srand(static_cast<unsigned int>(std::time(nullptr))); Мы инициализировали генератор случайных чисел и теперь можем загадывать число от 1 до 100 с помощью функции rand(). Чтобы загадать очередное число будем использовать следующее выражение: // Загадываем натуральное число // от 1 до 100 int n = (std::rand() % 100) + 1; Функция rand() может возвращать числа от 0 до 32767 включительно. Чтобы преобразовать этот "первичный" интервал в нужный нам интервал от 1 до 100, можно с помощью оператора % взять остаток от деления на 100 у любого числа из первичного интервала и прибавить к нему 1. Например, функция rand() вернула число 256. Остаток от деления на 100 будет равен 56. Прибавляем единицу и получаем число 57, которое и должен будет отгадать игрок: 256 % 100 = 56 56 + 1 = 57 Далее, после того, как компьютер загадал случайное число, просим игрока ввести его предполагаемый ответ: // Ответ игрока int guess = 0; // Просим игрока ввести ответ std::cout << "Введите число:" << std::endl; std::cout << ">> "; std::cin >> guess; С помощью оператора cin получаем целое число с клавиатуры - ответ игрока, и записываем данное число в переменную guess. Будем спрашивать игрока до тех пор, пока он не отгадает число. Для этого воспользуемся циклом do-while (см. ниже). На данном этапе у нас есть два числа: загаданное компьютером и ответ игрока. Осталось их сравнить. Для сравнения двух чисел воспользуемся оператором if и операторами больше (>) - меньше (<): // Ответ игрока int guess = 0; do { /* Тут получаем предполагаемое число (ответ) от игрока с клавиатуры */ // Проверяем ответ if (n > guess) { std::cout << "Не угадал! Моё число больше." << std::endl; } else if (n < guess) { std::cout << "Не угадал! Моё число меньше." << std::endl; } } while (n != guess); Если игрок не угадал число, то выводится соответствующее сообщение и цикл повторяется. В случае, если игрок угадал число, цикл прерывается и выводится сообщение о победе: // Игрок угадал число std::cout << "Верно! Загадать еще число? (Y/N)" << std::endl; std::cout << ">> "; std::cin >> answer; В конце игры можно просто выйти из программы, а можно спросить игрока, хочет ли он чтобы компьютер загадал еще одно число и тем самым продолжить игру. Для этого поместим написанный выше код в цикл do-while (весь лишний код был заменен на комментарии): // Ответ на вопрос "Загадать еще число?" char answer = 0; // Запускаем генератор случайных чисел // Запускаем игровой цикл do { // Загадываем натуральное число // от 1 до 100 do { // Получаем ответ от игрока // Сравниваем ответ игрока с загаднным компьютером числом } while (/* игрок не угадал число */); // Игрок угадал число std::cin >> answer; } while (std::strchr("Nn", answer) == nullptr); В символьную переменную answer записываем ответ игрока с клавиатуры. Предполагается, что игрок введет символ Y (продолжить игру) или символ N (выйти из игры). Далее с помощью функции strchr() ищем введенный символ в строке "Nn". Таким образом, неважно в каком регистре игрок ввел символ: N или n. while (std::strchr("Nn", answer) == nullptr); Если в строке "Nn" не будет найден символ, введенный игроком с клавиатуры, то функция strchr() вернет нулевой указатель (nullptr) и цикл продолжится. Иначе функция вернет указатель на найденный в строке символ и цикл завершится. То есть, если игрок введет символ N или n, то программа завершится. Если он введет любой другой символ, то будет загадано новое число и игра продолжится. После цикла происходит выход из программы - игра закрывается: return 0; Итак, были отмечены все ключевые особенности реализации варианта игры "Угадай число", поэтому далее приведу полный код программы: #include <iostream> #include <limits> #include <ctime> #include <cstdlib> // Точка входа int main(int argc, char *argv[]) { // Ответ на вопрос "Загадать еще число?" char answer = 0; // Поддержка русского языка setlocale(LC_ALL, "Russian"); // Запускаем генератор случайных чисел std::srand(static_cast<unsigned int>(std::time(nullptr))); // Выводим правила игры std::cout << "Игра \"Угадай число\"" << std::endl; std::cout << "Привет! Я загадал число от 1 до 100. Угадай его!" << std::endl << std::endl; // Запускаем игровой цикл do { // Загадываем натуральное число // от 1 до 100 int n = (std::rand() % 100) + 1; // Ответ игрока int guess = 0; do { // Просим игрока ввести ответ std::cout << "Введите число:" << std::endl; std::cout << ">> "; std::cin >> guess; // Проверим, что пользователь ввел число if (std::cin.fail() == true || (guess <= 0 || guess > 100)) { std::cin.clear(); std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); std::cout << "Введите натуральное число от 1 до 100!" << std::endl; continue; } // Проверяем ответ if (n > guess) { std::cout << "Не угадал! Моё число больше." << std::endl; } else if (n < guess) { std::cout << "Не угадал! Моё число меньше." << std::endl; } } while (n != guess); // Игрок угадал число std::cout << "Верно! Загадать еще число? (Y/N)" << std::endl; std::cout << ">> "; std::cin >> answer; } while (std::strchr("Nn", answer) == nullptr); return 0; } При желании Вы можете добавить выбор игроком уровня сложности, например: Легкий уровень - загадывается число в интервале от 1 до 100, неограниченное число попыток; Средний уровень - загадывается число в интервале от 1 до 1000, число попыток 25; Сложный уровень - загадывается число в интервале от 1 до 10000, число попыток 50. Также можно добавить учет очков, набранных игроками. Чем меньше попыток угадать число сделал игрок, тем больше он зарабатывает очков: <Заработанные очки> = max(0, 100 - <Число ходов>) Очки хранить в памяти приложения или в файле: // score.txt Вася 100 Петя 53 Катя 42 Саша 65 Если у Вас есть какие-либо вопросы или замечания, то пишите о них в этой теме!
  9. Установка CMake "CMake (от англ. cross platform make) — это кроссплатформенная система автоматизации сборки программного обеспечения из исходного кода. CMake не занимается непосредственно сборкой, a лишь генерирует файлы управления сборкой из файлов CMakeLists.txt" - Википедия Привет! В данной статье мы установим CMake под Windows. Этот полезный инструмент позволяет автоматизировать процесс сборки различных проектов. 1) Скачайте дистрибутив CMake с официального сайта. В разделе "Latest Release" (самый последний релиз) найдите таблицу "Binary distributions" (бинарные дистрибутивы) и, в зависимости от разрядности Вашей операционной системы (x86 или x64) и формата дистрибутива (архив .zip или установочный файл .msi), выберите нужную ссылку на скачивание: 2) Вы выбрали дистрибутив в формате .msi. Запустите скачанный установочный файл: 2.1) Согласитесь с лицензионным соглашением: 2.2) В окне "Install options" (настройки установки) установите радио-переключатель в положение "Add CMake to the system PATH for the current user". Это добавит программу в системный путь PATH для текущего пользователя. Опция "Add CMake to the system PATH for all users" добавит CMake в системный путь для всех пользователей компьютера. Также Вы можете попросить установщик создать иконку для запуска CMake на рабочем столе, установив флажок "Create CMake Desktop Icon": 2.3) В окне "Destination Folder" выберите путь, куда Вы хотите установить CMake. Для этого нажмите кнопку "Change" (изменить путь): 2.4) Нажмите кнопку "Install" (установить) в следующем окне, чтобы начать установку: 2.5) Дождитесь конца процесса установки программы: 2.6) CMake установлен! 3) Вы выбрали дистрибутив в формате .zip-архива. Распакуйте архив в нужное Вам место. Например, в D:\cmake Получаем следующую структуру папок: D:\cmake\bin D:\cmake\doc D:\cmake\man D:\cmake\share 3.1) Добавьте CMake в системный путь PATH. Для этого в Свойствах системы нажмите на ссылку "Дополнительные параметры системы": Появится окно "Свойства системы", нажмите на кнопку "Переменные среды": В окне "Переменные среды" выберите переменную Path и нажмите кнопку "Изменить" в нужном разделе: "Переменные среды пользователя" определяет переменные для текущего пользователя, а "Системные переменные" определяет переменные для всех пользователей компьютера. В появившемся окошке "Изменить переменную среды" нажмите на кнопку "Создать" (1), далее в новом поле ввода (2) укажите путь до папки bin из дистрибутива CMake. Для моего примера (см. п. 3): D:\cmake\bin В конце нажмите на кнопку "ОК" (3). Теперь CMake добавлен в системный путь и доступен из любого места! 4) Проверьте работоспособность CMake. Для этого запустите Командную строку (cmd.exe) и выполните следующую команду: cmake --version Вы должны увидеть текущую версию программы: C:\Users\Виктор>cmake --version cmake version 3.12.0 CMake suite maintained and supported by Kitware (kitware.com/cmake). На этом установка CMake завершена! Более детальную информацию по установке и использованию CMake Вы можете найти на официальном сайте.
  10. Hello, @GTspeed! Hope this topic will help you: Also you can use the forum search, probably this question has already been discussed.
  11. +21.5 Mbytes just for items. It is not so little if compare with 400 MBytes of total consumption of memory. And you have other increased limits (CharacterInfo, SceneobjInfo, etc), in summary they can take significant amount of memory.
  12. Hello, @gainster81! What server files do you use?
  13. Hello, @Brothers! Find function GetExp_PKM in file exp_and_level.lua (GameServer\resource\scripts\calculate) and add the following code at the beginning of the function: AddMoney(atk, 0, 1000) where 1000 is the amount of gold the character will receive. function GetExp_PKM(dead, atk) AddMoney(atk, 0, 1000) -- Original code . . . end
  14. The battle for Dream City Map of the battle Two teams, Green and Red, are fighting for Dream City (see the picture above). The winner is the team that scored the most points. The main feature of the battle is the balance: the damage done by the characters does not depend on the level of the characters and their equipment. Also on the map it is impossible to use cooking and some skills. Thus, all players are equal. The player randomly enters the Green or Red team. And, the priority is given to the team in which there are fewer players. Each team has its own base, which is a rectangular area painted in the color of the team. At the bases are NPCs through which players can leave the battle. The player can not interact with the NPC of the enemy team. Being at its base, the character of the player restores 10% of his health every second. Base of the Green Team Base of the Red team Being on the map, live players receive 10,000 gold every minute. Killing a player from an enemy team, the player receives 1 Chaos point and 100,000 gold. Player with the highest number of kills is given a visual effect, and after the battle he receives a reward. Every 5 minutes at random coordinates appear chests, opening up which players can receive valuable items. Also, every 5 minutes in the GM chat the TOP 3 players are listed, who scored the most points. The battle continues for some time, which is specified by the server administrator in the map settings.
  15. Bracelets, belt and handguards This modification adds into the game new types of equipment from 2.x versions - bracelets, belt, handguards. To put a new type of equipment on the character, double-click on the corresponding icon in the character's inventory, after which the equipment will appear in the temporary bag. In order for the equipment to give the character attributes, it is necessary to arrange it in a temporary bag in a certain order (see screenshot): 1 and 2 slots - bracelets; 3 slot - belt; 4 slot - handguards. Equipment has limitations in level and class, the character must meet certain requirements in order to use it. The attributes of the new equipment are specified in ItemInfo.txt, just like for any other type of equipment. Medals with titles The modification allows you to create medals with different titles that appear in brackets before the name of the character (see screenshot). The text and color of the title are specified in ItemInfo.txt. The text of the title is specified in the description of the item, and the color in the 5th field instead of model for Lance. Color has format FFRRGGBB. Some examples of medals: 8901 Medal 1 l0005 10130005 FFFF0000 0 0 0 0 0 25 0 0 0 0 0 1 1 1 1 1 1 32 -1 1 -1 0 0 5 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0 0,1000 10000,10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Admin 8905 Medal 2 l0005 10130005 FF00FF00 0 0 0 0 0 25 0 0 0 0 0 1 1 1 1 1 1 32 -1 1 -1 0 0 5 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0 0,1000 10000,10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 maindev 9000 Medal 3 l0005 10130005 FF0000FF 0 0 0 0 0 25 0 0 0 0 0 1 1 1 1 1 1 32 -1 1 -1 0 0 5 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0 0,1000 10000,10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PkoDEV Colored character names This modification allows you to create necklaces that change the color of the character's name (see screenshot). Unlike the previous version of the modification, the color of the name is specified in ItemInfo.txt in the 6th field instead of model for Carsise in format FFRRGGBB. Examples of necklaces: 0461 Crystal Naiad l0004 10130005 0 FFFF0000 0 0 0 00 25 0 0 0 0 0 1 1 1 1 1 1 210384 -1 40 -1 0 0 5 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 40,40 0,0 0,0 0,0 0,0 0,0 0,0 60,60 0,0 0,0 0 0,1000 10000,10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0462 Nimble Venturer l0004 10130005 0 FF00FF00 0 0 0 00 25 0 0 0 0 0 1 1 1 1 1 1 453940 -1 50 -1 0 0 5 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 60,60 0,0 0,0 0,0 0,0 0,0 0,0 0,0 80,80 0,0 0,0 0 0,1000 10000,10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0463 Labyrinth Wanderer l0004 10130005 0 FF0000FF 0 0 0 00 25 0 0 0 0 0 1 1 1 1 1 1 453940 -1 50 -1 0 0 5 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 50,50 0,0 0,0 0,0 0,0 0,0 0,0 80,80 0,0 0,0 0 0,1000 10000,10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 The modification is compatible with the modification "Medals with titles".
  16. Битва за Город Мечты Карта сражения Две команды, Зеленая и Красная, ведут бой за Город Мечты (см. карту). Побеждает команда, которая за отведенное время набирает наибольшее количество очков. Главной особенностью сражения является баланс: урон, наносимый персонажами, не зависит от уровня персонажа и его экипировки. Также на карте невозможно использовать кулинарию и некоторые умения. Таким образом, все игроки равны. Игрок случайным образом попадает в Зеленую или Красную команду. Причем, приоритет отдается команде в которой меньше игроков. У каждой команды есть своя база, которая представляет собой прямоугольную область окрашенную в цвет команды. На базах находятся NPC через которых игроки могут покинуть бой. Игрок не может взаимодействовать с NPC вражеской команды. Находясь на своей базе, персонаж игрока каждую секунду восстанавливает 10% здоровья. База Зеленой команды База Красной команды Находясь на карте, живые игроки каждую минуту получают 10 000 золота. Убив игрока из вражеской команды, игрок получает 1 очко хаоса и 100 000 золота. Игрок, у которого наибольшее количество убийств, выделяется визуальным эффектом, а по окончанию сражения получает награду. Каждые 5 минут на случайных координатах появляются сундуки, открыв которые игроки могут получить ценные предметы. Также каждые 5 минут в GM чат выводится ТОП 3 игроков, которые набрали наибольшее количество очков. Сражение продолжается в течение определенного времени, которое указывается администратором сервера в настройках карты.
  17. Браслеты, пояс и наручи Данная модификация вводит в игру новые типы экипировки из 2.x версий игры - браслет, пояс, наручи. Чтобы надеть на персонажа новый тип экипировки, необходимо произвести двойной щелчок мышью по соответствующей пиктограмме в инвентаре персонажа, после чего экипировка появится во временном мешке. При этом, чтобы экипировка дала персонажу характеристики, необходимо расположить её во временном мешке в определенном порядке (см. скриншот): 1 и 2 слоты - браслет; 3 слот - пояс; 4 слот - наручи. Экипировка имеет ограничения по уровню и классу, персонаж должен соответствовать определенным требованиям, чтобы ей воспользоваться. Характеристики новой экипировки указываются в ItemInfo.txt, точно так же, как и для любого другого типа экипировки. Медали со званиями Модификация позволяет создавать медали с различными званиями, которые отображаются в скобках перед именем персонажа (см. скриншот). Текст и цвет звания указываются в ItemInfo.txt. Текст звания указывается в описании предмета, а цвет в формате FFRRGGBB вместо модели на Ланса в 5-ом поле. Примеры медалей: 8901 Medal 1 l0005 10130005 FFFF0000 0 0 0 0 0 25 0 0 0 0 0 1 1 1 1 1 1 32 -1 1 -1 0 0 5 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0 0,1000 10000,10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Admin 8905 Medal 2 l0005 10130005 FF00FF00 0 0 0 0 0 25 0 0 0 0 0 1 1 1 1 1 1 32 -1 1 -1 0 0 5 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0 0,1000 10000,10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 maindev 9000 Medal 3 l0005 10130005 FF0000FF 0 0 0 0 0 25 0 0 0 0 0 1 1 1 1 1 1 32 -1 1 -1 0 0 5 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0 0,1000 10000,10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PkoDEV Цветные имена персонажей Данная модификация позволяет создавать ожерелья, которые изменяют цвет имени персонажа (см. скриншот). В отличие от прошлой версии модификации, цвет имени указывается в ItemInfo.txt в 6-ом поле вместо модели на Карциза в формате FFRRGGBB. Примеры ожерелий: 0461 Crystal Naiad l0004 10130005 0 FFFF0000 0 0 0 00 25 0 0 0 0 0 1 1 1 1 1 1 210384 -1 40 -1 0 0 5 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 40,40 0,0 0,0 0,0 0,0 0,0 0,0 60,60 0,0 0,0 0 0,1000 10000,10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0462 Nimble Venturer l0004 10130005 0 FF00FF00 0 0 0 00 25 0 0 0 0 0 1 1 1 1 1 1 453940 -1 50 -1 0 0 5 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 60,60 0,0 0,0 0,0 0,0 0,0 0,0 0,0 80,80 0,0 0,0 0 0,1000 10000,10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0463 Labyrinth Wanderer l0004 10130005 0 FF0000FF 0 0 0 00 25 0 0 0 0 0 1 1 1 1 1 1 453940 -1 50 -1 0 0 5 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 50,50 0,0 0,0 0,0 0,0 0,0 0,0 80,80 0,0 0,0 0 0,1000 10000,10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Модификация совместима с модификацией "Медали со званиями".
  18. Hello, @Develich! Why can't you setup the server by yourself? What is the problem?
  19. Hello, @ahmad! Probably they did optimizations on the source code level. I think you know about "limits" for .bin tables, for example ItemInfo.bin, CharacterInfo.bin and etc. Usually people wants to increase them, but you also can decrease the limits. For instance lets take ItemInfo.bin. In my client one item occupies 868 bytes of memory. So, 6k items (default limit) will occupy about 5 Mbytes of memory, 9k items about 7.5 Mbytes and 32k items about 26.5 MBytes of memory.
×
×
  • Create New...