Quantcast

Jump to content

» «
Photo

Activate a Cleo script from other Cleo script

2 replies to this topic
ReyEspada45
  • ReyEspada45

    Player Hater

  • Members
  • Joined: 16 Apr 2013

#1

Posted 16 April 2013 - 06:30 AM

I need to activate a cleo script from other cleo script, like a custom mission, but I need to activate many scripts one after another, and I've tested and I can't start a custom mission from other custom mission, then I made this code:

CODE

// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007

{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
thread 'GHOSTC2'

:GHOSTC2_11
wait 0
if
  Player.Defined($PLAYER_CHAR)
jf @GHOSTC2_11
if
 $MONST == 1
jf @GHOSTC2_11
Model.Load(#OFYST)

:GHOSTC2_53
wait 0
if
  Model.Available(#OFYST)
jf @GHOSTC2_53
1@ = Actor.Create(Mission1, #OFYST, 685.2968, -478.6634, 16.3359)
Actor.Angle(1@) = 178.556
Actor.Health(1@) = 700

:GHOSTC2_114
wait 0
if
  Actor.Dead(1@)
jf @GHOSTC2_114
0A93: end_custom_thread




I don't know so much about global variables, and I don't know if it can be used in any script. The script will start if $MONST is 1, I've put $MONST = 0 in main.scm:
CODE

$MONST = 0




and it means that the script won't start, but from another script, this value changes to 1:

CODE

$MONST = 1




and It should start, and it doesn't work. I'm sorry if I'm a noob mercie_blink.gif , but well in summary I need to start many scripts from another script, in a specific time each one, without using cleo missions, thank you very much

ZAZ
  • ZAZ

    Kernlochbohrer

  • Members
  • Joined: 10 Jan 2005
  • European-Union

#2

Posted 16 April 2013 - 05:51 PM

Use Opcode 0AB3: and 0AB4: to communicate betwee Cleoscripts

The expression var together with a number, <var><space><number> builds the "Special Global Cleo Variable"
example:
var 0 is stored with 10
CODE
0AB3: var 0 = 10
or
0006: 13@ =  10  // integer values
0AB3: var 0 = 13@
and
CODE
0AB4: 0@= var 0

var 0 up to var 999 will be stored,

to get then stored value into your script needs to submit to a local:
CODE
0AB4: 13@ = var 44
if
0039:   13@ ==  1  // integer values
004D: jump_if_false @nextlabel


Another method:
Start another cleoscript with:
CODE
0A92: create_custom_thread "New_Test_thread.cs"

The other script will be startet twice, once from Cleo programm and once from the 0A92: create_custom_thread
So change the script extension manual to New_Test_thread.s
and start it then with this code:
CODE
0A92: create_custom_thread "New_Test_thread.s"

then it will be started only by 0A92: create_custom_thread

ReyEspada45
  • ReyEspada45

    Player Hater

  • Members
  • Joined: 16 Apr 2013

#3

Posted 16 April 2013 - 08:33 PM

thank you very much, it worked biggrin.gif




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users