-
Posts
552 -
Joined
-
Last visited
-
Days Won
2
Content Type
Profiles
Forums
Downloads
Gallery
Articles
Everything posted by Go-piratia
-
variable.lua: MapExpZero = {} MapExpZero["Карта"] = true MapExpZero["Карта2"] = true MapExpZero["Карта3"] = true exp_and_level.lua: Находим функцию: function ShareTeamExp ( dead , team_atker , dead_exp , The_Killer) И в ней находим строчку: exp = exp + exp_up К ней добавляем: exp = exp + exp_up* zero_exp Затем выше этой строчки добавим код: zero_exp = 1 local map_name = GetChaMapName (TurnToCha(t[i]) ) if(MapExpZero[map_name] ~= nil)then zero_exp = 0 end В итоге у Вас должно получиться так: zero_exp = 1 local map_name = GetChaMapName (TurnToCha(t[i]) ) if(MapExpZero[map_name] ~= nil)then zero_exp = 0 end exp = exp + exp_up* zero_exp
-
Открываем npcsdk.lua Ищем function Buy и заменяем все на это function Buy( character, npc, trade, itemtype, index1, index2, count ) local antibuy = GetChaStateLv ( character , 5 ) if antibuy == 0 then PRINT( "Buy" ) itemtype = itemtype + 1 index1 = index1 + 1 if trade[itemtype] == nil or trade[itemtype].item == nil or trade[itemtype].item[index1] == nil then PRINT( "Buy: Function error." ) SystemNotice( character, "Buy: Функция ошибочна. " ) return LUA_FALSE end local itemid = trade[itemtype].item[index1] local statelv = 1 local statetime = 3 --Задержка (в секундах) SafeBuy( character, itemid, index2, count ) AddState ( character, character, 5, statelv, statetime ) return LUA_TRUE else SystemNotice(character, "Покупать можно каждые 3 секунды. ") return LUA_FALSE end end Чуть выше находим function sale и также все заменяем function Sale( character, npc, index, count ) local antisale = GetChaStateLv ( character , 5 ) if antisale == 0 then PRINT( "Sale" ) if index == nil or count == nil then PRINT( "Sale:Function parameter error!" ) SystemNotice( character, "Sale: Функция ошибочна. " ) return LUA_FALSE end local statelv = 1 local statetime = 3 --Задержка (в секундах) SafeSale( character, index, count ) AddState ( character, character, 5, statelv, statetime ) return LUA_TRUE else SystemNotice(character, "Продавать можно каждые 3 секунды. ") return LUA_FALSE end end
-
Портал карты(динамичный) Идём: Сервер/resource/карта/ctrl.lua Видим: function get_map_entry_pos_garner2() -- local POS_X=Координаты local POS_Y=Координаты return POS_X , POS_Y end function init_entry(map) SetMapEntryMapName(map, "карта") -- SetMapEntryTime(map, "2006/10/18/14/0", "0/6/0", "0/0/сколько открыт порт", "0/0/сколько открыта карта") -- end Например для хаоса: function get_map_entry_pos_garner2() -- координаты local POS_X=1370 local POS_Y=532 return POS_X , POS_Y end function init_entry(map) SetMapEntryMapName(map, "darkblue") -- карта - ледынь SetMapEntryTime(map, "2006/10/18/14/0", "0/6/0", "0/0/30", "0/0/45") -- карта открывается на 45 минут (тп есть 30 минут) end А теперь идём в файл entry.lua и функции begin_enter_карта меняем: function begin_enter_карта(role, copy_mgr) MoveCity(role, "Название из ScriptDefine.lua") Название портала Идём: Сервер/resource/карта/entry.lua Видим: function after_create_entry(entry) local copy_mgr = GetMapEntryCopyObj(entry, 0) -- local EntryName = "Надпись над тп" SetMapEntryEventName( entry, EntryName ) Портал между картами(статичный) Идём: Сервер\resource\magicsea\magicseaswhmap.txt (для залива сокровищ) Видим: 5 2492 4 87711,375611 -1 jialebi 73411,103211 1 Magical Ocean - Caribbean Переносим в строчку в (например): Сервер\resource\garner\garnerswhmap.txt (для аскарона) при этом меняя координаты. Удачи
-
Идем в файлы нужной нам карты resourse/MapName/MapNameNpc.txt: Между значениями должны быть табы [TAB] //Serial NPC Name NPC Type Chrindex ID Show Mini-map Coordinates starting point Coordination Goal NPC placement Region Region ID NPC Script info manage Test Status 1 New Npc 1 733 13 27125,38075 27125,38075 120 Owl City 1 0 NewNpc 0 Покупка предметов function NewNpc () Talk( 1, "Normal Seller" ) Text( 1, "Trade", BuyPage) Text( 1, "Nothing...", CloseTalk) InitTrade() Weapon( ItemID ) -- предмет появится на странице оружия Defence( ItemID ) -- предмет появится на странице одежды Other( ItemID ) -- предмет появится на странице другого end Обмен репутации function NewRep() Talk( 1, "Exchanger Rep for Item!" ) Text( 1, "Exchange Item", JumpPage, 2 ) Talk(2,"Do you want to exchange YYYY REP for XXXX item?") InitTrigger() TriggerCondition( 1, HasCredit,YYYY ) TriggerCondition( 1, HasLeaveBagGrid, 1 ) TriggerCondition( 1, KitbagLock, 0 ) TriggerAction( 1, DelRoleCredit,YYYY ) TriggerAction( 1, GiveItem, XXXX,1,4 ) TriggerFailure( 1, JumpPage, 3) Text(2,"XXXX Item for YYYY reputation points" ,MultiTrigger,GetMultiTrigger(),1) Talk( 3, "Sorry, you do not have the required Reputations Points. I cannot exchange it for you." ) end Говорящий NPC function ChaSay(role,target,text) local pkt = GetPacket() local tid = GetCharID( target ) WriteCmd( pkt, 501 ); WriteDword( pkt, tid ); WriteString( pkt, text); SendPacket( role, pkt ); end function cha_npc_timer(ignore, character,freq,time) local name = GetChaDefaultName (character) local target = find_target(character,300) local playername = GetChaDefaultName (target) ChaSay(target,character, "Э, " ..playername.. " сюда иди!" ) end Hook:AddPostHook("cha_timer", cha_npc_timer, 2) Разговоры с NPC по времени Скрипт NPC: function pn_FuncName() InitTrigger() TriggerCondition(1, CheckTime, 1400, 1800) -- NPC работает с 14:00 до 18:00 TriggerAction(1, JumpPage, 1) -- Если мы взаимодействуем с NPC в указанный интервал, то NPC работает с нами. TriggerFailure(1, JumpPage, 2 ) -- В противном случае мы попадаем на страницу, где нам говорят, что в данное время нельзя "поговорить" с NPC. Start(GetMultiTrigger(), 1) Talk( 1, "Я буду с тобой говорить! " ) Talk( 2, "Я НЕ буду с тобой говорить! " ) end Затем в functions.lua добавляем функцию CheckTime: function CheckTime(character, i1, i2) local hour = tonumber(os.date("%H")) * 100 local minute = tonumber(os.date("%M")) local check = hour + minute if check >= i1 and check <= i2 then return LUA_TRUE end return LUA_FALSE end Далее функцию следует добавить в список conditions в файле MissionSdk.lua elseif conditions[i].func == CheckTime then PRINT( "ConditionsTest: CheckTime") local ret = CheckTime(character, conditions[i].p1, conditions[i].p2) if ret ~= LUA_TRUE then PRINT( "ConditionsTest: CheckTime = false" ) return LUA_FALSE end
-
Что представляют из себя карты? Каждая папка, кроме папки scripts является картой. Каждая карта имеет следующую структуру: 1. ctrl.lua - настройка самой карты (конфигурация, логика при входе / выходе на карту и т.д.) 2. {mapName}ChaSpan.txt - спаун нескольких монстров в виде прямоугольных областей на карте (можно указать размеры спота, мобов которые будут рандомно генерится, кол-во мобов, ID региона и т.д.) 3. {mapName}Entity.lua - создание ресурсов (объект с предметами внутри) и причал для корабля (функции CreateBerthEntity, CreateResourceEntity) 4. {mapName}monster_conf.lua - можно точечно расставлять мобов на карте(функция CreateCha), а так же можно расставлять погодные условия(функция AddWeatherRegion) 5. {mapName}npc.txt - все NPC на этой карте 6. {mapName}swhmap.txt - телепорты (синие кристаллики) 7. Остальные lua файлы зачастую - Логика действия карты или дополнительные конфигурации и таблицы Как добавить существующую карту? Рассмотрим на примере добавления карты CrystalShore. Добавляем файлы карты в папку resource. Открываем Server/resource/MapInfo.txt и вставляем: 42 CrystalShore CrystalShore 1 50,50 3,50,50 255,255,255 Компилируем MapInfo.txt в бинарник и закидываем его с заменой в папку клиента bin/srcipt/table. Переносим файлы .map, .obj и .rbo в папку клиента bin/map, а файлы миникарты в bin/textures/minimap/CrystalShore. Далее открываем Server/resource/script/birth/birth_conf.lua и вставляем: AddBirthPoint("Crystal Shore", "CrystalShore", 157,127) AddBirthPoint("Crystal Shore", "CrystalShore", 378,174) Далее открываем Server/resource/script/MisScript/ScriptDefine.lua и дописываем туда: AddMap("CrystalShore", "Crystal Shore") В любой gameserver.cfg добавляем: map = CrystalShore Переместиться на карту мы можем с помощью команды: &move 157,127,CrystalShore
-
ID моба Название моба Портрет Тип модели Тип логической модели Номер структуры Suite Serial Suite Quantity Вид головы Вид лица Вид тела Вид рук Вид ног Вид оружия в левой руке Вид оружия в правой руке Крылья ID эффекта EeffID Номера действующих эффектов Тень (0-нет,1-да) ID действий Прозрачность (100-непрозрачный,0-невидимый) Звук ходьбы Звук дыхания Звук смерти Можно ли контролировать (0-нет,1-да) Ограничение в районе Уровень расположения над землей Одетые шмотки Длина Ширина Высота Дапозон противоречия Возраждение Смерть Эффект возраждения Эффект смерти Действие во время бездействия Мгновеное действие во время смерти Эффект отображения оставшегося ХП Атака может быть отклонена(0-нет,1-да) Подтверждение использования ветра(0-нет,1-да) Сценарий Использует оружие(0-нет,1-да) ID Навыков Шанс использования навыков Дроп лист Шанс выпадения предмета Предельное кол-во Шанс неудачи Приставка уровня Дроп лист квестовых вещей Шанс выпадения ИИ (Искуственный Интелект) Поворот Радиус обзора Шум Получение опыта Свет mobexp Лвл Макс.ХП ХП Макс.МН МН Мин. атк Макс. атк ПР Защита Шанс попадания Шанс уклонения Шанс критического удара Шанс выпадения Реген ХП Реген МН Скорость атк Диапозон атаки Радиус преследования Скорость бега Шанс выпадения ресурсов Сила Ловкость Точность Телосложение Дух Удача left_rad Гильдия Титл Профессия Опыт Необходимое кол-во опыта для следующего уровня Репутация Очки статов Очки навыков Деньги Вид камеры stor mxsail sail stasa scsm tstr tagi tdex tcon tsta tluk tmxhp tmxsp tatk tdef thit tflee tmf tcrt threc tsrec taspd tadis tspd tspri tscsm tsfar
-
01 ID 02 Название 03 Иконка 04 Модель предмета на земле 05 Текстура Ланса 06 Текстура Карциза 07 Текстура Филлис 08 Текстура Ами 09 неизвестно 10 неизвестно 11 Тип предмета* 12 неизвестно 13 неизвестно 14 неизвестно 15 возможность чинить (0/1) 16 возможность передать (0/1) 17 возможность подобрать вещь с земли(0/1) 18 возможность выкинуть (0/1) 19 возможность удалить (0/1) 20 размер стека (1-99 - максимальный размер вещей в стеке) 21 неизвестно 22 Цена(в магазине, при продаже она будет делиться на два) 23 Раса (1-Ланс и тд.) 24 Минимальный уровень персонажа 25 Использование классами (JobType.lua) 26 неизвестно 27 неизвестно 28 слоты под предмет (Look.lua) 29 специальные слоты 30 значение в определении местоположения (любое) 31-51 Процент бонусов (характеристик) 52-72 Постоянные харсактеристики 73 ПР (физ. ресист) 74 предмет для левой руки 75 Энергия предмета (кораллы, и др.) 76 Прочность 77 Max instantiation hole value 78-84 неиспользованный материал для корабля 85 Скорость корабля 86 Эффект предмета (LUA-функция при использовании предмета -> ItemEffect.lua) 87 Эффект при отображении 88 item bind effect 89 item bind effect dummy 90 Сила предмета (для использования - поставьте в первый слот) 91 item drop model effect 92 Использование эффекта 93 Описание 94 Примечания
-
Администраторы Для начала разберем, кое что, не менее важное. Все администраторы могут делиться на уровни. Вот список: 99 - можно использовать все команды 1-98 — запрещается использование некоторых команд 0 - обычный игрок (их можно посмотреть в базе данных) Получение уровня администратора: Попросить у руководителя Редактировать доступ и сами команды можно в файле function.lua по адресу GameServer\resource\scripts\calculate\variable Команды Каждая GM-команда пишется в Местный чат, и начинается со знака &. &addkb <кол-во слотов в инвентаре>, ID цели – добавить слоты цели &addmoney сумма – добавить деньги игроку &addexp опыт – добавить опыт игроку &addsailexp опыт – добавить опыт кораблю игрока &addlifeexp опыт – добавить жизненный опыт &qcha точное_имя_игрока_в_игре — ID персонажа, координаты и другое Серверные команды &gamesvrstop <время> — через какое время GameServer.exe остановится &getping - узнает текущий пинг &updateall - обновляет, не выключая сервер всю папку script &missdk - обновляет все SDK-файлы &reload ItemInfo.txt — обновляет заданный txt-файлы Alt + P – открыть GM чат &lua — команды lua &lua print("Привет, мир!") &lua_all print("Здравствуй, мир!") Квесты Список миссий и id можно посмотреть в файлах миссий MissionScript01 - MissionScript08. &addmission id2, id1 — добавляем миссию персонажу &clearmission id1 — очищает из списка миссий, определенную миссию &delmission id1 — удалить миссию &misclear id — полностью очищает весь список миссий персонажа Монстры Призвать одного настраиваемого монстра &summon ID монстра, Lifetime, Тип 1 — монстр ходит, но не атакует 2 — при атаке начинает убегать 4 — следует за персонажем 5 — желтый монстр, при атаке начинает атаковать персонажа 10 — красный монстр, атакует без умений 11 — красный монстр, использует умения Призвать несколько монстров &kill Название_монстра_из_CharacterInfo.txt &summonex ID_монстра, кол_во Если вы призвали моба через summonex, он уйдет только после рестарта сервера или удаления командой &kill: Предметы Со списком всех предметов и их данными можно ознакомиться в ItemInfo.txt &make ID, кол_во — добавить предметы в инвентарь, некоторые предметы не стекуются и не удаляются &delitem ID_предмета, кол_во — удаляет предмет в таком-то количестве из рюкзака &make id_самоцвета, кол_во, уровень — присвоить самоцветам уровень 101 — 1 уровень самоцвета 102 — 2 уровень самоцвета ... 109 — 9 максимальный уровень самоцвета &itemattr слот, номер_колонки, атрибут, значение — изменить статистику предмета в инвентаре Типы атрибутов: Фея 26 — сила 27 — ловкость 28 — точность 29 — телосложение 30 — дух 31 — удача 51 — максимальная выносливость 53 — максимальный рост Предметы 34 и 35 — мин и макс атака Медаль отваги 26 — честь 27 — кол-во убийств 28 — кол-во смертей 29 — кол-во битв 30 — кол-во побед 51 — кол-во очков взноса команды 53 — очки Хаоса Передвижение и другое &goto ник_к_кому_переместимся — переместить игрока к определенному персонаж &hide — скрыть персонажа, используя ману персонажа. Если вы сядете персонаж станет видимым. Ещё его могут раздетектить монстры и умения игроков в PvP &call ник_персонажа — телепортирует персонажа к вам ¬ice ваще_сообщение_в_систему — выводит сообщение в систему &move Координата X, координата Y, карта &skill ID_умения, уровень_умения — персонаж выучивает умение как моба, так и обычное. Уровень умения от 1 до 10 Атрибуты Позволяет манипулировать атрибутами игроков. &attr атрибут, значение, ID персонажа Персонаж 0 — уровень 4 — профессия 5 — репутация 6 — очки характеристик 7 — очки умений 8 — деньги 11 — уровень перерождения 12 — уровень мирных навыков 13 — очки мирных навыков 50 — сила 51 — точность 52 — ловкость 53 — телосложение 54 — дух 69 — скорость передвижения 102 — скорость атаки 106 — защита 107 — hp 108 — мана 109 — уклонение 110 — шанс урона 111 — критический удар 148 и 149 — мин и макс атака 161 — физическая сопротивляемость Корабль 56 — прочность 57 — топливо 58 — минимальная атака 59 — максимальная атака 69 — скорость корабля
-
Игровой клиент (Client) - приложение с которым взаимодействует конечный пользователь (игрок). Визуализирует состояние игрового мира вокруг персонажа игрока, полученное от сервера через сеть Интернет. Под визуализацией понимается отрисовка игровой карты с объектами на ней (например, суша и море, деревья, здания, дороги), персонажей других игроков, монстров, неигровых персонажей (NPC) и так далее - всего того, что на своем мониторе видит игрок в процессе игры. Кроме визуализации клиент посредством графического интерфейса пользователя (GUI) предоставляет последнему возможность влиять на состояние игрового мира и процесс игры с помощью клавиатуры и мыши, отправляя на сервер различные действия, например, создание персонажа, перемещение персонажа в игровом мире, атака монстров, взаимодействие с NPC, отправка сообщений в чат и другие действия, которые разрешены на сервере правилами игры. Для пользователя клиент является игрой в обычном понимании. В рассматриваемой системе игровых клиентов может быть от 1 до нескольких тысяч. Подключается через 1973 порт к GateServer. GateServer - принимает входящие соединения через 1973 порт от игровых клиентов и выступает в роли шлюза, через который игровой клиент взаимодействует с GroupServer, AccountServer и GameServer. Является сервером на 1971 порту по отношению к GameServer и клиентом на 1975 порту по отношению к GroupServer. Для распределения нагрузки в системе может быть несколько GateServer. Например, можно настроить сервер таким образом, что игроки из России подключаются к GateServer, который расположен в Москве, а игроки из Европы подключается к GateServer, который запущен на хостинге в дата-центре, расположенном в Германии, что позволит снизить задержки (пинг) при передаче сетевых пакетов от клиента на сервер и обратно. В целях безопасности игрового процесса GateServer шифрует весь сетевой трафик, который передается между сервером и клиентами. GroupServer - отвечает за создание и удаление персонажей с аккаунта пользователя, систему друзей и отрядов, общение между игроками в чатах (мировой, торговый, отряд, гильдия, ЛС) и диалогах. GroupServer также участвует в процессе аутентификации игроков на сервере, передавая пакеты аутентификации, полученные от GateServer, далее в AccountServer. Является сервером на 1975 порту по отношению GateServer и клиентом по отношению к AccountServer на 1978 порту. Кроме того, подключается в роли клиента через 1433 порт к Microsoft SQL Server для работы с базой данных GameDB. Как и в случае с GateServer, в системе может быть несколько GroupServer для распределения нагрузки, но, как правило, в реальных проектах используется один экземпляр GroupServer. AccountServer - нужен для аутентификации игроков на сервере путем сравнения полученных от пользователя логина и пароля с соответствующими логином и паролем в базе данных. Если игрок ввел верные логин и пароль, то он допускается к игре на сервере, в противном случае получает сообщение об ошибке авторизации и отключается от сервера. Является сервером по отношению к GroupServer на порту 1978. Работает с базой данных AccountServer, поэтому является клиентом Microsoft SQL Server на порту 1433. Как и в случае с GateServer, в системе может быть несколько AccountServer для распределения нагрузки, но обычно в реальных проектах используется один экземпляр AccountServer. GameServer - основной игровой сервер, где осуществляется вся логика игры. Обеспечивает игровой процесс и синхронизацию состояния игрового мира с игровыми клиентами: является клиентом на 1971 порту по отношению к GateServer, через который принимает действия от игровых клиентов, проверяет их корректность, и, в случае соблюдения установленных правил игры, вносит изменения в состояние игрового мира, после чего оповещает об этом все остальные игровые клиенты. Параллельно с обработкой действий игровых клиентов, с определенной частотой (обычно 20 Гц) обновляет игровой мир, например, для создания погодных явлений или управления монстрами с помощью искусственного интеллекта (AI). Для сохранения состояния игрового мира использует базу данных GameDB и является клиентом Microsoft SQL Server на порту 1433. GameServer является самым высоконагруженным элементом в системе и потребляет больше всего вычислительных ресурсов и памяти, поэтому в реальных проектах нагрузка распределяется между от 3 до 5 GameServer. Следует отметить, что рассмотренная архитектура является самой распространенной и применяется в большинстве проектов, но Вы можете перестраивать её под свои нужды: Вы можете изменить стандартные порты 1433, 1971, 1973, 1975, 1978 на любые другие не зарезервированные порты изменяя *.cfg файлы серверов; Вы можете переименовывать базы данных AccountServer и GameDB (потребуется редактирование некоторых исполняемых файлов сервера); Вы можете запускать несколько экземпляров Microsoft SQL Server, GateServer, GroupServer, AccountServer, GameServer и настраивать взаимосвязи между ними в целях распределения нагрузки и повышения производительности игрового процесса; В систему могут быть добавлены новые элементы, например, сервер встроенного в клиент магазина игровых предметов (IGS), сервер для фильтрации исходящих от клиентов пакетов (FilterServer), сервер "оффлайн" ларьков (StallServer), который позволяет игрокам торговать в ларьках не находясь в игре. Пример перечисленных архитектур: StallServer или FilterServer TradeServer и StallServer Материалы частично взяты с pkodev.net
-
Ссылка для скачивания: https://disk.yandex.com/d/1fhvyIbjcazOTA На вход программе необходимо дать папку с клиентом. Программа служит только для просмотра информации о моделях, анимациях.
-
Ссылка для скачивания: https://disk.yandex.com/d/mNBLl_a6CrddmA Ссылка для скачивания: https://disk.yandex.com/d/pUxMW2B8aBO3sA Ссылка для скачивания: https://disk.yandex.com/d/qnk0tP9TG5nONw Ссылка для скачивания: https://disk.yandex.com/d/4lXZr1ttyyBSfg Программы лучше всего запускать в папке resource. Программы облегчают работу с таблицами предметов и существ.
-
Ссылка для скачивания: https://disk.yandex.com/d/sJKD9aQ38JXwKg Программа выводит информацию о стандартном клиенте или близком к стандарту клиенте. Из информации: порт подключения для GateServer, версия для GateServer и параметр запуска для *bat файла или приложения запуска. Так же информацию можно редактировать.
-
Ссылка для скачивания: https://disk.yandex.com/d/IHmnZobJNXE_pg Ссылка для скачивания: https://disk.yandex.com/d/-YWI9BtBpQzXfw Результатом работы первой программы является код, который необходимо вставить в файлы ..\resource\garner\*monster_conf.lua. Программа призвана автоматизировать расстановку существ в указанном квадрате координат. Вторая программа служит как помощник первой программе: необходимо выбрать *pk файл из клиента и затем выбрать сборку сервера. После чего отобразить карту и существ на этой карте, используя специальные кнопки.
-
Ссылка для скачивания: https://disk.yandex.com/d/Lgy-Q9l71QgGPg Программа для создания аккаунта вручную. Для использования необходимо настроить подключение к базе данных в *cfg файле.
-
Ссылки для скачивания: https://disk.yandex.com/d/jGrYugEXgWpgHQ Программа для изменения информации о сервере (регион,название и ip-адрес) в файле ServerSet.bin. Необходимо запускать в папке с клиентом игры. Стандартный порт для подключения в клиенте 1973.
-
Ссылка для скачивания: https://disk.yandex.com/d/Y2ZwOr_rF-4_rA Инструкция по настройке Web database\application\Data - файлы из сборки для формирования базы Web database\application\config.php - конфиг в котором указан пароль для запуска скрипта обновления БД Web database\application\Templates\helpers\menu.tpl - файл меню для настройки ссылок и комментирования кнопки обновить(для безопасности базы лучше закомментировать) Web database\favicon.ico - иконка для вкладки браузера
-
Ссылка для скачивания: https://disk.yandex.com/d/kdTpKRAtiGIJ0A Программа позволяет "расшифровать" стандартные файлы-таблицы из client\scripts\table и файлы-текстур/иконок из client/texture/../*.tga. На вход подается либо файл, либо папка с файлами и папка для формирования результата.
-
Ссылка для скачивания: https://disk.yandex.com/d/lbZ28V7fQR3YIA Программа позволяет не запоминать Gm команды, после ввода значения нажимаете "Сгенерировать", после чего нужно в локальный чат в игре вставить(CTRL+V) строчку и отправить ее на сервер.
-
Ссылка для скачивания: https://disk.yandex.com/d/wraWCMetUH9s6Q Программа позволяет закодировать текст в луа файлах в цифровой вид. Это позволит не ломать файлы при перекодировании из utf-8 в win1251. Программа может как закодировать, так и раскодировать текст.
-
Ссылка для скачивания: https://disk.yandex.com/d/1S4d0b6DxrcdZw Ссылка для скачивания: https://disk.yandex.com/d/v9InAFJVHe8Lgg Оба приложения позволяют без труда писать простейшие квесты. Результатом работы приложения является скрипт, который нужно впоследствии вставить в файлы сборки по маске Server\GameServer\resource\script\MisScript\*lua.
-
Ссылка для скачивания: https://disk.yandex.com/d/IoBZ0hEVe__PSg Программа позволяет просматривать файлы мини карты из клиента игры. На вход подается файл по примеру следующей маски client\texture\minimap\map\*.pk
-
Ссылка для скачивания https://disk.yandex.com/d/2U0CvepLzxgNEQ Программа позволяет редактировать файлы карты относящие к NPC, на вход подается файл карты с NPC. Лучше всего использовать из папки resource. Для примера была взята карта garner(Аскарон). Список карт можно посмотреть в MapInfo.txt или в папках серверной сборки.
-
-