用于战神引擎按星期几、按周签到领取奖品的npc脚本,之前更新的2个签到脚本,都是按月的打卡的,如果忘记签到,可以用元宝购买补全之前遗漏的时间,但这个按周的不行,脚本是明文版,可以任意修改里面的奖品内容。
部分脚本
program mir2; procedure _exit; begin This_NPC.CloseDialog(This_Player); end; procedure domain; begin This_NPC.NpcDialog(This_Player, '<七天签到,每天的奖励都不一样/fcolor=250>'+ '|<每周的满签就可能比别人更强哦/fcolor=250>'+ '<满签大量金刚石材料元宝经验请保留20背包位置/fcolor=250>'+ '{cmd}|<周一签到/@riq~1> ^<周二签到/@riq~2>'+ '{cmd}|<周三签到/@riq~3> ^<周四签到/@riq~4>'+ '{cmd}|<周五签到/@riq~5> ^<周六签到/@riq~6>'+ '{cmd}|<周日签到/@riq~7> ^<满签大礼包/@manqian>'+ '{cmd}|<退出/@exit> ' ); end; procedure _manqian; var znum : integer; begin znum := This_Player.GetV(18,1); if znum = 7 then begin if This_Player.GetV(18,2) < 1 then begin This_Player.Give('经验',30000000); This_Player.Give('金刚石',20); This_Player.Give('书页',5); This_Player.Give('羽毛',50); This_Player.Give('升官凭证',5); This_Player.Give('转生石',5); This_Player.Give('5000元宝',1); This_Player.SetV(18,2,1); This_Player.SetV(18,1,0); ServerSay('恭喜玩家'+ This_Player.Name +'签到七天领取了满签大礼包',0); end else This_NPC.NpcDialog(This_Player,'抱歉,你已经领取过了'+'<返回/@main>'); end else This_NPC.NpcDialog(This_Player,'抱歉,你没有签到够七天'+'<返回/@main>'); end; procedure _riq(str : string); var time1,time2,time3,time4,time5,time6,time7 : integer; num1,num2,num3,num4,num5,num6,num7,znum : integer; begin znum := This_Player.GetV(18,1); if strtoint(str) = 1 then begin time1 := GetDateNum(GetNow); if This_Player.GetV(17,1) <> time1 then begin This_Player.SetV(17,1,time1); This_Player.SetV(16,1,0); end; num1 := This_Player.GetV(16,1); if (GetDayOfWeek = 1) and (GetHour < 24) then begin if This_Player.FreeBagNum > 0 then begin if num1 < 1 then begin This_Player.Give('经验',5000000); This_Player.Give('金刚石',1); This_Player.Give('书页',5); This_Player.SetV(16,1,num1+100); This_Player.SetV(18,1,znum + 1); ServerSay('恭喜玩家'+ This_Player.Name +'完成了周一签到',0); end else This_NPC.NpcDialog(This_Player,'抱歉,你已经领取过了'+'<返回/@main>'); end else This_NPC.NpcDialog(This_Player,'抱歉,你背包满了'+'<返回/@main>'); end else This_NPC.NpcDialog(This_Player,'抱歉,还没到领取时间或领取时间已过'+'<返回/@main>'); end else if strtoint(str) = 2 then begin time2 := GetDateNum(GetNow); if This_Player.GetV(17,2) <> time2 then begin This_Player.SetV(17,2,time2); This_Player.SetV(16,2,0); end; num2 := This_Player.GetV(16,2); if (GetDayOfWeek = 2) and (GetHour < 24) then begin if This_Player.FreeBagNum > 1 then begin if num2 < 1 then begin This_Player.Give('经验',5000000); This_Player.Give('金刚石',2); This_Player.Give('书页',10); This_Player.SetV(16,2,num2+100); This_Player.SetV(18,1,znum + 1); ServerSay('恭喜玩家'+ This_Player.Name +'完成了周二签到',0); end else This_NPC.NpcDialog(This_Player,'抱歉,你已经领取过了'+'<返回/@main>'); end else This_NPC.NpcDialog(This_Player,'抱歉,你背包满了'+'<返回/@main>'); end else This_NPC.NpcDialog(This_Player,'抱歉,还没到领取时间或领取时间已过'+'<返回/@main>'); end else if strtoint(str) = 3 then begin time3 := GetDateNum(GetNow); if This_Player.GetV(17,3) <> time3 then begin This_Player.SetV(17,3,time3); This_Player.SetV(16,3,0); end; num3 := This_Player.GetV(16,3); if (GetDayOfWeek = 3) and (GetHour < 24) then begin if This_Player.FreeBagNum > 2 then begin if num3 < 1 then begin This_Player.Give('经验',5000000); This_Player.Give('金刚石',3); This_Player.Give('书页',15); This_Player.SetV(16,3,num3+100); This_Player.SetV(18,1,znum + 1); ServerSay('恭喜玩家'+ This_Player.Name +'完成了周三签到',0); end else This_NPC.NpcDialog(This_Player,'抱歉,你已经领取过了'+'<返回/@main>'); end else This_NPC.NpcDialog(This_Player,'抱歉,你背包满了'+'<返回/@main>'); end else This_NPC.NpcDialog(This_Player,'抱歉,还没到领取时间或领取时间已过'+'<返回/@main>'); end else if strtoint(str) = 4 then begin time4 := GetDateNum(GetNow); if This_Player.GetV(17,4) <> time4 then begin This_Player.SetV(17,4,time4); This_Player.SetV(16,4,0); end; num4 := This_Player.GetV(16,4); if (GetDayOfWeek = 4) and (GetHour < 24) then begin if This_Player.FreeBagNum > 3 then begin if num4 < 1 then begin This_Player.Give('经验',5000000); This_Player.Give('金刚石',4); This_Player.Give('书页',20); This_Player.SetV(16,4,num4+100); This_Player.SetV(18,1,znum + 1); ServerSay('恭喜玩家'+ This_Player.Name +'完成了周四签到',0); end else This_NPC.NpcDialog(This_Player,'抱歉,你已经领取过了'+'<返回/@main>'); end else This_NPC.NpcDialog(This_Player,'抱歉,你背包满了'+'<返回/@main>'); end else This_NPC.NpcDialog(This_Player,'抱歉,还没到领取时间或领取时间已过'+'<返回/@main>'); end else