Jump to content

Saltfire

Resident
  • Content Count

    503
  • Joined

  • Last visited

  • Days Won

    18
  • Feedback

    N/A

Everything posted by Saltfire

  1. Не уверен, что у тебя хватит денег на реверсера Иначе бы уже нанял и не задавал бы глупых вопросов.
  2. Что подразумевается под простым способом? (вы сначала попробуйте заинжектиться в процесс, с данным продуктом, без жопаболей и заглушек, у вас этого не удастся сделать, ко всему, если конечно не лохо обновлятор, который никак не передает о том, что к серверу уже начали подключаться, после кнопки старт в Обновляторе, а если этого нет, тогда вы сможете запустить клиент в обход Обновлений и опустить библиотеки до нужного уровня и заглушить или вычистить, оставив только шифрацию и передачу пакетов и тайминги - но я сомневаюсь. что у вас хватит знаний и сил это сделать).
  3. Естественный процесс, клиент использует "Anticheat" встроенный продукт для отслеживания как-раз таких действий, которые модернизируют файлы клиента, а также пытаются дергать клиентские файлы в обход, главного процесса игры, который запущен, он работает именно так (надеюсь). Я не пробовал ставить заглушки, но в конкретном проекте, это сделать будет довольно сложно (или почти не возможно, так-как сразу изменится размер, дата и вся целостность файла), скорее всего проще будет искать дырку, на уровне адреса памяти, в которую можно будет внедриться для использования API клиента, все перекрыть не возможно и некоторые блокировки, все-же обойти можно. Но никак не модернизацией текущих файлов клиента.
  4. На сколько помню, в interlude работает нативный метод IsKeyDown который из NWindow->UIScript.uc. И есть класс Engine->Interactions.uc и конструкция событий enum EInputKey. На самом деле, вы очень просто сможете использовать такое условие: if(IsKeyDown(IK_1) && IsKeyDown(IK_Q) || IsKeyDown(IK_2) && IsKeyDown(IK_W)) { //... } То есть по факту, можно отследить весь, вот этот класс: enum EInputKey { /*00*/ IK_None ,IK_LeftMouse ,IK_RightMouse ,IK_Cancel , /*04*/ IK_MiddleMouse ,IK_Unknown05 ,IK_Unknown06 ,IK_Unknown07 , /*08*/ IK_Backspace ,IK_Tab ,IK_Unknown0A ,IK_Unknown0B , /*0C*/ IK_Unknown0C ,IK_Enter ,IK_Unknown0E ,IK_Unknown0F , /*10*/ IK_Shift ,IK_Ctrl ,IK_Alt ,IK_Pause , /*14*/ IK_CapsLock ,IK_Unknown15 ,IK_Unknown16 ,IK_Unknown17 , /*18*/ IK_Unknown18 ,IK_Unknown19 ,IK_Unknown1A ,IK_Escape , /*1C*/ IK_Unknown1C ,IK_Unknown1D ,IK_Unknown1E ,IK_Unknown1F , /*20*/ IK_Space ,IK_PageUp ,IK_PageDown ,IK_End , /*24*/ IK_Home ,IK_Left ,IK_Up ,IK_Right , /*28*/ IK_Down ,IK_Select ,IK_Print ,IK_Execute , /*2C*/ IK_PrintScrn ,IK_Insert ,IK_Delete ,IK_Help , /*30*/ IK_0 ,IK_1 ,IK_2 ,IK_3 , /*34*/ IK_4 ,IK_5 ,IK_6 ,IK_7 , /*38*/ IK_8 ,IK_9 ,IK_Unknown3A ,IK_Unknown3B , /*3C*/ IK_Unknown3C ,IK_Unknown3D ,IK_Unknown3E ,IK_Unknown3F , /*40*/ IK_Unknown40 ,IK_A ,IK_B ,IK_C , /*44*/ IK_D ,IK_E ,IK_F ,IK_G , /*48*/ IK_H ,IK_I ,IK_J ,IK_K , /*4C*/ IK_L ,IK_M ,IK_N ,IK_O , /*50*/ IK_P ,IK_Q ,IK_R ,IK_S , /*54*/ IK_T ,IK_U ,IK_V ,IK_W , /*58*/ IK_X ,IK_Y ,IK_Z ,IK_Unknown5B , /*5C*/ IK_Unknown5C ,IK_Unknown5D ,IK_Unknown5E ,IK_Unknown5F , /*60*/ IK_NumPad0 ,IK_NumPad1 ,IK_NumPad2 ,IK_NumPad3 , /*64*/ IK_NumPad4 ,IK_NumPad5 ,IK_NumPad6 ,IK_NumPad7 , /*68*/ IK_NumPad8 ,IK_NumPad9 ,IK_GreyStar ,IK_GreyPlus , /*6C*/ IK_Separator ,IK_GreyMinus ,IK_NumPadPeriod,IK_GreySlash , /*70*/ IK_F1 ,IK_F2 ,IK_F3 ,IK_F4 , /*74*/ IK_F5 ,IK_F6 ,IK_F7 ,IK_F8 , /*78*/ IK_F9 ,IK_F10 ,IK_F11 ,IK_F12 , /*7C*/ IK_F13 ,IK_F14 ,IK_F15 ,IK_F16 , /*80*/ IK_F17 ,IK_F18 ,IK_F19 ,IK_F20 , /*84*/ IK_F21 ,IK_F22 ,IK_F23 ,IK_F24 , /*88*/ IK_Unknown88 ,IK_Unknown89 ,IK_Unknown8A ,IK_Unknown8B , /*8C*/ IK_Unknown8C ,IK_Unknown8D ,IK_Unknown8E ,IK_Unknown8F , /*90*/ IK_NumLock ,IK_ScrollLock ,IK_Unknown92 ,IK_Unknown93 , /*94*/ IK_Unknown94 ,IK_Unknown95 ,IK_Unknown96 ,IK_Unknown97 , /*98*/ IK_Unknown98 ,IK_Unknown99 ,IK_Unknown9A ,IK_Unknown9B , /*9C*/ IK_Unknown9C ,IK_Unknown9D ,IK_Unknown9E ,IK_Unknown9F , /*A0*/ IK_LShift ,IK_RShift ,IK_LControl ,IK_RControl , /*A4*/ IK_UnknownA4 ,IK_UnknownA5 ,IK_UnknownA6 ,IK_UnknownA7 , /*A8*/ IK_UnknownA8 ,IK_UnknownA9 ,IK_UnknownAA ,IK_UnknownAB , /*AC*/ IK_UnknownAC ,IK_UnknownAD ,IK_UnknownAE ,IK_UnknownAF , /*B0*/ IK_UnknownB0 ,IK_UnknownB1 ,IK_UnknownB2 ,IK_UnknownB3 , /*B4*/ IK_UnknownB4 ,IK_UnknownB5 ,IK_UnknownB6 ,IK_UnknownB7 , /*B8*/ IK_UnknownB8 ,IK_Unicode ,IK_Semicolon ,IK_Equals , /*BC*/ IK_Comma ,IK_Minus ,IK_Period ,IK_Slash , /*C0*/ IK_Tilde ,IK_UnknownC1 ,IK_UnknownC2 ,IK_UnknownC3 , /*C4*/ IK_UnknownC4 ,IK_UnknownC5 ,IK_UnknownC6 ,IK_UnknownC7 , /*C8*/ IK_Joy1 ,IK_Joy2 ,IK_Joy3 ,IK_Joy4 , /*CC*/ IK_Joy5 ,IK_Joy6 ,IK_Joy7 ,IK_Joy8 , /*D0*/ IK_Joy9 ,IK_Joy10 ,IK_Joy11 ,IK_Joy12 , /*D4*/ IK_Joy13 ,IK_Joy14 ,IK_Joy15 ,IK_Joy16 , /*D8*/ IK_UnknownD8 ,IK_UnknownD9 ,IK_UnknownDA ,IK_LeftBracket , /*DC*/ IK_Backslash ,IK_RightBracket,IK_SingleQuote ,IK_UnknownDF , /*E0*/ IK_UnknownE0 ,IK_UnknownE1 ,IK_UnknownE2 ,IK_UnknownE3 , /*E4*/ IK_MouseX ,IK_MouseY ,IK_MouseZ ,IK_MouseW , /*E8*/ IK_JoyU ,IK_JoyV ,IK_JoySlider1 ,IK_JoySlider2 , /*EC*/ IK_MouseWheelUp ,IK_MouseWheelDown,IK_Unknown10E,UK_Unknown10F , /*F0*/ IK_JoyX ,IK_JoyY ,IK_JoyZ ,IK_JoyR , /*F4*/ IK_UnknownF4 ,IK_UnknownF5 ,IK_Attn ,IK_CrSel , /*F8*/ IK_ExSel ,IK_ErEof ,IK_Play ,IK_Zoom , /*FC*/ IK_NoName ,IK_PA1 ,IK_OEMClear }; А также, есть еще interface.xdat, где есть уже привязанные комбинации клавиш и другие события, так называемые shortcuts для интерфейса и оконной системы в целом, разных вызовов, по разным стадиям и сценам. Панель Shortcuts находится в shortcuts->GamingStateShortcut->UseShortcutItem-*, где key - это кнопка для использования. В общем и целом, смотря что вообще требуется, многие вещи, находятся в nwindow.dll.
  5. Для какой цели? Что будет происходить? Где, хоть какая-то информация? Ничего не понятно.
  6. Ппц, Вот бы раньше, так. Года так 2 назад =)
  7. Saltfire

    L2text

    На самом деле, за загрузку, отвечает метод LoadHtml. Как сделано например в interface.u -> UserPetitionWnd.uc: class'UIAPI_HTMLCTRL'.static.LoadHtml( "UserPetitionWnd.HelpHtmlCtrl", "..\\L2text\\" $ PetitionCategoryLink[ a_SelectedIndex - 1 ] ); Оно прописано везде статично, путь нигде жестоко не привязывается, многие вещи в клиенте написаны статично в том числе и пути к файлам, не всем конечно но к многим, например на оконную систему и т.д. Все это находится в nwindow.dll
  8. Данное меню зашито внутри nwindow.dll, я давно задавал уже и отвечал на этот вопрос. Чтобы скрыть это меню, требуется сделать HideWindow("LoginFunctionWnd"); А по верх сделать новое, только так вы сможете его убрать. В исходниках interface/Classes/ создаем новый файл к примеру LoginMenuWnd.uc: class LoginMenuWnd extends UICommonAPI; function onLoad() { //... } function OnShow () { HideWindow("LoginFunctionWnd"); } function OnClickButton(string strID) { switch(strID) { case "btnSettingsGame" : ShowOrHideOptionWnd(); break; } } function ShowOrHideOptionWnd() { if (class'UIAPI_WINDOW'.static.IsShowWindow("OptionWnd")) { PlayConsoleSound(IFST_WINDOW_CLOSE); class'UIAPI_WINDOW'.static.HideWindow("OptionWnd"); } else { PlayConsoleSound(IFST_WINDOW_OPEN); class'UIAPI_WINDOW'.static.ShowWindow("OptionWnd"); class'UIAPI_WINDOW'.static.SetFocus("OptionWnd"); } } defaultproperties{} Далее в interface.xdat создаем LoginMenuWnd и привязываем ему скрипт LoginMenuWnd. А так-же где state прописываем LoginState. И в workingConfiguration пишем Game. Далее настраиваете окно на свое усмотрение, добавляете элементы кнопок, позицию и по ид, проверяете в OnСlickButton методе, нажатие кнопок, а дальше, что нужно уже пишите. Для скрытия окошка ввода логина и пароля HideWindow("AuthWnd"); Если начнете делать свою систему входа и авторизации, что я очень сильно сомневаюсь
  9. Погоди, ты тогда сам ничего не сможешь сделать потом, опять потом надо будет компилить, всегда надо будет компилить =))
  10. О том, что все эти ваши сборки кусок говна и так все знают. Тут доказательства не нужны, я приводил уже множество фактов. Ко всему прошло столько лет, а ничего толком и не сделано. Тадам! Попытка 100501! Ты хочешь 5 лет отдать исправлению говна, чтобы потом все равно забросить? Л2 умерла, а они сервера пишут! О каких-то открытиях, крутых сборках говорят! В нее уже играть никто не будет. Все это ради показухи. А в дальнейшем сруб бала на дурочках. Жаль их, да и вас тоже жаль!
  11. Ты что тут шерстью своей раскидываешься, крот интернетный? Пруфы в студию, где я открывал сервер и звал народ и т.д? У тебя 2 дня.
  12. Причем тут геодата и шанс попадания по мобам? И не исключено также кривые статы или высота мобов. А может еще чего намудрили. Что-то кажись, где-то я, уже это видел тут =)
  13. Очередной тупица, который открывает порт. который уже открыт. Боже, откуда вы такие беретесь только. Я еще раз для особо одаренных повторяю, порт открывается сам, его не нужно нигде открывать. Не нужно!!! Если вам это не поможет - значит, вам ничего не поможет. И не выпустите вы в интернет свой тру сервер под NAT'ом, да хоть у срись там и за открывайся своих портов, ничего у тебя не получится. Пока глаза не откроешь и не начнешь юзать поиск по форуму.
  14. Я уже отвечал, что делать, если вы хотите с домашнего компа сервер ставить.
  15. Эх. Я так и знал, что он хочет сервер с домашнего компа открыть
  16. Зачем вам открывать порт? Для какой цели, что вы собрались делать на постоянно открытом порту? Все порты должны быть закрыты! Порт открывается автоматически, когда на нем есть, что слушать и ждать.
  17. Ты серьезно веришь в это? Или ты дружок его? По какому малому? Прям 5 проектов, правда что-ли? А что изменилось? Форум твой сдох еще с первого дня =) Какие проекты, о чем ты говоришь.
  18. Избавь нас от своей тупости. Уходи!
  19. Видимо разработка закрылась, не успев начаться. Что-то не видно мега правок и активности. Уже за это время наверно сервер новый уже, а то как правки пишет, там подходу уже Мобиус 2
  20. Is the event and script attached to the button?
  21. В этом деле всегда нужно быть бдительным. Вряд ли, кто-то захочет продавать уникальные исходы, еще и на современный лад, да так, чтобы потом голову не ломать. Многие исходники далеко увели игру от стандарта, который заложили ncsoft. А некоторые ничем не изменились, так и остались далеко позади, так как уже устарело все на столько, что уже смотреть страшно и открывать, тем-более... А еще поражает, за место 1 класса делают по 3-5, а то и 10 классов. А в некоторых и по 15-20 тыс строк, что просто весьма трагично смотрится. Никакой динамики, все статично закидано. Класс на классе, через класс, в классе. И когда я переписываю из 5 в 1, я думаю, во дают ребята – это же надо было так гадить классами и бездарно раскидываться объектами и постоянно делать запись и чтение на буквально каждый пук и чих, а еще поразило, когда таблицы в xml начали перепиливать. По этому тут каждый пришел, внес лепту, наделал грубых ошибок, пытался исправить, исправил свои, посыпались другие (получилась салянка). Поэтому уникальными исходники будут только те, которые будут переписаны, иначе только лыжка будет рада, увидеть снова попытку ее переписать =)
  22. це українською мовою. Так, что не надо мне ляля. Укроп делает. =)
  23. Это ты себе Адресуй, откуда вы беретесь, открываторы серверов. Немощь, которая не может сборку поставить и сидит он ждет помощи, ну жди, жди Корпатыч. Какая тебе сборка, если ты даже азов не знаешь, таких простых.
  24. Ты выбрал сферу, которая далеко позади, многие вещи просто так не заведутся, если не включить голову. А помогать тому, кто не понимает, что он делает, нет никакого смысла. Игры не знаешь, тонкости PTS тем-более, о какой помощи ты просишь, непонятно. И советую почитать про SQL Server
  25. Дурочек? На каждую версию будешь новую тему создавать? Иди на русский подучи, исправления от бога, представляю, что там написано в исходнике, по этим исправлениям На что изменена? Чего? На что исправил? Тебе только в цирке клоуном выступать, ей богу.
×
×
  • Create New...