诚实小鸟 发表于 2026-3-27 18:27:02

一个T变量解决存储
T1=0:0:0:0:0:0:0:0:0....多少个来着?你有多少个地图要弄就写多少个...0就是没开,1就是开了.
用TextSplit做一个分解,开了哪个,哪个=1..然后用INC 重新拼到T1去...
至于哪个开了,我想你已经有思路并写好了...写两行存储和分解调用就行了.
显示也是一样,打开前TextSplit一下,然后检测0,1做显示就行了
只是思路,优化了存储,其他显示优化看你写的应该是不错的.

诚实小鸟 发表于 2026-3-27 18:27:02

引擎自带有一个记路标石吧.,.我觉得那个可以直接用...

诚实小鸟 发表于 2026-3-27 18:27:02

[@传送石头]
传送祭坛可以传送你已经抵达的地方,瞬间即达\\
<$STR(T21)>   <$STR(T22)>   <$STR(T23)>   <$STR(T24)>   <$STR(T25)> \\
<$STR(T26)>   <$STR(T27)>   <$STR(T28)>   <$STR(T29)>   <$STR(T30)> \\
<$STR(T31)>   <$STR(T32)>   <$STR(T33)>   <$STR(T34)>   <$STR(T35)> \\
<$STR(T36)>   <$STR(T37)>   <$STR(T38)>   <$STR(T39)>   <$STR(T40)> \\
<$STR(T41)>   <$STR(T42)>   <$STR(T43)>   \\

[@地图传送]
#IF
#ACT
MAPMOVE <$SCRIPTPARAM1> <$SCRIPTPARAM2> <$SCRIPTPARAM3> 3
BREAK

;以上为传送NPC脚本

;以下为地图中激活传送的传送石脚本,每个地图1个,参数中的地图号和坐标按实际修改。变量根据自己版本避开占用

[@main]
#IF
equal T21
#ACT
mov T21 <传送地图1/@地图传送(3,330,330)>
break

[@main]
#IF
equal T22
#ACT
mov T22 <传送地图2/@地图传送(0,625,327)>
break

[@main]

[@main]
复制代码

诚实小鸟 发表于 2026-3-27 18:27:02

月御望舒 发表于 2022-6-11 22:31
跟我写的居然差不多,看来没有更高效的脚本了

诚实小鸟 发表于 2026-3-27 18:27:02

51614445 发表于 2022-6-11 13:55 建议你玩一下暗黑
不光暗黑 很多单职业服都有这种

诚实小鸟 发表于 2026-3-27 18:27:02

123330364 发表于 2022-6-12 10:48 不光暗黑 很多单职业服都有这种
暗黑那是始祖,很多都可以借鉴

诚实小鸟 发表于 2026-3-27 18:27:02

楼上的对哈,用二进制位就行,判断下0和1就行

诚实小鸟 发表于 2026-3-27 18:27:02

czy7812 发表于 2022-6-12 14:40 不知道下图这样满意不满意?有多少个显示多少个,没有显示还没标记,每5个分行:
GetTextLineCount 报错  是新版本引擎增加的命令么

诚实小鸟 发表于 2026-3-27 18:27:02

wzs221122 发表于 2022-6-12 15:00 GetTextLineCount 报错  是新版本引擎增加的命令么
是3.20更新后的命令,也不算新了,如果没这个命令,那文本只能自己做标记

诚实小鸟 发表于 2026-3-27 18:27:02

感谢@czy7812 的思路,虽然他的脚本不能直接用,但是还是参考了他的脚本思路。
下面把我优化后的脚本贴出来给大家参考一下,人物出生必须先添加一段脚本才可以:
AddTextListEx ..\\QuestDiary\\传送坐标\\<$USERNAME>传送.txt <$MapTitle>:<$MAP>:<$X>:<$Y>
所有传送石头的统一脚本:
[@main]
#IF
#ACT
goto @ass

[@ass]
#IF
GetStringPosEX ..\\QuestDiary\\传送坐标\\<$USERNAME>传送.txt <$MapTitle> N1 S2 0
#ACT
goto @djksafh
#ELSEACT
AddTextListEx ..\\QuestDiary\\传送坐标\\<$USERNAME>传送.txt <$MapTitle>:<$MAP>:<$X>:<$Y>
goto @ass

[@djksafh]
#IF
#ACT
GetStringPos ..\\QuestDiary\\传送坐标\\<$USERNAME>传送.txt 和平客栈:0116:10:14
INC N0 1

#IF
#ACT
MOV N1 0
MOV P1 0
MOV S$内容 \"\"
LOOPGOTO @显示 <$STR(N0)>
#SAY
传送祭坛可以传送你已经抵达的地方,瞬间即达:\\
<$STR(S$内容)>

[@显示]
#IF
#ACT
GetListString ..\\QuestDiary\\传送坐标\\<$USERNAME>传送.TXT <$STR(N1)> S0
TextSplit : <$STR(S0)> S1
INC S$内容 <
INC S$内容 <$STR(S1)>/@移动(<$STR(S2)>,<$STR(S3)>,<$STR(S4)>)>
INC N1 1
INC P1 1

#IF
EQUAL P1 5
#ACT
MOV P1 0
INC S$内容 \\
#ELSEACT
INC S$内容 \"  \"

[@移动]
#IF
#ACT
MAPMOVE <$SCRIPTPARAM1> <$SCRIPTPARAM2> <$SCRIPTPARAM3> 2
复制代码
页: 1 [2] 3
查看完整版本: 懒得动手,也没有思路,悬赏个脚本!