Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Johnny Blockhead

Pages: [1] 2 3 4 5 6 ... 285
1
Off Topic / Re: Good 3rd date ideas?
« on: May 06, 2017, 08:07:48 PM »
why in hell did I turn to the blockland forums for advice, I should have known I would be disappointed by someone with a comment like this one.
It looks like someone doesn't appreciate the Blockland Forum's high quality content.

2
General Discussion / [Download] SuperPowered DM
« on: September 11, 2016, 08:37:41 PM »
Hey guys, I'm releasing the SuperPowered DM that I did a while back. It includes a bunch of script files and stuff, but no builds. Hopefully someone can get some enjoyment off of my old work. Note that this is not at all in a hostable, one-click setup condition. You'll have to download some add-ons and figure out the setup commands. I'm releasing this more for any of the people still trying to learn Torque. If you really are going to host it, I recommend you add your own flair to it and to not called it 'SuperPowered DM'.

Nope, I'm not giving you the download link, if you're somehow still viewing this. I decided I might remake it.

3
Suggestions & Requests / Re: All-In-One-Seat Tank
« on: August 13, 2016, 12:37:14 PM »
stratofortress' abrams tank did that and it worked well, the whole thing was one seater
Damn, that sounds cool. Is there a link to it anywhere? I found the model for it on google.

1) go to controls
2) bind prev vehicle seat to r and next seat to t.
3) get in regular tank (default bl tank)
4) r > fire real quick > t
5) drive + fire profit
This would be a valid solution but I'm looking for something the entire server can use.

4
Suggestions & Requests / All-In-One-Seat Tank
« on: August 13, 2016, 01:15:01 AM »
Hi guys, I'm trying to find tanks that have one singular seat, in which you can both drive and fire. Teamwork is for nerds and I'd rather not force players to be in a situation where they're alone and they have to choose between driving and firing. So far there's the Light Tank, and also from that one tank pack there's the Hetzer, Neotank, and Pz. IC Vehicular. Anyone else know any tanks / how to mod existing tanks to not suck?

Also it's impossible to have a rotatable tank turret while making it drive-able right? That sucks.

5
General Discussion / What kind of server should I code?
« on: June 28, 2016, 03:19:06 PM »
No, this isn't an extravagant stuffpost. I'm actually trying to fish out some ideas so that I could steal them bring them to life. A few weeks ago I started up a dice-based DM server that was pretty popular. I've since grown bored/tired of developing it, and I've also genuinely ran out of ideas. I want to create something new for the Blockland community, but I'm not sure exactly what. I spent this morning developing a class based shooter (lower your volume) that was a combination of TF2 and Overwatch. It's pretty fun (in theory) and I think I could polish it a bit more, but I feel like the idea is overdone and I'm having a really hard time finding weapons to smack onto each and every class while still making it balanced. I feel like some of the weapons I'm using are stuffty and I feel like I shouldn't be using them at all but they're the only one filling the niche. Should I continue doing this, or something else? If something else, then what? If you have any ideas that you don't mind giving away then please post them in the comments.

6
Modification Help / Re: Rotating Emitters?
« on: June 27, 2016, 08:51:01 PM »

Yay! It works. Thanks for the help guys.
//Emote Workaround
datablock ExplosionData(HealingExplosion)
{
   lifeTimeMS = 5000;
   emitter[0] = HealerEmitter;
   soundProfile = AlarmSound;
};

datablock ProjectileData(HealingProjectile)
{
   explosion           = HealingExplosion;

   armingDelay         = 0;
   lifetime            = 10;
   explodeOnDeath      = true;

   uiName = "Healing Emote";
};

function servercmdHealing(%client)
{
   %p = new Projectile()
   {
      dataBlock = HealingProjectile;
      initialPosition = %client.player.getHackPosition();
      initialVelocity = "0 0 0";
      sourceObject = %player;
      client = %player.client;
      originPoint = %client.player.getHackPosition();
   };
   MissionCleanup.add(%p);   
}

7
Modification Help / Re: Rotating Emitters?
« on: June 27, 2016, 08:44:41 PM »
What if you set thetaMin and thetaMax to something like 0 (min) and 1 (max)?
If I do that it becomes a tiny ball in front of, or below me.

projectiles are a bad idea - images are the way to go if you don't want to have ghosting issues or issues where something hits the projectile and removes it.
they are mounted on him; no other way to get it to track him

johnny, how does it look like if you're looking at the ground nearby or whatever? try mounting on other slots, maybe. use %obj.mountImage(image, slot); insted of just the mountpoint parameter on the image. Take a look at hatmods to see how they mount images (except in this case you wont need to remove any player nodes)
If I look far away, it becomes the perfect little horizontal ring I want it to be. If I look nearby, it becomes vertical, like the in-game picture in the OP. I'm pretty sure I don't need to mess around with mountpounts, here's the script I'm using:

function gameConnection::setEmitter(%client, %image, %timeout)
{
   if(!isObject(%client.player))
      return;
   %image = %image @ "Image";
   %client.player.mountImage(%image, 3);
   if(%timeout > 0)
      %client.player.schedule(%timeout, unmountImage, 3);
}


Isn't the emote system based around projectiles? A very small lifetime followed by explodeOnDeath = true would do the trick. Then just make the explosion happen at the players location every half a second for the duration needed.
I'll try this and get back to ya.

8
Modification Help / Re: Rotating Emitters?
« on: June 27, 2016, 04:59:07 PM »
That didn't do much. It's still like the picture in the OP but if I turn at a certain angle look upwards it becomes this:

I was able to get to the point I'm at by following muffinmix's guide.
What I want is for when the ability is activated, a huge (horizontal) ring is made around the player. Is there any way where I can accomplish a horizontal ring by tying an emitter to a position rather than a player (if I can't do it attached to the player)?
Edit: It actually seems to glitch out when I'm looking at something that isn't a brick (sky, ground, ect).
Edit2: I actually got it to become horizontal, but it only does it if I'm looking at the sky or ground, or a brick reallly far away. I did rotation = eulerToMatrix("90 0 0"); on the HealerImage.

9
Modification Help / [Solved] Rotating Emitters?
« on: June 27, 2016, 03:39:03 PM »
Hi BLF, this is a stupid question but how do I rotate emitters via script? Here's my emitter:

It's currently a vertical ring around my player. I want it to be a horizontal ring around my player. Is there a way to do this?

datablock ParticleData(HealerParticle)
{
   dragCoefficient      = 0;
   gravityCoefficient   = 0;
   inheritedVelFactor   = 0.15;
   constantAcceleration = 0.0;
   lifetimeMS           = 200;
   lifetimeVarianceMS   = 0;
   textureName          = "./Healer";
   colors[0]     = "0 0 0 1";
   sizes[0]      = 0.5;
   sizes[1]      = 0.6;
   times[0]      = 0.0;
   times[1]      = 1;
   useAlphaInv = false;
};
datablock ParticleEmitterData(HealerEmitter)
{
   ejectionPeriodMS = 1;
   periodVarianceMS = 0;
   ejectionVelocity = 0.0;
   velocityVariance = 0.0;
   ejectionoffset   = 1.0;
   thetaMin         = 89;
   thetaMax         = 91;
   phiReferenceVel  = 0;
   phiVariance      = 360;
   overrideAdvance = false;
   particles = "HealerParticle";
   uiName = "Healer";
};
datablock ShapeBaseImageData(HealerImage)
{
   shapeFile = "base/data/shapes/empty.dts";
   emap = false;
   mountPoint = $backslot;
   stateName[0] = "Ready"; //This is first
   stateTransitionOnTimeout[0] = "loopStart"; //Name of state to go to next.
   stateTimeoutValue[0] = 0.1; //Seconds for it to go to the next part of the loop.

   stateName[1] = "loopStart"; //Name of the state
   stateTransitionOnTimeout[1] = "loopEnd"; //next state you go to
   stateTimeoutValue[1] = 0.1; //Seconds til the next part of the loop
   stateEmitter[1] = "healerEmitter"; //The emitted emitter datablock here.
   stateEmitterTime[1] = 1; //Time for the emitter to last, in seconds.

   stateName[2] = "loopEnd";
   stateWaitForTimeout[2] = 0;
   stateTransitionOnTimeout[2] = "loopStart";
   stateEmitterTime[2] = 1; //Emitter lifespan
   stateEmitter[2] = "healerEmitter";
   stateTimeoutValue[2] = 1;
};


Proof of Concept:

10
Modification Help / Re: [Not Solved] Detecting if you're in midair
« on: June 11, 2016, 10:33:06 PM »
Put an echo on the distance var, what does it say when you are on the ground?
When I'm on the ground it's zero, when I'm on modter it's zero, when I'm on any other brick it's greater than that. It's acting as if that regular brick doesn't even exist, and is just getting the distance from the ground.

Relevant code:
   %pos = %car.getTransform();
   %mid = vectorScale("0 0 -1", 1000);
   %raycast = containerRaycast(%pos, vectorAdd(%pos, %mid), $TypeMasks::ALL, %car);//$TypeMasks::FxBrickObjectType | $TypeMasks::TerrainObjectType
   %ground = getWords(%raycast, 1, 3);
   %dis = mFloor(getWord(%pos, 2) - getWord(%ground, 2));

11
Modification Help / Customizable Vehicles
« on: June 11, 2016, 07:56:39 PM »
Hi BLF, I'm trying to make an upgradable vehicle thing. I just want to be able to change the speed of a car, on a per-car basis. I've been going through a few solutions, but my options are limited as apparently I can't create datablocks during runtime (idk). What the code below is doing is creating 20 (or however high the max playercount is) vehicle datablocks. Whenever someone joins the server, they are handed out a personal datablock from those 20. When they leave, the datablock is wiped clean and awaits a new player. There are a few problems with this. One, I can't get it to work (See: Syntax Error) and two it won't account for people having many different types of vehicles that they'd want to use. Basically, this script would only allow for upgradable jeeps but in what I'm doing you're allowed to change the type of your car and this script can't account for that. I'd have to make another 20 tank datablocks in that case. Can anyone find a better, working way of doing this? I'm basically trying to do .setMaxForwardSpeed for cars.

package Stunts
{
   function gameConnection::onClientEnterGame(%client) //When you joined you're given a unique datablock
   {
      parent::onClientEnterGame(%client);
      for(%i=0;%i<$Pref::Server::MaxPlayers;%i++)
      {
         if($StuntCars::Car[%i].reservee $= "")
         {
            %car = $StuntCars::Car[%i];
            break;
         }
      }

      %car.reservee = %client;
      %client.reservedDatablock = %car;
   }

   function gameConnection::onClientLeaveGame(%client)
   {
      %client.reservedDatablock.reservee = "";
      parent::onClientLeaveGame(%client);
   }
};
activatePackage(Stunts);

if($CarDatablocksInitialized != 1)
{
   $CarDatablocksInitialized = 1;
   for(%i=0;%i<$Pref::Server::MaxPlayers;%i++)
   {
      %name = "StuntCar" @ %i;
      $StuntCars::Car[%i] = datablock ##W##heeledVehicleData(%name : JeepVehicle)
      {
         num = %i;
      };
   }
}

12
Modification Help / Re: Detecting if you're in midair
« on: June 11, 2016, 12:41:42 PM »
instead of $TypeMasks::All, try doing ($TypeMasks::FxBrickObjectType | $TypeMasks::TerrainObjectType $TypeMasks::VehicleObjectType).
it'll only hit bricks, fxplanes (the ground), and vehicles
Thanks, I tried doing what you suggested and then getting rid of the vectorDist crap and just subtracting Z values. It works!
function Player::StuntLoop(%player)
{
   %car = %player.client.car;
   %pos = %car.getTransform();
   %mid = vectorScale("0 0 -1", 1000);
   %raycast = containerRaycast(%pos, vectorAdd(%pos, %mid), $TypeMasks::FxBrickObjectType | $TypeMasks::TerrainObjectType, %car);
   %ground = getWords(%raycast, 1, 3);
   %dis = mFloor(getWord(%pos, 2) - getWord(%ground, 2));

   if(%dis > 0)
   {
      %player.client.bottomPrint("\c2You're in midair!");
   }
   else
      %player.client.bottomPrint("\c0You aren't in midair!");

   if(isObject(%player))
      %player.schedule(500, stuntLoop);
}


Edit: It doesn't seem to work as well as I thought. If it's anything but modter/environment ground under the car, it detects that you are midair. It just goes through the brick. This happens even on $Typemasks::ALL. Any ideas? It works if the vehicle is slanted.

https://gfycat.com/ImperturbableFixedAmericangoldfinch

13
Modification Help / Re: Detecting if you're in midair
« on: June 10, 2016, 10:52:11 PM »
you have to do a raycast check. i would hammer out an example but i can't right now
Thanks for responding. I tried to do this but I can't get it to work. I'm a bit tired.
function Player::StuntLoop(%player)
{
   %car = %player.client.car;

   %pos = %car.getTransform();
   %mid = vectorScale("0 0 -1", 1000);
   %raycast = containerRaycast(%pos, vectorAdd(%pos, %mid), $Typemasks::ALL, %car);
   %ground = getWords(%raycast, 1, 3);

   //talk(%pos SPC %mid SPC %raycast SPC %ground);
   %dist = mFloor(vectorDist(%pos, %ground));
   talk(%dist);

   if(%dist > 1)
      talk("You're in midair!");
   if(isObject(%player))
      %player.schedule(500, stuntLoop);
}

It just spits out a random ass number that fluctuates between 1-3 and the early 100s

14
Modification Help / [Not Solved] Detecting if you're in midair
« on: June 10, 2016, 09:06:04 PM »
Hi BLF, I've been trying to solve this issue and Search didn't help at all. I want to find out if the player is off the ground in their vehicle. The two ways that came to mind were to detect changes in the z axis position/velocity or to get the distance from the ground. I tried the z-axis method, but it gives false-positives if you're scaling a hill (i'm dumb).

function Player::StuntLoop(%player, %lastpos)
{
   %car = %player.client.car; //%car is defined, don't worry

   %pz = mFloor(getWord(%car.getPosition(), 2));
   %z = mFloor(getWord(%lastPos, 2));

   if(%pz != %z)
      talk("Airborne!" SPC %pz SPC "!=" SPC %z);
//   else
//      talk("Not Airborne!" SPC %z SPC "==" SPC %pz);

   %lastPos = %car.getPosition();
   if(isObject(%player))
      %player.schedule(500, stuntLoop, %lastpos);
}


I couldn't figure out how to go about the other method. Anyone care to help?
I feel like there is an extremely easy way to do this like it's a default function or something. Badspot did it somehow with the mid-air kill notification. I need to find an efficient way to do it because I'm tracking air-time on vehicles, and to do that I'd need to make it a loop.

15
General Discussion / Re: [Recruiting] Piexes' Super-Power DM!
« on: June 02, 2016, 06:47:30 PM »
wasn't that.. update, released recently? it just was suckish
"Piexes: sorry the server isn't usually this bad"
The update was released the day before, that comment was when things were forgety with the server (unrelated).
I haven't done much work on the server recently, for probably two reasons. One, I haven't had much time (but I will soon, the school year is ending) and two that ability ideas are getting scarcer. It's not that much of a problem though, since we currently are at 34 abilities. Unless some ideas start coming in I'm going to shift to working on polish and additional progression systems, not abilities. It's all fine though.

Here are some of the abilities I did earlier this week (I'll do some more today):
Instagib: Turns the server into a sniper-rifle instakill festival.
Overpowered Weapons: Gives everyone incredibly powerful and incredibly annoying weapons.
Sudden Death: A fight to the death, with no respawns.
Hookshot: Fire a rope that catapults you to the spot you're aiming at!

Vonski has made some progress on the moon map (hence, moonman) but we're working on improving it. I have ~4 more new abilities floating around in my head as of now.

Edit: Changelog
+Added score persistence
+Added a map loading system
+Prettier lava during Rising Lava
+Added a tip announcement loop
Hurricane: Fling players around the map at high speeds
Reincarnation: Come back with half health on death
Scale: For five seconds, your body becomes contorted to a random scale.

Pages: [1] 2 3 4 5 6 ... 285