圣安地列斯吧 关注:392,672贴子:6,225,001
  • 13回复贴,共1

最近重温游戏,关于CLEO代码的问题。会编写的大佬麻烦请来进指下

只看楼主收藏回复

很久以前玩过这个游戏,最近才重玩才发现有CLEO这么厉害的玩意儿。网上下载了CLEO636种合集。遇到点bug和操作问题,所以百度下载了cleo编辑器SannyBuilder-v3.1.1。无奈不是学计算机相关编码的,看不太懂,但是强迫症让我想修改下它。
目前有2个问题:
1、关于上车锁门cs文件,下载的效果是,上车后按0键开启锁门,再按0键开锁。请问有没有办法通过编写代码,编写为上车后就锁门,就是在上车这个动作发生时锁门,或者在车上的状态下锁门。
代码里只看懂了下面按键这一行:
00D6: if
0AB0: key_pressed 48
我自己尝试了从别的CLEO把下面相关的开车语句编写进去,一直不成功:
00D6: if
0AB0: actor $PLAYER_ACTOR driving 。
2、显示车辆耐久度的CLEO,安装后发现和警车任务、消防车任务等开车任务的图标显示冲突,装了这个耐久度的CLEO后,开启任务就无法显示警车任务的等级和杀人数量等信息。因为耐久度的位置和这些信息显示位置一样,被覆盖了。请教一下要怎么调整耐久度CLEO的位置。下面是car_health__.cs骑车耐久度的用cleo编辑器打开的代码,不知道位置是哪一行。
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}
//-------------MAIN---------------
03A4: name_thread 'HEALTH_BAR'
:HEALTH_BAR_19
0001: wait 0 ms
00D6: if
0256: player $PLAYER_CHAR defined
004D: jump_if_false @HEALTH_BAR_19
00D6: if
0038: $ONMISSION == 0
004D: jump_if_false @HEALTH_BAR_19
00D6: if
84A7: not actor $PLAYER_ACTOR driving_boat
04C8: actor $PLAYER_ACTOR driving_flying_vehicle
00DF: actor $PLAYER_ACTOR driving
004D: jump_if_false @HEALTH_BAR_19
0811: 0@ = actor $PLAYER_ACTOR used_car
0224: set_car 0@ health_to 1000
:HEALTH_BAR_99
0227: $Y_ROYAL_CASINO = car 0@ health
0014: $Y_ROYAL_CASINO /= 10
03C4: set_status_text $CAR_PLAYER type 1 GXT 'SWE4_08' // global_variable // 劜廏惖崼壈
0084: $CAR_PLAYER = $Y_ROYAL_CASINO // (int)
0001: wait 0 ms
00D6: if
00DB: actor $PLAYER_ACTOR in_car 0@
004D: jump_if_false @HEALTH_BAR_281
0002: jump @HEALTH_BAR_99
0001: wait 0 ms
00D6: if
8119: not car 0@ wrecked
004D: jump_if_false @HEALTH_BAR_195
0002: jump @HEALTH_BAR_99
:HEALTH_BAR_195
0151: remove_status_text $CAR_PLAYER
00AA: store_car 0@ position_to 1@ 2@ 3@
020B: explode_car 0@
020C: create_explosion_with_radius 0 at 1@ 2@ 3@
020C: create_explosion_with_radius 0 at 1@ 2@ 3@
02CF: 4@ = create_fire_at 1@ 2@ 3@ propagation 0 size 1
02CF: 5@ = create_fire_at 1@ 2@ 3@ propagation 0 size 1
:HEALTH_BAR_281
0151: remove_status_text $CAR_PLAYER
0002: jump @HEALTH_BAR_19
0A93: end_custom_thread


IP属地:江苏1楼2021-06-07 19:24回复
    很难看到再次有人在研究CLEO,并打开SB工具编写。
    锁车门的功能作为CLEO脚本编写非常简单
    这里贴一下核心代码:
    :1
    wait 0
    if and
    Player.IsPlaying(0)
    Char.IsInAnyCar($Player_Actor)
    if @1
    Char.StoreCarIsInNoSave($Player_Actor, 0@)
    :2
    wait 0
    if
    Char.IsInCar($Player_Actor, 0@)
    jf @1
    Car.LockDoors(0@, 2)
    :3
    wait 0
    if or
    not Char.IsInCar($Player_Actor, 0@)
    0AB0: is_key_pressed 49
    jf @2
    Car.LockDoors(0@, 1)
    jump @1
    代码如上
    上车后自动锁门,仅当下车或者按下按键49(数字0)则解锁。
    至于您的第二个问题,不要使用03C4作为显示字幕,因为当游戏多个脚本使用该命令同时显示字幕时,则字幕会在同一个位置。请换成其他显示字幕的命令显示车辆耐久度。
    欢迎使用SannyBuilder编写CLEO脚本,请去官网下载最新3.7.0版SB工具
    有任何代码欢迎提出


    IP属地:湖南来自Android客户端2楼2021-06-10 05:17
    收起回复
      另:
      请一定要使用新版SB,仅新版SB支持命令的类形式语法


      IP属地:湖南来自Android客户端3楼2021-06-10 05:23
      回复
        大神会改热键吗


        IP属地:上海来自Android客户端4楼2023-01-17 08:46
        收起回复