Jump to content

All Activity

This stream auto-updates     

  1. Past hour
  2. все верно, разобрался уже) скачал более ранний хамрр
  3. Mesut

    Swing

    can i add rebith effect back if i do option 2 you mention..
  4. The limit address is 00016873. It is 100 maps.
  5. @Mesut you can use this guide, it's in Portuguese but you can translate with google. https://www.dirceuresende.com/blog/como-conectar-no-sql-server-utilizando-o-php-xampp-e-o-driver-pdo-no-windows/
  6. @FeikO, про какой сайт идет речь? Так как на скриншоте я вижу PKOSite от Snowcrach, а в цитате ты приводишь скрипт регистрации, который я когда-то сделал. В любом случае, скорее всего ты используешь PHP версии 7.x, а они были написаны под PHP 5.x, поэтому могут быть проблемы с совместимостью, в том числе отсутствующие функции. В частности, ошибка PHP, которую ты привел на скриншоте, говорит о том, что отсутствует функция set_magic_quotes_runtime(), которая была удалена в PHP 7, как заметил @patrick13.
  7. V3ct0r

    Swing

    There are two ways to make it work in 1.3x versions of the game: 1) Game.exe patching. Requires extensive skills in reverse-engineering, knowledge of programming languages assembler and C++; 2) Add to Swings items in ItemInfo.txt fly animation (as for Rebirth wings) and replace fly animation to sit animation in characterposeinfo.txt (client-side file). But then we lose the effect of the Rebirth wings - characters will sit, not fly. Also you can use Tales of Pirates 2 server files and client with Swings feature. I know there is TOP 2 client in public release, but I didn't see server files for it. We can't connect ToP 2 client to any existing server files.
  8. Today
  9. works thk u
  10. Hello @luca94dv and welcome to the forum! It works with PHP version 7 and MSSQL Server 2014 - 2019. Hello @Mesut! You need to install PDO driver sqlsrv for your version of PHP. You can see list of installed PDO drivers in section PDO in phpinfo() function output.
  11. Hello @Mesut! You start Game.exe the following way: start system\game.exe startgame table_bin There is a "startgame" parameter present that gives a command to start the game. But in your Game.exe the startup paramter is changed to another one. You can use this program to find out new paramter or change it to "startgame" back:
  12. i did what u told up there but it,s say like on the picture i cant compile the client can u help me?
  13. do i need wb database for it bcz i get this error..
  14. @V3ct0r Hi, very nice web site! What version of PHP and SQL server does it work with?
  15. Yesterday
  16. i can also send a picture for bosses really thk u for your support it work perfect!!!
  17. Hi, have you fixed it for other classes? And you managed to disable mount name when hovering the mouse into it?
  18. vector is there anyway u can find on my client offset for maplimit it,s only 50 line i think. I try to find it but nothing appaers pls sir link is above...
  19. Mesut

    Swing

    Hi i have issue like other i cant sit on swing i walk on swing insted is there anyway i can fix it...
  20. Эта старая функция и если вы используете пхп 7+, то она просто не существует.
  21. и снова я к тебе, скачал, поставил первым делом включил вывод ошибок, но все равно не пойму что не так, почему ругается на 22 строку. тапком не кидайтесь, позабыл большую часть что как делать =(
  22. Для подключения к серверу необходим только один порт 1973 - порт, на котором GateServer.exe принимает входящие соединения от игровых клиентов. Более того, остальные порты необходимо закрыть в целях безопасности. Причин почему данный порт закрыт может быть несколько: 1) IP-адрес твоего сервера (компьютера) "серый", находится за NAT. В таком случае нужно приобретать у твоего Интернет-провайдера выделенный "белый" IP-адрес или использовать программы для создания виртуальной VPN сети, например, Hamachi; 2) Твой компьютер подключен к Интернету через роутер. Необходимо "пробросить" 1973 порт в соответствии с инструкцией к роутеру; 3) Входящие соединения может блокировать файрвол или антивирус. Например, Брандмауэр Windows. В редакции Windows Server необходимо создавать "Правило для входящих подключений" для порта 1973. Что ты подразумеваешь под сборкой клиента? В основном, настройка клиента заключается в указании адреса сервера и компиляции .txt-таблиц. Для настройки IP-адреса: Для настройки порта: Компиляция .txt таблиц: Если ты решил добавить, например, новые аппарели или монстров, то нужно поместить в соответствующие директории клиента модели, анимации, текстуры. Редактирование GUI (графический интерфейс пользователя) производится с помощью LUA-скриптов из папки "\scripts\lua\forms". Благодарю! Рад что гайд тебе понравился. Чтобы появилась возможность редактировать сообщения, тебе нужно перейти в группу "Продвинутый пользователь":
  23. For GameServer.exe I've just put .txt files to GameServer\resources folder. For client I did everything according to this guide:
  24. Last week
  25. от себя конечно же добавлю что гайд шикарен, все расписано до мелочей, однозначно Лайк. хотелось бы конечно еще видеть гайд как собрать клиент собственный, не смог найти. пользуюсь пока что готовым, но мысль и желание собраться собственный с нуля не покидает голову. в два сообщения т.к не смог отредактировать свое предыдущее
  26. пока что пытаюсь сам со всем разобраться, дабы не плодить кучу тем с вопросами, но ситуевина мне кажется смешной, все порты что необходимы 1433, 1971,1973, 1975 и 1978 закрыты судя по сайтy 2ip но при этом, я успешно запустил сервер, хоть и на собственном компе, пока что, мне кажется будь они закрыты то запустить не получилось бы вообще. сейчас жд друга чтоб протестить, сможет ли он подключиться
  27. Судя по коду, проблема связана с матрицами самой модели (часть тела). Есть функция CWorldScene::CursorFrame, она вызывается раз в фрейм (30 раз в секунду) и отвечает за определение действия при наведении на цель. Вырезка из собственных исходников с комментариями: CCharacter* pCha = HitSelectCharacter(nMouseX, nMouseY, enumSC_ALL); // Ищет актера в позициях мышки (любого) if (pCha) { if (GetMainCha() != pCha) { CSkillRecord* pSkill = GetMainCha()->GetDefaultSkillInfo(); // Если используется дефолтный скилл (бить рукой) if (pCha->getEvent()) { // с целью можно взаимодействовать CancelHoverFrame(); if (_HaveEventCursor(pCha->getEvent(), GetMainCha()->GetMainType())) { // у цели есть свой курсор _cMouseDown.SetEvent(pCha, pCha->getEvent()); } else { CCursor::I()->SetFrame(CCursor::stStop); } return; } if (pCha->IsNPC()) { // Если выбранная цель NPC CancelHoverFrame(); CCursor::I()->SetFrame(CCursor::stChat); pCha->SetColor(_bAttackRed, _bAttackGreen, _bAttackBlue); _cMouseDown.SetNpc(pCha); return; } if (pSkill && g_SkillUse.IsAttack(pSkill, GetMainCha(), pCha) || g_pGameApp->IsCtrlPress()) { // Цель можно атаковать или зажат CTRL if (pCha->IsMonster() && !g_pGameApp->IsCtrlPress() || !pCha->IsMonster()) { // Если это монстр, то только если CTRL не зажат HoverFrame(pCha); CCursor::I()->SetFrame(CCursor::stAttack); pCha->SetColor(_bAttackRed, _bAttackGreen, _bAttackBlue); _cMouseDown.SetAttackCha(pSkill, pCha, CGameApp::GetCurTick()); return; } } if (pCha->IsPlayer()) { // Если выбранная цель игрок HoverFrame(pCha); CCursor::I()->SetFrame(CCursor::stMouse); pCha->SetColor(_bAttackRed, _bAttackGreen, _bAttackBlue); if (g_pGameApp->IsAltPress()) { CCursor::I()->SetFrame(CCursor::stActive); _cMouseDown.SetFollow(pCha); } return; } } return; } Тут нас интересует CCharacter* pCha = HitSelectCharacter(nMouseX, nMouseY, enumSC_ALL); // Ищет актера в позициях мышки (любого) Внутри которой идёт поиск цели в указанных координатах nMouseX и MouseY и срабатывает метод LW_RESULT MPCharacter::HitTestPrimitive(lwPickInfo* info, const lwVector3* org, const lwVector3* ray) { return _physique->HitTestPrimitive(info, org, ray); } А сам метод _physique->HitTestPrimitive пробегает по максимальному количеству примитив у модели и смотрит вхождение в каждую. lwPhysique::HitTestPrimitive(lwPickInfo* info, const lwVector3* org, const lwVector3* ray) LW_MAX_SUBSKIN_NUM равен 10 for (DWORD i = 0; i < LW_MAX_SUBSKIN_NUM; i++) { if ((imp_generic = _obj_seq[i]) == 0) continue; if (LW_SUCCEEDED(imp_generic->HitTest(&x, org, ray))) { if ((obj_id == LW_INVALID_INDEX) || (xx.dis > x.dis)) { xx = x; obj_id = i; } } } Исходя из этого можно сделать вывод, что проблема в том что imp_generic->HitTest возвращает отрицательный результат => не может найти вхождение nMouseX и nMouseY (относительно модели персонажа) в матрицу модели (часть тела). LW_RESULT lwPrimitive::HitTest(lwPickInfo* info, const lwVector3* org, const lwVector3* ray) { LW_RESULT ret = LW_RET_FAILED; if (_helper_object == 0) goto __ret; lwIBoundingSphere* bs = 0; lwIBoundingBox* bb = 0; lwMatrix44* mat = _render_agent->GetGlobalMatrix(); if ((bs = _helper_object->GetBoundingSphere()) != 0) { if (LW_SUCCEEDED(bs->HitTest(info, org, ray, mat))) goto __addr_ret_ok; } if ((bb = _helper_object->GetBoundingBox()) != 0) { if (LW_SUCCEEDED(bb->HitTest(info, org, ray, mat))) goto __addr_ret_ok; } goto __ret; __addr_ret_ok: ret = LW_RET_OK; __ret: return ret; } Вероятнее всего проблема связана с тем что модель экспортировали не той версией, которую использует игра (разная структуру) исправить это можно если только переделать модель или пере экспортировать.
  1. Load more activity
  • Newsletter

    Want to keep up to date with all our latest news and information?
    Sign Up
×
×
  • Create New...