Cutscenes in multiplayer
Posted: Sat Sep 22, 2012 11:23 am
by someoneelse
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?
RE: Cutscenes in multiplayer
Posted: Tue Sep 25, 2012 5:16 am
by someoneelse
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]