Cutscenes in multiplayer

Discuss all aspects related to modding Zandronum here.
Post Reply
User avatar
someoneelse
Forum Regular
Posts: 338
Joined: Sat Aug 18, 2012 10:53 am
Location: Poland

Cutscenes in multiplayer

#1

Post by someoneelse » Sat Sep 22, 2012 11:23 am

I tested few heavily scripted wads with cutscenes on coop servers, and I noticed one thing: when cutscenes appear, the first "put camera here" (I don't know valid term, I am just a simple user) don't work; you're stuck in place, like normally with cutscenes, but with your camera in your eyes, the second "scene" and all others are right though... It can be avoided for map start cutscenes if using survival gamemode with coundown.
Can it be fixed somehow?
Shared keys will now be in Zandro! Thanks devs for their work, and users for the support!
<AlienOverlord> Do you have any friends at all
<AlienOverlord> You play Doom

Professor Pants
New User
Posts: 12
Joined: Sun Sep 23, 2012 4:29 am
Contact:

RE: Cutscenes in multiplayer

#2

Post by Professor Pants » Tue Sep 25, 2012 3:52 am

ChangeCamera (tid, who, revert)
who: Set to 1 if the view change should effect all players

User avatar
someoneelse
Forum Regular
Posts: 338
Joined: Sat Aug 18, 2012 10:53 am
Location: Poland

RE: Cutscenes in multiplayer

#3

Post by someoneelse » Tue Sep 25, 2012 5:16 am

View change affects all players... but, never the first part. Also, even if you're only one on server, still you won't see first part of cutscene.
I am not a moder, I am a user.
To see what I'm talking about, try joining my servers, "Infinite Impse" and "Cry me a river".
Yup, I know those are single player wads. But cutscenes work fine, everything works fine, besides first shot of most of cutscenes. Making it work would enable many wads with cutscenes to a nice, clean multiplayer.

EDIT:
I looked at wiki and stuff... And yeah, the code in cam is 1 in "who" in those wads, so "all players". Well, see for yourself. And join "Infinite Impse" server to see what's wrong... (if map got stuck, vote it to map25 to restart)
[spoiler]#include "zcommon.acs"

script 1 open {
setactorproperty(3,aprop_health,50);
setactorproperty(10,aprop_health,5);
setactorproperty(3,aprop_seesound,"");
setactorproperty(10,aprop_seesound,"");
setactorproperty(4,aprop_health,5000);
//setactorproperty(4,aprop_speed,getactorproperty(4,aprop_speed)*2);
sector_setfade(2,244,192,0);
thing_hate(3,4,6);
thing_hate(4,3,6);
setlineblocking(2,block_creatures);
setlineblocking(3,block_creatures);
setlineblocking(4,block_creatures);
changecamera(8,1,0);}

script 5 open {
if(thingcount(0,3)) {delay(1); restart;}
else { thing_spawnnofog(4,t_chaingun, 0); setmarineweapon(4,marineweapon_chainsaw);
thing_activate(10); thing_hate(4,10,6); thing_hate(10,4,6);
acs_execute(7,0); }}

script 6 open {
if(getactorproperty(4,aprop_health) <= 1000)
setactorproperty(4,aprop_health,5000);
else delay(35);
restart;}

script 2 enter {
setplayerproperty(1,1,prop_notarget);
setplayerproperty(1,1,prop_totallyfrozen);
thing_settranslation(4,-1); }

script 3 (void) {
thrustthingz(0,24,0,0);
thrustthing(16,24); }

script 4 (void) { thing_deactivate(const:4);
delay(35);
thing_spawnnofog(6,t_backpack,16);
delay(25);
spawnspot("Berserk",11,200);
setlineblocking(4,block_nothing);
thing_activate(9);
spawnspot("DoomImp",7,400,224);
setactorproperty(400,aprop_health,30);
delay(70);ambientsound("misc/p_pkup",127);
thing_remove(200);
delay(35);
thing_hate(400,4,6);
ambientsound("hahaha",127);
//setactorproperty(4,aprop_speed,100);
delay(70);
thing_activate(4);
thing_hate(4,400,6);
acs_execute(8,0);
delay(35*8);
changecamera(25,1,0); }

script 7 (void)
{ if(thingcount(0,10)) { delay(1); restart; }
else {
thing_spawnnofog(4,t_chainsaw,0);
setmarineweapon(4,marineweapon_berserkfist);
setlineblocking(2,block_nothing); setlineblocking(3,block_nothing);
delay(35);
changecamera(9,1,0);
thing_setgoal(4,5,0);
}}

script 8 (void) {
floor_lowerinstant(49, 0, 64 / 8);}

script 9 (void) {
while(thingcount(0,400)) delay(1);

spawnspot("DoomImp",40,500,128);
delay(35); thing_remove(4);
spawnspot("ScriptedMarine",28,4,0);
thing_settranslation(4,-1);
setactorproperty(4,aprop_health,5000);
//setactorproperty(4,aprop_speed,50);
setmusic("d_e1m2",0);
for(int x=140;x>0;x-=35) { changecamera(26,1,0); delay(x); changecamera(27,1,0); delay(x); }
changecamera(26,1,0);
thing_setgoal(4,29,0);
thing_activate(26);
delay(280);

thing_remove(500);
thing_remove(4);
acs_terminate(6, 0);
delay(1);
spawnspot("ImpSex",40,500,0);
thing_settranslation(500,-1);

//struggle
ambientsound("imp/melee",127);delay(15);
ambientsound("imp/melee",127);delay(20);
ambientsound("imp/melee",127);delay(25);
ambientsound("*pain100",127);delay(15);
ambientsound("*fist",127);delay(15);
ambientsound("imp/sight1",127);delay(35);
ambientsound("imp/pain",127);delay(15);
ambientsound("imp/melee",127);delay(20);
ambientsound("imp/melee",127);delay(20);
ambientsound("*pain100",127);delay(15);

//impse!
ambientsound("imp/pain",127);delay(15);
ambientsound("*grunt",127);delay(15);
ambientsound("imp/pain",127);delay(15);
ambientsound("*grunt",127);delay(15);
ambientsound("*grunt",127);delay(10);
ambientsound("imp/pain",127);delay(10);
ambientsound("*grunt",127);delay(10);
ambientsound("imp/pain",127);delay(10);
ambientsound("*grunt",127);delay(10);
ambientsound("imp/pain",127);delay(15);
ambientsound("*grunt",127);delay(15);
ambientsound("*grunt",127);delay(10);
ambientsound("imp/pain",127);delay(10);
ambientsound("*grunt",127);delay(10);
ambientsound("imp/pain",127);delay(10);
ambientsound("*grunt",127);delay(10);

thing_remove(500);
spawnspot("DoomImp",40,500,128);
spawnspot("ScriptedMarine",41,4,0);
delay(1);
thing_settranslation(4,-1);

ambientsound("imp/pain",127);delay(15);
ambientsound("*grunt",127);delay(15);
ambientsound("*grunt",127);delay(10);
ambientsound("imp/pain",127);delay(10);
ambientsound("*grunt",127);delay(10);
ambientsound("imp/pain",127);delay(10);
ambientsound("*grunt",127);delay(10);
ambientsound("*xdeath",127);delay(10);
ambientsound("imp/sight2",127);delay(105);
ambientsound("*fist",127);delay(10);
thing_destroy(500);delay(175);

changecamera(34,1,0);
setmusic("d_romer2",0);
thing_setgoal(4,35,0);
delay(105);
light_fade(0,0,280);
light_fade(1,0,280);
delay(280);
hudmessage (s:"the end...";hudmsg_typeon,0,cr_brick,0.5,0.25,6,0.10,3.0);
delay(280);
exit_normal(0);}
[/spoiler]
Last edited by someoneelse on Tue Sep 25, 2012 9:45 am, edited 1 time in total.
Shared keys will now be in Zandro! Thanks devs for their work, and users for the support!
<AlienOverlord> Do you have any friends at all
<AlienOverlord> You play Doom

ZzZombo
Forum Regular
Posts: 323
Joined: Mon Jun 11, 2012 12:11 pm
Location: Ravenholm

RE: Cutscenes in multiplayer

#4

Post by ZzZombo » Tue Nov 27, 2012 4:29 am

Maybe temporary you can spawn a fake camera that will shortly activated before a real one is activated?

Post Reply