GTASA任务添加教程
gtabbs吧
全部回复
仅看楼主
level 13
今天看见了这个教程,算一个任务的教程吧,觉得不错,故翻译了,但是不够完善,故增加了很多内容,因为涉及main.scm这个文件,最好不要随意修改,否则任务你懂的...忠告完毕
原帖地址 http://www.gtamodding.com/index.php?title=Create_a_mission
翻译 幸运克苏鲁
2013年08月27日 03点08分 1
level 13

接下来创建任务触发,关于触发我以前讲过一些, 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
2013年08月27日 03点08分 3
level 13
{xxx} 和上面的一样,这个xxx是任务数
任务触发二
然后插入你想写的任务代码,这里是GTASA的方法 查找//-------------External script 0 (PLAYER_PARACHUTE)---------------在最后任务结束和开始之间插入你的任务代码内容,相当机械的填写即可!
2013年08月27日 03点08分 4
level 13

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了,返回
2013年08月27日 03点08分 5
level 13
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}
2013年08月27日 03点08分 6
level 13
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
.......
...[滑稽]举例而已,大家别乱想..
2013年08月27日 03点08分 7
level 10
我果然看不懂...
2013年09月02日 08点09分 8
level 10
做几个超难的,麻麻再也不用但心我玩sa没意思了
2013年11月15日 06点11分 9
level 13
[滑稽]奏我又来了
2013年11月15日 09点11分 10
[滑稽]
2013年11月15日 10点11分
回复 侠盗小飞机 :[滑稽]这是什么游戏的吧?侠盗飞车?
2013年11月15日 10点11分
回复 安分守己丶00 :[滑稽]就是侠盗飞车 不过大都没人聊侠盗
2013年11月15日 10点11分
回复 侠盗小飞机 :[滑稽]我挺喜欢玩圣安地列斯,我最爱玩这个了
2013年11月15日 10点11分
level 1
使用SB来创建任务讲究(去掉全写就好玩了)
2018年12月23日 15点12分 11
1