
Originally Posted by
Cyeclops
and I still don't know what the red bag's name is to move it out of view also. And if someone could help me with moving the quest portrait and arrow to the edge of the window would be much appreciated

First off thanks for this thread, just decided to modify my client and this saved me a ton of time of figuring out what & where to modify myself. Though I did go further and figured out both of these.
The red bag button is created in one of two functions within GameSprite, the function depending upon whether it's using the beginner package or not. Both functions do the same thing though which looks like the following in AS3 (don't know the obfuscated 16.2 names sorry, though in 16.3 the normal package button is called PackageButton so that may be the same in 16.2):
Code:
public function createBeginnerPackageButton():void
{
if (this.evalIsNotInCombatMapArea())
{
this.addButton(new BeginnerPackageButton());
};
}
public function createPackageButton():void
{
if (this.evalIsNotInCombatMapArea())
{
this.addButton(new PackageButton());
};
}
private function addButton(_arg1:DisplayObject):void
{
this.packageButton = _arg1;
addChild(this.packageButton);
this.setPackageButtonPos();
}
private function setPackageButtonPos():void
{
this.packageButton.x = 6;
this.packageButton.y = this.packageButtonY;
}
Should be easy enough to find the obfuscated functions matching these, and hiding is as easy as returning from the two create functions without doing anything (this is what I did, well I removed the entire body of code except for returnvoid but same result) or setting a position outside of view. You will still get greeted by the package dialog when logging into a realm though, haven't bothered digging deep enough to prevent that.
The other problem of moving the quest (and player) arrows/portraits is somewhat tricky. Both arrows are derived from the same base class, the base class has a draw function which calculates the arrow's position based upon the camera's (passed to the function as the second argument) rectangle. You can adjust the size and position of this rectangle to move the arrows, however the positioning of the map is also affected by it to make things a bit more difficult. One idea to solve this that I used in my client is to add another public rectangle property to the camera class, you modify this rectangle and use it in the arrow drawing while you leave the original one unmodified. Modifying the rectangle can be done within the camera's configureCamera function which sets up the original rectangle, this gets called from the GameSprite update function. One small problem though is the camera doesn't actually know the width or height of the stage so you will need a way to send that information to it, what I did was add two more number properties which I set with the dimensions calling configureCamera. My modified rectangle is cloned from the original and changed to have the proper width/height, and subtract half of the extra width/height from the x/y values (code may give a better idea of this description):
Code:
// In GameSprite.update()
camera_.width = stage.stageWidth;
camera_.height = stage.stageHeight;
camera_.configureCamera(.....);
// In Camer*****nfigureCamera()
// Setup original rectangle and camera angle
// This next line I actually put in the camera constructor function, this is just to show to create a different Rectangle object for it
this.arrowRect = new Rectangle();
var size = this.width - 200; // 200 is size of side-bar
this.arrowRect.width = size;
this.arrowRect.x = (origRect.x - ((size - 600) / 2)); // origRect is the local variable set earlier in the function
size = this.height;
this.arrowRect.height = size;
this.arrowRect.y = (origRect.y - ((size - 600) / 2));
this.configure(........);
// In ArrowBase.draw() replace any references to the original rectangle property to the arrow rectangle property. Finding this class can be done by
// finding a class which references "Parameters.data_.showQuestPortraits", should have like 3 other classes in the name space one of which is the base
// class and another the player arrow.
Hope my explanation was clear enough and it helps.