Jump to content

V3ct0r

Administrators
  • Content Count

    2,887
  • Joined

  • Last visited

  • Days Won

    518

Everything posted by V3ct0r

  1. In the attached screenshot we see the text in Russian when English is selected ("Изменения внесены!").
  2. Hello @mkhzaleh and @wolfenx, Please don't fight. You are both great developers and community members, I think most of the community will confirm this.
  3. Hello @ItzLoganDuh, It looks like the version of your decompiler does not match the version of the .bin file. Hello @StaffEN, Did this bug appear before or after using the tool?
  4. Hello @StaffEN, --[[ NpcSdk.lua Lines elseif item.func == GetRankingListing then GetRankingListing( character,item.p1) elseif item.func == PlayerPkPMazeCheck then PlayerPkPMazeCheck( character,item.p1) elseif item.func == PlayerPkPCheck then PlayerPkPCheck( character) elseif item.func == PvPWinnerReward then PvPWinnerReward( character) elseif item.func == PvPWinnerReward2 then PvPWinnerReward2( character) MissionSdk.lua Lines add this somewhere around line 2500 elseif conditions[i].func == CheckIsPvPWinner then PRINT( "ConditionsTest:CheckIsPvPWinner, p1 = ", conditions[i].p1 ) local ret = CheckIsPvPWinner( character, conditions[i].p1 ) if ret ~= LUA_TRUE then PRINT( "ConditionsTest: CheckIsPvPWinner = false" ) return LUA_FALSE end elseif conditions[i].func == CheckIsPvPWinner2 then PRINT( "ConditionsTest:CheckIsPvPWinner, p1 = ", conditions[i].p1 ) local ret = CheckIsPvPWinner2( character, conditions[i].p1 ) if ret ~= LUA_TRUE then PRINT( "ConditionsTest: CheckIsPvPWinner2 = false" ) return LUA_FALSE end ]]-- Did you add these changes to files NpcSdk.lua and MissionSdk.lua?
  5. Hello @Daxter, MakeItem() as a result returns two variables (a tuple): success flag (boolean) and position of the created item in the character's bag: r1,r2 = MakeItem(role, <Item ID>, <Amount>, <Quality/Type>) -- if r1 == 1 then the item <Item ID> x <Amount> of quality <Quality/Type> is successfully added to the inventory/bag. -- r2 contains the number of the inventory slot in which the created item is placed if r1 == 1 GiveItem() returns just a success flag: r1 = GiveItem(role, 0, <Item ID>, <Amount>, <Quality/Type>) -- The second parameter is an NPC descriptor, usually it equals 0. You can see examples of using both functions in GameServer scripts. It depends on the type of item (gem, fairy, etc). For regular items, I think you can use value 4.
  6. Hello @devilmaydie770, I can assume the following: 1) The server architecture is a microservice; your idea of running all maps on one instance of GameServer contradicts this approach; 2) This requires a lot of work with an incomprehensible result (change data types and functions/procedures to those that work with 64-bit data types).
  7. In accordance with the @nyarum12's post, the development of the emulator will continue in the zig programming language:
  8. Привет! Вытащил тему из архива. P.S. Ждем эмулятор
  9. Привет, @nyarum12! Желаю удачи в разработке! Буду продолжать следить за твоим проектом.
  10. Привет, @Nik! GameServer 1) Поместить папку 07xmas в директорию GameServer\resource\; 2) Добавить карту 07xmas в файл GameServer\resource\script\MisScript\ScriptDefine.lua: AddMap("07xmas", "\205\238\226\238\227\238\228\237\255\255 \196\229\240\229\226\237\255") --ID = 27 (Новогодняя Деревня) 3) Добавить карту в GameServerXX.cfg (где XX - номер, либо может отсутствовать): [Map] ... map = 07xmas 4) При необходимости организовать вход на карту для игроков (предмет-билет, NPC-портальщик, портал и др.). Клиент 1) Добавить файлы 07xmas.obj и 07xmas.map в директорию Клиент\map\; 2) Добавить файл 07xmas.pk в директорию Клиент\texture\minimap\07xmas\; 3) Добавить строку в файл Клиент\scripts\table\mapinfo.txt: 27 07xmas Новогодняя деревня 1 150,150 3,150,150 255,255,255 4) Добавить строку в файл Клиент\scripts\table\areaset.txt: 135 Новогодняя Деревня 233,118,107 -1 128,128,128 255,255,255 -1,-1,-1 0 5) Скомпилировать файлы mapinfo.txt и areaset.txt с помощью команды table_bin.
  11. Hello @Andy, Yes, there is the problem in the pkodev.mod.reward.client\dllmain.cpp file. Change // bool CCommandObj::IsAllowUse() bool __cdecl IsAllowUse() { return false; } to // bool CCommandObj::IsAllowUse() bool __cdecl IsAllowUse() { return true; } and rebuild the mod using Visual Studio version 2019 or newer.
  12. Something related with the game protocol encryption, they are used by class NetIF.
  13. // Вывод рейтинга if (_IsShowName && _pOwn->IsPlayer()) { if (_pOwn->getGuildID()) y -= 14; static char szTextRating[32u] = { 0 }; sprintf(szTextRating, "- [%d] -", CalculateRating(_pOwn)); static const DWORD COLOR_TEXT_RATING = 0xFF00FFFF; const int nDrawX = x - (CGuiFont::s_Font.GetWidth(szTextRating) / 2); const int nDrawY = y - 28; CGuiFont::s_Font.BRender(szTextRating, nDrawX, nDrawY, COLOR_TEXT_RATING, COLOR_BLACK); } // Подсчет рейтинга inline int CalculateRating(const CCharacter* pCha) { const SGameAttr* pGameAttr = pCha->getGameAttr(); int nPowerCounter = 0; nPowerCounter += pGameAttr->get(ATTR_HP); return nPowerCounter; } Функцию CalculateRating() хорошо было бы сделать членом какого-нибудь класса, например class CHeadSay или class CCharacter. Вопрос: будет ли это работать для персонажей других игроков? Так как есть сомнения, что сервер присылает (синхронизирует) характеристики других персонажей нашему клиенту, и для других игроков рейтинг будет отображаться некорректно. Если код задумывался для отображения рейтинга только нашего персонажа, то можно заменить: if (_IsShowName && _pOwn->IsPlayer()) на: if (_IsShowName && _pOwn->IsMainCha()) Стоит учесть, что в некоторых случаях рейтинг персонажа может уйти в минус. Если говорить про ATTR_HP, то лучше взять ATTR_MXHP, и так далее. P.S. Не тестил код выше.
  14. Привет, @MADstan и @Mercer! Спасибо большое за добрые слова и что вы с нами!
  15. Привет, @Vehd! Спасибо за ответ! Хочу пожелать удачи с проектом!
  16. Маленький факт: MindPower3D_D8R.dll (библиотека движка) из официального русского клиента ("Пиратия") был пропатчен чтобы поддерживать русский язык.
  17. Hello @gunnapong, Unfortunately, I don’t have time right now to search for the necessary addresses to support your Game.exe.
  18. Hello @aoodi, You can find instructions for installing mods in this topic: I don't see the point in recording a video.
  19. Hello @SolidusZA, Sorry for the late reply, maybe it will help someone else: 1) File \pages\inc.register.php, line ~87: if (!preg_match('|^[A-Z0-9]+$|i', $password)) 2) File \pages\account\inc.changepass.php, line ~50: if ( ($length < 5 || $length > 15) || !preg_match('|^[A-Z0-9]+$|i', $old_password) ) line ~72: if(!preg_match('|^[A-Z0-9]+$|i', $new_password)) 3) File \pages\account\inc.login.php, line ~455: !preg_match('|^[A-Z0-9]+$|i', $password) ) All you need to do is modify the regular expression (|^[A-Z0-9]+$|i) for your requirements. P.S. It is a bad design, I should have written a separate function for validating passwords.
  20. Hello @StaffEN, Could you please provide more details? Maybe you're seeing errors in the system chat channel? Will the portal work if you use unmodified Game.exe and MindPower3D_D8R.dll?
×
×
  • Create New...