Why would you need a cave explorer alt? You should just be able to use any PvE alt...Anyway, Solar said that he was planning for blueprints to be found in caves, but this was over a year ago and apparently it never got implemented.When you mention footlockers, please do not make caves into another horrible feature like BP hunting. It shouldn't require some specialized 150+ LP alt, just maybe make the caves that have blueprints/caches of items have tougher enemies.And sure, more variety would always be welcome.
No there aren't. On TLA there were caves with two exits (therefore, tunnels) but not on 2238.
The point is, that only that owfuly loooong cave needs it. Its pain in the ass running all the way to the end, finding nothing and than running all the way back.
Although i like alts, i don't see the need to have an alt for everything. As for footlockers, i think the best way would be to make them locked (150+ LP or something like that) but place a key somewhere random in the cave (dead body).OT: Lockers could be destroyable/unlockable with brute force. Crowbar could have 5% chance to open a footlocker but also have a 5% chance for beeing destroyed on every attemp. Dynamite could have 75% chance to open a footlocker but also have a 75% chance for destroying every item inside. (Different types of containers would have different chances. You just cant open a safe with crowbar. And maybe increase a chance by few % for every ST.)
if( activePid == PID_LOCKPICKS ) { base += 25; if( Random( 0, 60 ) == 0 ) cr.DeleteItem( PID_LOCKPICKS, 1 ); } else if( activePid == PID_EXP_LOCKPICK_SET ) { base += 50; if( Random( 0, 80 ) == 0 ) cr.DeleteItem( PID_EXP_LOCKPICK_SET, 1 ); } else if( activePid == PID_CROWBAR ) { base += 100; if( Random( 0, 99 ) == 0 ) cr.DeleteItem( PID_CROWBAR, 1 ); } base = CLAMP( base, 0, 95 ); if( base >= Random( 1, 100 ) ) { locker.LockerOpen(); if( activePid != PID_CROWBAR ) { cr.TimeoutBase[ TO_SK_LOCKPICK ] = LOCKPICK_TIMEOUT( cr ); cr.StatBase[ ST_EXPERIENCE ] += 100; cr.AddScore( SCORE_CRACKER, 1 ); } else { cr.TimeoutBase[ TO_SK_LOCKPICK ] = LOCKPICK_TIMEOUT( cr ) * 5; cr.StatBase[ ST_EXPERIENCE ] += 25; }