Modme Forums

EE / WEAPON REWARD / SPINNING WEAPON

Game Modding | Call of Duty: Black Ops 3 | Radiant


Bullen:

Here I give you an easier way to understand the EE script and with Weapon Reward with an Spinning Gun over a struct.
Credit to Icegrenades Shootable EE and the powerup_grabbed_red.
Credit to the one who made the Growing Soul script, with that, I managed to create the Weapon Reward spawn and spinn around :p

I have copy the script so you have 20 finished ee.
I made it easy so you just have to press Ctrl + F and change the number 1 on all the names into 2 , 3 etc. If you want more ee on your map ofc, I got 3 ee on my map, with 3 weapon rewards.
Just follow the description in the file, and you have it!

Youre welcome! Have fun!
[TABLE]
[TR]
[TD][/TD]

[TD][/TD]
[/TR]
[/TABLE]


xReaction:

Oh wow this looks interesting. Thank you very much :D


MyNameIsNobody:

On shooting the last trigger im rewarded with the game closing to desktop XD

Was there other files that needed to be downloaded with this or something? I also reduced to 3 triggers required. Here's my edited version of the script if someone could take a look:

function init_ee1()
{
    level.ee1_reward_weapons = array( "iw7_emc" );    //weapons it can give you in the "gun" reward. put as many or as little as you like.
    level.ee1_gun_struct = struct::get("gun_struct1","targetname");    //singular gun struct, if only spawning one gun
    level.ee1_gun_hintstring = "Press ^3[{+activate}]^7 to take the Bow of Susanoo"; //if gun reward is activated, hintstring for picking up gun.
    level.ee1_easter_egg_debug = false; //leave off unless you're having problems with the script
  
    level.ee1Needed = 3;
    level.ee1Collected = 0;

    level thread ee1();
    level thread ee2();
    level thread ee3();
  
    level thread ee1CheckDone();
}

function ee1()
{
    t1 = GetEnt("t1", "targetname");
    m1 = GetEnt("m1", "targetname");

    while(1)
    {
        t1 waittill("trigger", player);
        player PlaySoundToPlayer( "chicken_soune1", player );
        level.ee1Collected++;
        iprintlnbold("You have killed "+level.ee1Collected+"/"+level.ee1Needed+" Chickens!"); // Not Needed
        player.score += 250;
        PlayFX(level._effect["powerup_grabbed_red"], m1.origin);
        thread ee1CheckDone(player);
        break;
    }

    t1 Delete();
    m1 Delete();
}

function ee2()
{
    t2 = GetEnt("t2", "targetname");
    m2 = GetEnt("m2", "targetname");

    while(1)
    {
        t2 waittill("trigger", player);
        player PlaySoundToPlayer( "chicken_soune2", player );
        level.ee1Collected++;
        iprintlnbold("You have killed "+level.ee1Collected+"/"+level.ee1Needed+" Chickens!"); // Not Needed
        player.score += 250;
        PlayFX(level._effect["powerup_grabbed_red"], m2.origin);
        thread ee1CheckDone(player);
        break;
    }

    t2 Delete();
    m2 Delete();
}

function ee3()
{
    t3 = GetEnt("t3", "targetname");
    m3 = GetEnt("m3", "targetname");

    while(1)
    {
        t3 waittill("trigger", player);
        player PlaySoundToPlayer( "chicken_soune3", player );
        level.ee1Collected++;
        iprintlnbold("You have killed "+level.ee1Collected+"/"+level.ee1Needed+" Chickens!"); // Not Needed
        player.score += 250;
        PlayFX(level._effect["powerup_grabbed_red"], m3.origin);
        thread ee1CheckDone(player);
        break;
    }

    t3 Delete();
    m3 Delete();
}

function ee1CheckDone(player)
{
    while(1)
    {
        self waittill(level.ee1Collected >= level.ee1Needed);

        if(level.ee1Collected == level.ee1Needed)
        {         
            thread RewardGun1(level.ee1_gun_struct.origin + (0,0,50), array::randomize(level.ee1_reward_weapons)[0]);
            iprintlnbold("You have gained the respect of the Uchiha");
            wait 2.5;
            iprintlnbold("You can now claim your reward from Susanoo");
        }
      
        break;
    }
}

//    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Dragon Bow

function RewardGun1(pos, weapon)
{
  
  
    if(level.ee1_easter_egg_debug)
            IPrintLnBold("RewardGun1 Threaded");
            //IPrintLnBold(weapon);
    gun1 = spawn("script_model", pos);
    if(level.ee1_easter_egg_debug)
            IPrintLnBold(gun1.origin);
    playsoundatposition("zmb_spawn_powerup", pos);

    gun1 SetModel(GetWeaponWorldModel(GetWeapon(weapon)));
    PlayFX(level.ee1__effect["powerup_grabbed_solo"], gun1.origin);
    trig1 = spawn("trigger_radius", gun1.origin, 0, 20, 50);
    gun1 thread SpinMe1();
    gun1 thread GiveMe1(weapon, trig1);
    if(level.ee1_gun_expire == true)
        gun1 thread LifeTime1(trig1);
}
function LifeTime1(trig1)
{
    self endon("death");
    wait(1200);//wait 20 minutes then delete
    if(isdefined(self))
    {
        self notify("rewardgun_delete");
    }
    if(isdefined(trig1))
    {
        trig1 delete();
    }
    if(isdefined(self))
    {
        self delete();
    }
}
function GiveMe1(weapon, trig1)
{
    if(level.ee1_easter_egg_debug)
            IPrintLnBold("GiveMe1 Threaded");
    self endon("rewardgun_delete");
    while(1)
    {
        trig1 waittill("trigger", player);
        player thread SetGunHint1(level.ee1_gun_hintstring, trig1);
        if(player HasWeapon(getweapon("minigun")))
        {
            continue;
        }
        if(!(player UseButtonPressed()))
        {
            continue;
        }
        if(player laststand::player_is_in_laststand())
        {
            continue;
        }
        trig1 delete();
        self delete();
        player zm_weapons::weapon_give(getweapon(weapon));
        player SwitchToWeapon(getweapon(weapon));
        break;
        wait(.1);
    }
}

function SpinMe1()
{
    self endon("rewardgun_delete");
    self endon("death");
    while(isdefined(self))
    {
        if(isdefined(self))
        {
            self rotateyaw(160,2);
        }
        wait(1.9);
    }
}
function SetGunHint1(text1, trig1)
{
    if(isdefined(self.grow_soul_hud))
    {
        return;
    }
    self.grow_soul_hud = NewClientHudElem( self );
    self.grow_soul_hud.horzAlign = "center";
    self.grow_soul_hud.vertAlign = "middle";
    self.grow_soul_hud.alignX = "center";
    self.grow_soul_hud.alignY = "middle";
    self.grow_soul_hud.foreground = 1;
    self.grow_soul_hud.fontscale = 1;
    self.grow_soul_hud.alpha = 1;
    self.grow_soul_hud.color = ( 0.44, .74, .94 );
    self.grow_soul_hud SetText(text1);
    while(isdefined(trig1) && self IsTouching(trig1))
    {
        wait(.05);
    }
    self.grow_soul_hud SetText("");
    self.grow_soul_hud Destroy();
    self.grow_soul_hud = undefined;
}


CrazyBullen:

Good that you figured it out, Your script worked fine on my map, but used s1_sn6 instead.
Good talk on Discord :)


MyNameIsNobody:

Good that you figured it out, Your script worked fine on my map, but used s1_sn6 instead.
Good talk on Discord :)


Ya it had to have been my weapon names somehow (you were right, I was just being dumb or something apparently)


Harry Bo21:

triggers instead of bullet collision means you are wasting up to 20 entities

and copy pasting the code 20 times???

break;
        wait(.1);

also this wait does nothing as it comes"after" breaking


Spiki:

this whole thing should be 50 lines max


CrazyBullen:

triggers instead of bullet collision means you are wasting up to 20 entities

and copy pasting the code 20 times???

break;
        wait(.1);

also this wait does nothing as it comes"after" breaking


I made this, so mappers don't need to copy and change every single numbers from 1,2,3 up to 20 that I did on IceGrenade's shootable script, So if you need to lower the EE, just delite,, if you need 20 EE its perfect, if you need 30 just copy -.- So whats wrong with this? I'm not a good scripter, I just helping out, modders that want a big EE with a Weapon reward..
I made it for modders so they don't need to COPY, so what? Why always argue what I do for the sake of the misery!...

Say thx instead that I put time to give modders something this big, that they just can delite, or copy more EE's, with a Weapon reward..
But using the "growing_soul" script for the Weapon reward, was something I tested by my self. And this script was made May 16, 2019! I don't even use this script anymore. lolz,


Harry Bo21:

Or you could listen, compress this in to one function and use arrays

but nah just gonna kick off yet again lol