Post: [GSC][Release] Merry - Go - Round
12-24-2014, 01:19 PM #1
(adsbygoogle = window.adsbygoogle || []).push({}); I ported Lost4468's Merry - Go - Round from MW2 to Black Ops 2!
It was simple to convert, but I hadn't seen anybody else with it.

If anyone wants me to put the code into a pastebin I will do :smile:
I will, of course, fix up some of the issues it has currently ([s]stops spinning shortly[/s] and a few other issues).

As of now it uses up a bunch of entites. I will be looking for a better way to spawn less carepackages so that more entity space will be free.

Picture

You must login or register to view this content.


Code

Put in init()
    level.merrySpawned = 0;
precacheModel("t6_wpn_supply_drop_ally");
precacheModel("t6_wpn_supply_drop_axis");
precacheModel("t6_wpn_supply_drop_trap");
precacheModel("projectile_hellfire_missile");
precacheModel("prop_suitcase_bomb");
precacheModel("p6_carrier_large_crate");
precacheModel("p6_barrel_green");
merrygoround.gsc
    build(){
self endon("death");
self endon("game_ended");
for(;Winky Winky{
if(level.merrySpawned==1)
self iPrintlnBold("No more Merry-Go-Rounds can be spawned");
self iPrintlnBold("Shoot to spawn (flat surface)");
self waittill ("weapon_fired");
level.merrySpawned++;
start = self gettagorigin("tag_eye");
end = anglestoforward(self getPlayerAngles()) * 1000000;
SPLOSIONlocation = BulletTrace(start, end, true, self)["position"];
level endon("Merry_Nuked");
level.Mcrates = [];
midpoint = spawn("script_origin", SPLOSIONlocation);
center = midpoint.origin;
level.center = midpoint.origin;
h = 0;
LOLCATS = 0;
for(j=0;j<2;j++){
for(i=60;i<240;i+=60){
level.Mcrates[h] = spawn("script_model", center+(i,0,LOLCATS));
level.Mcrates[h] setModel("t6_wpn_supply_drop_ally");
h++;}
for(i=60;i<240;i+=60){
level.Mcrates[h] = spawn("script_model", center-(i,0,0-LOLCATS));
level.Mcrates[h] setModel("t6_wpn_supply_drop_ally");
h++;}
for(i=60;i<240;i+=60){
level.Mcrates[h] = spawn("script_model", center-(0,i,0-LOLCATS));
level.Mcrates[h].angles = (0,90,0);
level.Mcrates[h] setModel("t6_wpn_supply_drop_ally");
h++;}
for(i=60;i<240;i+=60){
level.Mcrates[h] = spawn("script_model", center+(0,i,LOLCATS));
level.Mcrates[h].angles = (0,90,0);
level.Mcrates[h] setModel("t6_wpn_supply_drop_ally");
h++; }
foreach(Mcrates in level.Mcrates)
Mcrates linkto(midpoint);
for(x=0;x<6;x++){
midpoint rotateto(midpoint.angles+(0,11.25,0),0.05);
wait 0.1;
for(i=60;i<240;i+=60){
level.Mcrates[h] = spawn("script_model", center-(0,i,0-LOLCATS));
level.Mcrates[h].angles = (0,90,0);
level.Mcrates[h] setModel("t6_wpn_supply_drop_ally");
h++;}
for(i=60;i<240;i+=60){
level.Mcrates[h] = spawn("script_model", center+(0,i,LOLCATS));
level.Mcrates[h].angles = (0,90,0);
level.Mcrates[h] setModel("t6_wpn_supply_drop_ally");
h++;}
for(i=60;i<240;i+=60){
level.Mcrates[h] = spawn("script_model", center-(i,0,0-LOLCATS));
level.Mcrates[h] setModel("t6_wpn_supply_drop_ally");
h++;}
for(i=60;i<240;i+=60){
level.Mcrates[h] = spawn("script_model", center+(i,0,LOLCATS));
level.Mcrates[h] setModel("t6_wpn_supply_drop_ally");
h++;}
foreach(Mcrates in level.Mcrates){
Mcrates linkto(midpoint);}}
LOLCATS=180;
wait 0.2;}
for(x=30;x<180;x+=30){
for(i=0;i<6;i++){
level.Mcrates[h] = spawn("script_model", center+(0,0,x));
level.Mcrates[h].angles = (0,i*22.5,0);
level.Mcrates[h] setModel("t6_wpn_supply_drop_ally");
h++;}
wait 0.02;}
level.MerrySeat = [];
level.MerrySeat[0] = spawn("script_model", center+(-22,100,30));
level.MerrySeat[0] setmodel("t6_wpn_supply_drop_trap");
level.MerrySeat[0].angles = (90,0,0);
level.MerrySeat[1] = spawn("script_model", center+(-22,-100,30));
level.MerrySeat[1] setmodel("t6_wpn_supply_drop_trap");
level.MerrySeat[1].angles = (90,0,0);
level.MerrySeat[2] = spawn("script_model", center+(-100,-22,30));
level.MerrySeat[2] setmodel("t6_wpn_supply_drop_trap");
level.MerrySeat[2].angles = (90,90,0);
level.MerrySeat[3] = spawn("script_model", center+(100,-22,30));
level.MerrySeat[3] setmodel("t6_wpn_supply_drop_trap");
level.MerrySeat[3].angles = (90,90,0);
level.MerrySeat[4] = spawn("script_model", center+(-122,100,30));
level.MerrySeat[4] setmodel("t6_wpn_supply_drop_trap");
level.MerrySeat[4].angles = (90,45,0);
level.MerrySeat[5] = spawn("script_model", center+(122,-100,30));
level.MerrySeat[5] setmodel("t6_wpn_supply_drop_trap");
level.MerrySeat[5].angles = (90,-135,0);
level.MerrySeat[6] = spawn("script_model", center+(-100,-122,30));
level.MerrySeat[6] setmodel("t6_wpn_supply_drop_trap");
level.MerrySeat[6].angles = (90,135,0);
level.MerrySeat[7] = spawn("script_model", center+(100,122,30));
level.MerrySeat[7] setmodel("t6_wpn_supply_drop_trap");
level.MerrySeat[7].angles = (90,-45,0);
level.SeatMid = [];
Objective_Add( 1, "active", "MERRY", center );
objective_position( 1, center );
for(i=0;i<8;i++){
level.SeatMid[i] = spawn("script_origin", SPLOSIONlocation);
wait 0.01;}
level.FakeSeat = [];
for(i=0;i<8;i++){
level.FakeSeat[i] = spawn("script_origin", level.MerrySeat[i].origin-(0,0,37));
level.FakeSeat[i].num = i;
level.FakeSeat[i].InUse = false;
wait 0.01;}
i = 0;
foreach(FakeSeat in level.FakeSeat){
FakeSeat linkto(level.MerrySeat[i]);
FakeSeat thread ManageDistance();
i++;
wait 0.01;}
i = 0;
foreach(MerrySeat in level.MerrySeat){
MerrySeat linkto(level.SeatMid[i]);
level.SeatMid[i] thread MoveAbout();
i++;
wait 0.01;}
wait 0.01;
for(;Winky Winky{
midpoint rotateyaw(-720, Cool Man (aka Tustin);
foreach(SeatMid in level.SeatMid){
SeatMid rotateyaw(-720, Cool Man (aka Tustin);
wait 0.01;}
wait 7;}}}
MerryNuke(){
level endon("nuked");
level.Detonator = spawn("script_model", level.center+(60,-355,0));
level.Detonator setmodel("prop_suitcase_bomb");
level.Detonator.angles = (0,90,0);
level.Bomb = spawn("script_model", level.center+(60,-340,6));
level.Bomb setmodel("projectile_hellfire_missile");
Detonator = level.Detonator;
Collision = [];
Collision[0] = spawn("script_model", level.center+(0,-320,14));
Collision[1] = spawn("script_model", level.center+(0,-320,42));
Collision[2] = spawn("script_model", level.center+(0,-280,42));
Collision[3] = spawn("script_model", level.center+(0,-280,14));
Collision[4] = spawn("script_model", level.center+(55,-320,14));
Collision[5] = spawn("script_model", level.center+(55,-320,42));
Collision[6] = spawn("script_model", level.center+(55,-280,42));
Collision[7] = spawn("script_model", level.center+(55,-280,14));
Collision[8] = spawn("script_model", level.center+(110,-320,14));
Collision[9] = spawn("script_model", level.center+(110,-320,42));
Collision[10] = spawn("script_model", level.center+(110,-280,42));
Collision[11] = spawn("script_model", level.center+(110,-280,14));
Collision[12] = spawn("script_model", level.center+(145,-320,14));
Collision[13] = spawn("script_model", level.center+(145,-320,42));
Collision[14] = spawn("script_model", level.center+(145,-280,42));
Collision[15] = spawn("script_model", level.center+(145,-280,14));
Collision[16] = spawn("script_model", level.center+(60,-330,0));
Collision[17] = spawn("script_model", level.center+(60,-330,0));
Collision[17].angles = (0,90,0);
level.MerryNuke = false;
for(;Winky Winky{
foreach(player in level.players){
if(distance(Detonator.origin, player gettagorigin("j_head")) <30 && level.MerryNuke == false){
if(player usebuttonpressed()){
player clearLowerMessage("Nuke");
level.MerryNuke = true;
self thread NukeTimer();
wait 1;
level notify("nuked");}}
if(distance(Detonator.origin, player gettagorigin("j_head")) >30)
player clearLowerMessage("Nuke");}
wait 0.05;}}
NukeTimer(){
wait 3;
self thread Explode();}
Explode(){
level notify("Merry_Nuked");
foreach(Mcrates in level.Mcrates){
Mcrates unlink();
Mcrates delete();}
foreach(ControlPanel in level.ControlPanels)
ControlPanel delete();
foreach(MerrySeat in level.MerrySeat)
MerrySeat delete();
level.merrySpawned = 0;}
ManageDistance(){
level endon("Merry_Nuked");
for(;Winky Winky{
foreach(player in level.players){
if(distance(self.origin, player.origin) <100 && self.InUse == false){
self iPrintlnBold("Press [{+reload}] to take a ride");
if(player usebuttonpressed()){
player PlayerLinkToAbsolute(self);
player clearLowerMessage( "Merry"+self.num );
self.InUse = true;
wait 1;}}
else if(distance(self.origin, player.origin) <100 && self.InUse == true && player usebuttonpressed()){
player unlink();
self.InUse = false;
player setorigin(level.center+(0,0,200));
wait 1;}
if(distance(self.origin, player.origin) >100)
player clearLowerMessage("Merry "+self.num);}
wait 0.05;}}
MoveAbout(){
level endon("Merry_Nuked");
for(;Winky Winky{
RandNum = randomfloatrange(1,3);
self moveto((self.origin[0],self.origin[1],self.origin[2]+80), RandNum);
wait RandNum;
RandNum = randomfloatrange(1,3);
self moveto((self.origin[0],self.origin[1],self.origin[2]-80), RandNum);
wait RandNum;}}
(adsbygoogle = window.adsbygoogle || []).push({});

The following 9 users say thank you to FineNerds for this useful post:

Boughhhh, BullyWiiPlaza, Esker, ishangiri2014, Killer Be, koekiemonstarr2, Loz, MrHackerDude1, Mrtbyhyourwme
12-24-2014, 06:13 PM #11
Well done great work chap!
12-24-2014, 06:41 PM #12
LegitGamer264
Vault dweller
any time. i enjoy testing and making videos of mod menus, etc
12-24-2014, 06:56 PM #13
Thank you for the release!
Great job Smile
12-24-2014, 07:13 PM #14
Thank you Happy I was looking for something no one has done on BO2 yet and remembered this.
12-25-2014, 05:53 AM #15
Exelo
Banned
"It was simple to convert, but I hadn't seen anybody else with it."
I did it month ago.


4:04 ; Also created a toggle for it.
When OFF : Destroy.

The following user thanked Exelo for this useful post:

Boughhhh
12-25-2014, 07:20 AM #16
I apologize; however, just because you made it a month ago doesn't mean that I saw it. I would also like to say that a toggle for this wouldn't be hard to implement if you so please.

The following user thanked FineNerds for this useful post:

EternalHabit
12-25-2014, 02:01 PM #17
MrHackerDude1
At least I can fight
Originally posted by FineNerds View Post
I ported Lost4468's Merry - Go - Round from MW2 to Black Ops 2!
It was simple to convert, but I hadn't seen anybody else with it.

If anyone wants me to put the code into a pastebin I will do :smile:
I will, of course, fix up some of the issues it has currently ([s]stops spinning shortly[/s] and a few other issues).

As of now it uses up a bunch of entites. I will be looking for a better way to spawn less carepackages so that more entity space will be free.

Picture

You must login or register to view this content.


Code

Put in init()
    level.merrySpawned = 0;
precacheModel("t6_wpn_supply_drop_ally");
precacheModel("t6_wpn_supply_drop_axis");
precacheModel("t6_wpn_supply_drop_trap");
precacheModel("projectile_hellfire_missile");
precacheModel("prop_suitcase_bomb");
precacheModel("p6_carrier_large_crate");
precacheModel("p6_barrel_green");
merrygoround.gsc
    build(){
self endon("death");
self endon("game_ended");
for(;Winky Winky{
if(level.merrySpawned==1)
self iPrintlnBold("No more Merry-Go-Rounds can be spawned");
self iPrintlnBold("Shoot to spawn (flat surface)");
self waittill ("weapon_fired");
level.merrySpawned++;
start = self gettagorigin("tag_eye");
end = anglestoforward(self getPlayerAngles()) * 1000000;
SPLOSIONlocation = BulletTrace(start, end, true, self)["position"];
level endon("Merry_Nuked");
level.Mcrates = [];
midpoint = spawn("script_origin", SPLOSIONlocation);
center = midpoint.origin;
level.center = midpoint.origin;
h = 0;
LOLCATS = 0;
for(j=0;j<2;j++){
for(i=60;i<240;i+=60){
level.Mcrates[h] = spawn("script_model", center+(i,0,LOLCATS));
level.Mcrates[h] setModel("t6_wpn_supply_drop_ally");
h++;}
for(i=60;i<240;i+=60){
level.Mcrates[h] = spawn("script_model", center-(i,0,0-LOLCATS));
level.Mcrates[h] setModel("t6_wpn_supply_drop_ally");
h++;}
for(i=60;i<240;i+=60){
level.Mcrates[h] = spawn("script_model", center-(0,i,0-LOLCATS));
level.Mcrates[h].angles = (0,90,0);
level.Mcrates[h] setModel("t6_wpn_supply_drop_ally");
h++;}
for(i=60;i<240;i+=60){
level.Mcrates[h] = spawn("script_model", center+(0,i,LOLCATS));
level.Mcrates[h].angles = (0,90,0);
level.Mcrates[h] setModel("t6_wpn_supply_drop_ally");
h++; }
foreach(Mcrates in level.Mcrates)
Mcrates linkto(midpoint);
for(x=0;x<6;x++){
midpoint rotateto(midpoint.angles+(0,11.25,0),0.05);
wait 0.1;
for(i=60;i<240;i+=60){
level.Mcrates[h] = spawn("script_model", center-(0,i,0-LOLCATS));
level.Mcrates[h].angles = (0,90,0);
level.Mcrates[h] setModel("t6_wpn_supply_drop_ally");
h++;}
for(i=60;i<240;i+=60){
level.Mcrates[h] = spawn("script_model", center+(0,i,LOLCATS));
level.Mcrates[h].angles = (0,90,0);
level.Mcrates[h] setModel("t6_wpn_supply_drop_ally");
h++;}
for(i=60;i<240;i+=60){
level.Mcrates[h] = spawn("script_model", center-(i,0,0-LOLCATS));
level.Mcrates[h] setModel("t6_wpn_supply_drop_ally");
h++;}
for(i=60;i<240;i+=60){
level.Mcrates[h] = spawn("script_model", center+(i,0,LOLCATS));
level.Mcrates[h] setModel("t6_wpn_supply_drop_ally");
h++;}
foreach(Mcrates in level.Mcrates){
Mcrates linkto(midpoint);}}
LOLCATS=180;
wait 0.2;}
for(x=30;x<180;x+=30){
for(i=0;i<6;i++){
level.Mcrates[h] = spawn("script_model", center+(0,0,x));
level.Mcrates[h].angles = (0,i*22.5,0);
level.Mcrates[h] setModel("t6_wpn_supply_drop_ally");
h++;}
wait 0.02;}
level.MerrySeat = [];
level.MerrySeat[0] = spawn("script_model", center+(-22,100,30));
level.MerrySeat[0] setmodel("t6_wpn_supply_drop_trap");
level.MerrySeat[0].angles = (90,0,0);
level.MerrySeat[1] = spawn("script_model", center+(-22,-100,30));
level.MerrySeat[1] setmodel("t6_wpn_supply_drop_trap");
level.MerrySeat[1].angles = (90,0,0);
level.MerrySeat[2] = spawn("script_model", center+(-100,-22,30));
level.MerrySeat[2] setmodel("t6_wpn_supply_drop_trap");
level.MerrySeat[2].angles = (90,90,0);
level.MerrySeat[3] = spawn("script_model", center+(100,-22,30));
level.MerrySeat[3] setmodel("t6_wpn_supply_drop_trap");
level.MerrySeat[3].angles = (90,90,0);
level.MerrySeat[4] = spawn("script_model", center+(-122,100,30));
level.MerrySeat[4] setmodel("t6_wpn_supply_drop_trap");
level.MerrySeat[4].angles = (90,45,0);
level.MerrySeat[5] = spawn("script_model", center+(122,-100,30));
level.MerrySeat[5] setmodel("t6_wpn_supply_drop_trap");
level.MerrySeat[5].angles = (90,-135,0);
level.MerrySeat[6] = spawn("script_model", center+(-100,-122,30));
level.MerrySeat[6] setmodel("t6_wpn_supply_drop_trap");
level.MerrySeat[6].angles = (90,135,0);
level.MerrySeat[7] = spawn("script_model", center+(100,122,30));
level.MerrySeat[7] setmodel("t6_wpn_supply_drop_trap");
level.MerrySeat[7].angles = (90,-45,0);
level.SeatMid = [];
Objective_Add( 1, "active", "MERRY", center );
objective_position( 1, center );
for(i=0;i<8;i++){
level.SeatMid[i] = spawn("script_origin", SPLOSIONlocation);
wait 0.01;}
level.FakeSeat = [];
for(i=0;i<8;i++){
level.FakeSeat[i] = spawn("script_origin", level.MerrySeat[i].origin-(0,0,37));
level.FakeSeat[i].num = i;
level.FakeSeat[i].InUse = false;
wait 0.01;}
i = 0;
foreach(FakeSeat in level.FakeSeat){
FakeSeat linkto(level.MerrySeat[i]);
FakeSeat thread ManageDistance();
i++;
wait 0.01;}
i = 0;
foreach(MerrySeat in level.MerrySeat){
MerrySeat linkto(level.SeatMid[i]);
level.SeatMid[i] thread MoveAbout();
i++;
wait 0.01;}
wait 0.01;
for(;Winky Winky{
midpoint rotateyaw(-720, Cool Man (aka Tustin);
foreach(SeatMid in level.SeatMid){
SeatMid rotateyaw(-720, Cool Man (aka Tustin);
wait 0.01;}
wait 7;}}}
MerryNuke(){
level endon("nuked");
level.Detonator = spawn("script_model", level.center+(60,-355,0));
level.Detonator setmodel("prop_suitcase_bomb");
level.Detonator.angles = (0,90,0);
level.Bomb = spawn("script_model", level.center+(60,-340,6));
level.Bomb setmodel("projectile_hellfire_missile");
Detonator = level.Detonator;
Collision = [];
Collision[0] = spawn("script_model", level.center+(0,-320,14));
Collision[1] = spawn("script_model", level.center+(0,-320,42));
Collision[2] = spawn("script_model", level.center+(0,-280,42));
Collision[3] = spawn("script_model", level.center+(0,-280,14));
Collision[4] = spawn("script_model", level.center+(55,-320,14));
Collision[5] = spawn("script_model", level.center+(55,-320,42));
Collision[6] = spawn("script_model", level.center+(55,-280,42));
Collision[7] = spawn("script_model", level.center+(55,-280,14));
Collision[8] = spawn("script_model", level.center+(110,-320,14));
Collision[9] = spawn("script_model", level.center+(110,-320,42));
Collision[10] = spawn("script_model", level.center+(110,-280,42));
Collision[11] = spawn("script_model", level.center+(110,-280,14));
Collision[12] = spawn("script_model", level.center+(145,-320,14));
Collision[13] = spawn("script_model", level.center+(145,-320,42));
Collision[14] = spawn("script_model", level.center+(145,-280,42));
Collision[15] = spawn("script_model", level.center+(145,-280,14));
Collision[16] = spawn("script_model", level.center+(60,-330,0));
Collision[17] = spawn("script_model", level.center+(60,-330,0));
Collision[17].angles = (0,90,0);
level.MerryNuke = false;
for(;Winky Winky{
foreach(player in level.players){
if(distance(Detonator.origin, player gettagorigin("j_head")) <30 && level.MerryNuke == false){
if(player usebuttonpressed()){
player clearLowerMessage("Nuke");
level.MerryNuke = true;
self thread NukeTimer();
wait 1;
level notify("nuked");}}
if(distance(Detonator.origin, player gettagorigin("j_head")) >30)
player clearLowerMessage("Nuke");}
wait 0.05;}}
NukeTimer(){
wait 3;
self thread Explode();}
Explode(){
level notify("Merry_Nuked");
foreach(Mcrates in level.Mcrates){
Mcrates unlink();
Mcrates delete();}
foreach(ControlPanel in level.ControlPanels)
ControlPanel delete();
foreach(MerrySeat in level.MerrySeat)
MerrySeat delete();
level.merrySpawned = 0;}
ManageDistance(){
level endon("Merry_Nuked");
for(;Winky Winky{
foreach(player in level.players){
if(distance(self.origin, player.origin) <100 && self.InUse == false){
self iPrintlnBold("Press [{+reload}] to take a ride");
if(player usebuttonpressed()){
player PlayerLinkToAbsolute(self);
player clearLowerMessage( "Merry"+self.num );
self.InUse = true;
wait 1;}}
else if(distance(self.origin, player.origin) <100 && self.InUse == true && player usebuttonpressed()){
player unlink();
self.InUse = false;
player setorigin(level.center+(0,0,200));
wait 1;}
if(distance(self.origin, player.origin) >100)
player clearLowerMessage("Merry "+self.num);}
wait 0.05;}}
MoveAbout(){
level endon("Merry_Nuked");
for(;Winky Winky{
RandNum = randomfloatrange(1,3);
self moveto((self.origin[0],self.origin[1],self.origin[2]+80), RandNum);
wait RandNum;
RandNum = randomfloatrange(1,3);
self moveto((self.origin[0],self.origin[1],self.origin[2]-80), RandNum);
wait RandNum;}}


put the code in paste bin if it not a problem
12-25-2014, 07:35 PM #18
Exelo
Banned
Originally posted by FineNerds View Post
I apologize; however, just because you made it a month ago doesn't mean that I saw it. I would also like to say that a toggle for this wouldn't be hard to implement if you so please.


I never talk about saw it or not.
You are just sooooo happy about the fact that you tought you did it first.
Too bad for you. :A

Ps: Merry christmas

The following user thanked Exelo for this useful post:

Boughhhh
12-25-2014, 07:39 PM #19
You must login or register to view this content.
You still need to put the stuff from the thread in init() though

The following user thanked FineNerds for this useful post:

MrHackerDude1

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo