Poll

What to do about RTB?

Replace all copies with the original v4.05.
1 (4.3%)
Make sure that we replace copies with the same version. (i.e, Port's, mine, DaProg's, etc.)
6 (26.1%)
Same as above, BUT replace copies of the original version with mine, which removes all returntoblockland.com features. This might be good because the domain will be available soon, and who knows who will get it.
16 (69.6%)

Total Members Voted: 23

Author Topic: ATTENTION: Modders, fix your client add-ons.  (Read 17649 times)

Wait what's wrong with Client_OrbShift?  I don't think it actually has this issue.

The package:
Code: [Select]
package orbshifting
{
function dropcameraatplayer(%x)
{
if(!$OrbShift_VersionChecked)
{
$OrbShift_VersionChecked = true;
OrbShift_versioncheck(false);
}

if(%x)
$OrbShift::Player = serverconnection.getcontrolobject();
parent::dropcameraatplayer(%x);
}

function shiftbrickaway(%x)
{
if($OrbShift::override)
return parent::shiftbrickaway(%x);

if(!%x && $OrbShift::Away !$= "")
{
OrbShift_activatedirection($OrbShift::Away, false);
$OrbShift::Away = "";
return;
}
$OrbShift::Away = "";

if(%x && serverconnection.getcontrolobject().getclassname() $= "camera" && isObject($OrbShift::Player))
{
%camvec = OrbShift_getthisdirection(serverconnection.getcontrolobject().getforwardvector());
%plvec = OrbShift_getthisdirection($OrbShift::Player.getforwardvector());

if(mabs(%camvec - %plvec) == 2)
%dir = 2;
else if(%camvec == %plvec+1 || %camvec == 0 && %plvec == 3) //ugly im sorry :(
%dir = 1;
else if(%camvec == %plvec)
%dir = 0;
else
%dir = 3;
$OrbShift::Away = %dir;

OrbShift_activatedirection($Orbshift::Away, true);
}
else
return parent::shiftbrickaway(%x);

}

function shiftbricktowards(%x)
{
if($OrbShift::override)
return parent::shiftbricktowards(%x);

if(!%x && $OrbShift::Towards !$= "")
{
OrbShift_activatedirection($OrbShift::Towards, false);
$OrbShift::Towards = "";
return;
}
$OrbShift::Towards = "";

if(%x && serverconnection.getcontrolobject().getclassname() $= "camera" && isObject($OrbShift::Player))
{
%camvec = OrbShift_getthisdirection(serverconnection.getcontrolobject().getforwardvector());
%plvec = OrbShift_getthisdirection($OrbShift::Player.getforwardvector());

if(mabs(%camvec - %plvec) == 2)
%dir = 0;
else if(%camvec == %plvec+1 || %camvec == 0 && %plvec == 3) //ugly im sorry :(
%dir = 3;
else if(%camvec == %plvec)
%dir = 2;
else
%dir = 1;
$OrbShift::Towards = %dir;

OrbShift_activatedirection($Orbshift::Towards, true);
}
else
return parent::shiftbrickTowards(%x);

}

function shiftbrickright(%x)
{
if($OrbShift::override)
return parent::shiftbrickright(%x);

if(!%x && $OrbShift::Right !$= "")
{
OrbShift_activatedirection($Orbshift::Right, false);
$OrbShift::Right = "";
return;
}
$OrbShift::Right = "";

if(%x && serverconnection.getcontrolobject().getclassname() $= "camera" && isObject($OrbShift::Player))
{
%camvec = OrbShift_getthisdirection(serverconnection.getcontrolobject().getforwardvector());
%plvec = OrbShift_getthisdirection($OrbShift::Player.getforwardvector());

if(mabs(%camvec - %plvec) == 2)
%dir = 1;
else if(%camvec == %plvec+1 || %camvec == 0 && %plvec == 3) //ugly im sorry :(
%dir = 0;
else if(%camvec == %plvec)
%dir = 3;
else
%dir = 2;
$OrbShift::Right = %dir;

OrbShift_activatedirection($Orbshift::Right, true);
}
else
return parent::shiftbrickright(%x);

}

function shiftbrickleft(%x)
{
if($OrbShift::override)
return parent::shiftbrickleft(%x);

if(!%x && $OrbShift::Left !$= "")
{
OrbShift_activatedirection($Orbshift::Left, false);
$OrbShift::Left = "";
return;
}
$OrbShift::Left = "";

if(%x && serverconnection.getcontrolobject().getclassname() $= "camera" && isObject($OrbShift::Player))
{
%camvec = OrbShift_getthisdirection(serverconnection.getcontrolobject().getforwardvector());
%plvec = OrbShift_getthisdirection($OrbShift::Player.getforwardvector());

if(mabs(%camvec - %plvec) == 2)
%dir = 3;
else if(%camvec == %plvec+1 || %camvec == 0 && %plvec == 3) //ugly im sorry :(
%dir = 2;
else if(%camvec == %plvec)
%dir = 1;
else
%dir = 0;
$OrbShift::Left = %dir;

OrbShift_activatedirection($Orbshift::Left, true);
}
else
return parent::shiftbrickleft(%x);

}
};
activatepackage(orbshifting);

Wait what's wrong with Client_OrbShift?  I don't think it actually has this issue.

The package:
Code: [Select]
-snip-
Oh. My bad. That was my own personal modification to it(which you should really add). I made it so that clientCmdOrbShift returns if it's already disabled. And I made it re-enable when you leave the server.

I just released the RTB update. People are being updated according to this:

Port's RTB -> Fixed Port's RTB
DAProg's - > Fixed DAProg's
Greek2me's -> Fixed Greek2me's
GRTB -> fixed Greek2me's
original RTB -> fixed Greek2me's
« Last Edit: January 08, 2015, 12:00:48 PM by Greek2me »

I just released the RTB update. People are being updated according to this:

Port's RTB -> Fixed Port's RTB
DAProg's - > Fixed DAProg's
Greek2me's -> Fixed Greek2me's
GRTB -> Greek2me's
original RTB -> Greek2me's
Might want to make it so GRTB will be updated to Fixed Port's instead, since that's the closest version.

Too late. It has maybe 20 users anyway.

Why are you editing GRTB and RTB to unfixed Greek2me's? Why not directly to Fixed greek2me's?

Really?
MAKE GRTB WORK WITH THE UPDATER.

Why are you editing GRTB and RTB to unfixed Greek2me's? Why not directly to Fixed greek2me's?

They are, I just didn't type it right.

I'm switching back to GRTB. Thanks for trying to make people stop using the mod including me.

I'm switching back to GRTB. Thanks for trying to make people stop using the mod including me.
I'm very sorry that we didn't have the time to properly fix every RTB knockoff out there. Greek2Me's version was virtually the closest to it, so it made sense to update to it.

And by the way, as long as you're running a broken version of RTB your client will never work properly in terms of certain functionality, including being able to rejoin automatically when the server changes gamemodes.

How would I go about testing this? I created a server and then changed the gameMode, but nothing appears broken. Do I have to be on someone elses server when they change the gamemode to test this?

How would I go about testing this? I created a server and then changed the gameMode, but nothing appears broken. Do I have to be on someone elses server when they change the gamemode to test this?

What's broken is that the user will not reconnect while connected to a server if they change game-modes.
Host a server (dedicated if you're wanting to test this), and connect with a fresh install with your mod in question.
Change the game-mode, and if you reconnect it's not broken, otherwise you'll need to fix it.


What's broken is that the user will not reconnect while connected to a server if they change game-modes.
Host a server (dedicated if you're wanting to test this), and connect with a fresh install with your mod in question.
Change the game-mode, and if you reconnect it's not broken, otherwise you'll need to fix it.


I see. Instead of reconnecting after the gamemode changes, it gives you the main menu. You can rejoin and the gamemode is changed like it should be, but it doesn't "auto re-connect" you.
thanks for the info.

I see. Instead of reconnecting after the gamemode changes, it gives you the main menu. You can rejoin and the gamemode is changed like it should be, but it doesn't "auto re-connect" you.
thanks for the info.
What.
It's supposed to auto-reconnect, but mods modifying disconnect without an argument and parenting without breaks that.
Such as the RTB variants.

Is there any way I can make Support_Updater ignore a specific mod if an update is available? What I mean is the add-on won't show in the list and won't be updated.