Custom DO flash client. Discussion

11/05/2013 01:08 Fenrisus#1
Hello guys. Today i am totally finish my work on DO client side. Now the client "main.swf" can be compiled again from source code. Here fixed alot of issues in client (after code extraction), and some BigPoint mistakes (like hasNext wrong implementation and others). Add new features? Easy! Add anything new? That is no problem anymore with client-side source code!
So, project files and source code will be "closed" software, but let me tell to yours about my plans.
I have a plan to make a flexible, high customizable private server pack (for developers), with sources included: server side, client side. With worked any basic DO features. And give it for some reward. :rolleyes: (Any work should be payed right?) So, i needs you suggestions!
(you may post it here or tell me in private)
1) How much price for this pack you can give to me?
2) What features you want to see in the server-client?
3) Something else? Any idea?
Note: i will sell only limited copies of that pack, or if i am found a good customer, it will be a single-copy of that pack only for one person.
11/05/2013 04:19 DrSkyfall#2
More than 3x the price of all others creators of Private Server Do will offer you .. Lol.

Hope you will make a single copy just for me ;).


DrS.
11/05/2013 06:49 »jD«#3
Dude, recompiling code is so simple -.- I decompiled the client and the only thing I needed to fix was font embedding :P

-jD
11/05/2013 10:41 Sήøwy#4
Quote:
Originally Posted by »jD« View Post
Dude, recompiling code is so simple -.- I decompiled the client and the only thing I needed to fix was font embedding :P

-jD
yep...that's true
11/05/2013 11:35 Fenrisus#5
Yeah, but we talking about not only client. And so, JD you files have a full translation\deobfuscation? =)
For example:
Code:
package net.bigpoint.darkorbit.map
{
   import flash.display.BitmapData;


   public class Line extends BitmapData
   {
          
      public function Line(param1:int, param2:int, param3:Boolean=true, param4:uint=undefined) {
         super(param1,param2,param3,param4);
      }

      public function line(param1:int, param2:int, param3:int, param4:int, param5:uint) : void {
         var _loc6_:* = 0;
         var _loc7_:* = 0;
         var _loc8_:* = 0;
         var _loc9_:* = 0;
         var _loc10_:* = 0;
         var _loc11_:* = 0;
         var _loc12_:* = 0;
         var _loc13_:* = 0;
         _loc12_ = param1;
         _loc13_ = param2;
         _loc6_ = param3 - param1;
         _loc7_ = param4 - param2;
         _loc9_ = _loc6_ > 0?1:-1;
         _loc10_ = _loc7_ > 0?1:-1;
         _loc6_ = _loc6_ < 0?-_loc6_:_loc6_;
         _loc7_ = _loc7_ < 0?-_loc7_:_loc7_;
         setPixel32(_loc12_,_loc13_,param5);
         if(_loc6_ > _loc7_)
         {
            _loc11_ = _loc6_ >> 1;
            _loc8_ = 1;
            while(_loc8_ <= _loc6_)
            {
               _loc12_ = _loc12_ + _loc9_;
               _loc11_ = _loc11_ + _loc7_;
               if(_loc11_ >= _loc6_)
               {
                  _loc11_ = _loc11_ - _loc6_;
                  _loc13_ = _loc13_ + _loc10_;
               }
               setPixel32(_loc12_,_loc13_,param5);
               _loc8_++;
            }
         }
         else
         {
            _loc11_ = _loc7_ >> 1;
            _loc8_ = 1;
            while(_loc8_ <= _loc7_)
            {
               _loc13_ = _loc13_ + _loc10_;
               _loc11_ = _loc11_ + _loc6_;
               if(_loc11_ >= _loc7_)
               {
                  _loc11_ = _loc11_ - _loc7_;
                  _loc12_ = _loc12_ + _loc9_;
               }
               setPixel32(_loc12_,_loc13_,param5);
               _loc8_++;
            }
         }
      }
   }

}
:D

You may saw that for free :P
Code:
      public function line(s1x:int, s1y:int, s2x:int, s2y:int, point:uint) : void {
         var resultXpos:* = 0;
         var resultYpos:* = 0;
         var check:* = 0;
         var tmpX:* = 0;
         var tmpY:* = 0;
         var diff:* = 0;
         var positionX:* = 0;
         var positionY:* = 0;
         positionX=s1x;
         positionY=s1y;
         resultXpos=s2x-s1x;
         resultYpos=s2y-s1y;
         tmpX=resultXpos>0?1:-1;
         tmpY=resultYpos>0?1:-1;
         resultXpos=resultXpos>0?-resultXpos:resultXpos;
         resultYpos=resultYpos>0?-resultYpos:resultYpos;
         setPixel32(positionX,positionY,point);
         if(resultXpos>resultYpos)
         {
            diff=resultXpos>>1;
            check=1;
            while(check<=resultXpos)
            {
               positionX=positionX+tmpX;
               diff=diff+resultYpos;
               if(diff>=resultXpos)
               {
                  diff=diff-resultXpos;
                  positionY=positionY+tmpY;
               }
               setPixel32(positionX,positionY,point);
               check++;
            }
         }
         else
         {
            diff=resultYpos>>1;
            check=1;
            while(check<=resultYpos)
            {
               positionY=positionY+tmpY;
               diff=diff+resultXpos;
               if(diff>=resultYpos)
               {
                  diff=diff-resultYpos;
                  positionX=positionX+tmpY;
               }
               setPixel32(positionX,positionY,point);
               check++;
            }
         }
      }
   }
Or for example - you have a sprite collisions in readable format? I think no. For example, how you add a new type of weaponry - Beams, without Sprite Collision modification? DO does not have a beam type collision. And impossible to make them without knownlege - how you client works and without readable source code.
So, my pack will be a not only client side. Server side too. Flexible and useful. I will add a many features to server side. For example LUA API for scripting new features and configure exist features without re-build server source.
11/05/2013 21:11 Sήøwy#6
Put it free =)...and that's all..kidding.
Good luck ;)