171 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			171 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| /*
 | |
| 文件名:LaunchAnnouncement.nut
 | |
| 路径:Plugins/LaunchAnnouncement/LaunchAnnouncement.nut
 | |
| 创建日期:2023-08-21	12:52
 | |
| 文件用途:上线公告
 | |
| */
 | |
| 
 | |
| class LaunchAnnouncementC extends BasicsDrawTool {
 | |
| 
 | |
|     //公告组
 | |
|     NotiArr = null;
 | |
|     Timer = null;
 | |
| 
 | |
|     //收到信息包
 | |
|     function LaunchAnnouncementCallBack(Chunk) {
 | |
| 
 | |
|         local Buffer = Json_STL("CheckLaunchAnnouncementCallBack");
 | |
|         Buffer.Parse(Chunk, 0, false);
 | |
|         local RootTab = getroottable();
 | |
|         if (RootTab.rawin("Lenheart_LaunchAnnouncementCObj")) {
 | |
|             local Tobj = RootTab["Lenheart_LaunchAnnouncementCObj"];
 | |
| 
 | |
|             local ArrBuf = Tobj.NotiArr;
 | |
|             local T = {
 | |
|                 NotiStrR = Buffer.Get("NotiStrR"),
 | |
|                 NotiStrG = Buffer.Get("NotiStrG"),
 | |
|                 NotiStrB = Buffer.Get("NotiStrB"),
 | |
|                 NotiStrA = Buffer.Get("NotiStrA"),
 | |
|                 NotiStrXpos = Buffer.Get("NotiStrXpos"),
 | |
|                 NotiStrYpos = Buffer.Get("NotiStrYpos"),
 | |
|                 //对应的话语
 | |
|                 NotiStr = Buffer.Get("NotiStr"),
 | |
|                 //对应话语渐入时间
 | |
|                 NotiStrUpTime = Buffer.Get("NotiStrUpTime"),
 | |
|                 //对应话语显示时间
 | |
|                 NotiStrPrintTime = Buffer.Get("NotiStrPrintTime"),
 | |
|                 //对应话语渐出时间
 | |
|                 NotiStrDownTime = Buffer.Get("NotiStrDownTime"),
 | |
|                 //对应出现的Img路径
 | |
|                 ImgPath = Buffer.Get("ImgPath"),
 | |
|                 //对应出现的Img帧数
 | |
|                 ImgFrame = Buffer.Get("ImgFrame"),
 | |
|                 ImgXpos = Buffer.Get("ImgXpos"),
 | |
|                 ImgYpos = Buffer.Get("ImgYpos"),
 | |
|                 //对应出现的Img渐入时间
 | |
|                 ImgUpTime = Buffer.Get("ImgUpTime"),
 | |
|                 //对应出现的Img渐出时间
 | |
|                 ImgDownTime = Buffer.Get("ImgDownTime"),
 | |
|             }
 | |
|             ArrBuf.append(T);
 | |
|             Tobj.NotiArr = ArrBuf;
 | |
|         }
 | |
| 
 | |
|     }
 | |
| 
 | |
|     function SendUp() {
 | |
|         local T = {
 | |
|             op = 20053001,
 | |
|         }
 | |
|         local str = Json.Encode(T);
 | |
|         L_sq_SendPackType(130);
 | |
|         L_sq_SendPackWChar(str);
 | |
|         L_sq_SendPack();
 | |
|     }
 | |
| 
 | |
|     constructor() {
 | |
|         Timer = TimeSTL("LaunchAnnouncementCTimer" + Clock(), 60000);
 | |
| 
 | |
|         NotiArr = [];
 | |
| 
 | |
|         SendUp();
 | |
|         Pack_Control.rawset(20053002, LaunchAnnouncementCallBack);
 | |
|         /*
 | |
|         Timer = TimeSTL("LaunchAnnouncementCTimer" + Clock(), 60000);
 | |
|         local T = {
 | |
|             NotiStrR = 230,
 | |
|             NotiStrG = 200,
 | |
|             NotiStrB = 155,
 | |
|             NotiStrA = 250,
 | |
|             NotiStrXpos = 300,
 | |
|             NotiStrYpos = 305,
 | |
|             //对应的话语
 | |
|             NotiStr = "这是一段测试文本",
 | |
|             //对应话语渐入时间
 | |
|             NotiStrUpTime = 320,
 | |
|             //对应话语显示时间
 | |
|             NotiStrPrintTime = 1000,
 | |
|             //对应话语渐出时间
 | |
|             NotiStrDownTime = 1000,
 | |
|             //对应出现的Img路径
 | |
|             ImgPath = "common/announcement/leveche_cutscene.ani",
 | |
|             //对应出现的Img帧数
 | |
|             ImgFrame = 99999999,
 | |
|             ImgXpos = 0,
 | |
|             ImgYpos = 200,
 | |
|             //对应出现的Img渐入时间
 | |
|             ImgUpTime = 0,
 | |
|             //对应出现的Img渐出时间
 | |
|             ImgDownTime = 0,
 | |
|         }
 | |
|         NotiArr.append(T);
 | |
|         */
 | |
|     }
 | |
| 
 | |
| 
 | |
|     function Proc(obj) {
 | |
| 
 | |
|     }
 | |
| 
 | |
|     function Draw(obj) {
 | |
| 
 | |
|         if (NotiArr.len() > 0) {
 | |
|             local T = NotiArr[0];
 | |
| 
 | |
|             if (Timer.Get() == false || Timer.Get() == 60000) {
 | |
|                 Timer.Start();
 | |
|             }
 | |
|             if (Timer.Get() != false && Timer.Get() > 0) {
 | |
| 
 | |
|                 local Ani = null;
 | |
|                 if (T.ImgFrame == 99999999) {
 | |
|                     Ani = T_DrawDynamicAni(obj, T.ImgPath, T.ImgXpos, T.ImgYpos, T.ImgPath);
 | |
|                 }
 | |
| 
 | |
|                 if (Timer.Get() > (T.NotiStrPrintTime + T.NotiStrUpTime + T.NotiStrDownTime)) {
 | |
|                     Timer.Reset();
 | |
|                     if (Ani) sq_Rewind(Ani);
 | |
|                     NotiArr.remove(0);
 | |
|                     return;
 | |
|                 }
 | |
| 
 | |
| 
 | |
|                 local AlaphValue;
 | |
|                 //如果时间小于 文字渐入时间
 | |
|                 if (Timer.Get() <= T.NotiStrUpTime) {
 | |
|                     AlaphValue = sq_GetUniformVelocity(0, T.NotiStrA, Timer.Get(), T.NotiStrUpTime);
 | |
|                 }
 | |
|                 if (Timer.Get() > T.NotiStrUpTime && Timer.Get() <= (T.NotiStrPrintTime + T.NotiStrUpTime)) {
 | |
|                     AlaphValue = T.NotiStrA;
 | |
|                 }
 | |
|                 if (Timer.Get() > (T.NotiStrPrintTime + T.NotiStrUpTime) && Timer.Get() <= (T.NotiStrPrintTime + T.NotiStrUpTime + T.NotiStrDownTime)) {
 | |
|                     AlaphValue = sq_GetUniformVelocity(T.NotiStrA, 0, Timer.Get(), (T.NotiStrPrintTime + T.NotiStrUpTime + T.NotiStrDownTime));
 | |
|                 }
 | |
| 
 | |
|                 L_sq_DrawCode(T.NotiStr, T.NotiStrXpos, T.NotiStrYpos, sq_RGBA(T.NotiStrR, T.NotiStrG, T.NotiStrB, AlaphValue), 1, 1);
 | |
|             }
 | |
| 
 | |
| 
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| function Lenheart_LaunchAnnouncement(obj) {
 | |
|     local RootTab = getroottable();
 | |
|     if (!RootTab.rawin("Lenheart_LaunchAnnouncementCObj")) {
 | |
|         local Cobj = LaunchAnnouncementC();
 | |
|         RootTab.rawset("Lenheart_LaunchAnnouncementCObj", Cobj);
 | |
|     } else {
 | |
|         RootTab["Lenheart_LaunchAnnouncementCObj"].Proc(obj);
 | |
|         RootTab["Lenheart_LaunchAnnouncementCObj"].Draw(obj);
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 | |
| if (getroottable().rawin("LenheartFuncTab")) {
 | |
|     getroottable()["LenheartFuncTab"].rawset("Lenheart_LaunchAnnouncementFunc", Lenheart_LaunchAnnouncement);
 | |
| } else {
 | |
|     local T = {};
 | |
|     T.rawset("Lenheart_LaunchAnnouncementFunc", Lenheart_LaunchAnnouncement);
 | |
|     getroottable().rawset("LenheartFuncTab", T);
 | |
| } |