LibRPC Z: Difference between revisions

From NPC for VCMP 0.4 Servers
Jump to navigation Jump to search
No edit summary
No edit summary
Line 5: Line 5:
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 and if p2 is present rawget will be performed on this object. If p1 is not string, then p2 is required.
::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=

Revision as of 15:21, 27 June 2023

This function was added in LibRPC (API 1.3) (not released as on writing this page) 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.