HBPLD 0 Report post Posted February 10, 2012 Hi i change resolution of 640x480 on 800x600 and i have bug hm. look: after vertical red line are dummy but i cant see it. i think it is the problem on HG side but i dont know where HG side i change only this: in function :: iClientMotion_Move_Handler find: sp = (short *)cp; *sp = (short)(dX - 10); cp += 2; sp = (short *)cp; *sp = (short)(dY - 7); cp += 2; replace sp = (short *)cp; *sp = (short)(dX - 12); cp += 2; sp = (short *)cp; *sp = (short)(dY - 9); cp += 2; find: iSize = iComposeMoveMapData((short)(dX - 10), (short)(dY - 7), iClientH, cDir, cp); replace iSize = iComposeMoveMapData((short)(dX - 12), (short)(dY - 9), iClientH, cDir, cp); in function : :RequestInitDataHandler find:: iSize = iComposeInitMapData(m_pClientList[iClientH]->m_sX - 10, m_pClientList[iClientH]->m_sY - 7, iClientH, cp ); replace iSize = iComposeInitMapData(m_pClientList[iClientH]->m_sX - 12, m_pClientList[iClientH]->m_sY - 9, iClientH, cp ); in function ::ChatMsgHandler find:: if ( (m_pClientList[i]->m_cMapIndex == m_pClientList[iClientH]->m_cMapIndex) && (m_pClientList[i]->m_sX > m_pClientList[iClientH]->m_sX - 10) && (m_pClientList[i]->m_sX < m_pClientList[iClientH]->m_sX + 10) && (m_pClientList[i]->m_sY > m_pClientList[iClientH]->m_sY - 7) && (m_pClientList[i]->m_sY < m_pClientList[iClientH]->m_sY + 7) ) replace if ( (m_pClientList[i]->m_cMapIndex == m_pClientList[iClientH]->m_cMapIndex) && (m_pClientList[i]->m_sX > m_pClientList[iClientH]->m_sX - 12) && (m_pClientList[i]->m_sX < m_pClientList[iClientH]->m_sX + 12) && (m_pClientList[i]->m_sY > m_pClientList[iClientH]->m_sY - 9) && (m_pClientList[i]->m_sY < m_pClientList[iClientH]->m_sY + 9) ) in function : :RequestTeleportHandler find: iSize = iComposeInitMapData(m_pClientList[iClientH]->m_sX - 10, m_pClientList[iClientH]->m_sY - 7, iClientH, cp ); replace iSize = iComposeInitMapData(m_pClientList[iClientH]->m_sX - 12, m_pClientList[iClientH]->m_sY - 9, iClientH, cp ); in function :::iRequestPanningMapDataRequest(int find:: sp = (short *)cp; *sp = dX - 10; cp += 2; sp = (short *)cp; *sp = dY - 7; cp += 2; replace sp = (short *)cp; *sp = dX - 12; cp += 2; sp = (short *)cp; *sp = dY - 9; cp += 2; and still nothing, dont see players and npc and i dont know where i can fix this problem;/ if who can help me i would appreciate. Thanks! Share this post Link to post Share on other sites
~WhiteFang 0 Report post Posted February 11, 2012 You have to apply the same thing client-side.Client side it also has the same 10 & 7 limits to width & height of drawing.The things you've changed are just the server side so the server would send the info of a larger range to the client.Now you must edit your client too to accept the larger range and also draw this larger range.Also keep the next thing in mind:When enlarging the screen aswell as the view-range of players, you're massively increasing the packet sizes of these data, which are packets sent VERY VERY often to the client.Rapidly growing packets like these should be taken special care of, calculations must be fast, sending must be smooth or people will just lagg from the larger view-area they got, especially if a lot of NPC/Player activity is going on there.If you really want to have a significant larger view-area (1024*768 or even larger) I recommand re-thinking the packet code related to this, restructure it, optimize calculations and performance of your ENTIRE game server.Aswell as upgrading your client to use DirectX 9c instead of the current DirectX 7 would make it a great advantage.There are some remarkable changes since DX 7 to 9c, especially the shade drawing has been much improved aswell as the DI and the merge of D3D and DS into a same equal layer (done in DX 8) will give a huge performance boost to the client.Also changing the entire drawing system around to use advantages of DX 9c and use 32-bit color drawing instead of 5-6-5 drawing as it does now will make it easier to color things around and it'll for sure increase performance A LOT.Besides the programatic things to keep in mind, you should also keep in mind that making a larger view-area for players, means they get to know easier as faster in a larger area if and where PvP is ongoing, it'll become harder to run off-screen when PvP'ing as everyone is having a larger view-area and someone wants to escape the current PvP action because of being overwhealmed (e.g. 1v10). It also gives the opportunity to people if they go to shop, wh, ch just to check if someone is raiding or a potentional EK is there, they can see their target location from a larger distance, if he/she encounters an enemy over there who's much stronger, running away is much easier, as the distance between the player and the enemy is already (in your example code) 12 tiles instead of 10 tiles, it gives a 2 tile-advantage.Also the ability for mages to cast from a further distance (2 tiles in your example) gives them the advantage over warrior. They can shoot a spell from a further distance, it'll also change the calculations of spells, especially linear spells who now get a much larger damage area in width. Also the range of certain high-level npcs (HC+) is set to the screen-range (or close to) to ensure when a player gets the npc in his screen, he'll be automatically targetted and gets hit, might get stunned, might be killed (by the npc or a chasing raid...), with a larger view-area, he has an advantage of 2 tiles (in your example) to already see the dangerous npc upcomming, quickly change direction to avoid it and he'll not even be seen/hit by the dangerous npc, therefore has more survival chances.You should be thinking about changing such things, it has a great effect on the game and its game play ! Share this post Link to post Share on other sites