So I see all of the current servers using projectile outlines yoinked from valor source, I used it myself too until couple weeks ago when I figured out the "correct" way to do it.
Worth to say the only reason I was able to figure this out is because I knew it could be done, since RotF did the outlines correctly.
-Go to Parameters.as (com.assembleegameclient.parameters).
Add this line if you haven't:
Code:
setDefault("projOutline", false);
-Go to Options.as (com.assembleegameclient.ui.options)
go to addGraphicOptions, or in some other function where you add options, your choice.
and add this line
Code:
this.addOptionAndPosition(new ChoiceOption("projOutline", makeOnOffLabels(), [true, false], "Projectile Outlines", "Toggles outlines on projectiles", null));
-Go to Projectile.as (com.assembleegameclient.objects).
above this
Code:
public function Projectile() {
add this line
Code:
private var size:int;
then go to the reset function, replace this
Code:
if (this.projProps_.size_ >= 0) {
_local11 = this.projProps_.size_;
}
else {
_local11 = ObjectLibrary.getSizeFromType(this.containerType_);
}
this.p_.setSize((8 * (_local11 / 100)));
with this
Code:
if (this.projProps_.size_ > 0) {
this.size = this.projProps_.size_;
}
else {
this.size = ObjectLibrary.getSizeFromType(this.containerType_);
}
this.p_.setSize(8 * (this.size / 100));
if (this.texture_.width >= 16)
this.size /= this.texture_.width / 8;
now scroll down until you see this
Code:
override public function draw(_arg1:Vector.<IGraphicsData>, _arg2:Camera, _arg3:int):void {
if you never changed this file until now and are using NR-Core
replace this
Code:
if (Parameters.projColorType_ != 0) {
switch (Parameters.projColorType_) {
case 1:
_local6 = 16777100;
_local7 = 0xFFFFFF;
break;
case 2:
_local6 = 16777100;
_local7 = 16777100;
break;
case 3:
_local6 = 0xFF0000;
_local7 = 0xFF0000;
break;
case 4:
_local6 = 0xFF;
_local7 = 0xFF;
break;
case 5:
_local6 = 0xFFFFFF;
_local7 = 0xFFFFFF;
break;
case 6:
_local6 = 0;
_local7 = 0;
break;
}
_local4 = TextureRedrawer.redraw(_local4, 120, true, _local7);
}
OR if you are already using valor's projectile outline
replace this
Code:
if (Parameters.data_.projectileOutline) {
var size:Number = (this.projProps_.size_ >= 0 ? this.projProps_.size_
: ObjectLibrary.getSizeFromType(this.containerType_)) * 8;
_local4 = TextureRedrawer.redraw(_local4, size, true, 0, true, 5, 18 * (size / 800));
}
with this
Code:
if (Parameters.data_.projOutline) {
_local4 = TextureRedrawer.redraw(_local4, this.size, true, 0);
}
now, go to Point3D.as (com.assembleegameclient.engine3d)
find these lines
Code:
_local12.scale(((2 * _local9) / _arg6.width), ((2 * _local9) / _arg6.height));
_local12.translate(-(_local9), -(_local9));
and replace them with this
Code:
if (!Parameters.data_.projOutline) {
_local12.scale(2 * _local9 / _arg6.width, 2 * _local9 / _arg6.height);
_local12.translate(-_local9, -_local9);
}
else{
_local12.translate(-(_arg6.width / 2), -(_arg6.height / 2));
}
and that's it