HelpArtificial Movement Packets

Posts 1–15 of 26 · Page 1 of 2
Artificial Movement Packets
I have been messing around with Realm Relay's source code, and am currently trying to send Artificial movement packets. Right now I have some modified code which I utilized from Botmakers old Java Proxy. It dosen't throw any errors when moving around, which is odd; so something is happening but I am unable to find out what exactly it is.

Code:
MovePacket mv = new MovePacket();
   Location loc = new Location();
   loc.x = x;
   loc.y = y;
   mv.newPosition = loc;
   mv.tickId = currentTickId;
   mv.time = (int) (currentTickTime + 10);
   mv.records = new LocationRecord[] { currentPlayerLocations };
   event.sendToClient(mv);
Could someone gvie me some hints or information as to what parameters are required and such? I've been struggling lots.
Having this problem as well.
Well for one, sending a move packet to the server from the proxy won't show that you've moved on the client side. Is that the problem youre having?
Quote Originally Posted by krazyshank View Post
Well for one, sending a move packet to the server from the proxy won't show that you've moved on the client side. Is that the problem youre having?
Thats what I was thinking.
Quote Originally Posted by krazyshank View Post
Well for one, sending a move packet to the server from the proxy won't show that you've moved on the client side. Is that the problem youre having?
The packets location dosent seem to change permanently, this may be due to the way in which I am trying to move the characters though.
Send a MOVE to the server then a GOTO to the client?

Never tried this, btw
I've experimented with this in the past. The conclusion I came to was that there really is no good way to move a character with packets alone. The reason is because the server never sends packets to your client telling your character to move aside from goto packet. So in essence, by forging movement with packets alone, all you are doing is creating desync issues between your client and the server which is a good way to get disco'ed. You can try what jnoob said and send a fake goto packet to the client to update your character's position (make sure to block the resulting gotoack packet if you do this). This may work depending on the problem you are trying to solve. The goto packet isn't good at simulating movement though. If you try to do that you may find yourself running into disco issues (as I have).
Quote Originally Posted by nilly View Post
I've experimented with this in the past. The conclusion I came to was that there really is no good way to move a character with packets alone. The reason is because the server never sends packets to your client telling your character to move aside from goto packet. So in essence, by forging movement with packets alone, all you are doing is creating desync issues between your client and the server which is a good way to get disco'ed. You can try what jnoob said and send a fake goto packet to the client to update your character's position (make sure to block the resulting gotoack packet if you do this). This may work depending on the problem you are trying to solve. The goto packet isn't good at simulating movement though. If you try to do that you may find yourself running into disco issues (as I have).
Ah okay. Thank you for this.
I understand about getting Disco'ed, I'll try what jnoob said, I also understand that Botmaker has reverse engineered the movement code, which may help.
Quote Originally Posted by Phoenix1123 View Post
Ah okay. Thank you for this.
I understand about getting Disco'ed, I'll try what jnoob said, I also understand that Botmaker has reverse engineered the movement code, which may help.
There is nothing to the movement code. If one looks at the right area of code, the way movement is handled is practically spelled out for you.

I'm not sure what you are trying to do but if you're trying to automated some process (much like a bot) I don't think RR is the right way to go about it. A better way would be to make a custom client.
Quote Originally Posted by nilly View Post
There is nothing to the movement code. If one looks at the right area of code, the way movement is handled is practically spelled out for you.

I'm not sure what you are trying to do but if you're trying to automated some process (much like a bot) I don't think RR is the right way to go about it. A better way would be to make a custom client.
Yeah, that's exactly my point of using RR, I know much more Java than ActionScript, and yes it is for a bot, although it will most likely be scrapped due to botmakers upcoming bots
Quote Originally Posted by Phoenix1123 View Post
Yeah, that's exactly my point of using RR, I know much more Java than ActionScript, and yes it is for a bot, although it will most likely be scrapped due to botmakers upcoming bots
Yeah but if you make bots in Java unlike botmaker, we'd be progressing in the right direction. That nearly proprietary euphoria crap is nearly unusable by everyone else who wants to code.
Quote Originally Posted by krazyshank View Post
Yeah but if you make bots in Java unlike botmaker, we'd be progressing in the right direction. That nearly proprietary euphoria crap is nearly unusable by everyone else who wants to code.
The problem is it's much harder (or for me), if only someone could update Botmakers old java proxy exactly.
Quote Originally Posted by Phoenix1123 View Post
The problem is it's much harder (or for me), if only someone could update Botmakers old java proxy exactly.
All it needs is a packet id remap.
If you have any questions about updating it I can help, but yeah pretty small changes are needed.
Code:
       public function _-1fA():Boolean{    //Slowed
            return (!(((this.condition_ & ConditionEffect._-05u) == 0)));
        }

        public function _-0OS():Boolean{ //speedy
            return (!(((this.condition_ & ConditionEffect._-1Ha) == 0)));
        }
        public function _-M1():Boolean{ //Ninja speedy
            return (!(((this.condition_ & ConditionEffect._-1lD) == 0)));
        }

        private static const _-1eB:Number = 0.004;//Base speed
        private static const _-0A9:Number = 0.0096;//Speed multiplier 
        protected var _-W2:Number = 1; //Speed modifier 


        public function _-1o1():void{  //called at the end of every move function real
            if (map_ == null){
                return;
            };
            var _local1:Square = map_.getSquare(x_, y_);  //returns the tile object


            if (_local1.props_._-yg){  //            this._-yg = _arg1.hasOwnProperty("Sinking");


                _-fR = Math.min((_-fR + 1), Parameters._-1OT);  //public static const _-1OT:Number = 18;
                this._-W2 = (0.1 + ((1 - (_-fR / Parameters._-1OT)) * (_local1.props_.speed_ - 0.1)));
            }
            else {  //not sinking
                _-fR = 0; //global float
                this._-W2 = _local1.props_.speed_;   // 
            };
        }



        private function speed:Number{

            if (_-1fA()){  //Slowed

                return ((_-1eB * this._-W2));
            };

            var _local1:Number = (0.004 + ((this.speed_ / 75) * (0.0096 - 0.004)));

            if (((_-0OS()) || (_-M1()))){ //speedy
                _local1 = (_local1 * 1.5);
            };

            _local1 = (_local1 * this._-W2);
            return (_local1); //return the new speed
        }
Quote Originally Posted by krazyshank View Post
proprietary euphoria crap


Quote Originally Posted by krazyshank View Post
Yeah but if you make bots in Java unlike botmaker, we'd be progressing in the right direction
One of you could setup a git repository for the java proxy/client 16.4 source code, and I’ll update the packets, maybe even help further on the bots
Quote Originally Posted by Botmaker View Post
Code:
       public function _-1fA():Boolean{    //Slowed
            return (!(((this.condition_ & ConditionEffect._-05u) == 0)));
        }

        public function _-0OS():Boolean{ //speedy
            return (!(((this.condition_ & ConditionEffect._-1Ha) == 0)));
        }
        public function _-M1():Boolean{ //Ninja speedy
            return (!(((this.condition_ & ConditionEffect._-1lD) == 0)));
        }

        private static const _-1eB:Number = 0.004;//Base speed
        private static const _-0A9:Number = 0.0096;//Speed multiplier 
        protected var _-W2:Number = 1; //Speed modifier 


        public function _-1o1():void{  //called at the end of every move function real
            if (map_ == null){
                return;
            };
            var _local1:Square = map_.getSquare(x_, y_);  //returns the tile object


            if (_local1.props_._-yg){  //            this._-yg = _arg1.hasOwnProperty("Sinking");


                _-fR = Math.min((_-fR + 1), Parameters._-1OT);  //public static const _-1OT:Number = 18;
                this._-W2 = (0.1 + ((1 - (_-fR / Parameters._-1OT)) * (_local1.props_.speed_ - 0.1)));
            }
            else {  //not sinking
                _-fR = 0; //global float
                this._-W2 = _local1.props_.speed_;   // 
            };
        }



        private function speed:Number{

            if (_-1fA()){  //Slowed

                return ((_-1eB * this._-W2));
            };

            var _local1:Number = (0.004 + ((this.speed_ / 75) * (0.0096 - 0.004)));

            if (((_-0OS()) || (_-M1()))){ //speedy
                _local1 = (_local1 * 1.5);
            };

            _local1 = (_local1 * this._-W2);
            return (_local1); //return the new speed
        }

Well i dont really use java, but i get that joke.
But in all seriousness euphoria isnt really relevant to someone who wants to make bots easily. Plus the syntax is different, missing some features yadda yadda
Posts 1–15 of 26 · Page 1 of 2

Post a Reply

Similar Threads

Tags for this Thread

None

Talk with us