|
Posted by metlslime on 2005/08/30 18:28:13 |
You know about the info_notnull explosion hack. You know about making monsters drop weapons or alternate ammo using the .weapon and .ammo_whatever hacks. You know about making items float in the air by spawning them on a temporary platform. Let's have a thread where we talk about new ways to use existing behavior and get novel gameplay. If you're a "retired" mapper, this is a great time to do some armchair level design and suggest ideas you'll never have a chance to use yourself. |
|
|
Fuck Me, Sorry
#308 posted by Spirit on 2014/01/25 00:45:46
stupid mediawiki can't handle the latest version of some library which I forgot to pin when I updated earlier. will be fixed tomorrow.
Very Well Then, Spirit.
#309 posted by Breezeep_ on 2014/01/25 01:59:22
Don't screw it up again...
Follow The Leader
#310 posted by - on 2014/03/12 12:24:05
Earlier this morning, onetruepurple mentioned an idea for monsters following the player while he had the Ring of Invisibility. I didn't think it possible, but he mentioned that it was done in E4M1.
So I decompiled the map and discovered a trick that I didn't know about and think it's cool enough to share.
It's very simple, if you make a monster target a path_corner, and that path_corner has no further targets, Quake decides that that monster's next movetarget should be entity 1... which just happens to be player 1.
Here's a .bsp and .map showing this effect... don't shoot!
http://quaketastic.com/files/misc/followtest.zip
Also
#311 posted by - on 2014/03/12 12:33:11
I have no idea WHY that works.
self.goalentity = self.movetarget = find (world, targetname, other.target);
Is the relevant bit here, where self is the monster, and other is the path_corner... but why it decides on entity 1 when other.target is empty... it is a mystery?
I Guess
#312 posted by - on 2014/03/12 12:37:58
Find() must just return 1 if some of the values it's passed aren't valid?
Path_corner
#313 posted by ijed on 2014/03/12 12:57:57
I wanted monsters to reach the end of their path and just stay there, and so left the target field blank.
But the same happened - they turned and followed the player, ruining the gameplay I was going for.
This is because their movetogoal becomes "" and the player is the last entity added to the server, with that exact name, aka string_null.
I fixed it by giving the path_corners where I wanted monsters to stop a broken target.
Props to Preach for pointing this out.
What If
#314 posted by mfx on 2014/03/12 13:09:36
wait is set to -1 on path_corners?
Doesn�t this stop the pathing?
Nope
#315 posted by ijed on 2014/03/12 13:58:49
It does odd things instead, depending if its func_train or a monster_whatever.
Just for RRP guys;
The path code in RRP is more advanced as well; I ported the advanced pathing from extras r4 so there are more control entities for trains, they can be reversed, paused and so on. Wait -1 will teleport a train from one point to another and can be set per path_corner. Additionally, giving a path_corner an event key will trigger whatever targetname it's pointed at, when the train reaches that path_corner.
And He Did!
11:11:00 | <+Daz> gomap scampsp2! But not idbase kthx
11:11:20 | <+Daz> ikbase!
11:11:25 | <@onetruepurple> and not fucking dapakbase
5/5 bretty good, could use more Tarbabies though
Re: 311
#317 posted by necros on 2014/03/12 18:02:07
The reason is because other.target = "".
Find() always starts at the first entity in the list (1, the player).
It checks if the entity's targetname == "" which it does (because players don't use targetnames), so it returns the player.
Interesting...
#318 posted by metlslime on 2014/03/12 18:05:16
if you gave the player a non-empty targetname then the monster would find a different entity to walk towards...
Neato
#319 posted by - on 2014/03/12 21:07:27
Thanks for clarifying the reason
Oh Man
#320 posted by Preach on 2014/09/15 22:56:01
It's been like 6 months since we had a hack. Here's a hack for...Quoth?
http://tomeofpreach.wordpress.com/2014/09/15/quoth-required-message/
Now you can create entities which appear in your map when run under ID1, but not in Quoth. There's one simple application of this, plus the opportunity to go overboard with it instead!
Fantastic!
I was just wondering today how something like this would work. This should be mandatory knowledge for all future Quoth mappers. Thanks, Preach!
#322 posted by negke on 2014/09/16 11:52:57
Nice. A much smoother way than the Quoth detection in my levels.
Lava Splashes...
#323 posted by necros on 2015/08/06 04:19:21
trigger_relay:
targetname "lava"
target "lava"
delay "0.099"
info_notnull
targetname "lava"
use "boss_death9"
why dis no work? :(
tested with a message on the relay, and it is indeed working, but no lavas.
#324 posted by negke on 2015/08/06 07:17:53
The function is not reusable. You might want to killtarget it quickly as well, since it increases the killcount at boss_death10. Note that while the function works without a Chthon in the map, you need to put one somewhere for the splash sound to be precached.
I had an idea for Jam6 that involved the lava splash, too. The opportunity is simply good enough to miss.
#325 posted by necros on 2015/08/06 12:55:05
Why is it not reusable? If you retrigger before 0.1 seconds it should just keep spawning particles.
#326 posted by adib on 2015/08/06 16:18:10
This thread is a treasure and should be pinned.
@necros
#327 posted by Spike on 2015/08/06 18:47:42
that's a heck of a lot of particles!
#328 posted by necros on 2015/08/07 00:53:24
it would be glorious... if it worked. T_T
#329 posted by - on 2015/08/07 01:14:39
Just use lots of tbaby_die2
Rotating Objects Hack!
#330 posted by - on 2015/08/08 14:21:42
GREETZ hax fans! Let's make things spin right round like a record baby.
This entity hack is actually pretty easy, it lets you make a rotating object in stock /id1/ quake, but is somewhat limited in what you can do. What we are going to do is make some non-solid, non-interactive rotating objects. Good for things like a ceiling fan that you will never interact with and just spins forever. I've actually used it before in my sm170 speedmap quite awhile ago, but it seems went unnoticed (negke hadn't heard of this method when I told him about it last night).
---
Ok, so first off, you need to make a func_wall fan object at the origin of the world. Make it's center at (0, 0, 0) in the world, this defines where it will rotate around. You'll need this entity's modelindex, so it may be best to make sure it's the first object in your .map file. As explained by some other hacks in this thread, the modelindex is a number given by Quake to each model in a level and lets us instance those models to other entities. The command 'edicts' in Quakespasm/Fitz/etc will help you find this number on entities in your level.
Now, where ever you want to have a rotating fan, place an info_notnull with the following properties:
"classname" "info_notnull"
"avelocity" "0 256 0"
"movetype" "8"
"model" "*1"
"modelindex" "2"
That's it! Obviously, use the modelindex of the func_wall fan you made. avelocity is the part that makes it spin, is the same thing that makes weapon items spin. Here we are spinning around the Y axis at 256 somethingspeed, this is good for a ceiling fan but you'll want to experiment with what is right for you! You can use negative values if you want to spin in the opposite direction.
Another key aspect is the movetype key being set to 8, this means MOVETYPE_NOCLIP in .qc, which is a movetype that allows objects to be rotated with avelocity.
Example .map and .bsp Enjoy!
#331 posted by necros on 2015/08/08 14:33:46
Thanks! We need fans in these hot, hellish environments!
#332 posted by Breezeep_ on 2015/08/08 15:12:45
Really Cool!
|
|
You must be logged in to post in this thread.
|
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.
|
|