<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.splashdamage.com/index.php?action=history&amp;feed=atom&amp;title=Script%3AFiles%3Ascript%2Fplayer%2Fplayer_requests.script</id>
	<title>Script:Files:script/player/player requests.script - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.splashdamage.com/index.php?action=history&amp;feed=atom&amp;title=Script%3AFiles%3Ascript%2Fplayer%2Fplayer_requests.script"/>
	<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/player/player_requests.script&amp;action=history"/>
	<updated>2026-04-08T13:09:57Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.splashdamage.com/index.php?title=Script:Files:script/player/player_requests.script&amp;diff=1740&amp;oldid=prev</id>
		<title>Wizz at 17:57, 2 November 2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/player/player_requests.script&amp;diff=1740&amp;oldid=prev"/>
		<updated>2007-11-02T17:57:39Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
Script:Files:script/player/player requests.script&lt;br /&gt;
From Splash Wiki&lt;br /&gt;
Jump to: navigation, search&lt;br /&gt;
&lt;br /&gt;
object player {&lt;br /&gt;
    void        RequestDeployment( string objectName );&lt;br /&gt;
&lt;br /&gt;
    void        RequestHusky();    &lt;br /&gt;
    void        RequestIcarus();&lt;br /&gt;
&lt;br /&gt;
    void        RequestRepair();&lt;br /&gt;
&lt;br /&gt;
    void        RequestIconThread( float timeout );&lt;br /&gt;
    void        DeploymentFeedbackThread( boolean allow );&lt;br /&gt;
&lt;br /&gt;
    float        creditChargeRate;&lt;br /&gt;
    boolean        creditThreadActive;&lt;br /&gt;
&lt;br /&gt;
    vector        CalcDropPosition();&lt;br /&gt;
&lt;br /&gt;
    boolean        CheckCanRequestVehicle( string objectName );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
================&lt;br /&gt;
player::DeploymentFeedbackThread&lt;br /&gt;
================&lt;br /&gt;
*/&lt;br /&gt;
void player::DeploymentFeedbackThread( boolean allow ) {&lt;br /&gt;
    sys.wait( 2.f );&lt;br /&gt;
&lt;br /&gt;
    if ( !allow ) {&lt;br /&gt;
        sys.sendQuickChat( $null_entity, declinedQuickChat, self );&lt;br /&gt;
    } else {&lt;br /&gt;
        sys.sendQuickChat( $null_entity, vehicleWarningQuickChat, self );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
================&lt;br /&gt;
player::RequestDeployment&lt;br /&gt;
================&lt;br /&gt;
*/&lt;br /&gt;
void player::RequestDeployment( string objectName ) {&lt;br /&gt;
    if ( sys.isClient() ) {&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    boolean allowDeploy = true;&lt;br /&gt;
&lt;br /&gt;
    if ( !CheckCanRequestVehicle( objectName ) ) {&lt;br /&gt;
        allowDeploy = false;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if ( allowDeploy ) {&lt;br /&gt;
        vector angles = getViewAngles();&lt;br /&gt;
        vector pos = CalcDropPosition();&lt;br /&gt;
        allowDeploy = sys.requestDeployment( self, GetDeployObject( objectName ), pos, angles_y, 0.f );&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if ( allowDeploy ) {&lt;br /&gt;
        if ( objectName == &amp;quot;deployobject_husky&amp;quot; || objectName == &amp;quot;deployobject_icarus&amp;quot; ) {&lt;br /&gt;
            vUseVehicleCredit( 0.1f );&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    thread DeploymentFeedbackThread( allowDeploy );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
================&lt;br /&gt;
player::RequestHusky&lt;br /&gt;
================&lt;br /&gt;
*/&lt;br /&gt;
void player::RequestHusky() {&lt;br /&gt;
    if ( !IsGDF() ) {&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    RequestDeployment( &amp;quot;deployobject_husky&amp;quot; );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
================&lt;br /&gt;
player::RequestIcarus&lt;br /&gt;
================&lt;br /&gt;
*/&lt;br /&gt;
void player::RequestIcarus() {&lt;br /&gt;
    if ( !IsStrogg() ) {&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    RequestDeployment( &amp;quot;deployobject_icarus&amp;quot; );    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
================&lt;br /&gt;
player::RequestIconThread&lt;br /&gt;
================&lt;br /&gt;
*/&lt;br /&gt;
void player::RequestIconThread( float timeout ) {&lt;br /&gt;
    sys.wait( timeout );&lt;br /&gt;
    FreeRequestIcon();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
================&lt;br /&gt;
player::RequestRepair&lt;br /&gt;
================&lt;br /&gt;
*/&lt;br /&gt;
void player::RequestRepair() {&lt;br /&gt;
    SetupRequestIcon( &amp;quot;mtr_cm_icon_need_repair&amp;quot;, &amp;quot;require_view_repair&amp;quot; );&lt;br /&gt;
    thread RequestIconThread( 5.f );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
================&lt;br /&gt;
player::CalcDropPosition&lt;br /&gt;
================&lt;br /&gt;
*/&lt;br /&gt;
vector player::CalcDropPosition() {&lt;br /&gt;
    // TODO: if we reinstate vehicle drops for anything other than a husky or icarus, we'll need to change this&lt;br /&gt;
    float dropDist = 112;&lt;br /&gt;
&lt;br /&gt;
    vector pos = getWorldOrigin();&lt;br /&gt;
    pos_z += 32.f;&lt;br /&gt;
&lt;br /&gt;
    vector forward = sys.angToForward( getViewAngles() );&lt;br /&gt;
    forward_z = 0;&lt;br /&gt;
    forward = sys.vecNormalize( forward );&lt;br /&gt;
    vector targetPos = pos + ( forward * dropDist );&lt;br /&gt;
&lt;br /&gt;
    if ( sys.tracePoint( pos, targetPos, MASK_VEHICLESOLID | MASK_SHOT_RENDERMODEL | CONTENTS_MONSTER, self ) &amp;lt; 1.f ) {&lt;br /&gt;
        // failed, default to the player's position&lt;br /&gt;
        return pos;&lt;br /&gt;
    } &lt;br /&gt;
&lt;br /&gt;
    return targetPos;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
object vehicle_base;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
================&lt;br /&gt;
player::CheckCanRequestVehicle&lt;br /&gt;
================&lt;br /&gt;
*/&lt;br /&gt;
boolean player::CheckCanRequestVehicle( string objectName ) {&lt;br /&gt;
    team_base team = getGameTeam();&lt;br /&gt;
&lt;br /&gt;
    float credit = vGetVehicleCredit();&lt;br /&gt;
    float creditRequired = 0.1f;&lt;br /&gt;
&lt;br /&gt;
    entity proxy = getProxyEntity();&lt;br /&gt;
&lt;br /&gt;
    if ( sys.getTime() &amp;lt; nextDeploymentTime ) {&lt;br /&gt;
        return false;&lt;br /&gt;
    } else if ( proxy != $null_entity ) {&lt;br /&gt;
        return false;&lt;br /&gt;
    } else if ( credit &amp;lt; creditRequired ) {&lt;br /&gt;
        return false;&lt;br /&gt;
    } else if ( !team.CanRequestVehicle( self ) ) {&lt;br /&gt;
        return false;&lt;br /&gt;
    } else if ( sys.getTime() &amp;lt; team.GetNextVehicleSpawnTime() ) {&lt;br /&gt;
        return false;&lt;br /&gt;
    } else if ( getHealth() &amp;lt;= 0 ) {&lt;br /&gt;
        return false;&lt;br /&gt;
    } else if ( AI_INWATER ) {&lt;br /&gt;
        return false;&lt;br /&gt;
    } else {&lt;br /&gt;
        // check if we already have a vehicle&lt;br /&gt;
        float i;&lt;br /&gt;
        float num = binGetSize();&lt;br /&gt;
        for ( i = 0; i &amp;lt; num; i++ ) {&lt;br /&gt;
            vehicle_base other = binGet( i );&lt;br /&gt;
            if ( other != $null_entity ) {&lt;br /&gt;
                if ( other.inCollection( &amp;quot;husky&amp;quot; ) ) {&lt;br /&gt;
                    return false;&lt;br /&gt;
                } else if ( other.inCollection( &amp;quot;icarus&amp;quot; ) ) {&lt;br /&gt;
                    return false;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // also check if outside&lt;br /&gt;
        vector pos = CalcDropPosition();&lt;br /&gt;
        vector skyPos = pos + '0 0 65535';&lt;br /&gt;
        sys.tracePoint( pos, skyPos, MASK_SHOT_BOUNDINGBOX | MASK_SHOT_RENDERMODEL, self );&lt;br /&gt;
&lt;br /&gt;
        if ( sys.getTraceFraction() == 1.f ) {&lt;br /&gt;
            return false;&lt;br /&gt;
        } else if ( !( sys.getTraceSurfaceFlags() &amp;amp; SURF_NOIMPACT ) ) {&lt;br /&gt;
            return false;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return true;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Retrieved from &amp;quot;http://wiki/splashwiki/index.php/Script:Files:script/player/player_requests.script&amp;quot;&lt;br /&gt;
Views&lt;br /&gt;
&lt;br /&gt;
    * Article&lt;br /&gt;
    * Discussion&lt;br /&gt;
    * Edit&lt;br /&gt;
    * History&lt;br /&gt;
    * Move&lt;br /&gt;
    * Watch&lt;br /&gt;
&lt;br /&gt;
Personal tools&lt;br /&gt;
&lt;br /&gt;
    * Wizz&lt;br /&gt;
    * My talk&lt;br /&gt;
    * Preferences&lt;br /&gt;
    * My watchlist&lt;br /&gt;
    * My contributions&lt;br /&gt;
    * Log out&lt;br /&gt;
&lt;br /&gt;
Navigation&lt;br /&gt;
&lt;br /&gt;
    * Main Page&lt;br /&gt;
    * Community portal&lt;br /&gt;
    * Current events&lt;br /&gt;
    * Recent changes&lt;br /&gt;
    * Random page&lt;br /&gt;
    * Help&lt;br /&gt;
    * Donations&lt;br /&gt;
&lt;br /&gt;
Search&lt;br /&gt;
 &lt;br /&gt;
Toolbox&lt;br /&gt;
&lt;br /&gt;
    * What links here&lt;br /&gt;
    * Related changes&lt;br /&gt;
    * Upload file&lt;br /&gt;
    * Special pages&lt;br /&gt;
    * Printable version&lt;br /&gt;
    * Permanent link&lt;br /&gt;
&lt;br /&gt;
MediaWiki&lt;br /&gt;
&lt;br /&gt;
    * This page was last modified 13:20, 14 September 2007.&lt;br /&gt;
    * This page has been accessed one time.&lt;br /&gt;
    * Privacy policy&lt;br /&gt;
    * About Splash Wiki&lt;br /&gt;
    * Disclaimers&lt;/div&gt;</summary>
		<author><name>Wizz</name></author>
		
	</entry>
</feed>