找回密码
 立即注册
查看: 285|回复: 28

懒得动手,也没有思路,悬赏个脚本!

[复制链接]

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
发表于 2026-3-27 18:27:02 | 显示全部楼层 |阅读模式
要求:全服有30+地图,每个地图里有个传送石头,
第一次去点一下就可以激活该地图的传送石头,然后下次就可以直接传送到这里。
没有激活的地图,传送列表里面将无法显示!
脚本要求:不会又长又臭就行,最好是用文本保存变量或者T变量最好。

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 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

复制代码

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 18:27:02 | 显示全部楼层
不知道下图这样满意不满意?有多少个显示多少个,没有显示还没标记,每5个分行:



脚本如下:
1.添加坐标的脚本:
[@main]
#IF
#ACT
MOV S$名称 盟重
MOV N$坐标X 110
MOV N$坐标Y 150
#IF
GetStringPosEX ..\\QuestDiary\\<$USERNAME>传送.txt <$STR(S$名称)> N1 S2 0
#ACT
SENDMSG 6 坐标已存在
#ELSEACT
AddTextListEx ..\\QuestDiary\\<$USERNAME>传送.txt <$STR(S$名称)>:<$MAP>:<$STR(N$坐标X)>:<$STR(N$坐标Y)>
SENDMSG 6 坐标添加完成
2.显示移动的脚本:
[@main]
#IF
#ACT
GetTextLineCount ..\\QuestDiary\\<$USERNAME>传送.txt N$行数
#IF
LARGE N$行数 0
#ELSEACT
MOV S$内容 你还没做任何标记,无法传送。
#ACT
MOV N1 0
MOV P1 0
MOV S$内容 \"\"
LOOPGOTO @显示 <$STR(N$行数)>
#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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 18:27:02 | 显示全部楼层
[@main]
随机激活地图:<激活/@激活>\\ \\
直接传送地图:<传送/@传送>
[@激活]
#IF
#ACT
MOVR N1 1 31
MOV T1 地图<$STR(N1)>
MESSAGEBOX 成功激活了<$STR(N1)>号地图!
BREAK
[@传送]
#IF
#ACT
MAP <$STR(T1)>
BREAK

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 18:27:02 | 显示全部楼层
菜鸟会读书 发表于 2022-6-11 12:33 [@main]
随机激活地图:\\ \\
直接传送地图:
简单高效啊.

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 18:27:02 | 显示全部楼层
菜鸟会读书 发表于 2022-6-11 12:33 [@main]
随机激活地图:\\ \\
直接传送地图:
是不是理解错了呀  不是随机的
    [@传送石头]
    传送祭坛可以传送你已经抵达的地方,瞬间即达\\
    <$STR(S21)>   <$STR(S22)>   <$STR(S23)>   <$STR(S24)>   <$STR(S25)> \\
    <$STR(S26)>   <$STR(S27)>   <$STR(S28)>   <$STR(S29)>   <$STR(S30)> \\
    <$STR(S31)>   <$STR(S32)>   <$STR(S33)>   <$STR(S34)>   <$STR(S35)> \\
    <$STR(S36)>   <$STR(S37)>   <$STR(S38)>   <$STR(S39)>   <$STR(S40)> \\
    <$STR(S41)>   <$STR(S42)>   <$STR(S43)>   \\

复制代码
补充内容 (2022-6-11 13:54):
是不是理解错了呀  不是随机的,我要弄个类似传送点的  每个地图都有一个传送点,但是没去过的不显示,只有去过一次且点击过这个传送点的才会显示,这个是我写的一部分 但是比较麻烦,所以想弄个简单高效一点的

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 18:27:02 | 显示全部楼层
建议你玩一下暗黑

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 18:27:02 | 显示全部楼层
wzs221122 发表于 2022-6-11 13:52 是不是理解错了呀  不是随机的
你这挺简单的啊,每个角色弄个文本文件,每点过一个传送点就把坐标加进去。然后点开传送石的时候就读取并显示这个文件上面记录的所有坐标,点击就过去了啊。

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 18:27:02 | 显示全部楼层
[@传送石头]
传送祭坛可以传送你已经抵达的地方,瞬间即达\\
<地图一/@传送(<$STR(T1)>)>   <地图二/@传送(<$STR(T2)>)>  <地图三/@传送(<$STR(T3)>)>\\
[@传送]
#IF
not EQUAL <$SCRIPTPARAM1>
#ACT
map <$SCRIPTPARAM1> <$SCRIPTPARAM2> <$SCRIPTPARAM3>
#ELSEACT
MESSAGEBOX 提示:你还没有激活此地图
BREAK
地图传送石头触发:
#IF
EQUAL T1
#ACT
MOV T1 <$MAP>,<$x>,<$y>
MESSAGEBOX 提示:你现在可以通过传送祭坛直达此地了
BREAK

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 18:27:02 | 显示全部楼层
如果你想要不显示未激活地图 就这样

[@传送石头]
#IF
not EQUAL T1
#ACT
MOV S$地图1 <地图一/@传送(<$STR(T1)>)>

#IF
not EQUAL T2
#ACT
MOV S$地图2 <地图二/@传送(<$STR(T2)>)>

#IF
not EQUAL T3
#ACT
MOV S$地图3 <地图二/@传送(<$STR(T3)>)>

#IF
#ACT
#SAY
传送祭坛可以传送你已经抵达的地方,瞬间即达\\
<$STR(S$地图1)>    <$STR(S$地图2)>    <$STR(S$地图3)> \\

[@传送]
#IF
not EQUAL <$SCRIPTPARAM1>
#ACT
map <$SCRIPTPARAM1> <$SCRIPTPARAM2> <$SCRIPTPARAM3>
#ELSEACT
MESSAGEBOX 提示:你还没有激活此地图
BREAK

© 2026 折翼天使社区 版权所有