INTERNET
PROTOCOL
(IP)
RECEIVER
Supports Multiplayer Game. If
You play not hot-seat you may have some problems.
See
IP
Trigger
Some descriptions.
Now during a battle you may pass the values of v vars to the other side and call
functions at
the other side. Say, you run a user dependent script (like stack splitting). The
script runs at one side
because it runs as a reaction to a human action (mouse click). So all that you
change at this
side will not be changed on the other side.
Now you can pass all changed values to the
other side not running a script there.
Example.
On the one side you run a mouse event driven script:
...
!!VRv1234:S999;
On the other side v1234 will still keep the old value.
To fix it use:
...
!!VRv1234:S999;
!!IP:V1234/1234;
The last command will immediately send the value of v1234 to the other side.
Now to the second part of the problem. Say you use some specific command that
has some
effects on the battlefield (say you cast a spell with ERM).
Again, if it is done only at one side, there will be a problem because it is not
done on the
other side. Now you may use a distant call for those cases. This means that you
call a function
but it runs not at this local PC but at a distant one (the opponent's PC).
Up to 16 x parameters are transferred.
Example.
On one side you have:
...
!!BMv10:Mi/y5/5;
To make it run correctly you should make some changes:
...
!!BMv10:Mi/y5/5;
!!FU12345:Dv10/i/y5/5;
!?FU12345;
!!BMx1:Mx2/x3/x4;
That is all. How it works. FU:D immediately transfer all x parameters to the
other side and
makes a call of FU1234 there. So BMv10:M... command runs at one PC and BMx1:M...
at the other
PC. If you pass all in the right order, you will see the same effect at both
sides.
Note that you can pass some vars with IP:V command and then call FU:D to pass
more than 16 x
parameters to the other side. You can see FU:D
command for more information.
Now, an example that you can check (tested):
***********
ZVSE
!?BG0;
!!IF:M^Hi!^;
!!VRv99:S99; !!VRv100:S100; !!VRv101:S101;
!!IP:V99/100;
!!FU123:D1/2/3/4/5;
!?FU123;
!!IF:M^V99=%V99, V100=%V100, V101=%V101, X1=%X1, X2=%X2, X3=%X3, X4=%X4,
X5=%X5^;
***********
You will see "Hi!" message at any action of a stack, then you will see a message
"V99=99,
V100=100, V101=0, X1=1, X2=2, X3=3, X4=4, X5=5" at the other PC. Then
you get "Hi!" at the other
PC.
If you continue, you may notice that the next time the message will be: "V99=99,
V100=100,
V101=101, X1=1, X2=2, X3=3, X4=4, X5=5". So v101 is changed. This is
because first you send v99
and v100 through the network and call a function that shows a message (and this
is why
v101 is 0). But then the BG0 trigger will work out at the defender's side and
v101 will be set
to 101.
This example is only an example because in the script:
!?BG0;
!!IF:M^Hi!^;
!!VRv99:S99; !!VRv100:S100; !!VRv101:S101;
will work fine (identical) at both sides.
But if you run a script as a reaction to a human related event (mouse click
generally), you
need to think how to transfer changes to the other side.