2 Fishies-related questions
2 Fishies-related questions
1) I've noticed that, when in water, fish will only follow you when you are totally immersed in it. They will stop and only start chasing again once the player's head is under water level, which, well, doesn't seem to make sense since his legs are still there. Has there been any fix for that anywhere? Or would you know of any quick way to solve this? (the reason I'm asking is because I really suck when it comes to tracelines, monster vision and the likes... )
1) Not code-related, but fishie-related, so... Do you guys know of any good new water monsters for Quake1? Or maybe just new models for the existing fish? The shark model of Frik's Jaws is one monster came to my mind, I was wondering if there might have been others...
Thanks in advance!
1) Not code-related, but fishie-related, so... Do you guys know of any good new water monsters for Quake1? Or maybe just new models for the existing fish? The shark model of Frik's Jaws is one monster came to my mind, I was wondering if there might have been others...
Thanks in advance!
Neurotic Conversions - New location: Update your bookmarks!
-
- InsideQC Staff
- Posts: 1120
- Joined: Sat Oct 16, 2004 3:34 pm
Re: 2 Fishies-related questions
I'm not really sure about #1, but maybe it has something to do with the fact that it's a swimmonster and therefore not allowed to leave the water, coupled with it maybe going after your self.origin directly, and not actually able to reach it or something.CocoT wrote:1) I've noticed that, when in water, fish will only follow you when you are totally immersed in it. They will stop and only start chasing again once the player's head is under water level, which, well, doesn't seem to make sense since his legs are still there. Has there been any fix for that anywhere? Or would you know of any quick way to solve this? (the reason I'm asking is because I really suck when it comes to tracelines, monster vision and the likes... )
1) Not code-related, but fishie-related, so... Do you guys know of any good new water monsters for Quake1? Or maybe just new models for the existing fish? The shark model of Frik's Jaws is one monster came to my mind, I was wondering if there might have been others...
Thanks in advance!
As for #2, there's the Electric Eel from Dissolution of Eternity. I can't particularly think of any others at the moment.
-
- Posts: 25
- Joined: Mon Mar 03, 2008 1:14 am
- Location: Canada
- Contact:
make the fish move like the scrag and if the fish mdl is out of the water, make it jump up a bit Hell make it jump out of the water and start flopping on the ground :]
So ya perhaps the best fix is to just make the fish chase it's target until it finds a new target.
So ya perhaps the best fix is to just make the fish chase it's target until it finds a new target.
SmashQuake at whitehot.quakeone.com
NewDM at flanders.servegame.org:26003
NewDM at flanders.servegame.org:26003
Thanks, guys! I'll look into that tonight
And, yeah, maybe I can try to put my poor coding skills to the task of having them jump out of the water... that'd be pretty fun
And, yeah, maybe I can try to put my poor coding skills to the task of having them jump out of the water... that'd be pretty fun
Neurotic Conversions - New location: Update your bookmarks!
If memory serves, there's code in the engine (one of the sv_ files) that determines if the player is underwater, which QC then uses to react accordingly. It would probably require an engine modification to "fix" this properly, but then you risk changing gameplay and/or breaking compatibility with other mods (not to mention potentially drowning in shallow pools).
We had the power, we had the space, we had a sense of time and place
We knew the words, we knew the score, we knew what we were fighting for
We knew the words, we knew the score, we knew what we were fighting for
Thanks for the pointer, mh! you totally confirm my suspicions
I tried to play around with it yesterday and could not find an easy solution. At this point, what I've done is make, as Canadian Sniper suggested, fish fly instead of swim, then edit the models so that they appear lower than they are (otherwise they'd kind of hoover above water level, which was weird). It works fine, except of course that the player cannot leave the water, otherwise, the fish would just follow him
I tried to play around with it yesterday and could not find an easy solution. At this point, what I've done is make, as Canadian Sniper suggested, fish fly instead of swim, then edit the models so that they appear lower than they are (otherwise they'd kind of hoover above water level, which was weird). It works fine, except of course that the player cannot leave the water, otherwise, the fish would just follow him
Neurotic Conversions - New location: Update your bookmarks!
Hehehe... that's pretty close to what I'm playing with
Neurotic Conversions - New location: Update your bookmarks!
CocoT: actually, I think you should rather make them walk. That'd ensure that they can't exit the water, as long as there are no stairs and slopes they can use. Make it a pool you have to jump out of, and it'd be fine. Assuming ofcourse the water is shallow in all spots, or the fishy would "drop" to the bottom of the lake
It obviously is possible to switch between different modes, but that requires experimentation and whatnot. Best I can think of is do an onground check, if true, walk, otherwise swim. Also, if players origin is above self origin, and player is in water, then swim (to ensure they don't walk around the bottom of some lake). This should basicly do it, it'd allow fishy to enter walk mode when a slope makes the water shallower, as they'd detect floor when they get close to the edge of the water, and start walking. If the player then goes back into the water, the fishy will walk after him, until the player is at all above the fishy, and thus start swimming again.
It obviously is possible to switch between different modes, but that requires experimentation and whatnot. Best I can think of is do an onground check, if true, walk, otherwise swim. Also, if players origin is above self origin, and player is in water, then swim (to ensure they don't walk around the bottom of some lake). This should basicly do it, it'd allow fishy to enter walk mode when a slope makes the water shallower, as they'd detect floor when they get close to the edge of the water, and start walking. If the player then goes back into the water, the fishy will walk after him, until the player is at all above the fishy, and thus start swimming again.
I was once a Quake modder
Just make the fish chase after a helper entity placed underneath the player when they are on the surface (using a waterlevel check). Provided the entity is still inside the players bounding box the player should take damage when the fish try to nibble it.
Also I should mention that Quoth apparently fixed a number of bugs with monster_fish including not swimming towards a player on the surface, but those people havn't released the source code yet.
http://kell.quaddicted.com/quoth/quoth_ ... .html#fish
Also I should mention that Quoth apparently fixed a number of bugs with monster_fish including not swimming towards a player on the surface, but those people havn't released the source code yet.
http://kell.quaddicted.com/quoth/quoth_ ... .html#fish
-
- InsideQC Staff
- Posts: 1120
- Joined: Sat Oct 16, 2004 3:34 pm
Ah screw it, this I think will solve your problems:
(in case you missed the hidden clue, this isn't my code)
EDIT: having actually tried it, this only fixes the bug when the fish get stuck near the water surface. They still won't swim toward you when you have your head above the water. Hmm..
Code: Select all
void (float dist) ai_swim =
{
local vector mtemp;
local vector org;
local vector org_flat;
local vector oldorg_flat;
local vector oldorg;
local vector reqvel;
local float d;
oldorg = self.origin;
self.movetype = MOVETYPE_STEP;
ai_run (dist);
d = vlen ((self.origin - oldorg));
self.velocity = '0 0 0';
if ((d <= (dist + 5)))
{
if ((pointcontents ((self.origin + '0 0 16')) == CONTENT_EMPTY))
{
self.origin_z = oldorg_z;
}
self.movetype = MOVETYPE_FLY;
reqvel = ((normalize ((self.origin - oldorg)) * dist) * TE_WIZSPIKE);
setorigin (self, oldorg);
self.velocity = reqvel;
}
if ((pointcontents ((self.origin)) == CONTENT_EMPTY))
{
self.velocity_z = -8;
}
};
EDIT: having actually tried it, this only fixes the bug when the fish get stuck near the water surface. They still won't swim toward you when you have your head above the water. Hmm..