在传奇版本架设中,GOM(Game Oriented Mapper)登陆器被广泛使用。而在许多情况下,为了提高游戏体验,需要实现领取沙城给予的脚本,并能够自动区分新老区。本文将介绍如何通过编写脚本和设置变量来实现这一目标。
一、领取脚本
首先,需要编写一个领取脚本,用于实现领取沙城给予的功能。该脚本可以通过以下代码实现:
bash
@echo off
setlocal enabledelayedexpansion
set “server=%1”
set “user=%2”
set “password=%3”
set “item=%4”
set “count=%5”
echo 连接服务器…
net use \\%server% /user:%user% %password% >nul
if %errorlevel% neq 0 (
echo 连接服务器失败!
exit /b
)
echo 领取物品…
for /l %%i in (1,1,%count%) do (
echo 领取第%%i个物品…
set /a “num=!random! %% %item%”
echo !num! > WScript.StdOut.Write(fread(0,1,”data\\server\\!num!”)) >nul
)
echo 领取完成!
net use \\%server% /delete >nul
该脚本需要传入五个参数:服务器名称、用户名、密码、物品编号和领取数量。它首先尝试连接到服务器,如果连接失败则输出错误信息并退出。如果连接成功,则开始领取物品。它通过循环随机生成一个物品编号,并将其写入服务器的对应文件中。循环的次数由领取数量决定。最后,脚本断开与服务器的连接并输出完成信息。
二、区分新老区
在传奇版本中,新老区的区分可以通过检查服务器的文件夹名称来实现。通常来说,新区文件夹的名称中会包含日期后缀,而老区文件夹的名称中不会包含日期后缀。因此,我们可以通过编写一个批处理脚本来实现自动区分新老区。以下是该脚本的示例代码:
bash
@echo off
setlocal enabledelayedexpansion
set “server=%1”
if exist “\\%server%\data\server\%server%新区” (
set “type=新区”
) else (
set “type=老区”
)
echo 服务器类型:%type%
()
%100
[@main]
#act
OPENMERCHANTBIGDLG 0 1799 1 4 0 0 0
#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
EQUAL A77 老区
#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
HOUR 22 22
MIN 00 59
#act
MOV N$额外给予 0
MOV N$基础给予 20000000
#elseact
messagebox 城主给予领取时间在22.00-23.00之间!
CLOSE
BREAK
#IF
LARGE G8 9
#ACT
MOV N$额外给予 188
#IF
LARGE G8 19
#ACT
MOV N$额外给予 288
#IF
LARGE G8 29
#ACT
MOV N$额外给予 388
#IF
LARGE G8 39
#ACT
MOV N$额外给予 588
#IF
LARGE G8 49
#ACT
MOV N$额外给予 888
#IF
LARGE G8 99
#ACT
MOV N$额外给予 1888
#IF
LARGE G8 199
#ACT
MOV N$额外给予 3888
#IF
LARGE G8 299
#ACT
MOV N$额外给予 8888
#IF
CHECKLEVELEX > 0
#ACT
MOV A77 老区
GAMEGOLD + <$STR(N$基础给予)>
GAMEPOINT + <$STR(N$额外给予)>
ADDGUILDLIST ..\QuestDiary\Market\沙给予名单.txt
SENDMSG 0 (*)恭喜伟大的沙巴克城主[<$USERNAME>]领取了新区的攻城给予[<$STR(N$基础给予)>元宝]、人数达到[<$STR(G8)>人]额外给予R点[<$STR(N$额外给予)>]
SENDMSG 0 (*)恭喜伟大的沙巴克城主[<$USERNAME>]领取了新区的攻城给予[<$STR(N$基础给予)>元宝]、人数达到[<$STR(G8)>人]额外给予R点[<$STR(N$额外给予)>]
SENDMSG 0 (*)恭喜伟大的沙巴克城主[<$USERNAME>]领取了新区的攻城给予[<$STR(N$基础给予)>元宝]、人数达到[<$STR(G8)>人]额外给予R点[<$STR(N$额外给予)>]
SENDMSG 0 (*)恭喜伟大的沙巴克城主[<$USERNAME>]领取了新区的攻城给予[<$STR(N$基础给予)>元宝]、人数达到[<$STR(G8)>人]额外给予R点[<$STR(N$额外给予)>]
SENDMSG 0 (*)恭喜伟大的沙巴克城主[<$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
HOUR 22 22
MIN 00 59
#act
MOV N$基础给予 10000000
#elseact
messagebox 城主给予领取时间在22.00-23.00之间!
CLOSE
BREAK
#IF
CHECKLEVELEX > 0
#ACT
GAMEGOLD + <$STR(N$基础给予)>
ADDGUILDLIST ..\QuestDiary\Market\沙给予名单.txt
SENDMSG 0 (*)恭喜伟大的沙巴克城主[<$USERNAME>]领取了老区的攻城给予[<$STR(N$基础给予)>元宝]
SENDMSG 0 (*)恭喜伟大的沙巴克城主[<$USERNAME>]领取了老区的攻城给予[<$STR(N$基础给予)>元宝]
SENDMSG 0 (*)恭喜伟大的沙巴克城主[<$USERNAME>]领取了老区的攻城给予[<$STR(N$基础给予)>元宝]
SENDMSG 0 (*)恭喜伟大的沙巴克城主[<$USERNAME>]领取了老区的攻城给予[<$STR(N$基础给予)>元宝]
SENDMSG 0 (*)恭喜伟大的沙巴克城主[<$USERNAME>]领取了老区的攻城给予[<$STR(N$基础给予)>元宝]
messagebox 恭喜你成功领取<$STR(N$基础给予)>元宝!
break
close