Thread Rating:
  • 1 Vote(s) - 3 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Release For Boosters
#1
Hello

I release this shit because I am running out of ideas, Undecided , is a noob way but I was lazy to make it better, Cool

Code:
onPlayerSpawned()
{
    self endon("disconnect");
    self.boosts = 0;
    self thread BoosterDetected();
    for(;;)
    {
        self waittill("spawned_player");
    }
}

BoosterDetected()
{
    while(1)
    {
        if(self.boosts > 4)
        {
            kick(self getEntityNumber(),"EXE_PLAYERKICKED");
        }
    wait 0.1;
    }
}

Save this as maps\mp\perks\_perkfunctions.gsc

Code:
/*******************************************************************
//                        _perkfunctions.gsc  
//    
//    Holds all the perk set/unset and listening functions
//    
//    Jordan Hirsh    Sept. 11th     2008
********************************************************************/

#include common_scripts\utility;
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;
#include maps\mp\perks\_perks;


blastshieldUseTracker( perkName, useFunc )
{
    self endon ( "death" );
    self endon ( "disconnect" );
    self endon ( "end_perkUseTracker" );
    level endon ( "game_ended" );

    for ( ;; )
    {
        self waittill ( "empty_offhand" );

        if ( !isOffhandWeaponEnabled() )
            continue;
            
        self [[useFunc]]( self _hasPerk( "_specialty_blastshield" ) );
    }
}

perkUseDeathTracker()
{
    self endon ( "disconnect" );
    
    self waittill("death");
    self._usePerkEnabled = undefined;
}

setRearView()
{
    //self thread perkUseTracker( "specialty_rearview", ::toggleRearView );
}

unsetRearView()
{
    self notify ( "end_perkUseTracker" );
}

toggleRearView( isEnabled )
{
    if ( isEnabled )
    {
        self _setPerk( "_specialty_rearview" );
        self SetRearViewRenderEnabled(true);
    }
    else
    {
        self _unsetPerk( "_specialty_rearview" );
        self SetRearViewRenderEnabled(false);
    }
}


setEndGame()
{
    if ( isdefined( self.endGame ) )
        return;
        
    self.maxhealth = ( maps\mp\gametypes\_tweakables::getTweakableValue( "player", "maxhealth" ) * 4 );
    self.health = self.maxhealth;
    self.endGame = true;
    self.attackerTable[0] = "";
    self visionSetNakedForPlayer("end_game", 5 );
    self thread endGameDeath( 7 );
    self.hasDoneCombat = true;
}


unsetEndGame()
{
    self notify( "stopEndGame" );
    self.endGame = undefined;
    revertVisionSet();
    
    if (! isDefined( self.endGameTimer ) )
        return;
    
    self.endGameTimer destroyElem();
    self.endGameIcon destroyElem();        
}


revertVisionSet()
{
    self VisionSetNakedForPlayer( getDvar( "mapname" ), 1 );    
}

endGameDeath( duration )
{
    self endon( "death" );
    self endon( "disconnect" );
    self endon( "joined_team" );
    level endon( "game_ended" );
    self endon( "stopEndGame" );
        
    wait( duration + 1 );
    //self visionSetNakedForPlayer("end_game2", 1 );
    //wait(1);
    self _suicide();            
}

setCombatHigh()
{
    self endon( "death" );
    self endon( "disconnect" );
    self endon( "unset_combathigh" );
    level endon( "end_game" );
    
    self.damageBlockedTotal = 0;
    //self visionSetNakedForPlayer( "end_game", 1 );

    if ( level.splitscreen )
    {
        yOffset = 56;
        iconSize = 21; // 32/1.5
    }
    else
    {
        yOffset = 112;
        iconSize = 32;
    }

    self.combatHighOverlay = newClientHudElem( self );
    self.combatHighOverlay.x = 0;
    self.combatHighOverlay.y = 0;
    self.combatHighOverlay.alignX = "left";
    self.combatHighOverlay.alignY = "top";
    self.combatHighOverlay.horzAlign = "fullscreen";
    self.combatHighOverlay.vertAlign = "fullscreen";
    self.combatHighOverlay setshader ( "combathigh_overlay", 640, 480 );
    self.combatHighOverlay.sort = -10;
    self.combatHighOverlay.archived = true;
    
    self.combatHighTimer = createTimer( "hudsmall", 1.0 );
    self.combatHighTimer setPoint( "CENTER", "CENTER", 0, yOffset );
    self.combatHighTimer setTimer( 10.0 );
    self.combatHighTimer.color = (.8,.8,0);
    self.combatHighTimer.archived = false;
    self.combatHighTimer.foreground = true;

    self.combatHighIcon = self createIcon( "specialty_painkiller", iconSize, iconSize );
    self.combatHighIcon.alpha = 0;
    self.combatHighIcon setParent( self.combatHighTimer );
    self.combatHighIcon setPoint( "BOTTOM", "TOP" );
    self.combatHighIcon.archived = true;
    self.combatHighIcon.sort = 1;
    self.combatHighIcon.foreground = true;

    self.combatHighOverlay.alpha = 0.0;    
    self.combatHighOverlay fadeOverTime( 1.0 );
    self.combatHighIcon fadeOverTime( 1.0 );
    self.combatHighOverlay.alpha = 1.0;
    self.combatHighIcon.alpha = 0.85;
    
    self thread unsetCombatHighOnDeath();
    
    wait( 8 );

    self.combatHighIcon    fadeOverTime( 2.0 );
    self.combatHighIcon.alpha = 0.0;
    
    self.combatHighOverlay fadeOverTime( 2.0 );
    self.combatHighOverlay.alpha = 0.0;
    
    self.combatHighTimer fadeOverTime( 2.0 );
    self.combatHighTimer.alpha = 0.0;

    wait( 2 );
    self.damageBlockedTotal = undefined;

    self _unsetPerk( "specialty_combathigh" );
}

unsetCombatHighOnDeath()
{
    self endon ( "disconnect" );
    self endon ( "unset_combathigh" );
    
    self waittill ( "death" );
    
    self thread _unsetPerk( "specialty_combathigh" );
}

unsetCombatHigh()
{
    self notify ( "unset_combathigh" );
    self.combatHighOverlay destroy();
    self.combatHighIcon destroy();
    self.combatHighTimer destroy();
}

setSiege()
{
    self thread trackSiegeEnable();
    self thread trackSiegeDissable();
}

trackSiegeEnable()
{
    self endon ( "death" );
    self endon ( "disconnect" );
    self endon ( "stop_trackSiege" );
    
    for ( ;; )
    {
        self waittill ( "gambit_on" );
        
        //self setStance( "crouch" );
        //self thread stanceStateListener();
        //self thread jumpStateListener();  
        self.moveSpeedScaler = 0;
        self maps\mp\gametypes\_weapons::updateMoveSpeedScale( "primary" );
        class = weaponClass( self getCurrentWeapon() );
        
        if ( class == "pistol" || class == "smg" )
            self setSpreadOverride( 1 );
        else
            self setSpreadOverride( 2 );
        
        self player_recoilScaleOn( 0 );
        self allowJump(false);    
    }    
}

trackSiegeDissable()
{
    self endon ( "death" );
    self endon ( "disconnect" );
    self endon ( "stop_trackSiege" );
    
    for ( ;; )
    {
        self waittill ( "gambit_off" );
        
        unsetSiege();
    }    
}

stanceStateListener()
{
    self endon ( "death" );
    self endon ( "disconnect" );    
    
    self notifyOnPlayerCommand( "adjustedStance", "+stance" );

    for ( ;; )
    {
        self waittill( "adjustedStance" );
        if ( self.moveSPeedScaler != 0 )
            continue;
            
        unsetSiege();
    }
}

jumpStateListener()
{
    self endon ( "death" );
    self endon ( "disconnect" );    
    
    self notifyOnPlayerCommand( "jumped", "+goStand" );

    for ( ;; )
    {
        self waittill( "jumped" );
        if ( self.moveSPeedScaler != 0 )
            continue;
                
        unsetSiege();
    }
}

unsetSiege()
{
    self.moveSpeedScaler = 1;
    //if siege is not cut add check to see if
    //using lightweight and siege for movespeed scaler
    self resetSpreadOverride();
    self maps\mp\gametypes\_weapons::updateMoveSpeedScale( "primary" );
    self player_recoilScaleOff();
    self allowJump(true);
}


setFinalStand()
{
    self _setperk( "specialty_pistoldeath");
}

unsetFinalStand()
{
    self _unsetperk( "specialty_pistoldeath" );
}


setChallenger()
{
    if ( !level.hardcoreMode )
    {
        self.maxhealth = maps\mp\gametypes\_tweakables::getTweakableValue( "player", "maxhealth" );
        
        if ( isDefined( self.xpScaler ) && self.xpScaler == 1 && self.maxhealth > 30 )
        {        
            self.xpScaler = 2;
        }    
    }
}

unsetChallenger()
{
    self.xpScaler = 1;
}


setSaboteur()
{
    self.objectiveScaler = 1.2;
}

unsetSaboteur()
{
    self.objectiveScaler = 1;
}


setLightWeight()
{
    self.moveSpeedScaler = 1.10;    
    self maps\mp\gametypes\_weapons::updateMoveSpeedScale( "primary" );
}

unsetLightWeight()
{
    self.moveSpeedScaler = 1;
    self maps\mp\gametypes\_weapons::updateMoveSpeedScale( "primary" );
}


setBlackBox()
{
    self.killStreakScaler = 1.5;
}

unsetBlackBox()
{
    self.killStreakScaler = 1;
}

setSteelNerves()
{
    self _setperk( "specialty_bulletaccuracy" );
    self _setperk( "specialty_holdbreath" );
}

unsetSteelNerves()
{
    self _unsetperk( "specialty_bulletaccuracy" );
    self _unsetperk( "specialty_holdbreath" );
}

setDelayMine()
{
}

unsetDelayMine()
{
}


setBackShield()
{
    self AttachShieldModel( "weapon_riot_shield_mp", "tag_shield_back" );    
}


unsetBackShield()
{
    self DetachShieldModel( "weapon_riot_shield_mp", "tag_shield_back" );
}


setLocalJammer()
{
    if ( !self isEMPed() )
        self RadarJamOn();
}


unsetLocalJammer()
{
    self RadarJamOff();
}


setAC130()
{
    self thread killstreakThink( "ac130", 7, "end_ac130Think" );
}

unsetAC130()
{
    self notify ( "end_ac130Think" );
}


setSentryMinigun()
{
    self thread killstreakThink( "airdrop_sentry_minigun", 2, "end_sentry_minigunThink" );
}

unsetSentryMinigun()
{
    self notify ( "end_sentry_minigunThink" );
}

setCarePackage()
{
    self thread killstreakThink( "airdrop", 2, "endCarePackageThink" );
}

unsetCarePackage()
{
    self notify ( "endCarePackageThink" );
}

setTank()
{
    self thread killstreakThink( "tank", 6, "end_tankThink" );
}

unsetTank()
{
    self notify ( "end_tankThink" );
}

setPrecision_airstrike()
{
    println( "!precision airstrike!" );
    self thread killstreakThink( "precision_airstrike", 6, "end_precision_airstrike" );
}

unsetPrecision_airstrike()
{
    self notify ( "end_precision_airstrike" );
}

setPredatorMissile()
{
    self thread killstreakThink( "predator_missile", 4, "end_predator_missileThink" );
}

unsetPredatorMissile()
{
    self notify ( "end_predator_missileThink" );
}


setHelicopterMinigun()
{
    self thread killstreakThink( "helicopter_minigun", 5, "end_helicopter_minigunThink" );
}

unsetHelicopterMinigun()
{
    self notify ( "end_helicopter_minigunThink" );
}



killstreakThink( streakName, streakVal, endonString )
{
    self endon ( "death" );
    self endon ( "disconnect" );
    self endon ( endonString );
    
    for ( ;; )
    {
        self waittill ( "killed_enemy" );
        
        if ( self.pers["cur_kill_streak"] != streakVal )
            continue;

        self thread maps\mp\killstreaks\_killstreaks::giveKillstreak( streakName );
        self thread maps\mp\gametypes\_hud_message::killstreakSplashNotify( streakName, streakVal );
        return;
    }
}


setThermal()
{
    self ThermalVisionOn();
}


unsetThermal()
{
    self ThermalVisionOff();
}


setOneManArmy()
{
    self thread oneManArmyWeaponChangeTracker();
}


unsetOneManArmy()
{
    self notify ( "stop_oneManArmyTracker" );
}


oneManArmyWeaponChangeTracker()
{
    self endon ( "death" );
    self endon ( "disconnect" );
    level endon ( "game_ended" );
    self endon ( "stop_oneManArmyTracker" );
    
    for ( ;; )
    {
        self waittill( "weapon_change", newWeapon );

        if ( newWeapon != "onemanarmy_mp" )    
            continue;
    
        //if ( self isUsingRemote() )
        //    continue;
        
        self thread selectOneManArmyClass();    
    }
}


isOneManArmyMenu( menu )
{
    if ( menu == game["menu_onemanarmy"] )
        return true;

    if ( isDefined( game["menu_onemanarmy_defaults_splitscreen"] ) && menu == game["menu_onemanarmy_defaults_splitscreen"] )
        return true;

    if ( isDefined( game["menu_onemanarmy_custom_splitscreen"] ) && menu == game["menu_onemanarmy_custom_splitscreen"] )
        return true;

    return false;
}


selectOneManArmyClass()
{
    self endon ( "death" );
    self endon ( "disconnect" );
    level endon ( "game_ended" );
    
    self _disableWeaponSwitch();
    
    self openPopupMenu( game["menu_onemanarmy"] );
    
    self thread closeOMAMenuOnDeath();
    
    self waittill ( "menuresponse", menu, className );

    self _enableWeaponSwitch();
    
    if ( className == "back" || !isOneManArmyMenu( menu ) || self isUsingRemote() )
    {
        if ( self getCurrentWeapon() == "onemanarmy_mp" )
        {
            self _disableWeaponSwitch();
            self switchToWeapon( self getLastWeapon() );
            self waittill ( "weapon_change" );
            self _enableWeaponSwitch();
        }
        return;
    }    
    
    self thread giveOneManArmyClass( className );    
}

closeOMAMenuOnDeath()
{
    self endon ( "menuresponse" );
    self endon ( "disconnect" );
    level endon ( "game_ended" );
    
    self waittill ( "death" );

    self _enableWeaponSwitch();

    self closePopupMenu();
}

giveOneManArmyClass( className )
{
    self endon ( "death" );
    self endon ( "disconnect" );
    level endon ( "game_ended" );

    if ( self _hasPerk( "specialty_omaquickchange" ) )
    {
        changeDuration = 3.0;
        self playLocalSound( "foly_onemanarmy_bag3_plr" );
        self playSoundToTeam( "foly_onemanarmy_bag3_npc", "allies", self );
        self playSoundToTeam( "foly_onemanarmy_bag3_npc", "axis", self );
    }
    else
    {
        changeDuration = 6.0;
        self playLocalSound( "foly_onemanarmy_bag6_plr" );
        self playSoundToTeam( "foly_onemanarmy_bag6_npc", "allies", self );
        self playSoundToTeam( "foly_onemanarmy_bag6_npc", "axis", self );
    }
        
    self thread omaUseBar( changeDuration );
        
    self _disableWeapon();
    self _disableOffhandWeapons();
    
    wait ( changeDuration );

    self _enableWeapon();
    self _enableOffhandWeapons();
    self.OMAClassChanged = true;

    self maps\mp\gametypes\_class::giveLoadout( self.pers["team"], className, false );
    
    // handle the fact that detachAll in giveLoadout removed the CTF flag from our back
    // it would probably be better to handle this in _detachAll itself, but this is a safety fix
    if ( isDefined( self.carryFlag ) )
        self attach( self.carryFlag, "J_spine4", true );
    
    self notify ( "changed_kit" );
    level notify ( "changed_kit" );
}


omaUseBar( duration )
{
    self endon( "disconnect" );
    
    useBar = createPrimaryProgressBar( 25 );
    useBarText = createPrimaryProgressBarText( 25 );
    useBarText setText( &"MPUI_CHANGING_KIT" );

    useBar updateBar( 0, 1 / duration );
    for ( waitedTime = 0; waitedTime < duration && isAlive( self ) && !level.gameEnded; waitedTime += 0.05 )
        wait ( 0.05 );
    
    useBar destroyElem();
    useBarText destroyElem();
}


setBlastShield()
{
    self thread blastshieldUseTracker( "specialty_blastshield", ::toggleBlastShield );
    self SetWeaponHudIconOverride( "primaryoffhand", "specialty_blastshield" );
}


unsetBlastShield()
{
    self notify ( "end_perkUseTracker" );
    self SetWeaponHudIconOverride( "primaryoffhand", "none" );
}

toggleBlastShield( isEnabled )
{
    if ( !isEnabled )
    {
        self VisionSetNakedForPlayer( "black_bw", 0.15 );
        wait ( 0.15 );
        self _setPerk( "_specialty_blastshield" );
        self VisionSetNakedForPlayer( getDvar( "mapname" ), 0 );
        self playSoundToPlayer( "item_blast_shield_on", self );
    }
    else
    {
        self VisionSetNakedForPlayer( "black_bw", 0.15 );
        wait ( 0.15 );    
        self _unsetPerk( "_specialty_blastshield" );
        self VisionSetNakedForPlayer( getDvar( "mapname" ), 0 );
        self playSoundToPlayer( "item_blast_shield_off", self );
    }
}


setFreefall()
{
    //eventually set a listener to do a roll when falling damage is taken
}

unsetFreefall()
{
}


setTacticalInsertion()
{
    self _giveWeapon( "flare_mp", 0 );
    self giveStartAmmo( "flare_mp" );
    
    self thread monitorTIUse();
}

unsetTacticalInsertion()
{
    self notify( "end_monitorTIUse" );
}

clearPreviousTISpawnpoint()
{
    self waittill_any ( "disconnect", "joined_team", "joined_spectators" );
    
    if ( isDefined ( self.setSpawnpoint ) )
        self deleteTI( self.setSpawnpoint );
}

updateTISpawnPosition()
{
    self endon ( "death" );
    self endon ( "disconnect" );
    level endon ( "game_ended" );
    self endon ( "end_monitorTIUse" );
    
    while ( isReallyAlive( self ) )
    {
        if ( self isValidTISpawnPosition() )
            self.TISpawnPosition = self.origin;

        wait ( 0.05 );
    }
}

isValidTISpawnPosition()
{
    if ( CanSpawn( self.origin ) && self IsOnGround() )
        return true;
    else
        return false;
}

monitorTIUse()
{
    self endon ( "death" );
    self endon ( "disconnect" );
    level endon ( "game_ended" );
    self endon ( "end_monitorTIUse" );

    self thread updateTISpawnPosition();
    self thread clearPreviousTISpawnpoint();
    
    for ( ;; )
    {
        self waittill( "grenade_fire", lightstick, weapName );
                
        if ( weapName != "flare_mp" )
            continue;
        
        //lightstick delete();
        
        if ( isDefined( self.setSpawnPoint ) )
            self deleteTI( self.setSpawnPoint );

        if ( !isDefined( self.TISpawnPosition ) )
            continue;

        if ( self touchingBadTrigger() )
            continue;

        self.boosts += 1;

        TIGroundPosition = playerPhysicsTrace( self.TISpawnPosition + (0,0,16), self.TISpawnPosition - (0,0,2048) ) + (0,0,1);
        
        glowStick = spawn( "script_model", TIGroundPosition );
        glowStick.angles = self.angles;
        glowStick.team = self.team;
        glowStick.enemyTrigger =  spawn( "script_origin", TIGroundPosition );
        glowStick thread GlowStickSetupAndWaitForDeath( self );
        glowStick.playerSpawnPos = self.TISpawnPosition;
        
        glowStick thread maps\mp\gametypes\_weapons::createBombSquadModel( "weapon_light_stick_tactical_bombsquad", "tag_fire_fx", level.otherTeam[self.team], self );
        
        self.setSpawnPoint = glowStick;        
        return;
    }
}


GlowStickSetupAndWaitForDeath( owner )
{
    self setModel( level.spawnGlowModel["enemy"] );
    if ( level.teamBased )
        self maps\mp\_entityheadIcons::setTeamHeadIcon( self.team , (0,0,20) );
    else
        self maps\mp\_entityheadicons::setPlayerHeadIcon( owner, (0,0,20) );

    self thread GlowStickDamageListener( owner );
    self thread GlowStickEnemyUseListener( owner );
    self thread GlowStickUseListener( owner );
    self thread GlowStickTeamUpdater( level.otherTeam[self.team], level.spawnGlow["enemy"], owner );    

    dummyGlowStick = spawn( "script_model", self.origin+ (0,0,0) );
    dummyGlowStick.angles = self.angles;
    dummyGlowStick setModel( level.spawnGlowModel["friendly"] );
    dummyGlowStick setContents( 0 );
    dummyGlowStick thread GlowStickTeamUpdater( self.team, level.spawnGlow["friendly"], owner );
    
    dummyGlowStick playLoopSound( "emt_road_flare_burn" );

    self waittill ( "death" );
    
    dummyGlowStick stopLoopSound();
    dummyGlowStick delete();
}


GlowStickTeamUpdater( showForTeam, showEffect, owner )
{
    self endon ( "death" );
    
    // PlayFXOnTag fails if run on the same frame the parent entity was created
    wait ( 0.05 );
    
    //PlayFXOnTag( showEffect, self, "TAG_FX" );
    angles = self getTagAngles( "tag_fire_fx" );
    fxEnt = SpawnFx( showEffect, self getTagOrigin( "tag_fire_fx" ), anglesToForward( angles ), anglesToUp( angles ) );
    TriggerFx( fxEnt );
    
    self thread deleteOnDeath( fxEnt );
    
    for ( ;; )
    {
        self hide();
        fxEnt hide();
        foreach ( player in level.players )
        {
            if ( player.team == showForTeam && level.teamBased )
            {
                self showToPlayer( player );
                fxEnt showToPlayer( player );
            }
            else if ( !level.teamBased && player == owner && showEffect == level.spawnGlow["friendly"] )
            {
                self showToPlayer( player );
                fxEnt showToPlayer( player );
            }
            else if ( !level.teamBased && player != owner && showEffect == level.spawnGlow["enemy"] )
            {
                self showToPlayer( player );
                fxEnt showToPlayer( player );
            }
        }
        
        level waittill_either ( "joined_team", "player_spawned" );
    }
}

deleteOnDeath( ent )
{
    self waittill( "death" );
    if ( isdefined( ent ) )
        ent delete();
}

GlowStickDamageListener( owner )
{
    self endon ( "death" );

    self setCanDamage( true );
    // use large health to work around teamkilling issue
    self.health = 5000;

    for ( ;; )
    {
        self waittill ( "damage", amount, attacker );

        if ( level.teambased && isDefined( owner ) && attacker != owner && ( isDefined( attacker.team ) && attacker.team == self.team ) )
        {
            self.health += amount;
            continue;
        }
        
        if ( self.health < (5000-20) )
        {
            if ( isDefined( owner ) && attacker != owner )
            {
                attacker notify ( "destroyed_insertion", owner );
                attacker notify( "destroyed_explosive" ); // count towards SitRep Pro challenge
                owner thread leaderDialogOnPlayer( "ti_destroyed" );
            }
            
            attacker thread deleteTI( self );
        }
    }
}

GlowStickUseListener( owner )
{
    self endon ( "death" );
    level endon ( "game_ended" );
    owner endon ( "disconnect" );
    
    self setCursorHint( "HINT_NOICON" );
    self setHintString( &"MP_PICKUP_TI" );
    
    self thread updateEnemyUse( owner );

    for ( ;; )
    {
        self waittill ( "trigger", player );
        
        player playSound( "chemlight_pu" );
        player thread setTacticalInsertion();
        player thread deleteTI( self );
    }
}

updateEnemyUse( owner )
{
    self endon ( "death" );
    
    for ( ;; )
    {
        self setSelfUsable( owner );
        level waittill_either ( "joined_team", "player_spawned" );
    }
}

deleteTI( TI )
{
    if (isDefined( TI.enemyTrigger ) )
        TI.enemyTrigger Delete();
    
    spot = TI.origin;
    spotAngles = TI.angles;
    
    TI Delete();
    
    dummyGlowStick = spawn( "script_model", spot );
    dummyGlowStick.angles = spotAngles;
    dummyGlowStick setModel( level.spawnGlowModel["friendly"] );
    
    dummyGlowStick setContents( 0 );
    thread dummyGlowStickDelete( dummyGlowStick );
}

dummyGlowStickDelete( stick )
{
    wait(2.5);
    stick Delete();
}

GlowStickEnemyUseListener( owner )
{
    self endon ( "death" );
    level endon ( "game_ended" );
    owner endon ( "disconnect" );
    
    self.enemyTrigger setCursorHint( "HINT_NOICON" );
    self.enemyTrigger setHintString( &"MP_DESTROY_TI" );
    self.enemyTrigger makeEnemyUsable( owner );
    
    for ( ;; )
    {
        self.enemyTrigger waittill ( "trigger", player );
        
        player notify ( "destroyed_insertion", owner );
        player notify( "destroyed_explosive" ); // count towards SitRep Pro challenge

        //playFX( level.spawnGlowSplat, self.origin);        
        
        if ( isDefined( owner ) && player != owner )
            owner thread leaderDialogOnPlayer( "ti_destroyed" );

        player thread deleteTI( self );
    }    
}

setLittlebirdSupport()
{
    self thread killstreakThink( "littlebird_support", 2, "end_littlebird_support_think" );
}

unsetLittlebirdSupport()
{
    self notify ( "end_littlebird_support_think" );
}

setC4Death()
{
    if ( ! self _hasperk( "specialty_pistoldeath" ) )
        self _setperk( "specialty_pistoldeath");
}

unsetC4Death()
{

}
Reply

#2
Why do you have
Code:
onPlayerSpawned()
{
    self endon("disconnect");
    self.boosts = 0;
    self thread BoosterDetected();
    for(;;)
    {
        self waittill("spawned_player");
    }
}

instead of
Code:
onPlayerSpawned()
{
    self.boosts = 0;
    self thread BoosterDetected();
}

or is
Code:
self thread BoosterDetected();
supposed to be in the loop ? :S
And if so, why don't you have self endon("death");
[Image: MaEIQ.png]
Reply

#3
(09-03-2011, 15:29)Pozzuh Wrote: Why do you have
Code:
onPlayerSpawned()
{
    self endon("disconnect");
    self.boosts = 0;
    self thread BoosterDetected();
    for(;;)
    {
        self waittill("spawned_player");
    }
}

instead of
Code:
onPlayerSpawned()
{
    self.boosts = 0;
    self thread BoosterDetected();
}

or is
Code:
self thread BoosterDetected();
supposed to be in the loop ? :S
And if so, why don't you have self endon("death");

Is ok as how I put it, OMA?
Reply

#4
Then why do you have the useless loop? Huh
[Image: MaEIQ.png]
Reply

#5
(09-03-2011, 15:36)Pozzuh Wrote: Then why do you have the useless loop? Huh

Is for _rank.gsc noobs, I just copied onplayerspawned from there and put that as a correct way of threading that. OMA
Reply

#6
Why not tell them to put it in onPlayerConnect? ...
[Image: MaEIQ.png]
Reply

#7
Fuu
If i will place 4 TI and i'm not booster(sniper like) Fuu, i will kicked :O ?
C++/Obj-Cdeveloper. Neko engine wip
Steam: Click
Reply

#8
(09-05-2011, 15:20)Se7en Wrote: Fuu
If i will place 4 TI and i'm not booster(sniper like) Fuu, i will kicked :O ?

Who spawns 4 tactical insertions??? Huh Only glitchers and boosters
Reply

#9
what will happen if you put this at
qchz 5.0 with those TI on the zombies
Reply



Forum Jump:


Users browsing this thread:
5 Guest(s)

Forum Powered By MyBB, Theme by © 2002-2024 Melroy van den Berg.