LibRPC Z: Difference between revisions

From NPC for VCMP 0.4 Servers
Jump to navigation Jump to search
(Created page with "{{Welcome|desc=Creates userdata when passed to RFC/F/Fa/RFCa has the effect of rawget. Unlike other functions, this is a first order function.| params=<source lang="lua">( p1, p2, ... )</source> <poem> ::p1 : If string, a rawget will be performed on the roottable when executed on remote side. Optional Parameters ::p2, p3, ... : A key which will be popped and get operation performed on p(i-1) </poem>| example= {{{!}} class="wikitable" {{!}}- ! Goal ! Corresponding code !...")
 
No edit summary
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Welcome|desc=Creates userdata when passed to RFC/F/Fa/RFCa has the effect of rawget. Unlike other functions, this is a first order function.|
<poem style="border: 2px solid #d6d2c5; background-color: #f2f4e6; padding: 1em;">
This function was added in LibRPC (API 1.4) (released on 27.Jun.2023) and will not work on previous versions.
</poem>
{{Welcome|desc=Perform sq_get on remote HSQUIRRELVM. Unlike other functions, this is a first order function.|
params=<source lang="lua">( p1, p2, ... )</source>
params=<source lang="lua">( p1, p2, ... )</source>
<poem>
<poem>
::p1 : If string, a rawget will be performed on the roottable when executed on remote side.
::p1 : If string, a sq_get will be performed by pushing roottable and if p2 is present second sq_get will be performed on this resultant object. If p1 is not string, then p1 is pushed and sq_get will be done on p1, they key being p2.
Optional Parameters
'''Optional Parameters'''
::p2, p3, ... : A key which will be popped and get operation performed on p(i-1)
::p2, p3, ... : A key which will be pushed and sq_get operation performed on p(i-1)
</poem>|
</poem>|
example=
example=
Line 21: Line 24:
{{!}}  
{{!}}  
{{!}}-
{{!}}-
{{!}} '''print( b )''' <br />where b is some global variable
{{!}} RFC("print")(Z("b"))
{{!}}  
{{!}}  
{{!}}  
{{!}}-
{{!}}  
{{!}} '''print(b.x)''' <br />b is Vector
{{!}}}|
{{!}} RFC("print")(Z("b", "x") )
{{!}
{{!}}}
|
retvals=Returns userdata which can be passed to F/Fa/RFC/RFCa or Z itself.|
relfuncs=*[[LibRPC_F|F]]
*[[LibRPC_RFC|RFC]]
*[[LibRPC_S|S]]
}}
}}

Latest revision as of 07:01, 28 June 2023

This function was added in LibRPC (API 1.4) (released on 27.Jun.2023) and will not work on previous versions.


Description:
Perform sq_get on remote HSQUIRRELVM. Unlike other functions, this is a first order function.


Parameters:

( p1, p2, ... )

p1 : If string, a sq_get will be performed by pushing roottable and if p2 is present second sq_get will be performed on this resultant object. If p1 is not string, then p1 is pushed and sq_get will be done on p1, they key being p2.
Optional Parameters
p2, p3, ... : A key which will be pushed and sq_get operation performed on p(i-1)


Return Values:
Returns userdata which can be passed to F/Fa/RFC/RFCa or Z itself.


Example

Goal Corresponding code
FindPlayer( 0 ).Name Z( F("FindPlayer")(0), "Name" )
FindPlayer( 0 ).Pos.x Z( F("FindPlayer")(0), "Pos", "x" )
print( b )
where b is some global variable
RFC("print")(Z("b"))
print(b.x)
b is Vector
RFC("print")(Z("b", "x") )

Related Functions

The following functions may be helpful as they relate to this function in one way or another.