Author Topic: VCE help please  (Read 1870 times)

I am making a Zombie map and i have made a mystery box but it's not working please can you tell me what i am doing wrong here
line 1 at the end it's [1 2 2 1]


Why is it "1 2 2 1"? The last box is supposed to represent a range of onVariableTrue/False events to fire for this output, but with only two words, namely the start and the end.

Also, the first event should be onActivate > Self > VCE_ifValue [<var:cl:score>] [>=] [50] [1 2]

I don't know what ifRandomDice does as I never used the crappy retro check.

You also have nothing that triggers event 21.

Why is it "1 2 2 1"? The last box is supposed to represent a range of onVariableTrue/False events
No sorry it's 1 2 21

No sorry it's 1 2 21
That's still wrong. Read what I said.

I did, It's ok nothing is working and even if it did it just gives the client all the items that is in the event

+-EVENT   0   1   onActivate   0   Self      VCE_modVariable   0   random   0   1
+-EVENT   1   1   onActivate   0   Self      VCE_modVariable   0   random   10   3
+-EVENT   2   1   onActivate   0   Self      VCE_ifValue   <var:brick:random>   0   1   3 3
+-EVENT   3   1   onVariableTrue   0   Self      playSound   Bass_00         
+-EVENT   4   1   onActivate   0   Self      VCE_ifValue   <var:brick:random>   0   2   5 5
+-EVENT   5   1   onVariableTrue   0   Self      playSound   Bass_01         
+-EVENT   6   1   onActivate   0   Self      VCE_ifValue   <var:brick:random>   0   3   7 7
+-EVENT   7   1   onVariableTrue   0   Self      playSound   Bass_02   
Would this work?

I don't understand why you are firing a relay and calling all 6 side checks on that dice on ONE relay. This means you are checking for all six sides when you run your retro check. For a mystery box you only want to check one side at a time. I would do it like this most likely. I see what you were going for though.


-snip-
in a way this is correct but there's a more reliable way to randomize the dice roll. you can have an onVariableTrue use the default incScore function in client to remove 50 points from the player before checking ifRandomDice

under event line 1, you should have
Code: [Select]
2 onVariableTrue -> Self -> VCE_modVariable -> [rolldice] SET [0]
3 onVariableTrue -> Self -> VCE_modVariable -> [rolldice] RANDOM [6]
4 onVariableTrue -> Client -> incScore -> [-50]
5 onVariableTrue -> Client -> BottomPrint -> "Mystery Box Item Purchased!"
rolldice is going to be a brick variable (it can be a player/client variable) that will act as a dice for whole numbers. don't know if setting the variable to 0 before random is required but it's probably best to have one there anyway.

after that's done, change all VCE_retroCheck events to VCE_ifVariable and have it check if the brick variable rolldice == 1, rolldice == 2, and so on in the same way it did with retroCheck.
anything under onActivate at line 11 in the picture can go.

I have experience with the way Kobewarrior did it, as in, manually setting and using the random function to make a D'n' dice.
Given the limitation of that retrocheck, just as an assumption, wouldn't the ifRandomDice retrocheck actually roll a dice for each time the event appears?

I don't understand why you are firing a relay and calling all 6 side checks on that dice on ONE relay. This means you are checking for all six sides when you run your retro check. For a mystery box you only want to check one side at a time. I would do it like this most likely. I see what you were going for though.


Ill try this now, Thank you

Such rip-off...
Anyways, mine took 64 lines of events...
Good luck.