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?
Cutscenes in multiplayer
- someoneelse
- Forum Regular
- Posts: 338
- Joined: Sat Aug 18, 2012 10:53 am
- Location: Poland
Cutscenes in multiplayer
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
ChangeCamera (tid, who, revert)
who: Set to 1 if the view change should effect all players
who: Set to 1 if the view change should effect all players
- someoneelse
- Forum Regular
- Posts: 338
- Joined: Sat Aug 18, 2012 10:53 am
- Location: Poland
RE: Cutscenes in multiplayer
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]
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
RE: Cutscenes in multiplayer
Maybe temporary you can spawn a fake camera that will shortly activated before a real one is activated?