Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Point Blank (Piercing Blow) (https://forum.zone-game.info/forumdisplay.php?f=204)
-   -   [Point Blank] UDP3 POSITION ERROR (https://forum.zone-game.info/showthread.php?t=43174)

Comandante9901 02.06.2018 02:14

UDP3 POSITION ERROR
 
UDP3 Event Position Error how to fix



@PROGRAMMATOR

RUS:
вы что-то понимаете?
ENG:
Do you understand something?

BattleUdpReceive
Код:

                                else
                                        {
                                            send.buffer.writeByte(4);
                                            send.buffer.writeByte(255);
                                            send.buffer.writeFloat(udp.time);
                                            send.buffer.writeByte(udp.session);
                                            send.buffer.writeShort(udp.length);
                                                        send.buffer.writeInt(0);
                                                        //send.buffer.writeBytes(udp.bytes3.clone()); //*UDP3*// 
                                                        //asyncEvent(udp.read, r, p, udp, send.buffer);
                       
                                                        try
                                                        {
                                                                asyncEvent(udp.read, r, p, udp, send.buffer);
                                                        }
                                                        catch (Throwable e)
                                                        {
                                                                Software.setColor(Color.YELLOW, Color.BLACK);
                                                    logging("ERROR", true);
                                                    Software.setColor(Color.WHITE, Color.BLACK);
                                                        }
                                        }
                                        for (Player c : r.players.values())
                                        {
                                                if (c.state == SlotState.BATTLE && c.sender != null && r.isUDP(c.slot, p.slot == r.leader))
                                                        ctx.writeAndFlush(new DatagramPacket(Unpooled.copiedBuffer(send.buffer), c.sender));
                                        }
                                }
                        }
                                        break;
                                }
                       
                    send.close();
            }
            catch (Throwable e)
            {
                        Logger.gI().info("errorUDP", e, "", getClass());
            }
            finally
            {
                    if (receive.refCnt() != 0) receive.release();
                    if (udp.read.refCnt() != 0) udp.read.release();
                    if (send.buffer.refCnt() != 0) send.buffer.release();
                ReferenceCountUtil.release(msg);
            }
            udp = null;
        }

AsyncEvent
Код:

public void asyncEvent(ByteBuf read, Room r, Player p, UDP_Model udp, ByteBuf sender) throws Throwable
        {
                byte opc = read.readByte();

                UDP_P2P subHead = UDP_SubHead.getSubHead(opc);
                subHead.slot = read.readShort();
                subHead.length = read.readShort();
                subHead.flag = read.readInt();

                BattleUdpBuffer ss = new BattleUdpBuffer();

                ss.buffer.writeByte(opc);
                ss.buffer.writeShort(subHead.slot);
                ss.buffer.writeShort(subHead.length);
                ss.buffer.writeInt(subHead.flag);
               
                if ((subHead.flag & 0x04) > 0) //Pos Rotate
                {
                        UDP_PosRotation half = new UDP_PosRotation(read.readUnsignedShort(), read.readUnsignedShort(), read.readUnsignedShort(), read.readUnsignedShort(), read.readUnsignedShort(), read.readUnsignedShort());
                        p.pos = half;
                        ss.buffer.writeShort(half.posX);
                        ss.buffer.writeShort(half.posY);
                        ss.buffer.writeShort(half.posZ);
                        ss.buffer.writeShort(half.camX);
                        ss.buffer.writeShort(half.camY);
                        ss.buffer.writeShort(half.area);

                        Software.setColor(Color.GREEN, Color.BLACK);
                        core.models.MapLocation map = MapsLocalXML.gI().get(r.map, half.area);
                        if (map != null)
                        {
                                RoomController.gI().sendPacket(new REQUEST_GAME_SEND_ACK(r.roomId, r.serverId, r.channelId, p.slot, String.valueOf(map.local)));
                                System.out.println(" [" + map.index + "] " + map.local);
                                System.out.flush();
                        }
                        else
                        {
                                //RoomController.gI().sendPacket(new REQUEST_GAME_SEND_ACK(r.roomId, r.serverId, r.channelId, p.slot, String.valueOf(half.area)));
                        }
                        Software.setColor(Color.WHITE, Color.BLACK);
            Software.setColor(Color.CYAN, Color.BLACK);
                        String local = null;
                        logging("[Burning Hall] Slot " + udp.slot + "; " + local, true);
            Software.setColor(Color.WHITE, Color.BLACK);
                        subHead.flag ^= 4;
                }
                ss.buffer.writeBytes(Unpooled.copiedBuffer(read));
                BitShift.onlyEncrypt(ss.buffer, udp.length);
                sender.writeBytes(Unpooled.copiedBuffer(ss.buffer));
                ss.close();
               
                int k = 0;
                if (k == 0)
                        return;
               
                if ((subHead.flag & 0x01) > 0) //ActionState
                {
                        int acao = read.readInt();
                        UDP_Action action = UDP_Action.valueOf(acao);
                        if (action.value > 0)
                                RoomController.gI().sendPacket(new REQUEST_GAME_SEND_ACK(r.roomId, r.serverId, r.channelId, p.slot, String.valueOf(action)));
                        ss.buffer.writeInt(acao);
                        subHead.flag ^= 0x01;
                }
                if ((subHead.flag & 0x02) > 0) //Animation
                {
                        short value = read.readShort();
                        ss.buffer.writeShort(value);
                        subHead.flag ^= 0x02;
                }
                if ((subHead.flag & 0x08) > 0) //Use Object
                {
                        short value = read.readShort();
                        ss.buffer.writeShort(value);
                        subHead.flag ^= 0x08;
                }
                if ((subHead.flag & 0x20) > 0) //Radio Chat
                {
                        UDP_Chat radio = UDP_Chat.valueOf(read.readByte());
                        byte area = read.readByte();
            Software.setColor(Color.YELLOW, Color.BLACK);
            logging(" Slot " + udp.slot + " is release a radio chat: radId, localId [" + radio.value + ";" + area + "]", true);
            Software.setColor(Color.WHITE, Color.BLACK);
                        ss.buffer.writeByte(radio.value);
                        ss.buffer.writeByte(area);
                        subHead.flag ^= 0x20;
                }
                if ((subHead.flag & 0x40) > 0) //HP Sync
                {
                        UDP_HPSync hp = new UDP_HPSync(read.readShort(), false);
                        if (hp.life < 1)
                                hp.death = true;
                        logging(" HP Sync slot " + p.slot + " >> hp " + hp + " death: " + hp.death, true);
                        RoomController.gI().sendPacket(new REQUEST_GAME_SEND_ACK(r.roomId, r.serverId, r.channelId, p.slot, String.valueOf("[HP] Life " + hp + " death: " + hp.death)));
                        ss.buffer.writeShort(hp.life);
                        subHead.flag ^= 0x40;
                }
                if ((subHead.flag & 0x100) > 0) //Object Status
                {
                        ss.buffer.writeShort(read.readShort()); //unk
                while (read.isReadable())
                {
                  int type = read.readByte();
                  if (type == 8) //Jogador
              {
                  int objid = read.readShort();
                  int unk1 = read.readShort();
                  byte byte1 = read.readByte();
                  int unk2 = read.readShort();
                  byte byte2 = read.readByte();
                  int hp = read.readShort();
                  ss.buffer.writeByte(type);
                  ss.buffer.writeShort(objid);
                  ss.buffer.writeShort(unk1);
                  ss.buffer.writeByte(byte1);
                  ss.buffer.writeShort(unk2);
                  ss.buffer.writeByte(byte2);
                  ss.buffer.writeShort(hp);
                  Software.setColor(Color.GREEN, Color.BLACK);
                  logging("hitPlayer: objIdx: " + objid + "; unk1: " + unk1 + "; unk2: " + unk2 + "; hp: " + hp, true);
                  Software.setColor(Color.WHITE, Color.BLACK);
              }
              else if (type == 3)
              {
                  int objId = read.readShort();
                  int unk1 = read.readShort();
                  int partIdx = read.readShort();
                  boolean destroyed = read.readBoolean();
                  Software.setColor(Color.YELLOW, Color.BLACK);
                  logging("hitObject: objIdx: " + objId + "; partIdx: " + partIdx + "; unk: " + unk1 + "; destroyed: " + destroyed, true);
                  Software.setColor(Color.WHITE, Color.BLACK);
                  ss.buffer.writeByte(type);
                  ss.buffer.writeShort(objId);
                  ss.buffer.writeShort(unk1);
                  ss.buffer.writeShort(partIdx);
                  ss.buffer.writeBoolean(destroyed);
              }
              read.discardReadBytes();
                }
                        subHead.flag ^= 0x100;
                }
                ss.close();
        }


bmzproject 02.06.2018 06:42

Re: UDP3 POSITION ERROR
 
Цитата:

Сообщение от Comandante9901 (Сообщение 431635)
UDP3 Event Position Error how to fix



@PROGRAMMATOR

RUS:
вы что-то понимаете?
ENG:
Do you understand something?

BattleUdpReceive
Код:

                                else
                                        {
                                            send.buffer.writeByte(4);
                                            send.buffer.writeByte(255);
                                            send.buffer.writeFloat(udp.time);
                                            send.buffer.writeByte(udp.session);
                                            send.buffer.writeShort(udp.length);
                                                        send.buffer.writeInt(0);
                                                        //send.buffer.writeBytes(udp.bytes3.clone()); //*UDP3*// 
                                                        //asyncEvent(udp.read, r, p, udp, send.buffer);
                       
                                                        try
                                                        {
                                                                asyncEvent(udp.read, r, p, udp, send.buffer);
                                                        }
                                                        catch (Throwable e)
                                                        {
                                                                Software.setColor(Color.YELLOW, Color.BLACK);
                                                    logging("ERROR", true);
                                                    Software.setColor(Color.WHITE, Color.BLACK);
                                                        }
                                        }
                                        for (Player c : r.players.values())
                                        {
                                                if (c.state == SlotState.BATTLE && c.sender != null && r.isUDP(c.slot, p.slot == r.leader))
                                                        ctx.writeAndFlush(new DatagramPacket(Unpooled.copiedBuffer(send.buffer), c.sender));
                                        }
                                }
                        }
                                        break;
                                }
                       
                    send.close();
            }
            catch (Throwable e)
            {
                        Logger.gI().info("errorUDP", e, "", getClass());
            }
            finally
            {
                    if (receive.refCnt() != 0) receive.release();
                    if (udp.read.refCnt() != 0) udp.read.release();
                    if (send.buffer.refCnt() != 0) send.buffer.release();
                ReferenceCountUtil.release(msg);
            }
            udp = null;
        }

AsyncEvent
Код:

public void asyncEvent(ByteBuf read, Room r, Player p, UDP_Model udp, ByteBuf sender) throws Throwable
        {
                byte opc = read.readByte();

                UDP_P2P subHead = UDP_SubHead.getSubHead(opc);
                subHead.slot = read.readShort();
                subHead.length = read.readShort();
                subHead.flag = read.readInt();

                BattleUdpBuffer ss = new BattleUdpBuffer();

                ss.buffer.writeByte(opc);
                ss.buffer.writeShort(subHead.slot);
                ss.buffer.writeShort(subHead.length);
                ss.buffer.writeInt(subHead.flag);
               
                if ((subHead.flag & 0x04) > 0) //Pos Rotate
                {
                        UDP_PosRotation half = new UDP_PosRotation(read.readUnsignedShort(), read.readUnsignedShort(), read.readUnsignedShort(), read.readUnsignedShort(), read.readUnsignedShort(), read.readUnsignedShort());
                        p.pos = half;
                        ss.buffer.writeShort(half.posX);
                        ss.buffer.writeShort(half.posY);
                        ss.buffer.writeShort(half.posZ);
                        ss.buffer.writeShort(half.camX);
                        ss.buffer.writeShort(half.camY);
                        ss.buffer.writeShort(half.area);

                        Software.setColor(Color.GREEN, Color.BLACK);
                        core.models.MapLocation map = MapsLocalXML.gI().get(r.map, half.area);
                        if (map != null)
                        {
                                RoomController.gI().sendPacket(new REQUEST_GAME_SEND_ACK(r.roomId, r.serverId, r.channelId, p.slot, String.valueOf(map.local)));
                                System.out.println(" [" + map.index + "] " + map.local);
                                System.out.flush();
                        }
                        else
                        {
                                //RoomController.gI().sendPacket(new REQUEST_GAME_SEND_ACK(r.roomId, r.serverId, r.channelId, p.slot, String.valueOf(half.area)));
                        }
                        Software.setColor(Color.WHITE, Color.BLACK);
            Software.setColor(Color.CYAN, Color.BLACK);
                        String local = null;
                        logging("[Burning Hall] Slot " + udp.slot + "; " + local, true);
            Software.setColor(Color.WHITE, Color.BLACK);
                        subHead.flag ^= 4;
                }
                ss.buffer.writeBytes(Unpooled.copiedBuffer(read));
                BitShift.onlyEncrypt(ss.buffer, udp.length);
                sender.writeBytes(Unpooled.copiedBuffer(ss.buffer));
                ss.close();
               
                int k = 0;
                if (k == 0)
                        return;
               
                if ((subHead.flag & 0x01) > 0) //ActionState
                {
                        int acao = read.readInt();
                        UDP_Action action = UDP_Action.valueOf(acao);
                        if (action.value > 0)
                                RoomController.gI().sendPacket(new REQUEST_GAME_SEND_ACK(r.roomId, r.serverId, r.channelId, p.slot, String.valueOf(action)));
                        ss.buffer.writeInt(acao);
                        subHead.flag ^= 0x01;
                }
                if ((subHead.flag & 0x02) > 0) //Animation
                {
                        short value = read.readShort();
                        ss.buffer.writeShort(value);
                        subHead.flag ^= 0x02;
                }
                if ((subHead.flag & 0x08) > 0) //Use Object
                {
                        short value = read.readShort();
                        ss.buffer.writeShort(value);
                        subHead.flag ^= 0x08;
                }
                if ((subHead.flag & 0x20) > 0) //Radio Chat
                {
                        UDP_Chat radio = UDP_Chat.valueOf(read.readByte());
                        byte area = read.readByte();
            Software.setColor(Color.YELLOW, Color.BLACK);
            logging(" Slot " + udp.slot + " is release a radio chat: radId, localId [" + radio.value + ";" + area + "]", true);
            Software.setColor(Color.WHITE, Color.BLACK);
                        ss.buffer.writeByte(radio.value);
                        ss.buffer.writeByte(area);
                        subHead.flag ^= 0x20;
                }
                if ((subHead.flag & 0x40) > 0) //HP Sync
                {
                        UDP_HPSync hp = new UDP_HPSync(read.readShort(), false);
                        if (hp.life < 1)
                                hp.death = true;
                        logging(" HP Sync slot " + p.slot + " >> hp " + hp + " death: " + hp.death, true);
                        RoomController.gI().sendPacket(new REQUEST_GAME_SEND_ACK(r.roomId, r.serverId, r.channelId, p.slot, String.valueOf("[HP] Life " + hp + " death: " + hp.death)));
                        ss.buffer.writeShort(hp.life);
                        subHead.flag ^= 0x40;
                }
                if ((subHead.flag & 0x100) > 0) //Object Status
                {
                        ss.buffer.writeShort(read.readShort()); //unk
                while (read.isReadable())
                {
                  int type = read.readByte();
                  if (type == 8) //Jogador
              {
                  int objid = read.readShort();
                  int unk1 = read.readShort();
                  byte byte1 = read.readByte();
                  int unk2 = read.readShort();
                  byte byte2 = read.readByte();
                  int hp = read.readShort();
                  ss.buffer.writeByte(type);
                  ss.buffer.writeShort(objid);
                  ss.buffer.writeShort(unk1);
                  ss.buffer.writeByte(byte1);
                  ss.buffer.writeShort(unk2);
                  ss.buffer.writeByte(byte2);
                  ss.buffer.writeShort(hp);
                  Software.setColor(Color.GREEN, Color.BLACK);
                  logging("hitPlayer: objIdx: " + objid + "; unk1: " + unk1 + "; unk2: " + unk2 + "; hp: " + hp, true);
                  Software.setColor(Color.WHITE, Color.BLACK);
              }
              else if (type == 3)
              {
                  int objId = read.readShort();
                  int unk1 = read.readShort();
                  int partIdx = read.readShort();
                  boolean destroyed = read.readBoolean();
                  Software.setColor(Color.YELLOW, Color.BLACK);
                  logging("hitObject: objIdx: " + objId + "; partIdx: " + partIdx + "; unk: " + unk1 + "; destroyed: " + destroyed, true);
                  Software.setColor(Color.WHITE, Color.BLACK);
                  ss.buffer.writeByte(type);
                  ss.buffer.writeShort(objId);
                  ss.buffer.writeShort(unk1);
                  ss.buffer.writeShort(partIdx);
                  ss.buffer.writeBoolean(destroyed);
              }
              read.discardReadBytes();
                }
                        subHead.flag ^= 0x100;
                }
                ss.close();
        }


Position me work
not fix damage
https://www.youtube.com/watch?v=yQxoUFfrhE0&t=3s

add facebook : https://www.facebook.com/errordev

Comandante9901 02.06.2018 12:19

Re: UDP3 POSITION ERROR
 
Цитата:

Сообщение от bmzproject (Сообщение 431636)

send there fix position, I'll send you the other fixes

Light 03.07.2018 22:34

Re: UDP3 POSITION ERROR
 
can you tell me the fix pleas? i will give you any thing you want

LeghtZone 04.07.2018 12:46

Re: UDP3 POSITION ERROR
 
My UDP 3 Server 100 Fix:banan:

Light 04.07.2018 13:45

Re: UDP3 POSITION ERROR
 
give me your face book pleas?

bmzproject 04.07.2018 13:51

Re: UDP3 POSITION ERROR
 
Цитата:

Сообщение от LeghtZone (Сообщение 431910)
My UDP 3 Server 100 Fix:banan:

i'm test server you ?
Ok ?

Light 04.07.2018 14:17

Re: UDP3 POSITION ERROR
 
i want to buy the udp3 from any one
for money or for a website with system linked to server and coupon server
or for launcher auto update and check system

LeghtZone 04.07.2018 15:24

Re: UDP3 POSITION ERROR
 
udp 3 full fix I bought c # server bro

Light 04.07.2018 15:35

Re: UDP3 POSITION ERROR
 
server version ?


Текущее время: 03:03. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot