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_++;
}
}
}
}
}
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.