|

楼主 |
发表于 2013-9-7 17:42:33
|
显示全部楼层
【CLEO编写指南】 二:数据类型简介
CLEO中经常可以看到@等字符
@ 有2种不同功能:
一: 跳转到相应的标签接入口
004D: jump_if_false @SAVE_5
0050: gosub @SAVE_14
0002: jump @SAVE_1
2.链接局部变量
游戏中的物件需要 一个类似身份登记的办法 来处理执行
这个身份登记可以理解为变量
局部变量由@和数字组合而成
0@, 1@, ... 30@ 从
0@ 到 31@ 是允许的 , 32@ 和33@ 用于计时器, cs 文件中最多只能用到33@
如下
1@ 定义 一个车辆的创建产生
复制代码
014B: 1@ = init_parked_car_generator #PCJ600 0 17 1 alarm 0 door_lock 0 0 10000 at 2490.0 -1682.0 13.5 angle 90.0
1@ 这样就可以用于局部变量中了(此处指代替这辆车)
复制代码
014C: set_parked_car_generator 1@ cars_to_generate_to 10
$ 用来链接全局变量
游戏中的物件需要 一个类似身份登记的办法 来处理执行,这个身份登记可以理解为变量。
全局变量是以$ 为标志和一些单词,数字之类组成的。在CLEO脚本中使用全局变量可能会导致游戏BUG和崩溃
只有 $PLAYER_CHAR, $PLAYER_ACTOR, $ONMISSION 才会正常运行
全局, 局部, 何解?
全局变量运用于Mani.scm中以此在不同游戏线程中相互连接
局部变量同样也是运用于main.scm中但是他们不能在不同游戏线程中相互连接
你可以在线程中用局部变量创建一辆汽车标记为1@同时在main.scm的其他线程中使用1@
1@ = create_car
你有2种不同的车辆,存在于不同的线程命令中
你可以在一个线程中使用全局变量创建一辆汽车但是不能够在其他线程中再次使用同一个全局变量来创建这辆汽车
$mycar5 = create_car
但是你可以从main.scm的其他线程中调用这辆汽车
全局变量是可储存的,而局部变量则不行
但是在CLEO脚本中使用全局变量会导致游戏BUG和崩溃
只有 $PLAYER_CHAR, $PLAYER_ACTOR, $ONMISSION 才不会
简单来说,全局变量在任何线程中都能够使用,局部变量只能用于单个线程中,需要预先定义。
#作为加载模型名称的接入口标志
复制代码
0247: load_model #BMYCG
0247: load_model #HMYCM
0247: load_model #SWATVAN
0247: load_model #M4
0247: load_model #COLT45
CLEO只能调用已经定义存储于vehicles.ide, peds.ide or default.ide的内容
其他的模型需要使用他们的ID编号
'...' 短型字符串是用来插入字母或编号 就像GTX entrynames 或者 特殊 IPL entries的名称
复制代码
03A4: name_thread 'MAIN'
0917: audio_zone 'BEACH' enable_sound 0
00BA: show_text_styled GXT 'INTRO_1' time 1000 style 2
0299: activate_garage 'MODLAST'
07FB: set_interior 'GYM1' access 1 // Ganton Gym
0390: load_txd_dictionary 'LD_BEAT'
076C: set_zone 'GAN1' gang 1 density_to 25
"..."长型字符串是用来插入字母或编号比如动作- IFP 文件名称, 身体部位名称, particel 名称
复制代码
087B: set_player $PLAYER_CHAR clothes_texture "PLAYER_FACE" model "HEAD" body_part 1
038F: load_texture "DOWN" as 1 // Load dictionary with 0390 first
0605: actor -1 perform_animation_sequence "DAN_LOOP_A" IFP_file "DANCING" 4.0 loop 1 0 0 0 time -1 // versionA
0674: set_car_model #GREENWOO numberplate "GROVE4L_"
0245: set_actor 5@ walk_style_to "GANG2"
064B: 25@ = create_particle "EXPLOSION_MOLOTOV" at 2010.0 -1610.0 16.5 type 1
@s - local-string-variable(局部线程变量)
复制代码
05AA: 5@s = 'FEM_OK'
00BC: show_text_highpriority GXT 5@s time 10000 flag 1
s$ - global-string-variable(全局线程变量)
注意在CLEO脚本中使用全局变量 会导致游戏BUG或者崩溃
复制代码
05A9: s$Actor_Speech_GXT_Reference = 'CATX_UA' // ~z~Carl, you are a f*cking idiota!
00BC: show_text_highpriority GXT s$Actor_Speech_GXT_Reference time 10000 flag 1
05AA: 5@s = s$Actor_Speech_GXT_Reference
00BC: show_text_highpriority GXT 5@s time 10000 flag 1
@v - local-long-string-variable(局部长型线程变量)
复制代码
06D2: 28@v = "LAPDAN1" // @v = string
0812: AS_actor $PLAYER_ACTOR perform_animation "LAPDAN_P" IFP_file 28@v 1000.0 loopA 0 lockX 0 lockY 0 lockF 1 time -1
v$ - global-long string-variable(全局长型变量)
注意在CLEO脚本中使用全局变量 会导致游戏BUG或者崩溃
复制代码
06D1: v$1225 = "Bat_block"// 16-byte strings
0605: actor $PLAYER_ACTOR perform_animation_sequence v$1225 from_file "BASEBALL" 4.0 1 0 0 0 -1 ms |
|