Jump to content

Rootware

Legendary Member
  • Posts

    1,370
  • Credits

  • Joined

  • Last visited

  • Days Won

    14
  • Feedback

    100%

Everything posted by Rootware

  1. Я не продаю моды клиентской части, кроме тех что требуют знаний реверса и IDA Pro. Это ответ на первое предложение. Остальное не читал.
  2. Потому что и результата (кроме сугубо личного) от вашей работы нет, кроме как открыть карту и что-нибудь подвигать. Вещь должна быть хоть чем-то полезна. В противном случае зачем её шарить.
  3. Есть вещи которые выходят за рамки "для души" и должны немного оплачиваться. Иначе энтузиазм закончится так и не начавшись. Навыки реверса вы апнули, а вот практического смысла от программы мало кто ощутил. Об этом я и написал.
  4. А мог бы заработать ещё и копеечку.
  5. It is a pity that such a project has remained useless.
  6. The original share of Interlude and High Five interface.u compilers you can find in russian community. https://forum.zone-game.info/showthread.php?t=41879 Credits: edKith (Persy) & Zubastic. P.S. Other links it's reshares or resellers of this share.
  7. For aCis html locates aCis_datapack / data / html / scripts / village_master / Clan / 9000-03.htm The handler locates in gameserver/model/actor/instance/VillageMaster.java Section else if (actualCommand.equalsIgnoreCase("increase_clan_level")) { if (player.getClan().levelUpClan(player)) player.broadcastPacket(new MagicSkillUse(player, player, 5103, 1, 0, 0)); }
  8. L2UI_CT1 or L2UI_CH3 textures HeadDisplay_DF_Target_*.
  9. Your Grand Bosses data are corrupted. I meant spawns, zones, sql, scripts. Check this way and remember what you did yet.
  10. Forgot about credits and allowing rights for sharing. /** * @author SweeTs */
  11. Try with this debug code and show the stacktrace message. ### Eclipse Workspace Patch 1.0 #P aCis_gameserver Index: java/net/sf/l2j/gameserver/scripting/ScriptManager.java =================================================================== --- java/net/sf/l2j/gameserver/scripting/ScriptManager.java (revision 712) +++ java/net/sf/l2j/gameserver/scripting/ScriptManager.java (working copy) @@ -107,6 +107,7 @@ catch (Exception e) { _log.warning("ScriptManager: Error loading \"scripts.xml\" file, " + e); + e.printStackTrace(); } ThreadPool.scheduleAtFixedRate(this, 0, PERIOD); P.S. Why people tries to change something w/o Java and architecture knowledge? It's some madness.
  12. Need share full code of voice's command handler and what L2J source name you are uses. We can't help you more than told you JVM console.
  13. This little code will shows the real diff range of async between server and client position. By default, this code was maked for aCis but can be use for any L2J forks. ### Eclipse Workspace Patch 1.0 #P aCis_gameserver Index: java/net/sf/l2j/gameserver/network/clientpackets/MoveBackwardToLocation.java =================================================================== --- java/net/sf/l2j/gameserver/network/clientpackets/MoveBackwardToLocation.java (revision 1133) +++ java/net/sf/l2j/gameserver/network/clientpackets/MoveBackwardToLocation.java (working copy) @@ -2,6 +2,8 @@ import java.nio.BufferUnderflowException; +import net.sf.l2j.commons.math.MathUtil; + import net.sf.l2j.Config; import net.sf.l2j.gameserver.model.actor.ai.CtrlIntention; import net.sf.l2j.gameserver.model.actor.instance.Player; @@ -95,6 +97,18 @@ activeChar.sendPacket(ActionFailed.STATIC_PACKET); return; } + + // Check async range. + dx = _originX - activeChar.getX(); + dy = _originY - activeChar.getY(); + double dz1 = _originZ - activeChar.getZ(); + float diff = (float) Math.sqrt(dx * dx + dy * dy + dz1 * dz1); + int heading = MathUtil.calculateHeadingFrom(_originX, _originY, activeChar.getX(), activeChar.getY()); + if (Math.abs(activeChar.getHeading() - heading) > 16000) + diff = diff * -1; + + activeChar.sendMessage("Async distance: " + diff); + activeChar.getAI().setIntention(CtrlIntention.MOVE_TO, new Location(_targetX, _targetY, _targetZ)); } } \ No newline at end of file Index: java/net/sf/l2j/gameserver/network/clientpackets/ValidatePosition.java =================================================================== --- java/net/sf/l2j/gameserver/network/clientpackets/ValidatePosition.java (revision 1133) +++ java/net/sf/l2j/gameserver/network/clientpackets/ValidatePosition.java (working copy) @@ -1,5 +1,7 @@ package net.sf.l2j.gameserver.network.clientpackets; +import net.sf.l2j.commons.math.MathUtil; + import net.sf.l2j.gameserver.model.actor.instance.Player; import net.sf.l2j.gameserver.model.zone.ZoneId; import net.sf.l2j.gameserver.network.serverpackets.GetOnVehicle; @@ -88,5 +90,17 @@ player.setClientY(_y); player.setClientZ(_z); player.setClientHeading(_heading); // No real need to validate heading. + + // Check async range. + dx = _x - player.getX(); + dy = _y - player.getY(); + dz = _z - player.getZ(); + float diff = (float) Math.sqrt(dx * dx + dy * dy + dz * dz); + + int heading = MathUtil.calculateHeadingFrom(_x, _y, player.getX(), player.getY()); + if (Math.abs(player.getHeading() - heading) > 16000) + diff = diff * -1; + + player.sendMessage("[4] Async distance: " + diff); } } \ No newline at end of file Have fun, so!
  14. I use this structure of packet since the time when i used yet IL client for own project. And it's worked/works correct. FastTeleport variable disable effect of black screen for teleport and can be uses only for not longer teleports (read the my description "correct position"). The tip of sending this packet after UserInfo while player entering into the world not checked by me. Fot this packet you need change basic holder Location() and add new param _heading. Also you will need rewrite all teleportTo() methods everywhere and for everyone. Otherwise it will look like no heading effect. The result of fix. The same effect can be seen in IL, CT1.x and CT2.x clients.
  15. Try this up. @Override protected final void writeImpl() { writeC(0x22); writeD(_objectId); writeD(_x); writeD(_y); writeD(_z); writeD(_isFastTeleport ? 1 : 0); // 0 - with black screen, 1 - fast teleport (for correcting position) writeD(_heading); }
  16. Sure. You are right, my mistake. I meant TeleportToLacation packet. You can send him with special params (for disable black screen for teleport) after UserInfo packet while character entering onto the world and you will see correct character rotation.
  17. When you entering to the world you can see own/another character always with wrong heading. It's client bug, because model in client always spawns w/o server heading - always look to the east. While teleporting the heading saving and processing correct for all characters own or another.
  18. writeC(0x03); writeD(_activeChar.getX()); writeD(_activeChar.getY()); writeD(_activeChar.getZ()); writeD(_activeChar.getHeading()); /* Removing this because it's Vehicle ID */ You are fixed character model heading only for known players, but for self in UserInfo forgot.
  19. Following NetPro data i interests the additional block what was added since Freya. <?xml version="1.0" encoding="UTF-8"?> <packet id="LS_SM_SERVER_LIST" xmlns="http://www.l2emu-unique.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.l2emu-unique.net ../../../schemata/packet.xsd"> <byte alias="Game server count" id="gs_list" /> <branch id="gs_list" condition="serverlist.ServerListPrelude"> <byte alias="Last game server" type="GameServerName" /> </branch> <loop id="gs_list"> <byte alias="Game server" type="GameServerName"> <scriptAlias id="__INVASIVE_AUTO_EXTRACT_GS_ID" /> </byte> <branch id="gs_list" condition="serverlist.ServerListNamed"> <bytes alias="Server name" type="auth.CustomServerName"> <length>40</length> </bytes> </branch> <bytes alias="IPv4" type="IPv4"> <length>4</length> <scriptAlias id="__INVASIVE_AUTO_REPLACE_GS_IP" /> </bytes> <dword alias="Port"> <scriptAlias id="__INVASIVE_AUTO_REPLACE_GS_PORT" /> </dword> <branch id="gs_list" condition="serverlist.ServerListPrelude"> <byte alias="Minimum player age" /> <byte alias="PvP allowed" type="YesOrNo" /> <word alias="Online players" /> <word alias="Maximum players" /> <byte alias="Online" type="YesOrNo" /> <branch id="gs_list" condition="serverlist.ServerListC1"> <dword alias="Type(s)" type="GameServerKind" /> <branch id="gs_list" condition="serverlist.ServerListC2"> <byte alias="Region" /> </branch> </branch> </branch> </loop> <branch id="gs_list" condition="serverlist.ServerListFreya"> <word alias="Non-padded bytes" id="bytesize" /> <branch id="bytesize" condition="Positive"> <branch id="bytesize" condition="serverlist.ServerList5Ex2"> <bytes alias="Characters" type="ServerCharacterCount" /> </branch> <branch id="bytesize" condition="serverlist.ServerList5Ex1"> <byte alias="Game server count" id="gs_list" /> <loop id="gs_list"> <byte alias="Game server" type="GameServerName" /> <byte alias="Total characters" /> <byte alias="Pending deletion" id="timestamp_list" /> <loop id="timestamp_list"> <dword alias="Date of removal" type="SecondsSinceEpoch" /> </loop> </loop> </branch> </branch> </branch> <!-- The rest is padding, except for 2nd last DWORD, which is the checksum --> </packet> Somebody to knows how the "ServerListFreya" block must to look in example? If i'm not mistake it's must add into every server list row the character count of this account for all servers in list. Or client isn't processing this data? Thanks in advance.
  20. Unknown initial character set index '255' received from server. Initial client character set can be forced via the 'characterEncoding' property. Wrong encoding settings in DB or from server side in connection driver string.
  21. Your code will work only if ITEM_NAME = -1; Do you understand what it's impossible?
  22. I already posted the reason for fix heading issue. You need only add some change. This work take from you around 30-40 minutes.
  23. Storing the heading while charater is teleporting/entering don't uses as feature in any L2J beacause they use Location container only with x,y,z w/o heading. Restoring character heading in entering into the world (for self in any chronicles and for all for before Kamael) - client bug. Checked.
  24. Not every russian kid have such money in cash. It's arund 800 rubles. The averange russian salary 25,000 rubles. So for a european it is a ridiculous amount, but for a russian child there isn’t.
  25. Ask @Designatix about MxC rules. He told what aCis is "child" project of MxC community and we will block any illegal shares of this project. It's calling as friendship - respecting the "child" project rules. Go back in fraudulent ghetto.
×
×
  • Create New...