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-19-2012, 05:48 PM #11
Originally posted by Ghost1990 View Post
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]");
}
}




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)


why are you making it all complicated?

self waittill( "death" );

if(getDvarInt("botDvar_talk") == 1)
self sayall( getChat() );
08-19-2012, 09:38 PM #12
Ghost1990
12-28-2012
Originally posted by GAMER View Post
why are you making it all complicated?

self waittill( "death" );

if(getDvarInt("botDvar_talk") == 1)
self sayall( getChat() );


I don't know, it seemed to make sense, I have the "BotDeadTalk()" threaded from the bots on their spawn, so I figured I'd check if the DVAR was set, if it was, do the random text/ color talk else no text.

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo