gtabbs吧 关注:2,635贴子:16,531
  • 14回复贴,共1

GTASA任务添加教程

只看楼主收藏回复

今天看见了这个教程,算一个任务的教程吧,觉得不错,故翻译了,但是不够完善,故增加了很多内容,因为涉及main.scm这个文件,最好不要随意修改,否则任务你懂的...忠告完毕
原帖地址 http://www.gtamodding.com/index.php?title=Create_a_mission
翻译 幸运克苏鲁


IP属地:中国香港1楼2013-08-27 11:25回复

    接下来创建任务触发,关于触发我以前讲过一些, ctrl+f查找create_thread,然后添加成004F: create_thread @MissionTrigger或者create_thread @MissionTrigger
    查找
    //-------------Mission 0---------------
    后面的内容就是这个任务的主要部分,这里列举第一个任务部分(...下面这些简单OP就不说了,大家都看得懂)
    0001: wait 0 ms
    00D6: if
    0256: player $PLAYER_CHAR defined 玩家定义
    004D: jump_if_false @MissionTriggerEnd 否则跳到
    @MissionTriggerEnd
    00D6: if
    0038: $ONMISSION == 0
    004D: jump_if_false @MissionTriggerEnd
    00D6: if
    // 开始任务
    004D: jump_if_false @MissionTriggerEnd
    0417: start_mission {xxx}
    0004: $ONMISSION = 1
    :MissionTriggerEnd
    0002: jump @MissionTrigger


    IP属地:中国香港3楼2013-08-27 11:25
    回复
      {xxx} 和上面的一样,这个xxx是任务数
      任务触发二
      然后插入你想写的任务代码,这里是GTASA的方法 查找//-------------External script 0 (PLAYER_PARACHUTE)---------------在最后任务结束和开始之间插入你的任务代码内容,相当机械的填写即可!


      IP属地:中国香港4楼2013-08-27 11:26
      回复

        03A4: name_thread 'NAME'
        0050: gosub @MissionBegin
        00D6: if
        0112: wasted_or_busted
        004D: jump_if_false @MissionEnd
        0050: gosub @MissionFailed
        :MissionEnd
        0050: gosub @MissionCleanup
        004E: end_thread
        :MissionBegin
        // 这里是你的任务内容
        0051: return
        :MissionFailed
        // 这是如果你死了将发生的事情
        0051: return
        :MissionCleanup
        // 这个当然是任务结束时的内容,比如奖励什么的~~
        0004: $ONMISSION = 0
        00D8: mission_cleanup
        0051: return 这样一个任务就OK了,返回


        IP属地:中国香港5楼2013-08-27 11:26
        回复
          CLEO 任务内容
          首先,有两个文件时创建任务时必须的,aA.cm f或A.cs
          例子
          这个就包含了一些触发添加,如果达成这些条件才能触发{CLEO .cs} 0000: NOP while true wait 0 if and $ONMISSION == 0 player.defined(0) then if //你想添加的条件,例如.... then 0004: $ONMISSION = 1 0A94: start_custom_mission "MyMission" end endend
          它会自动检测条件是否达成,如果达成就进行下面的,反正就跳转到某处
          0A94: start_custom_mission "MyMission"
          0A94 用于启动未命名任务扩展名为.cm 例如"Missions\MyMission".
          {CLEO .cm}
          :MissionStart
          03A4: name_thread "TEST"
          gosub @MissionBegin
          if
          wasted_or_busted
          then
          gosub @MissionFailed
          end
          gosub @MissionCleanup
          end_thread
          :MissionBegin
          // 你的任务不解释
          return
          :MissionFailed
          // 玩家死亡或其他情况
          return
          :MissionCleanup
          // 任务结束时的..
          $ONMISSION = 0
          mission_cleanup
          return
          {CLEO .cm}


          IP属地:中国香港6楼2013-08-27 11:26
          回复
            cm脚本中你可以使用1022 + 2 定时器的局部变量,而不是32 + 2
            为了结束任务,你必须使用 004E: end_thread i而不是 0A93: end_custom_thread
            而且修改后你需要重新开始游戏...这个不解释
            这里推荐点修改的东西...
            //-------------External script 26 (GF_SEX)---------------
            :GFSEX
            thread 'GFSEX'
            09BD: unknown_flag 1
            7@ = 0
            8@ = 0
            if
            1@ > 0
            else_jump @GFSEX_61
            $GFSEX_EXCITEMENT = 40
            jump @GFSEX_68
            :GFSEX_61
            $GFSEX_EXCITEMENT = 50
            :GFSEX_68
            $GFSEX_POWER = 1
            9@ = 0
            if
            9@ > 0
            else_jump @GFSEX_124
            24@ = Actor.Create(CivFemale, #NULL, 0.0, 0.0, 0.0)
            :GFSEX_124
            gosub @GFSEX_7565
            if
            $GF_CENSORE_FLAG == 0
            else_jump @GFSEX_156
            gosub @GFSEX_8036
            :GFSEX_156
            wait 0
            if and
            not Actor.Dead($PLAYER_ACTOR)
            not Actor.Dead(24@)
            not $GIRL_PROGRESS(0@,6i) == -999
            not $GIRL_PROGRESS(0@,6i) == -100
            not $GIRL_PROGRESS(0@,6i) == -99
            else_jump @GFSEX_243
            gosub @GFSEX_257
            gosub @GFSEX_514
            gosub @GFSEX_12553
            jump @GFSEX_250
            .......
            ...举例而已,大家别乱想..


            IP属地:中国香港7楼2013-08-27 11:27
            回复
              我果然看不懂...


              IP属地:河南8楼2013-09-02 16:59
              回复
                做几个超难的,麻麻再也不用但心我玩sa没意思了


                IP属地:浙江来自Android客户端9楼2013-11-15 14:04
                回复
                  奏我又来了


                  IP属地:四川来自Android客户端10楼2013-11-15 17:42
                  收起回复
                    使用SB来创建任务讲究(去掉全写就好玩了)


                    IP属地:广东11楼2018-12-23 23:08
                    回复