Autosaving
#8985 posted by necros on 2009/08/18 22:38:13
we've discussed this before, but i have no idea where it went...
i wanted to implement this for my next map, and i was thinking:
send console command save ne_autosave
and in a config file bind f8 "load ne_autosave"
f8, afaik, doesn't do anything and it's both close and seperate from f9.
opinions?
#8986 posted by metlslime on 2009/08/18 23:03:29
can you use stuffcmd to load the game as well as save it? that would be better. (i.e. when user hits "jump" or "shoot" while dead, instead of doing the normal thing, the quakec would trigger a load then.)
#8987 posted by necros on 2009/08/18 23:26:29
this is for quoth, so no qc modifications.
but yeah, i don't see why you couldn't do that.
in void() respawn:
if (coop)
{
// make a copy of the dead body for appearances sake
CopyToBodyQue (self);
// get the spawn parms as they were at level start
setspawnparms (self);
// respawn
PutClientInServer ();
}
else if (deathmatch)
{
// make a copy of the dead body for appearances sake
CopyToBodyQue (self);
// set default spawn parms
SetNewParms ();
// respawn
PutClientInServer ();
}
else
{ // restart the entire server
localcmd ("restart\n");
}
it would just be a matter of replacing the restart command at the bottom.
Need Someone With UnrealED3 (UT3)
#8988 posted by Jago on 2009/08/19 23:03:23
I need someone with UnrealED3 (the UT3 version) installed to take a brief look over a map I have been slowly working on for a loooong time now to help me decide whether I should continue slowly building upon it or whether I should just put it out of it's misery.
Download it HERE.
Arrow
#8989 posted by madfox on 2009/08/20 19:10:02
As I'm making a frogman model I'm confronted with a strange qc compile habbit.
I reconstruckted the model on the enforcer qc, this means I used the shoot section to evaluate its harpoon action.
As I compiled the arrow suddenly blasts to the sky.
I couldn't find a reason for it, so I changed the
org = self.origin + v_forward * 30 + v_right * 8.5 + '0 0 16';
from the model_fire section into
org = self.origin + v_forward * 30 + v_right * 8.5 + '0 0 -24';
and now the model shoots somehow left to the player, but not exact aiming its goal.
What I don't get is that they both seem to harm the player.
Also if I change the -24 a measure further the arrow shoots in the ground.
It seems impossible to aim it straight to the player.
Another strange habbit occurs on the model that's in the water.
It is the same subroutine I use for as the land model.
Only the land model shoots an arrow, the watermodel only shoots but there doesn't appear an arrow in water.
Does this mean the conditions for a model to spawn is different than on land?
#8990 posted by necros on 2009/08/20 19:17:48
have you called makevectors(self.angles) before using the v_ unit vectors?
Yes
#8991 posted by madfox on 2009/08/20 19:58:47
as I thought this part was the positioning of the shooting angle of the model itself, it didn't make sense to me the arrow shoots straight to the sky.
void() harpi_fire =
{
local vector org;
self.effects = self.effects | EF_MUZZLEFLASH;
makevectors (self.angles);
org = self.origin + v_forward * 30 + v_right * 8.5 + '0 0 -24';
Launchharpi(org, self.enemy.origin - self.origin);
};
#8992 posted by necros on 2009/08/20 20:04:58
ok, that bit looks fine, now you need to check if launchharpi is correct.
Well
#8993 posted by madfox on 2009/08/20 20:11:38
It's the same as the enforcer, but I must admit it is not a usual qc.
It is a combination of two models, who will be going to be melted as a water and a land model.
So the problem might as well lay in another part, although both of the models use the same Launchharpi.
void(vector org, vector vec) Launchharpi =
{
local vector vec;
if (self.classname == "monster_enforcer")
sound (self, CHAN_WEAPON, "enforcer/enfire.wav", 1, ATTN_NORM);
vec = normalize(vec);
newmis = spawn();
newmis.owner = self;
newmis.movetype = MOVETYPE_FLY;
newmis.solid = SOLID_BBOX;
newmis.effects = EF_DIMLIGHT;
setmodel (newmis, "progs/pioen.mdl");
setsize (newmis, '0 0 0', '0 0 0');
setorigin (newmis, org);
newmis.velocity = vec * 600;
newmis.angles = vectoangles(newmis.velocity);
newmis.nextthink = time + 5;
newmis.think = SUB_Remove;
newmis.touch = harpi_Touch;
};
#8994 posted by necros on 2009/08/20 21:35:29
i see a potential problem here. you have a variable 'vec' being passed into the function, and you also have a local variable 'vec' being declared at the start.
remove the local variable and that may fix your problem.
Necros
#8995 posted by madfox on 2009/08/20 22:23:44
I'm not so familiar with the stats although I'll believe you.
Remove the local variable, is that
//vec = normalize(vec);
#8996 posted by JneeraZ on 2009/08/20 22:25:34
No, this:
//local vector vec;
Then you'll be using the variable you passed in rather than the local one.
#8997 posted by necros on 2009/08/20 23:00:03
yeah, the normalize(vec) is actually very important. normalize makes whatever the vector passed in a unit vector.
that is to say, the vector is reduced from whatever it was so that it's total length is 1.
this is how you can then multiply vec by an arbitrary number to create consistent velocity (ie: projectile always travels at 600 units per second). if you didn't normalize, the velocity of the projectile would change in relation to how far apart you and the enemy are.
Thanks!
#8998 posted by madfox on 2009/08/21 00:39:52
I included it in the qc, but I wondered. I always thought that the
org = self.origin + v_forward * 30 + v_right * 8.5 + '0 0 -24';
positioned the point of shooting from the monster, where the last three numbers were the actual position of its gun.
With these coordinates I get a shooting frogman which shoots its arrow 24 units above its gun, but the arrow goes left above me.
http://members.home.nl/gimli/frogman.jpg
#8999 posted by necros on 2009/08/21 02:28:14
org = self.origin + v_forward * 30 + v_right * 8.5 + '0 0 -24';
assuming makevectors has been run, the above line will set org to a position 30 units in front, 8.5 units to the right and -24 units up (all monsters are 24 units above the ground, so -24 will make it right on the floor).
the reason it's shooting nuts is because when you call launchharpi, you are calculating the trajectory with self.enemy.origin - self.origin but your spawn point is at org.
in order for it to work correctly, the function call should either be:
Launchharpi(org, self.enemy.origin - org);
or:
Launchharpi(self.origin, self.enemy.origin - self.origin);
Indeed!
#9000 posted by madfox on 2009/08/21 02:46:32
It might as well be above my hat but it seems to work.
I just get a little confused by the -24 as it still shoots above the players head.
It reminds me at the moment I placed the new monster in game and it flew 24 units above the ground.
I decided to lower all frames. So it is this difference that shoots the arrow overhead. Can't think of a way to overcome this now.
9000!
#9001 posted by madfox on 2009/08/21 02:50:54
It's Over 9000.
#9002 posted by necros on 2009/08/21 02:56:37
just take -24 off.
it's shooting up because you are doing:
self.enemy.origin - org
think of it this way:
self.origin = '0 0 0' (you)
self.enemy.origin = '128 0 0' (monster)
this would be both the monster and you being at the same height.
but now, you are calculating:
self.enemy.origin - org
let's forget about v_forward and v_right for now.
that makes org = '128 0 -24' because the math is: '128 0 0' + '0 0 -24' = '128 0 -24'.
so think of it like the enemy.origin is the gun which is -24, so it has to shoot up towards 0.
removing -24 from the vertical element will make the monster shoot straight horizontally.
remember shamblers, how their lightning goes downwards or droles shoot at the player's feet. the drole shooting at the player's feet was completely unintentional and was a by-product of the spawn point of the drole missile (which is above the origin of the monster, so it shoots downward at the player which is the opposite of what's happening to your monster).
Alternatively,
#9003 posted by necros on 2009/08/21 02:59:02
if you want the monster to shoot from it's feet, then change the trajectory vector.
instead of Launchharpi(org, self.enemy.origin - org);, do Launchharpi(org, (self.enemy.origin + '0 0 -24') - org); which will make the monster shoot at your feet too.
Right
#9004 posted by madfox on 2009/08/22 02:12:59
Thanks for your clear explanation!
I understand now how this positioning works.
I just couldn't understand why the arrow kept shooting above the monster, although the cooordinates were right.
Then I realized when I imported the monster into Qmle it was 24 units above the ground.
So when I put these models back in game the arrow shoots right.
Now I need to know how I can lower the model 24 units and keep their original shooting point.
It sounds kinky, but it seems Qmle imports models rather rough.
One moment they are exact on the 0'0'0 axis.
But after playing in game they suddenly drop 24 to 48 units down the zero line.
Also it seems as if there is no difference between the zero line and, let's say a multiple above or below.
#9005 posted by necros on 2009/08/22 05:13:50
all monsters' feet are at -24 units.
So
#9006 posted by Jago on 2009/08/22 13:11:12
Noone has UnrealED3 (UT3) installed?
Jago: I Had A Quick Look
#9007 posted by RickyT33 on 2009/08/22 19:20:20
Heh - my first time ever looking at UnrealEditor. The level looks pretty smart, You obviously blocked it out with the brick texture. I never work like this, although I know a lot of people do. I actually dont think that the red brick texture should be used anywhere in this map. I think if you went for some tech-style textures (metal panels etc) which would go with the trim. The trim (the meshes and stuff) look like they are out of a spaceship, or an oil-rig or something.
I think you would find that the level would start to materialise into something which looked a bit better-themed if you slowly went through the map and replaced all of the brick textures, with dark metal panels and suchlike.
The layout looked prety interesting - multi-tiered, and nice interconnection. So I would say you should finish it for sure. Just do more with tech-style texturing and good old brushwork :D
Nice work
Looking Into Making A New .map Editor
#9008 posted by Discoloda on 2009/08/22 23:23:23
Tell me, what features do you like and what parts do you not like. anything goes.
It will be implemented in Erlang with plugins written in Erlang. The newest release of Erlang includes wxWidgets and OpenGL so I decided to learn how to use wxWidgets.
Good Luck
#9009 posted by ijed on 2009/08/22 23:40:48
I'd say these are the important features:
Good Cameras
Decent Texture System, with texture lock and multiple WAD support
Ease of use entity listing (def, fgd, whatever)
Ease of install / setup
Slice Brush Tool
Vertex Manipulation Tool
Prefab Library
Probably some stuff I'm forgetting there.
|