//===== rAthena Script ======================================= //= วาปเปิดเมืองใหม่ตามเวลา //===== Description: ========================================= //= ใช้ล็อกวาป new_1-1 <-> new_1-2 และเปิดให้เข้าได้เมื่อถึงเวลาที่กำหนด //= ให้ใช้ script OnTouch นี้แทน warp ปกติ เพื่อกันผู้เล่นเดินเข้าก่อนเวลา //============================================================ // วาปเดิม: // new_1-1,148,112,0 warp newwarp6001a 2,2,new_1-2,100,9 // new_1-2,100,6,0 warp newwarp6002a 2,2,new_1-1,144,112 new_1-1,148,112,0 script newwarp6001a -1,2,2,{ OnTouch: if ($NewServerWarpOpen) { warp "new_1-2",100,9; end; } dispbottom "[ประตูเมืองใหม่] ยังไม่ถึงเวลาเปิดวาป กรุณารอถึงวันที่ " + gettimestr("%Y-%m-%d เวลา %H:%M:%S",64,$NewServerWarpOpenTime) + " น."; warp "new_1-1",135,112; end; } new_1-2,100,6,0 script newwarp6002a -1,2,2,{ OnTouch: if ($NewServerWarpOpen) { warp "new_1-1",144,112; end; } dispbottom "[ประตูเมืองใหม่] ยังไม่ถึงเวลาเปิดวาป กรุณารอถึงวันที่ " + gettimestr("%Y-%m-%d เวลา %H:%M:%S",64,$NewServerWarpOpenTime) + " น."; warp "new_1-2",100,2; end; } - script NewServerWarpController -1,{ OnInit: // พ.ศ. 2569-07-01 เวลา 18:00:00 = ค.ศ. 2026-07-01 เวลา 18:00:00 // Unix timestamp นี้อ้างอิงเวลาไทย (UTC+7): 2026-07-01 18:00:00 .OpenTime = 1782903600; .Name$ = "ประตูเมืองใหม่"; $NewServerWarpOpenTime = .OpenTime; $NewServerWarpOpen = (gettimetick(2) >= .OpenTime); setarray .NoticeSec[0],1800,1200,600,300,30,10,9,8,7,6,5,4,3,2,1; for (.@i = 0; .@i < getarraysize(.NoticeSec); .@i++) .NoticeDone[.@i] = 0; if (!$NewServerWarpOpen) { setnpctimer 0; initnpctimer; } else { stopnpctimer; } end; OnTimer1000: stopnpctimer; .@left = .OpenTime - gettimetick(2); if (.@left <= 0) { if (!$NewServerWarpOpen) { $NewServerWarpOpen = 1; announce "[" + .Name$ + "] ประตูเมืองใหม่เปิดแล้ว! สามารถเดินเข้าวาปได้เลย",bc_all|bc_blue; } end; } for (.@i = 0; .@i < getarraysize(.NoticeSec); .@i++) { if (.NoticeDone[.@i]) continue; if (.@left <= .NoticeSec[.@i]) { .NoticeDone[.@i] = 1; callsub S_AnnounceNotice,.NoticeSec[.@i]; } } setnpctimer 0; initnpctimer; end; S_AnnounceNotice: .@sec = getarg(0); if (.@sec >= 60) { announce "[" + .Name$ + "] อีก " + (.@sec / 60) + " นาที ประตูเมืองใหม่จะเปิด เตรียมตัวให้พร้อม!",bc_all|bc_blue; } else { if (.@sec > 10) announce "[" + .Name$ + "] อีก " + .@sec + " วินาที ประตูเมืองใหม่จะเปิด!",bc_all|bc_blue; else announce "[" + .Name$ + "] " + .@sec + "...",bc_all|bc_blue; } return; }