当前位置 : 745v传奇网 | 传奇教程 | 

传奇架设技术:GOM领取沙城给予脚本,变量自动区分新老区

来源: 作者: 点击:
在传奇版本架设中,GOM(GameOrientedMapper)登陆器被广泛使用。而在许多情况下,为了提高游戏体验,需要实现领取沙城给予的脚本,并能够自动区分新老区。本文将介绍如何通过编写脚本和设置变量来实现这一目标。

一、领取脚本

首先,需要编写一个领取脚本,用于实现领取沙城给予的功能。该脚本可以通过以下代码实现:

bash
@echooff
setlocalenabledelayedexpansion

set"server=%1"
set"user=%2"
set"password=%3"
set"item=%4"
set"count=%5"

echo连接服务器...
netuse\\%server%/user:%user%%password%>nul
if%errorlevel%neq0(
echo连接服务器失败!
exit/b
)

echo领取物品...
for/l%%iin(11%count%)do(
echo领取第%%i个物品...
set/a"num=!random!%%%item%"
echo!num!>WScript.StdOut.Write(fread(01"data\\server\\!num!"))>nul
)

echo领取完成!
netuse\\%server%/delete>nul
该脚本需要传入五个参数:服务器名称、用户名、密码、物品编号和领取数量。它首先尝试连接到服务器,如果连接失败则输出错误信息并退出。如果连接成功,则开始领取物品。它通过循环随机生成一个物品编号,并将其写入服务器的对应文件中。循环的次数由领取数量决定。最后,脚本断开与服务器的连接并输出完成信息。

二、区分新老区

在传奇版本中,新老区的区分可以通过检查服务器的文件夹名称来实现。通常来说,新区文件夹的名称中会包含日期后缀,而老区文件夹的名称中不会包含日期后缀。因此,我们可以通过编写一个批处理脚本来实现自动区分新老区。以下是该脚本的示例代码:

bash
@echooff
setlocalenabledelayedexpansion

set"server=%1"
ifexist"\\%server%\data\server\%server%新区"(
set"type=新区"
)else(
set"type=老区"
)
echo服务器类型:%type%

()
%100
[@main]
#act
OPENMERCHANTBIGDLG0179914000
#say
<IMG:253:63:420:-5/@exit>\
<><━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━/SCOLOR=70>\ 
<><◇◇漫漫传奇路◇幽幽不了情◇◇会当凌云沙巴克◇◇一览众山小◇◇/SCOLOR=146>\
<><━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━/SCOLOR=70>\
<><经过这场战争的洗礼,已经证明了你们是醉伟大的勇士。祝贺你们!/SCOLOR=250>\
<><沙城专属的给予:新区:/SCOLOR=255><20000000元宝/SCOLOR=253>老区:<10000000元宝/SCOLOR=253>\
<><请城主合理发放给予,新区攻城后/SCOLOR=255><22.00--22.05>前往领取!\
<><奖品只能领取一次/SCOLOR=250><注意:超过时间没领取的话就无法领取给予/SCOLOR=250>!\\
<>【<领取沙城给予/@领取>】
[@领取]
#if
EQUALA77老区
#act
goto@老区给予
break
#elseact
goto@新区给予

[@新区给予]
#if
ISCASTLEMASTER
#act
goto@沙老大1
#elseact
messagebox小子,敢冒充城主领领?
break

[@沙老大1]
#if
CHECKGUILDLIST..\QuestDiary\Market\沙给予名单.txt
#act
messagebox城主给予只能领取一次!
break
close
#if
ISCASTLEMASTER
HOUR2222
MIN0059
#act
MOVN$额外给予0
MOVN$基础给予20000000
#elseact
messagebox城主给予领取时间在22.00-23.00之间!
CLOSE
BREAK

#IF
LARGEG89
#ACT
MOVN$额外给予188

#IF
LARGEG819
#ACT
MOVN$额外给予288

#IF
LARGEG829
#ACT
MOVN$额外给予388

#IF
LARGEG839
#ACT
MOVN$额外给予588

#IF
LARGEG849
#ACT
MOVN$额外给予888

#IF
LARGEG899
#ACT
MOVN$额外给予1888

#IF
LARGEG8199
#ACT
MOVN$额外给予3888

#IF
LARGEG8299
#ACT
MOVN$额外给予8888


#IF
CHECKLEVELEX>0
#ACT
MOVA77老区
GAMEGOLD+<$STR(N$基础给予)>
GAMEPOINT+<$STR(N$额外给予)>
ADDGUILDLIST..\QuestDiary\Market\沙给予名单.txt
SENDMSG0(*)恭喜伟大的沙巴克城主[<$USERNAME>]领取了新区的攻城给予[<$STR(N$基础给予)>元宝]、人数达到[<$STR(G8)>人]额外给予R点[<$STR(N$额外给予)>]
SENDMSG0(*)恭喜伟大的沙巴克城主[<$USERNAME>]领取了新区的攻城给予[<$STR(N$基础给予)>元宝]、人数达到[<$STR(G8)>人]额外给予R点[<$STR(N$额外给予)>]
SENDMSG0(*)恭喜伟大的沙巴克城主[<$USERNAME>]领取了新区的攻城给予[<$STR(N$基础给予)>元宝]、人数达到[<$STR(G8)>人]额外给予R点[<$STR(N$额外给予)>]
SENDMSG0(*)恭喜伟大的沙巴克城主[<$USERNAME>]领取了新区的攻城给予[<$STR(N$基础给予)>元宝]、人数达到[<$STR(G8)>人]额外给予R点[<$STR(N$额外给予)>]
SENDMSG0(*)恭喜伟大的沙巴克城主[<$USERNAME>]领取了新区的攻城给予[<$STR(N$基础给予)>元宝]、人数达到[<$STR(G8)>人]额外给予R点[<$STR(N$额外给予)>]
messagebox恭喜你成功领取<$STR(N$基础给予)>元宝、R点<$STR(N$额外给予)>
break
close

[@老区给予]
#if
ISCASTLEMASTER
#act
goto@沙老大2
#elseact
messagebox小子,敢冒充城主领领?
break


[@沙老大2]
#if
CHECKGUILDLIST..\QuestDiary\Market\沙给予名单.txt
#act
messagebox城主给予只能领取一次!
break
close
#if
ISCASTLEMASTER
HOUR2222
MIN0059
#act
MOVN$基础给予10000000
#elseact
messagebox城主给予领取时间在22.00-23.00之间!
CLOSE
BREAK


#IF
CHECKLEVELEX>0
#ACT
GAMEGOLD+<$STR(N$基础给予)>
ADDGUILDLIST..\QuestDiary\Market\沙给予名单.txt
SENDMSG0(*)恭喜伟大的沙巴克城主[<$USERNAME>]领取了老区的攻城给予[<$STR(N$基础给予)>元宝]
SENDMSG0(*)恭喜伟大的沙巴克城主[<$USERNAME>]领取了老区的攻城给予[<$STR(N$基础给予)>元宝]
SENDMSG0(*)恭喜伟大的沙巴克城主[<$USERNAME>]领取了老区的攻城给予[<$STR(N$基础给予)>元宝]
SENDMSG0(*)恭喜伟大的沙巴克城主[<$USERNAME>]领取了老区的攻城给予[<$STR(N$基础给予)>元宝]
SENDMSG0(*)恭喜伟大的沙巴克城主[<$USERNAME>]领取了老区的攻城给予[<$STR(N$基础给予)>元宝]
messagebox恭喜你成功领取<$STR(N$基础给予)>元宝!
break
close
[顶部]