Post: Grid of explosive spheres
08-17-2012, 09:06 PM #1
Ghost1990
12-28-2012
(adsbygoogle = window.adsbygoogle || []).push({}); So, I saw You must login or register to view this content. thread on Cluster Bomb Nades which obviously made me think of COD4, but than I remembered You must login or register to view this content. thread on Funny Grenades Mod, I'm know he's not the original creater, but made me think about attaching models to grenades. And I threw this together quick.

My Original big code...
    
ClusterSphere()
{
self endon("death");
self endon("disconnect");
self iprintln("^3Cluster ^2Explosives");
for(;Winky Winky
{
self waittill("grenade_fire",grenade,weapname);
if(weapname=="semtex_mp"||weapname=="frag_grenade_mp")
{
cluster = spawn("script_model",grenade.origin+(0,0,17));
cluster setModel("test_sphere_silver");
cluster linkTo(grenade);
cluster1 = spawn("script_model",grenade.origin+(0,100,17));
cluster1 setModel("test_sphere_silver");
cluster1 linkTo(grenade);
cluster2 = spawn("script_model",grenade.origin+(0,-100,17));
cluster2 setModel("test_sphere_silver");
cluster2 linkTo(grenade);
cluster3 = spawn("script_model",grenade.origin+(100,0,17));
cluster3 setModel("test_sphere_silver");
cluster3 linkTo(grenade);
cluster4 = spawn("script_model",grenade.origin+(-100,0,17));
cluster4 setModel("test_sphere_silver");
cluster4 linkTo(grenade);
cluster5 = spawn("script_model",grenade.origin+(100,100,17));
cluster5 setModel("test_sphere_silver");
cluster5 linkTo(grenade);
cluster6 = spawn("script_model",grenade.origin+(-100,-100,17));
cluster6 setModel("test_sphere_silver");
cluster6 linkTo(grenade);
cluster7 = spawn("script_model",grenade.origin+(100,-100,17));
cluster7 setModel("test_sphere_silver");
cluster7 linkTo(grenade);
cluster8 = spawn("script_model",grenade.origin+(-100,100,17));
cluster8 setModel("test_sphere_silver");
cluster8 linkTo(grenade);
grenade waittill("death");
level.chopper_fx["explode"]["large"]=loadfx("explosions/aerial_explosion");
playfx(level.chopper_fx["explode"]["large"], cluster.origin);
RadiusDamage(cluster.origin,800,400,60,self);
cluster delete();
wait 1.5;
playfx(level.chopper_fx["explode"]["large"], cluster1.origin);
RadiusDamage(cluster.origin1,900,300,50,self);
cluster1 delete();
playfx(level.chopper_fx["explode"]["large"], cluster2.origin);
RadiusDamage(cluster.origin2,900,300,50,self);
cluster2 delete();
playfx(level.chopper_fx["explode"]["large"], cluster3.origin);
RadiusDamage(cluster.origin3,900,300,50,self);
cluster3 delete();
playfx(level.chopper_fx["explode"]["large"], cluster4.origin);
RadiusDamage(cluster.origin4,900,300,50,self);
cluster4 delete();
playfx(level.chopper_fx["explode"]["large"], cluster5.origin);
RadiusDamage(cluster.origin5,900,300,50,self);
cluster5 delete();
playfx(level.chopper_fx["explode"]["large"], cluster6.origin);
RadiusDamage(cluster.origin6,900,300,50,self);
cluster6 delete();
playfx(level.chopper_fx["explode"]["large"], cluster7.origin);
RadiusDamage(cluster.origin7,900,300,50,self);
cluster7 delete();
playfx(level.chopper_fx["explode"]["large"], cluster8.origin);
RadiusDamage(cluster.origin8,900,300,50,self);
cluster8 delete();
}
}
}

A much shorter code by You must login or register to view this content.
    
ClusterSphere()
{
self endon("death");
self endon("disconnect");
self iprintln("^3Cluster ^2Explosives");
for(;Winky Winky
{
self waittill("grenade_fire",grenade,weapname);
if(weapname=="semtex_mp"||weapname=="frag_grenade_mp")
{
cluster = [];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
cluster[(i*3)+j] = spawn("script_model", grenade.origin + ( i*100, j*100, 17) );
cluster[(i*3)+j] setModel( "test_sphere_silver" );
cluster[(i*3)+j] linkTo( grenade );
}
}
grenade waittill("death");
level.chopper_fx["explode"]["large"]=loadfx("explosions/aerial_explosion");
for(i=0;i<9;i++)
{
playfx(level.chopper_fx["explode"]["large"], cluster[i].origin);
RadiusDamage(cluster[i].origin,800,400,60,self);
cluster[i] delete();
wait .5;
}
}
}
}


You must login or register to view this content.
You must login or register to view this content.
The center one blows up first, than 1.5 seconds later the outer ring of spheres blow up. I know, this is something a monkey could have throw together, so with that being said, it's safe enough to post here, but I haven't exactly seen this before, and I didn't quite feel like making the outer ring circular. And if for some odd reason or another you don't already have this precached. add this to init()
    precacheModel("test_sphere_silver");
(adsbygoogle = window.adsbygoogle || []).push({});

The following 6 users say thank you to Ghost1990 for this useful post:

ChromeVisionz, KCxFTW, LightModz, notoriousCFW, Cmd-X, Vampytwistッ
08-17-2012, 09:19 PM #2
KCxFTW
Who’s Jim Erased?
Originally posted by Ghost1990 View Post
So, I saw You must login or register to view this content. thread on Cluster Bomb Nades which obviously made me think of COD4, but than I remembered You must login or register to view this content. thread on Funny Grenades Mod, I'm know he's not the original creater, but made me think about attaching models to grenades. And I threw this together quick.

    
ClusterSphere()
{
self endon("death");
self endon("disconnect");
self iprintln("^3Cluster ^2Explosives");
for(;Winky Winky
{
self waittill("grenade_fire",grenade,weapname);
if(weapname=="semtex_mp"||weapname=="frag_grenade_mp")
{
cluster = spawn("script_model",grenade.origin+(0,0,17));
cluster setModel("test_sphere_silver");
cluster linkTo(grenade);
cluster1 = spawn("script_model",grenade.origin+(0,100,17));
cluster1 setModel("test_sphere_silver");
cluster1 linkTo(grenade);
cluster2 = spawn("script_model",grenade.origin+(0,-100,17));
cluster2 setModel("test_sphere_silver");
cluster2 linkTo(grenade);
cluster3 = spawn("script_model",grenade.origin+(100,0,17));
cluster3 setModel("test_sphere_silver");
cluster3 linkTo(grenade);
cluster4 = spawn("script_model",grenade.origin+(-100,0,17));
cluster4 setModel("test_sphere_silver");
cluster4 linkTo(grenade);
cluster5 = spawn("script_model",grenade.origin+(100,100,17));
cluster5 setModel("test_sphere_silver");
cluster5 linkTo(grenade);
cluster6 = spawn("script_model",grenade.origin+(-100,-100,17));
cluster6 setModel("test_sphere_silver");
cluster6 linkTo(grenade);
cluster7 = spawn("script_model",grenade.origin+(100,-100,17));
cluster7 setModel("test_sphere_silver");
cluster7 linkTo(grenade);
cluster8 = spawn("script_model",grenade.origin+(-100,100,17));
cluster8 setModel("test_sphere_silver");
cluster8 linkTo(grenade);
grenade waittill("death");
level.chopper_fx["explode"]["large"]=loadfx("explosions/aerial_explosion");
playfx(level.chopper_fx["explode"]["large"], cluster.origin);
RadiusDamage(cluster.origin,800,400,60,self);
cluster delete();
wait 1.5;
playfx(level.chopper_fx["explode"]["large"], cluster1.origin);
RadiusDamage(cluster.origin1,900,300,50,self);
cluster1 delete();
playfx(level.chopper_fx["explode"]["large"], cluster2.origin);
RadiusDamage(cluster.origin2,900,300,50,self);
cluster2 delete();
playfx(level.chopper_fx["explode"]["large"], cluster3.origin);
RadiusDamage(cluster.origin3,900,300,50,self);
cluster3 delete();
playfx(level.chopper_fx["explode"]["large"], cluster4.origin);
RadiusDamage(cluster.origin4,900,300,50,self);
cluster4 delete();
playfx(level.chopper_fx["explode"]["large"], cluster5.origin);
RadiusDamage(cluster.origin5,900,300,50,self);
cluster5 delete();
playfx(level.chopper_fx["explode"]["large"], cluster6.origin);
RadiusDamage(cluster.origin6,900,300,50,self);
cluster6 delete();
playfx(level.chopper_fx["explode"]["large"], cluster7.origin);
RadiusDamage(cluster.origin7,900,300,50,self);
cluster7 delete();
playfx(level.chopper_fx["explode"]["large"], cluster8.origin);
RadiusDamage(cluster.origin8,900,300,50,self);
cluster8 delete();
}
}
}

You must login or register to view this content.
You must login or register to view this content.

The center one blows up first, than 1.5 seconds later the outer ring of spheres blow up. I know, this is something a monkey could have throw together, so with that being said, it's safe enough to post here, but I haven't exactly seen this before, and I didn't quite feel like making the outer ring circular. And if for some odd reason or another you don't already have this precached. add this to init()
    precacheModel("test_sphere_silver");


Well I think this is creative, so good job :y:

The following user thanked KCxFTW for this useful post:

Ghost1990
08-17-2012, 09:33 PM #3
Pretty cool :y:
side note: l Like Your Signature :yds:

The following user thanked CoDyMoDz1000XD for this useful post:

Ghost1990
08-18-2012, 12:20 AM #4
ForgivenxModz
Bounty hunter
BadAss Going into my Patch now Happy

The following 2 users say thank you to ForgivenxModz for this useful post:

Ghost1990, I_Mod_Cod<3
08-18-2012, 01:04 AM #5
LightModz
League Champion
Originally posted by Ghost1990 View Post
So, I saw You must login or register to view this content. thread on Cluster Bomb Nades which obviously made me think of COD4, but than I remembered You must login or register to view this content. thread on Funny Grenades Mod, I'm know he's not the original creater, but made me think about attaching models to grenades. And I threw this together quick.

    
ClusterSphere()
{
self endon("death");
self endon("disconnect");
self iprintln("^3Cluster ^2Explosives");
for(;Winky Winky
{
self waittill("grenade_fire",grenade,weapname);
if(weapname=="semtex_mp"||weapname=="frag_grenade_mp")
{
cluster = spawn("script_model",grenade.origin+(0,0,17));
cluster setModel("test_sphere_silver");
cluster linkTo(grenade);
cluster1 = spawn("script_model",grenade.origin+(0,100,17));
cluster1 setModel("test_sphere_silver");
cluster1 linkTo(grenade);
cluster2 = spawn("script_model",grenade.origin+(0,-100,17));
cluster2 setModel("test_sphere_silver");
cluster2 linkTo(grenade);
cluster3 = spawn("script_model",grenade.origin+(100,0,17));
cluster3 setModel("test_sphere_silver");
cluster3 linkTo(grenade);
cluster4 = spawn("script_model",grenade.origin+(-100,0,17));
cluster4 setModel("test_sphere_silver");
cluster4 linkTo(grenade);
cluster5 = spawn("script_model",grenade.origin+(100,100,17));
cluster5 setModel("test_sphere_silver");
cluster5 linkTo(grenade);
cluster6 = spawn("script_model",grenade.origin+(-100,-100,17));
cluster6 setModel("test_sphere_silver");
cluster6 linkTo(grenade);
cluster7 = spawn("script_model",grenade.origin+(100,-100,17));
cluster7 setModel("test_sphere_silver");
cluster7 linkTo(grenade);
cluster8 = spawn("script_model",grenade.origin+(-100,100,17));
cluster8 setModel("test_sphere_silver");
cluster8 linkTo(grenade);
grenade waittill("death");
level.chopper_fx["explode"]["large"]=loadfx("explosions/aerial_explosion");
playfx(level.chopper_fx["explode"]["large"], cluster.origin);
RadiusDamage(cluster.origin,800,400,60,self);
cluster delete();
wait 1.5;
playfx(level.chopper_fx["explode"]["large"], cluster1.origin);
RadiusDamage(cluster.origin1,900,300,50,self);
cluster1 delete();
playfx(level.chopper_fx["explode"]["large"], cluster2.origin);
RadiusDamage(cluster.origin2,900,300,50,self);
cluster2 delete();
playfx(level.chopper_fx["explode"]["large"], cluster3.origin);
RadiusDamage(cluster.origin3,900,300,50,self);
cluster3 delete();
playfx(level.chopper_fx["explode"]["large"], cluster4.origin);
RadiusDamage(cluster.origin4,900,300,50,self);
cluster4 delete();
playfx(level.chopper_fx["explode"]["large"], cluster5.origin);
RadiusDamage(cluster.origin5,900,300,50,self);
cluster5 delete();
playfx(level.chopper_fx["explode"]["large"], cluster6.origin);
RadiusDamage(cluster.origin6,900,300,50,self);
cluster6 delete();
playfx(level.chopper_fx["explode"]["large"], cluster7.origin);
RadiusDamage(cluster.origin7,900,300,50,self);
cluster7 delete();
playfx(level.chopper_fx["explode"]["large"], cluster8.origin);
RadiusDamage(cluster.origin8,900,300,50,self);
cluster8 delete();
}
}
}

You must login or register to view this content.
You must login or register to view this content.

The center one blows up first, than 1.5 seconds later the outer ring of spheres blow up. I know, this is something a monkey could have throw together, so with that being said, it's safe enough to post here, but I haven't exactly seen this before, and I didn't quite feel like making the outer ring circular. And if for some odd reason or another you don't already have this precached. add this to init()
    precacheModel("test_sphere_silver");


this is acually pretty cool xD keep it up

The following user thanked LightModz for this useful post:

Ghost1990
08-18-2012, 01:04 AM #6
ChromeVisionz
Do a barrel roll!
This will be an edition to my patch good job :y:

The following user thanked ChromeVisionz for this useful post:

Ghost1990
08-18-2012, 01:57 AM #7
Originally posted by Ghost1990 View Post
So, I saw You must login or register to view this content. thread on Cluster Bomb Nades which obviously made me think of COD4, but than I remembered You must login or register to view this content. thread on Funny Grenades Mod, I'm know he's not the original creater, but made me think about attaching models to grenades. And I threw this together quick.

    
ClusterSphere()
{
self endon("death");
self endon("disconnect");
self iprintln("^3Cluster ^2Explosives");
for(;Winky Winky
{
self waittill("grenade_fire",grenade,weapname);
if(weapname=="semtex_mp"||weapname=="frag_grenade_mp")
{
cluster = spawn("script_model",grenade.origin+(0,0,17));
cluster setModel("test_sphere_silver");
cluster linkTo(grenade);
cluster1 = spawn("script_model",grenade.origin+(0,100,17));
cluster1 setModel("test_sphere_silver");
cluster1 linkTo(grenade);
cluster2 = spawn("script_model",grenade.origin+(0,-100,17));
cluster2 setModel("test_sphere_silver");
cluster2 linkTo(grenade);
cluster3 = spawn("script_model",grenade.origin+(100,0,17));
cluster3 setModel("test_sphere_silver");
cluster3 linkTo(grenade);
cluster4 = spawn("script_model",grenade.origin+(-100,0,17));
cluster4 setModel("test_sphere_silver");
cluster4 linkTo(grenade);
cluster5 = spawn("script_model",grenade.origin+(100,100,17));
cluster5 setModel("test_sphere_silver");
cluster5 linkTo(grenade);
cluster6 = spawn("script_model",grenade.origin+(-100,-100,17));
cluster6 setModel("test_sphere_silver");
cluster6 linkTo(grenade);
cluster7 = spawn("script_model",grenade.origin+(100,-100,17));
cluster7 setModel("test_sphere_silver");
cluster7 linkTo(grenade);
cluster8 = spawn("script_model",grenade.origin+(-100,100,17));
cluster8 setModel("test_sphere_silver");
cluster8 linkTo(grenade);
grenade waittill("death");
level.chopper_fx["explode"]["large"]=loadfx("explosions/aerial_explosion");
playfx(level.chopper_fx["explode"]["large"], cluster.origin);
RadiusDamage(cluster.origin,800,400,60,self);
cluster delete();
wait 1.5;
playfx(level.chopper_fx["explode"]["large"], cluster1.origin);
RadiusDamage(cluster.origin1,900,300,50,self);
cluster1 delete();
playfx(level.chopper_fx["explode"]["large"], cluster2.origin);
RadiusDamage(cluster.origin2,900,300,50,self);
cluster2 delete();
playfx(level.chopper_fx["explode"]["large"], cluster3.origin);
RadiusDamage(cluster.origin3,900,300,50,self);
cluster3 delete();
playfx(level.chopper_fx["explode"]["large"], cluster4.origin);
RadiusDamage(cluster.origin4,900,300,50,self);
cluster4 delete();
playfx(level.chopper_fx["explode"]["large"], cluster5.origin);
RadiusDamage(cluster.origin5,900,300,50,self);
cluster5 delete();
playfx(level.chopper_fx["explode"]["large"], cluster6.origin);
RadiusDamage(cluster.origin6,900,300,50,self);
cluster6 delete();
playfx(level.chopper_fx["explode"]["large"], cluster7.origin);
RadiusDamage(cluster.origin7,900,300,50,self);
cluster7 delete();
playfx(level.chopper_fx["explode"]["large"], cluster8.origin);
RadiusDamage(cluster.origin8,900,300,50,self);
cluster8 delete();
}
}
}

You must login or register to view this content.
You must login or register to view this content.

The center one blows up first, than 1.5 seconds later the outer ring of spheres blow up. I know, this is something a monkey could have throw together, so with that being said, it's safe enough to post here, but I haven't exactly seen this before, and I didn't quite feel like making the outer ring circular. And if for some odd reason or another you don't already have this precached. add this to init()
    precacheModel("test_sphere_silver");


You should really look up for loops, it helps a lot. Keep going, and for help here's a slightly shorter version:

    
ClusterSphere()
{
self endon("death");
self endon("disconnect");
self iprintln("^3Cluster ^2Explosives");
for(;Winky Winky
{
self waittill("grenade_fire",grenade,weapname);
if(weapname=="semtex_mp"||weapname=="frag_grenade_mp")
{
cluster = [];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
cluster[(i*3)+j] = spawn("script_model", grenade.origin + ( i*100, j*100, 17) );
cluster[(i*3)+j] setModel( "test_sphere_silver" );
cluster[(i*3)+j] linkTo( grenade );
}
}
grenade waittill("death");
level.chopper_fx["explode"]["large"]=loadfx("explosions/aerial_explosion");
for(i=0;i<9;i++)
{
playfx(level.chopper_fx["explode"]["large"], cluster[i].origin);
RadiusDamage(cluster[i].origin,800,400,60,self);
cluster[i] delete();
wait 1.5;
}
}
}
}

The following user thanked Jakes625 for this useful post:

Ghost1990
08-18-2012, 07:06 AM #8
Ghost1990
12-28-2012
Originally posted by GAMER View Post
You should really look up for loops, it helps a lot. Keep going, and for help here's a slightly shorter version:

stare You haven't PM'd me yet about the MW2 FF Tool stare and son of a bitch, I thought about for/ while loops
but I never thought of arrays :think:, never been to good at using them, and even though I was thinking of loops, I wouldn't have thought of using nested loops, actually took me a second to figure out why you did, the whole (i*3) struck me as odd for a second until I looked at the nested loop. I always seem to have catastrophic results when I try to use nested loops, so I usually avoid nested loops and arrays. Oh and I got a question for you totally unrelated, I think it was you that had talking bots on death, where did you get that idea? I thought it was neat so I recreated it, mine works fine, but I was wondering how you set your boolean, I used a DVAR, but I was also thinking of using a level.deadbottalk variable (as numerous people could set the values, so a player self variable would be no good) is one better than the other?
08-18-2012, 08:18 PM #9
Originally posted by Ghost1990 View Post
stare You haven't PM'd me yet about the MW2 FF Tool stare and son of a bitch, I thought about for/ while loops
but I never thought of arrays :think:, never been to good at using them, and even though I was thinking of loops, I wouldn't have thought of using nested loops, actually took me a second to figure out why you did, the whole (i*3) struck me as odd for a second until I looked at the nested loop. I always seem to have catastrophic results when I try to use nested loops, so I usually avoid nested loops and arrays. Oh and I got a question for you totally unrelated, I think it was you that had talking bots on death, where did you get that idea? I thought it was neat so I recreated it, mine works fine, but I was wondering how you set your boolean, I used a DVAR, but I was also thinking of using a level.deadbottalk variable (as numerous people could set the values, so a player self variable would be no good) is one better than the other?



sorry I haven't gotten to the FF Tool PM. I get lots, and lots of messages, and I've been busy with school. As for the bots talking I got the idea from just the dvars that toggle movement and what not. btw I didn't even use a dvar for the talking.

I just did:
    
bot sayall( getChat() );


    
getChat()
{
chat[0] = "asshole";
chat[1] = "w/e";
chat[2] = "give it back";
chat[3] = "deathstreak";
return chat[ randomInt(chat.size) ];
}
08-19-2012, 08:36 AM #10
Ghost1990
12-28-2012
Originally posted by GAMER View Post
sorry I haven't gotten to the FF Tool PM. I get lots, and lots of messages, and I've been busy with school. As for the bots talking I got the idea from just the dvars that toggle movement and what not. btw I didn't even use a dvar for the talking.

I just did:
    
bot sayall( getChat() );


yeah, I got the idea of using a DVAR from the testclient DVARs too, but I was asking if using DVARs was a good idea, or if I should use a level.DeadChat declaration instead.
    
BotDeathT()
{
if(getDvarInt("testClients_deadTalk")==1)
{
setDvar("testClients_deadTalk",0);
self iPrintLn("^3Bots Talk [^1OFF^3]");
}
else
{
setDvar("testClients_deadTalk",1);
self iPrintLn("^3Bots talk [^2ON^3]");
}
}



Originally posted by premier

    
getChat()
{
chat[0] = "asshole";
chat[1] = "w/e";
chat[2] = "give it back";
chat[3] = "deathstreak";
return chat[ randomInt(chat.size) ];
}

And there you go using a arrays again, but they are good I guess. Well, my way still got the job done, but it's slightly more inefficient.
    
BotDeadTalk()
{
self waittill("death");
if(getDvarInt("testClients_deadTalk")==1)
{
switch(randomint(10))
{
case 0:
self sayall("^"+(randomint(6)+1)+"Oh, that was BULLSHIT!");
break;
case 1:
self sayall("^"+(randomint(6)+1)+"FUCKING LAG!");
break;
case 2:
self sayall("^"+(randomint(6)+1)+"Damn, good kill");
break;
case 3:
self sayall("^"+(randomint(6)+1)+"I'll get you next time");
break;
case 4:
self sayall("^"+(randomint(6)+1)+"I bet you think you're good.");
break;
case 5:
self sayall("^"+(randomint(6)+1)+"FUCKING HACKER!");
break;
case 6:
self sayall("^"+(randomint(6)+1)+"I've never been good at this map.");
break;
case 7:
self sayall("^"+(randomint(6)+1)+"Nice kill");
break;
case 8:
self sayall("^"+(randomint(6)+1)+"Next time buddy, next time");
break;
case 9:
self sayall("^"+(randomint(6)+1)+"WTF! I wasn't ready!");
break;
}
}
}

Yeah... I'm thinking next time I decide to do something, I'll have to check into how you did something, if you've done it already, and see the best route to go about obtaining the desired result(s)

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo