帖子状态  
本帖子共有 5 位阅读者, 0 个回复.
  • 回复
1条记录

adppk

管理员
帖子
210 
金钱
1599 
魅力
1599 
威望
1909 
注册
2020-02-25 
adppk 发表于 2020-03-01 13:00   
传奇地图记时脚本
这个脚本其实利用的就是 游戏点计算法,进入地图前NPC送多少游戏点,进入地图后开始减游戏点
从而达到时间计算脚本,然后利用机器人,在快到时间的同时给人弹窗续费。

首先到地图数据库中找到相应的幻境地图加上以下两个时间计算脚本  DARK   DECGAMEPOINT(60/1)
其中(60/1)的意思是说每60秒减少一点游戏点。

比如:  

[H001 幻境一层]   DARK   DECGAMEPOINT(60/1)

地图命令解释如下

DECGAMEPOINT  进入本地图后自动减游戏点 格式:DECGAMEPOINT(1/10) 说明 1/10 1代表加的间隔(秒)
10代表一次加多少点;(用于游戏泡点 功能)如果游戏币没了那么自动传回上次回城地点;


然后到QM数据库 D:\MirServer\Mir200\Envir\MapQuest_Def\QManage.txt  写下脚本


#CALL [\幻境\幻境登陆.txt] @登陆


[@OnTimer1]
#CALL [\幻境\幻境计时.txt] @计时


--------------------------------------------------------------------------------
然后到 D:\Mirserver\Mir200\Envir\QuestDiary  建立环境文件夹。
在文件夹里面添加二个文本,分别是,环境登陆.txt  环境计时.txt


在 环境登陆.txt  填写如下脚本


[@登陆]
{
#IF
IsOnMap H001
#ACT
SetScTimer 1  60
BREAK


#IF
IsOnMap H002
#ACT
SetScTimer 1  60
BREAK


#IF
IsOnMap H003
#ACT
SetScTimer 1  60
BREAK


#IF
IsOnMap H004
#ACT
SetScTimer 1  60
BREAK


#IF
IsOnMap H005
#ACT
SetScTimer 1  60
BREAK


#IF
IsOnMap H006
#ACT
SetScTimer 1  60
BREAK


#IF
IsOnMap H007
#ACT
SetScTimer 1  60
BREAK


#IF
IsOnMap H008
#ACT
SetScTimer 1  60
BREAK


#IF
IsOnMap H009
#ACT
SetScTimer 1  60
BREAK


#IF
IsOnMap H010
#ACT
SetScTimer 1  60
BREAK


#IF
IsOnMap T1061
#ACT
SetScTimer 1  60
BREAK


#IF
IsOnMap T2061
#ACT
SetScTimer 1  60
BREAK


#IF
IsOnMap T2062
#ACT
SetScTimer 1  60
BREAK


#IF
IsOnMap T2063
#ACT
SetScTimer 1  60
BREAK


#IF
IsOnMap T3061
#ACT
SetScTimer 1  60
BREAK


#IF
IsOnMap T3062
#ACT
SetScTimer 1  60
BREAK


#IF
IsOnMap T3063
#ACT
SetScTimer 1  60
BREAK


#IF
IsOnMap H102
#ACT
SetScTimer 1  60
BREAK


#IF
IsOnMap H104
#ACT
SetScTimer 1  60
BREAK


#IF
IsOnMap H105
#ACT
SetScTimer 1  60
BREAK


#IF
IsOnMap H106
#ACT
SetScTimer 1  60
BREAK
}




然后在 环境计时.txt 写下脚本


[@计时]
{
#IF
IsOnMap H001
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H002
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H003
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H004
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H005
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H006
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H007
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H008
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H009
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H010
#ACT
GOTO @报时
BREAK


#IF
IsOnMap T1061
#ACT
GOTO @报时
BREAK


#IF
IsOnMap T2061
#ACT
GOTO @报时
BREAK


#IF
IsOnMap T2062
#ACT
GOTO @报时
BREAK


#IF
IsOnMap T2063
#ACT
GOTO @报时
BREAK


#IF
IsOnMap T3061
#ACT
GOTO @报时
BREAK


#IF
IsOnMap T3062
#ACT
GOTO @报时
BREAK


#IF
IsOnMap T3063
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H102
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H104
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H105
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H106
#ACT
GOTO @报时
BREAK


#IF
#ACT
KillScTimer 1




[@报时]
#IF
CHECKGAMEPOINT > 0
CHECKGAMEPOINT < 11
#SAY
请注意,你还能在幻境停留<$GAMEPOINT>分钟!\
为了避免中途被传出幻境,请合理安排时间.\
需要继续你的幻境之旅吗?30万金币一次手续费.\
<我需要续费/@续费>  <暂时不需要/@exit>
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 20
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 30
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 40
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 50
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 60
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 70
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 80
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 90
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 100
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 110
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 120
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 130
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 140
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 150
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 160
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 170
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 0
#ACT
SENDMSG 7 %s!不好意思!时间已到!
mapmove 3 330 330
KillScTimer 1
BREAK


[@续费]
#if
checkgold 300000
#ACT
take 金币 300000
GAMEPOINT + 60
break
close
#ELSESAY
你没有50万金币用来支付我们的服务费用!\
请努力赚钱哦\ \


}[@计时]
{
#IF
IsOnMap H001
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H002
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H003
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H004
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H005
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H006
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H007
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H008
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H009
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H010
#ACT
GOTO @报时
BREAK


#IF
IsOnMap T1061
#ACT
GOTO @报时
BREAK


#IF
IsOnMap T2061
#ACT
GOTO @报时
BREAK


#IF
IsOnMap T2062
#ACT
GOTO @报时
BREAK


#IF
IsOnMap T2063
#ACT
GOTO @报时
BREAK


#IF
IsOnMap T3061
#ACT
GOTO @报时
BREAK


#IF
IsOnMap T3062
#ACT
GOTO @报时
BREAK


#IF
IsOnMap T3063
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H102
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H104
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H105
#ACT
GOTO @报时
BREAK


#IF
IsOnMap H106
#ACT
GOTO @报时
BREAK


#IF
#ACT
KillScTimer 1




[@报时]
#IF
CHECKGAMEPOINT > 0
CHECKGAMEPOINT < 11
#SAY
请注意,你还能在幻境停留<$GAMEPOINT>分钟!\
为了避免中途被传出幻境,请合理安排时间.\
需要继续你的幻境之旅吗?30万金币一次手续费.\
<我需要续费/@续费>  <暂时不需要/@exit>
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 20
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 30
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 40
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 50
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 60
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 70
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 80
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 90
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 100
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 110
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 120
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 130
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 140
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 150
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 160
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 170
#ACT
SENDMSG 7 %s!请注意,你还能在幻境停留<$GAMEPOINT>分钟!
BREAK


#IF
CHECKGAMEPOINT = 0
#ACT
SENDMSG 7 %s!不好意思!时间已到!
mapmove 3 330 330
KillScTimer 1
BREAK


[@续费]
#if
checkgold 300000
#ACT
take 金币 300000
GAMEPOINT + 60
break
close
#ELSESAY
你没有50万金币用来支付我们的服务费用!\
请努力赚钱哦\ \


}


---------------------------------------------------------------------------


NPC的脚本如下


[@main]
上古流传已久的<双倍经验>,<双倍爆率>的“幻境传说”竟然是\
真的。在幻境中还沉睡着从未出现过的宝藏!有无数的勇士\
在寻找这一箭双雕之地,进入幻境1小时需要花费10万金币\
3小时需要花费50万金币!请选择:\
选择<1小时/@1小时>  选择<3小时/@3小时>
#ELSEACT
GAMEPOINT = 0
goto @传送




[@1小时]
#if
checkgold 100000
#ACT
take 金币 100000
mapmove H001 73 67
GAMEPOINT = 60
SetScTimer 1 60
break
#ELSESAY
你没有10万金币用来支付我们的服务费用!\
请努力赚钱哦\ \


[@3小时]
#if
checkgold 500000
#ACT
take 金币 500000
mapmove H001 73 67
GAMEPOINT = 180
SetScTimer 1 60
break
#ELSESAY
你没有50万金币用来支付我们的服务费用!\
请努力赚钱哦\ \
}


脚本其中的 SetScTimer 1 60 意思详解

是人物触发了定时器,系统每60秒触发一次QManage.txt里的 [@OnTimer1]段
  • 回复
1条记录