Jobalabido Posted January 22, 2021 Posted January 22, 2021 Anyone knows how to edit the handlers of the buttons on top of the community board?
0 Rootware Posted January 22, 2021 Posted January 22, 2021 The all buttons on the top of community board window locates inside interface.xdat as Tabs in TabControl element of BoardWnd scheme. You need XDAT Editor for making changes. How to use this tool a lot a videos and manuals. 1
0 Zake Posted January 23, 2021 Posted January 23, 2021 Depends, if you just want to edit their name sysstring-e.dat is your file. If you want to edit the bypass name you should do what root mentioned. If though you want to edit/create bypasses for each button you should do it server side.
0 Jobalabido Posted January 23, 2021 Author Posted January 23, 2021 8 hours ago, Zake said: Depends, if you just want to edit their name sysstring-e.dat is your file. If you want to edit the bypass name you should do what root mentioned. If though you want to edit/create bypasses for each button you should do it server side. I want to change their bypass, I want for example, if the memo takes you to your notes to take you somewhere else
0 Zake Posted January 24, 2021 Posted January 24, 2021 12 hours ago, Jobalabido said: I want to change their bypass, I want for example, if the memo takes you to your notes to take you somewhere else requestbypasstoserver may help you find where cb bypasses are handled. Usually its under gameserver/communityboard. Although which pack do you use?
0 Jobalabido Posted January 24, 2021 Author Posted January 24, 2021 2 hours ago, Zake said: requestbypasstoserver may help you find where cb bypasses are handled. Usually its under gameserver/communityboard. Although which pack do you use? mobius
0 Zake Posted January 24, 2021 Posted January 24, 2021 1 hour ago, Jobalabido said: mobius https://bitbucket.org/MobiusDev/l2j_mobius/src/master/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/communitybbs/CommunityBoard.java
0 Jobalabido Posted January 24, 2021 Author Posted January 24, 2021 so you're saying it's server side, not client
0 Rootware Posted January 24, 2021 Posted January 24, 2021 (edited) For changing bypass commands for Community board need edit Interface scripts into client side and all places from server side scripts and classes. From my PoV this act of madness and better way is delete the tab system from client side and use usual HTML viewer as uses for NPC dialogues. This will give more deployment for making own Community board command ierarchy. But you can be disagree with me and continue to write shitcode because it easy and isn't requeres a lot of knowledge. I'm sure/belive what all client modifications available even for classic clients. Edited January 24, 2021 by Rootware Fix text typos.
0 xdem Posted January 24, 2021 Posted January 24, 2021 5 hours ago, Rootware said: For changing bypass commands for Community board need edit Interface scripts into client side and all places from server side scripts and classes. From my PoV this act of madness and better way is delete the tab system from client side and use usual HTML viewer as uses for NPC dialogues. This will give more deployment for making own Community board command ierarchy. But you can be disagree with me and continue to write shitcode because it easy and isn't requeres a lot of knowledge. I'm sure/belive what all client modifications available even for classic clients. what about ShowBoard packet? afaik it affects most CB bypasses
0 Rootware Posted January 25, 2021 Posted January 25, 2021 16 hours ago, xdem said: what about ShowBoard packet? afaik it affects most CB bypasses I know what i said. That packet do nothing w/o client side edit. Look at this before: class BoardWnd extends UIScriptEx; var bool m_bShow; var bool m_bBtnLock; var string m_Command[8]; var HtmlHandle m_hBoardWndHtmlViewer; var TabHandle m_hBoardWndTabCtrl; function OnRegisterEvent() { RegisterEvent( EV_ShowBBS ); RegisterEvent( EV_ShowBoardPacket ); } function OnLoad() { if(CREATE_ON_DEMAND==0) OnRegisterEvent(); m_hBoardWndHtmlViewer=GetHtmlHandle("BoardWnd.HtmlViewer"); m_hBoardWndTabCtrl=GetTabHandle("BoardWnd.TabCtrl"); m_bShow = false; m_bBtnLock = false; } function OnShow() { m_bShow = true; } function OnHide() { m_bShow = false; class'UIAPI_WINDOW'.static.SetFocus("ChatWnd"); } function OnEvent(int Event_ID, string param) { if (Event_ID == EV_ShowBBS) { HandleShowBBS(param); } else if (Event_ID == EV_ShowBoardPacket) { HandleShowBoardPacket(param); } } function OnClickButton( string strID ) { Debug( "-->" @ strID ); switch( strID ) { case "btnBookmark": OnClickBookmark(); break; } //ЕЗ№цЖ° Е¬ёЇ if (Left(strID, 7) == "TabCtrl") { strID = Mid(strID, 7); if (!class'UIAPI_WINDOW'.static.IsMinimizedWindow( "BoardWnd" )) { ShowBBSTab(int(strID)); } } } //ГК±вИ function Clear() { } function HandleShowBBS(string param) { local int Index; local int Init; ParseInt(param, "Index", Index); ParseInt(param, "Init", Init); //ГК±в»уЕВ·О ї©ґВ°Ў? (SystemMenu·ОєОЕН) if (Init>0) { if (m_bShow) { //АМ№М єёАМ°н АЦАёёй ґЭґВґЩ. PlayConsoleSound(IFST_WINDOW_CLOSE); class'UIAPI_WINDOW'.static.HideWindow("BoardWnd"); return; } else { if (!m_hBoardWndHtmlViewer.IsPageLock()) { m_hBoardWndHtmlViewer.SetPageLock(true); m_hBoardWndTabCtrl.SetTopOrder(0, false); m_hBoardWndHtmlViewer.Clear(); RequestBBSBoard(); } } //іЄБЯїЎ HandleShowBoardPacketїЎј ShowWindowё¦ ЗСґЩ. } else { m_hBoardWndTabCtrl.SetTopOrder(Index, false); m_hBoardWndHtmlViewer.Clear(); ShowBBSTab(Index); } } function HandleShowBoardPacket(string param) { local int idx; local int OK; local string Address; ParseInt(param, "OK", OK); if (OK<1) { class'UIAPI_WINDOW'.static.HideWindow("BoardWnd"); return; } //Clear for (idx=0; idx<8; idx++) m_Command[idx] = ""; ParseString(param, "Command1", m_Command[0]); ParseString(param, "Command2", m_Command[1]); ParseString(param, "Command3", m_Command[2]); ParseString(param, "Command4", m_Command[3]); ParseString(param, "Command5", m_Command[4]); ParseString(param, "Command6", m_Command[5]); ParseString(param, "Command7", m_Command[6]); ParseString(param, "Command8", m_Command[7]); m_bBtnLock = false; ParseString(param, "Address", Address); m_hBoardWndHtmlViewer.SetHtmlBuffData(Address); if (!m_bShow) { PlayConsoleSound(IFST_WINDOW_OPEN); class'UIAPI_WINDOW'.static.ShowWindow("BoardWnd"); class'UIAPI_WINDOW'.static.SetFocus("BoardWnd"); } } function ShowBBSTab(int Index) { local string strBypass; local EControlReturnType Ret; switch( Index ) { //ГіАЅАё·О case 0: strBypass = "bypass _bbshome"; break; //Бс°ЬГЈ±в case 1: strBypass = "bypass _bbsgetfav"; break; //ИЁЖдАМБц ёµЕ©(10.1.11 №®ј±БШ јцБ¤) case 2: strBypass = "bypass _bbslink"; break; //БцїЄёµЕ© case 3: strBypass = "bypass _bbsloc"; break; //ЗчёНёµЕ© case 4: strBypass = "bypass _bbsclan"; break; //ёЮёр case 5: strBypass = "bypass _bbsmemo"; break; //ёЮАП case 6: strBypass = "bypass _maillist_0_1_0_"; break; //ДЈ±ё°ьё® case 7: strBypass = "bypass _friendlist_0_"; break; } if (Len(strBypass)>0) { Ret = m_hBoardWndHtmlViewer.ControllerExecution(strBypass); if (Ret == CRTT_CONTROL_USE) { m_bBtnLock = true; } } } function OnClickBookmark() { local EControlReturnType Ret; if (Len(m_Command[7])>0 && !m_bBtnLock) { Ret = m_hBoardWndHtmlViewer.ControllerExecution(m_Command[7]); if (Ret == CRTT_CONTROL_USE) { m_bBtnLock = true; } } } defaultproperties { } All bypasses is hardcoded.
0 Vision Posted February 7, 2021 Posted February 7, 2021 (edited) @Jobalabido Let us know if you've fixed the handlers so we can provide you the help you need. Thanks in advance! Edited February 7, 2021 by SectoneART
Question
Jobalabido
Anyone knows how to edit the handlers of the buttons on top of the community board?
11 answers to this question
Recommended Posts