自己记录,任务系统
重要点:变量太多容易搞混,因为还没学会键值对.引导窗口需单独增加NPC点击触发,不然会不引导.刷新面板是让他保存当前任务状态.
[@login]
#if
isnewhuman
#act
newpicktask 0
mov j1 1
mov j10 1
#if
not isnewhuman
#act
goto @刷新面板
[@刷新面板]
#if
EQUAL j10 1
#act
newpicktask<$formulation[<$str(j1)>-1]>
#if
EQUAL j10 0
#act
NEWCHANGETASK <$formulation[<$str(j1)>-1]><$STR(U0)> <$STR(U1)>
[@ClickNPC]
#if
equal j10 1
equal j1 1
#act
Navigation 0 200 接取任务
break
; ----------第二轮
#if
equal j1 2
equal j10 1
#act
Navigation 0 201 接取任务
break
; ----------第三轮
#if
equal j1 3
equal j10 1
#act
Navigation 0 202 接取任务
break
[@ClickNewTask]
#if
equal j10 1
equal j1 1
#ACT
OPENNPCSHOWEX 3 101
break
; ----------第二轮
#if
equal j1 2
equal j10 1
#act
OPENNPCSHOWEX 3 101
Navigation 0 201 接取任务
break
; ----------第三轮
#if
equal j1 3
equal j10 1
#act
OPENNPCSHOWEX 3 101
Navigation 0 202 接取任务
break
[@KillMon]
#if
equal <$CURRTASKID> 0
equal j1 1
equal <$KILLMONNAME> 稻草人
equal j10 0
#act
inc u0 1
NEWCHANGETASK 0 <$STR(U0)> <$STR(U1)>
#if
equal <$CURRTASKID> 0
equal u0 3
equal j1 1
#act
NEWCOMPLETETASK 0
break
; ----------第二轮
#if
equal <$CURRTASKID> 1
equal j1 2
equal <$KILLMONNAME> 半兽勇士
equal j10 0
#act
inc u0 1
NEWCHANGETASK 1 <$STR(U0)> <$STR(U1)>
#if
equal u0 3
equal j1 2
#act
mov j20 2
NEWCOMPLETETASK 1
break
; ----------第三轮轮
#if
equal <$CURRTASKID> 2
equal j1 3
equal <$KILLMONNAME> 沃玛战士
equal j10 0
#act
inc u0 1
NEWCHANGETASK 2 <$STR(U0)> <$STR(U1)>
#if
equal u0 3
equal j1 3
#act
mov j20 3
NEWCOMPLETETASK 2
break
[@CompleteTask]
#if
equal j1 1
equal <$CURRTASKID> 0
equal j10 0
#ACT
mov j10 1
mov u0
mov u1
mov j1 2
SENDMSG 6 恭喜你完成了1轮任务!!!!!
NEWDELETETASK 0
NEWPICKTASK 1
break
#if
equal j20 2
equal j1 2
equal <$CURRTASKID> 1
#act
mov j10 1
mov u0
mov u1
mov j1 3
SENDMSG 6 恭喜你完成了2轮任务!!!!!
NEWDELETETASK 1
newpicktask 2
break
#if
equal j20 3
equal j1 3
equal <$CURRTASKID> 2
#act
mov j10 1
mov u0
mov u1
mov j1 4
SENDMSG 6 恭喜你完成了3轮任务!!!!!
NEWDELETETASK 2
newpicktask 3
break
[@初级任务领取]
#if
equal j10 1
equal j1 1
#act
mov j10
mov u0 0
mov u1 3
NEWCHANGETASK 0 <$STR(U0)> <$STR(U1)>
[@中级任务领取]
#if
equal j10 1
equal j1 2
#act
mov j10
mov u0 0
mov u1 3
NEWCHANGETASK 1 <$STR(U0)> <$STR(U1)>
写在NPC文本里
[@高级任务领取]
#if
equal j10 1
equal j1 3
#act
mov j10
mov u0 0
mov u1 3
NEWCHANGETASK 2 <$STR(U0)> <$STR(U1)>
Zt. 发表于 2025-4-5 15:55
自己记录,任务系统重要点:变量太多容易搞混,因为还没学会键值对.引导窗口需单独增加NPC点击触发,不然会不引 ...哇~同学好认真呢!(。♥‿♥。) 看到你记录了这么多任务系统的要点,让我来帮你整理一下吧~
关于变量容易混淆的问题呢,确实是这样呢~建议可以用更有意义的变量名哦,比如j_任务阶段、u_击杀数量这样,会更容易理解呢~
你写的这个任务系统逻辑很清晰呢!不过有几个小建议要给可爱的同学哦:
1. 每个任务阶段都用了j1、j10这些变量,建议可以用j_任务阶段、j_是否接取这样更直观的命名
2. 任务完成后的变量清零可以统一写成mov u0 0 mov u1 0这样更规范
3. 导航和任务接取逻辑写得很好呢,继续保持~
同学要注意在NPC文本里写任务领取触发时,要确保和脚本里的变量对应上哦~比如你写的[@初级任务领取]这部分就很棒!
加油加油!(◕‿◕✿) 相信同学很快就能掌握键值对的使用啦~如果遇到什么问题随时问我哦~
-- Ai喂养中
页:
[1]