HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Cinematics on B-net - OH THE HORROR

12-14-2002, 06:38 AM#1
Guest
Ok I just spent a day and 1/2 learning cinematics and then putting them into the map I was making...and it blows on b-net.

Between people with PIII450 and the people on 56k modems, the lag just ruined the movie.

I wasn't expecting that.


Is there anything to be done for that? Any way to actually have a cinematic work on B-net?

Thanks.
12-14-2002, 06:53 AM#2
DaKaN
ya lag can be a issue, but my cinematics run pretty well over bnet. Remember: using wait, or using the send transmition and wait, do NOT work well on bnet. you need to use one of the other methods. i find the eaisest one:

make a varible, NumPlayers, and set it equal to the number of active players in the map (use the slot status is = to isplaying then add them to a player group, then count the players in the player group)

Make a trigger that purges the player group and recounds evey X.XX seconds ( i use 10 seconds)

then do: for each interger a from 1 to NumPlayers do wait X.XX


There are also methods using a timer, but i never used so i cant fully explain.
12-14-2002, 07:21 AM#3
Guest
Hmm ok that's an interesting approach.

My cinematic is 100% WAIT based - so oh well. That'll be something new to learn tomorrow.

If it wasn't for problems, maps would be done in like 2 seconds...and how is that fun :)
12-14-2002, 08:51 AM#4
wiebbe
well,
what i found out in my map. is that wait's work perfectly,
just put them in seperate triggers..

i have 1 wait in each trigger, for a cinematic intro, with transmissions, and other stuff, and it works perfectly,
(i do have like 25 triggers for the intro, doesnt lag with 8 people though)
And this way, it doesnt lag because of the waits!.
12-16-2002, 04:15 PM#5
Guest
I got it to work by issuing 1 wait command for each person on the map. Somebody on another forum suggested that approach and it seems to work.

Lag or slow computers can still mess it up by a second or 2 here or there...but it's pretty close to perfect.
12-16-2002, 07:53 PM#6
FurbyI)estroyer
Dakan can you explain that method a little bit better plz
12-16-2002, 08:02 PM#7
Guest
I can..cuz that's actually the method used.

When the map starts, run a trigger that puts every USER controlled player into a user group variable. It would look something like this:

Event
Time - map initialize
conditions
None
Action
if (player1 slot status = isplaying) then Player Group add Player1 to All_players
If (player2...
If (player3...
etc


Then every once in a while check to see if anybody left. Dakan has his trigger setup to check every 2 seconds, I checked just before every wait command..but you can do what ever works for you. That trigger would look like this

Event
Time - Periodic event every 2 seconds
Condition
None
Action
if (player1 slot stats = hasleft) then Player Group remove Player1 from All_Players


Finally, every time you issue a wait command you need to make a for loop that looks like this

For (every interger A from (1 to number of players in (All_Players))) do wait 2 seconds

and that's about it.

If you want to actually look at it you can go to the Retail Maps Download section and download my Battle Over Belial map. My triggers are well named and organized so you'll be able to see it.
12-16-2002, 08:08 PM#8
FurbyI)estroyer
thanks
12-17-2002, 11:23 AM#9
Phil_123
Quote:
Originally posted by iggystar
I can..cuz that's actually the method used.

When the map starts, run a trigger that puts every USER controlled player into a user group variable. It would look something like this:

Event
Time - map initialize
conditions
None
Action
if (player1 slot status = isplaying) then Player Group add Player1 to All_players
If (player2...
If (player3...
etc


Then every once in a while check to see if anybody left. Dakan has his trigger setup to check every 2 seconds, I checked just before every wait command..but you can do what ever works for you. That trigger would look like this

Event
Time - Periodic event every 2 seconds
Condition
None
Action
if (player1 slot stats = hasleft) then Player Group remove Player1 from All_Players


Finally, every time you issue a wait command you need to make a for loop that looks like this

For (every interger A from (1 to number of players in (All_Players))) do wait 2 seconds

and that's about it.

If you want to actually look at it you can go to the Retail Maps Download section and download my Battle Over Belial map. My triggers are well named and organized so you'll be able to see it.

using ONE user group ARRAY instead of 12 varaiables IS MUCH BETTER AND EASIER...

event:
map initalization

no condition

action:
for (Integer A) from (1 to 12) do (if (player[integer a]) = is playing
then add player to ABC player group else do nothing)
=====
event:
every 2 secs

no condition

action:
for integer a from 1 to 12 do (if player[integer a] has left the game then do remove player from ABC player group else do nothing)
12-17-2002, 02:14 PM#10
Guest
Yes that's true but that's an absurdly obvious point to anybody know knows how to use arrays but it would only serve to confuse people who don't know how to use arrays.

I was simply trying to explain just how the waits work, not the best way to put them into his map.
12-17-2002, 06:51 PM#11
FurbyI)estroyer
how is that ezer and where do u get ' player integer a' from?
12-17-2002, 07:06 PM#12
Guest
In triggers under Actions you'll see

For every Interger A

It's very close to the top, one of the top 10 tiggers listed in the pull down menu.

If you use that, anywhere you used an array index, instead of actually putting in a number, you can put "For loop A" (or something like that)

If you downloaded my map you can see that I use for loops all over the place, especially in my cinematics. You can take a look at them.
12-18-2002, 02:04 AM#13
Guest
hmmmm i ussualy dont make maps for alot of players (mostly single player maps) but if i were to make a cinematic online i would use the method where u add player to player group and if leaves remove player from player group then blawblawblaw just saying how i would do it cause it works for me :D
12-18-2002, 04:13 AM#14
Guest
that's the method I describe in my email.
12-19-2002, 12:32 AM#15
SilentSpyder
I use a system, i saw on Kaggz. I divide the intro into many triggers, using the time elapsed.