Author Topic: VCE - Item collection system, escape/generator win system  (Read 2179 times)

I've tried this before, but it always screws up in weird and occasionally hard to reproduce ways.

The basic outline is, I have a brick that, on minigame reset, gradually randomizes the locations of eight collectable items. These could be pages, gas cans, bepises, or what-have-you. The location randomization system I have works, but no matter how hard I try, the game can't seem to remember how many items were collected and refuses to act properly. For some reason, sometimes the game thinks that all have been collected and activates events pertaining to that on the very first item. I have no clue why.

Basically, these items are set to disappear onActivate and increment a variable related to the minigame, as well as tell some bricks to check how many items there are and
display them in either chat or centerprint. But it just doesn't work half the time, and this is strange because by every means I can see, it should work perfectly.

I'd provide a screenshot, but I haven't because I suspect my entire system is broken. But the VCE manual's no help, searching on the forums is no help, so I have to ask here.

Can someone just provide me with a system that...
  • Randomly unhides one of four bricks labeled item1a/b/c/d etc, and repeats this up to item8 every minigame reset
  • Upon clicking one, hides it and adds one item to the minigame's item count, displaying to everyone how many have been collected
  • Upon collecting all eight, enables events for either a generator that must be started to win the round or, ideally, enables an 'escape here' zonebrick that wins the round once all LIVING players enter the zone
I hope this isn't too much to ask. It seems simple to me, but VCE is messing it up in ways I can't even comprehend.

It's pretty late but from a quick read through have a few ideas on how to put this in place with your current plans. When I get back tomorrow will help out if no one else has before.

Till then, can you take pictures of everything you have done event wise?

It's pretty late but from a quick read through have a few ideas on how to put this in place with your current plans. When I get back tomorrow will help out if no one else has before.

Till then, can you take pictures of everything you have done event wise?
Yeah, I'll do that real quick.

Yeah, I'll do that real quick.
Great, when get back will think of something to work with what you have.

If not, have done things like this in the past with default events so there's always something to fall back on.

Great, when get back will think of something to work with what you have.

If not, have done things like this in the past with default events so there's always something to fall back on.
Okay, took a look at my test build and it actually works properly. With some caveats.
I've attached a picture explaining my events. The thing is, there has to be a five-sec delay between page collection or VCE becomes confused.
I guess I forgot that these worked after all, but I still do have a problem. Ideally I want it to be based on an escape zone, not a generator with a timer. So all players would
need to enter an area and increment a "players escaped" count until all living players were in and the round was won, but I don't know how to detect how many living players there are.
I could take another approach and just have the team win as soon as anybody escapes, but that's not nearly as interesting. In that case, the generator would be more fun.

There's no way to detect the amount of living players easily without the use of some outside script, and therefore no way to check how many have made it out of how many there are total, especially when players probably will die during the round.

It is possible to require a certain percentage of the initial amount to make it in order to win the round, though.

There's no way to detect the amount of living players easily without the use of some outside script, and therefore no way to check how many have made it out of how many there are total, especially when players probably will die during the round.

It is possible to require a certain percentage of the initial amount to make it in order to win the round, though.
Hm. I think I've reached a compromise.
The current way it's set up requires players to wait for the power to come on, <i>then</i> escape through the now-powered door and into the tunnel. I'll have a glowing yellow win brick unhide there that wins the round for humans when touched.
While this still only requires one person, it does make it so that players will have to hold out near the tunnel to win, and the more there are, the more that are likely to be left to touch the brick. I think this achieves a similar effect, as they'll only have one minute (might make it thirty seconds) after the power's back to touch the win brick, incentivizing them to stay near the tunnel. That time might be very short, but at this point Rendy's spawn rate is max, so... going anywhere is dangerous.

Also, I've been thinking and I deduced that having one life in such a long gamemode as a Renderman gas can hunt might be too much wait time. Slender Fortress gets away with long round times by having waiting areas with PvP and silly team fortress shenanigans to get up to while you're 'dead'. I can't really do that here, though I could  have a system with the Infection gamemode that works similarly. So I think players having a sixty-second respawn time would work better than that, since it makes death a scary thing, keeping Rendy a spooky guy, but it also prevents huge wait times. My servers already have enough trouble garnering players as-is... I don't need a wait like that driving people out.
Maybe this is off-topic, but since I was thinking about it I thought I might as well ask. No use keeping my thoughts in an echo chamber.

probably wouldn't be too difficult to script variable replacers for minigame players/alive/haven't died

it may be possible to event it if you have access to the spawn point
ie if they spawn in a room and then get teleported to the map by using a portal/button would help

if you need help setting this up to work ingame, I can get on for a bit and put up some events

probably wouldn't be too difficult to script variable replacers for minigame players/alive/haven't died

it may be possible to event it if you have access to the spawn point
ie if they spawn in a room and then get teleported to the map by using a portal/button would help

if you need help setting this up to work ingame, I can get on for a bit and put up some events
Nah. I think this is fine.
Slayer's already proving to be unreliable as it is- when I join the minigame from being outside it, the onMinigameReset events refuse to reset the Pages variable no matter what I do. I have to reset it a second time to get it to work.
The favorites menu also gets confused when I load the preset and thinks that I don't have Team Deathmatch installed for some reason... it seems the new Slayer is still buggier than the old Slayer.

when you join it, does the minigame reset?
it should only trigger if the bricks are part of the minigame when it resets

All versions of slayer have been finicky with minigame events. It's likely you're doing everything correctly and it's having difficulty for that very reason.

All versions of slayer have been finicky with minigame events. It's likely you're doing everything correctly and it's having difficulty for that very reason.
VCE doesn't like minigame-chatmsg all either