[Point Blank] UDP3 POSITION ERROR - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Point Blank (Piercing Blow)

Point Blank (Piercing Blow)
Общие вопросы по написанию эмулятора. General questions on developing emulator. При поддержке: Lucera 2 - разработка Java Interlude

Ответ
Опции темы
Непрочитано 02.06.2018, 02:14   #1
Пользователь

Автор темы (Топик Стартер) 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();
	}
Comandante9901 вне форума Ответить с цитированием
Непрочитано 02.06.2018, 06:42   #2
Пользователь

По умолчанию Re: UDP3 POSITION ERROR

Цитата:
Сообщение от Comandante9901 Посмотреть сообщение
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
bmzproject вне форума Ответить с цитированием
Непрочитано 02.06.2018, 12:19   #3
Пользователь

Автор темы (Топик Стартер) Re: UDP3 POSITION ERROR

Цитата:
Сообщение от bmzproject Посмотреть сообщение
send there fix position, I'll send you the other fixes
Comandante9901 вне форума Ответить с цитированием
Непрочитано 03.07.2018, 22:34   #4
Пользователь

По умолчанию Re: UDP3 POSITION ERROR

can you tell me the fix pleas? i will give you any thing you want
Light вне форума Ответить с цитированием
Непрочитано 04.07.2018, 12:46   #5
Пользователь

По умолчанию Re: UDP3 POSITION ERROR

My UDP 3 Server 100 Fix
LeghtZone вне форума Ответить с цитированием
Непрочитано 04.07.2018, 13:45   #6
Пользователь

По умолчанию Re: UDP3 POSITION ERROR

give me your face book pleas?
Light вне форума Ответить с цитированием
Непрочитано 04.07.2018, 13:51   #7
Пользователь

По умолчанию Re: UDP3 POSITION ERROR

Цитата:
Сообщение от LeghtZone Посмотреть сообщение
My UDP 3 Server 100 Fix
i'm test server you ?
Ok ?
bmzproject вне форума Ответить с цитированием
Непрочитано 04.07.2018, 14:17   #8
Пользователь

По умолчанию 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
Light вне форума Ответить с цитированием
Непрочитано 04.07.2018, 15:24   #9
Пользователь

По умолчанию Re: UDP3 POSITION ERROR

udp 3 full fix I bought c # server bro
LeghtZone вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 04.07.2018, 15:35   #10
Пользователь

По умолчанию Re: UDP3 POSITION ERROR

server version ?
Light вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Point Blank] UDP3 bc.log ManuelDev Point Blank (Piercing Blow) 1 27.05.2018 13:12
[Point Blank] help me please UDP3 Event Position Error bmzproject Point Blank (Piercing Blow) 14 24.05.2018 05:31
[Видео мануал] Help me UDP3 Event Position Error How to fix it bmzproject Тех-документация 0 03.04.2018 23:19
[Point Blank] Help me please UDP3 error bc.log P2P_SUB_HEAD_USER bmzproject Point Blank (Piercing Blow) 0 25.03.2018 18:04
ERROR Error could not store skills! Againamine Работа со скриптами 9 16.06.2012 07:18


© 2007–2018 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 11:38. Часовой пояс GMT +3.

Вверх