disableCollisionWith: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
No edit summary
m (Fix phrasing)
 
(49 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{Command|= Comments
{{RV|type=command
____________________________________________________________________________________________


| arma3 |= Game name
|game1= arma3
|version1= 0.50


|0.50|= Game version
|arg= local


|arg= local |= Arguments in MP
|eff= global


|eff= global |= Effects in MP
|gr1= Object Manipulation
____________________________________________________________________________________________


| Disable collision between vehicles. This commmand doesn't disable collision between PhysX objects.
|descr= Disable collision between provided objects. The collision is always disabled for both objects in the arguments.
<br/>
{{Feature|important|
{{Important|Command has to be executed where objects are [[local]], and as long as they don't change locality, the effect of this command will be global.
* this command does not disable collision between PhysX objects
* this command has to be executed where objects are [[Multiplayer Scripting#Locality|local]], and as long as they do not change locality, the effect of this command will be global:
** if the two objects are not local to the same computer, then it has to be executed on both computers to achieve the desired effect
** if one or both objects change locality, the command needs to be executed again on the new [[owner]]'s machine(s) to maintain the effect
* the feature works by having an object registering a reference to the other object; this command stores such reference on both objects - see {{Link|#Example 3}}
}}


If the 2 objects are not local to the same computer, then it has to be executed on both computers to achieve the desired effect.
|s1= vehicle1 [[disableCollisionWith]] vehicle2


If one or both objects change locality, the command needs to be executed again on the new [[owner]]'s machine(s) to maintain the effect.}} |= Description |= Description
|p1= vehicle1: [[Object]]
____________________________________________________________________________________________


| vehicle '''disableCollisionWith''' vehicle |= Syntax
|p2= vehicle2: [[Object]]


|p1= vehicle: [[Object]] |= PARAMETER1
|r1= [[Nothing]]


|p2= vehicle: [[Object]]  |= PARAMETER2
|x1= <sqf>player disableCollisionWith myWall;</sqf>


| [[Nothing]] |= RETURNVALUE
|x2= <sqf>[_veh1, _veh2] remoteExecCall ["disableCollisionWith", 0, _veh1];</sqf>


|x3= <sqf>
// this command stores a reference to the other object on both arguments:
_obj1 disableCollisionWith _obj2; // _obj1 has a reference to _obj2, disabling collision with it
// _obj2 has a reference to _obj1, disabling collision with it


|x1= <code>
// only one reference is required to disable collision, allowing more than one disabled collision
</code>|= EXAMPLE1
_obj1 disableCollisionWith _obj3; // _obj1 has a reference to _obj3, disabling collision with it
// _obj2 has a reference to _obj1, disabling collision with it
// _obj3 has a reference to _obj1, disabling collision with it
// factually, _obj1 has collisions disabled with _obj2 and _obj3


____________________________________________________________________________________________
// note that _obj1 collision can be changed without using the command on it directly
_obj2 disableCollisionWith _obj3; // _obj1 has no more reference to _obj3 and can collide with it
// _obj2 has a reference to _obj3, disabling collision with it
// _obj3 has a reference to _obj2, disabling collision with it
</sqf>


| [[enableCollisionWith]] |= SEEALSO
|seealso= [[collisionDisabledWith]] [[enableCollisionWith]]
 
|  |= MPBEHAVIOUR
____________________________________________________________________________________________
}}
}}


<h3 style='display:none'>Notes</h3>
{{Note
<dl class='command_description'>
|user= Ranwer
<!-- Note Section BEGIN -->
|timestamp= 20150404120300
 
|text= [[disableCollisionWith]] is basically a script that when you apply it to an object, and your unit can go through it like a ghost. However, if you wish the object to be solid again, you may wish to use [[enableCollisionWith]].
<!-- Note Section END -->
<br>
</dl>
An example for this is:  
 
<sqf>
<h3 style='display:none'>Bottom Section</h3>
// name of unit in editor such as player1
[[Category:Arma_3:_New_Scripting_Commands_List|{{uc:{{PAGENAME}}}}]]
// name of object in editor such as barrel1
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]
 
<!-- CONTINUE Notes -->
<dl class="command_description">
<dd class="notedate">Posted on April 4, 2015 - 11:47 (UTC)</dd>
<dt class="note">[[User:Ranwer|Ranwer]]</dt>
<dd class="note">
 
disableCollisionWith is basically a script that when you apply it to an object, your unit can go through it like a ghost.
 
However, if you wish the object to be solid again, you may wish to use the
'''enableCollisionWith'''.
 
 
An example for this is:
 
//name of unit in editor such as player1
 
//name of object in editor such as barrel1
 
barrel1 disableCollisionWith player1;
barrel1 disableCollisionWith player1;


//to make the barrel solid again, do this as vice versa if you know what your doing!
// to make the barrel solid again, do this as vice versa if you know what you are doing!
 
barrel1 enableCollisionWith player1;
barrel1 enableCollisionWith player1
</sqf>
 
 
On a side note: this can come in handy a lot if you want a unit to sit on the back of a car or on top of a container
On a side note: this can come in handy a lot if you want a unit to sit on the back of a car or on top of a container
}}


</dd>
{{Note
</dl>
|user= bloodwyn1756
<!-- DISCONTINUE Notes -->
|timestamp= 20180529065800
 
|text= This command does not disable the roadway LOD.
<!-- CONTINUE Notes -->
}}
<dl class="command_description">
<dd class="notedate">Posted on April 4, 2015 - 12:03 (UTC)</dd>
<dt class="note">[[User:Ranwer|Ranwer]]</dt>
<dd class="note">
<br>
My bad for the above post, may a dev or moderator delete the above post? Thank you!
<br>
<br>
disableCollisionWith is basically a script that when you apply it to an object, and your unit can go through it like a ghost.  
<br>
<br>
However, if you wish the object to be solid again, you may wish to use the '''enableCollisionWith'''.
<br>
<br>
<br>
An example for this is:
<br>
<code>
//name of unit in editor such as player1
//name of object in editor such as barrel1
<br>
barrel1 disableCollisionWith player1;
<br>
//to make the barrel solid again, do this as vice versa if you know what your doing!
<br>
barrel1 enableCollisionWith player1 </code>
<br>
<br>
On a side note: this can come in handy a lot if you want a unit to sit on the back of a car or on top of a container
<br>
<br>
</dd>
</dl>
<!-- DISCONTINUE Notes -->

Latest revision as of 11:29, 30 August 2022

Hover & click on the images for description

Description

Description:
Disable collision between provided objects. The collision is always disabled for both objects in the arguments.
  • this command does not disable collision between PhysX objects
  • this command has to be executed where objects are local, and as long as they do not change locality, the effect of this command will be global:
    • if the two objects are not local to the same computer, then it has to be executed on both computers to achieve the desired effect
    • if one or both objects change locality, the command needs to be executed again on the new owner's machine(s) to maintain the effect
  • the feature works by having an object registering a reference to the other object; this command stores such reference on both objects - see Example 3
Groups:
Object Manipulation

Syntax

Syntax:
vehicle1 disableCollisionWith vehicle2
Parameters:
vehicle1: Object
vehicle2: Object
Return Value:
Nothing

Examples

Example 1:
player disableCollisionWith myWall;
Example 2:
[_veh1, _veh2] remoteExecCall ["disableCollisionWith", 0, _veh1];
Example 3:
// this command stores a reference to the other object on both arguments: _obj1 disableCollisionWith _obj2; // _obj1 has a reference to _obj2, disabling collision with it // _obj2 has a reference to _obj1, disabling collision with it // only one reference is required to disable collision, allowing more than one disabled collision _obj1 disableCollisionWith _obj3; // _obj1 has a reference to _obj3, disabling collision with it // _obj2 has a reference to _obj1, disabling collision with it // _obj3 has a reference to _obj1, disabling collision with it // factually, _obj1 has collisions disabled with _obj2 and _obj3 // note that _obj1 collision can be changed without using the command on it directly _obj2 disableCollisionWith _obj3; // _obj1 has no more reference to _obj3 and can collide with it // _obj2 has a reference to _obj3, disabling collision with it // _obj3 has a reference to _obj2, disabling collision with it

Additional Information

See also:
collisionDisabledWith enableCollisionWith

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
Ranwer - c
Posted on Apr 04, 2015 - 12:03 (UTC)
disableCollisionWith is basically a script that when you apply it to an object, and your unit can go through it like a ghost. However, if you wish the object to be solid again, you may wish to use enableCollisionWith.
An example for this is:
// name of unit in editor such as player1 // name of object in editor such as barrel1 barrel1 disableCollisionWith player1; // to make the barrel solid again, do this as vice versa if you know what you are doing! barrel1 enableCollisionWith player1;
On a side note: this can come in handy a lot if you want a unit to sit on the back of a car or on top of a container
bloodwyn1756 - c
Posted on May 29, 2018 - 06:58 (UTC)
This command does not disable the roadway LOD.