320 lines
13 KiB
Plaintext
320 lines
13 KiB
Plaintext
/*
|
|
文件名:MarrySystem_ActionAni.nut
|
|
路径:Project/MarrySystem/MarrySystem_ActionAni.nut
|
|
创建日期:2024-10-07 19:12
|
|
文件用途:
|
|
*/
|
|
class MarrySystem_ActionAniC extends Rindro_BaseToolClass {
|
|
//调试模式
|
|
// DeBugMode = true;
|
|
|
|
//不是窗口
|
|
// NoWindow = true;
|
|
|
|
//是否可见
|
|
// Visible = false;
|
|
|
|
Flag = false;
|
|
|
|
//演出时间
|
|
ActTimer = null;
|
|
|
|
//幕布
|
|
Canvas = false;
|
|
|
|
|
|
//新郎
|
|
Groom = null;
|
|
//新娘
|
|
Bride = null;
|
|
//观众
|
|
Visitors = null;
|
|
|
|
FireworkPath = ["common/firework/chn_heart_firework_blue_dodge.ani",
|
|
"common/firework/chn_heart_firework_blue_normal.ani",
|
|
"common/firework/chn_heart_firework_pink_dodge_01.ani",
|
|
"common/firework/chn_heart_firework_pink_dodge.ani",
|
|
"common/firework/chn_heart_firework_pink_normal_01.ani",
|
|
"common/firework/chn_heart_firework_pink_normal.ani",
|
|
"common/firework/chn_heart_firework_purple_dodge.ani",
|
|
"common/firework/chn_heart_firework_purple_normal.ani",
|
|
"common/firework/chn_heart_firework_red_dodge.ani",
|
|
"common/firework/chn_heart_firework_red_normal.ani",
|
|
"common/firework/chn_heart_firework_sky_dodge_01.ani",
|
|
"common/firework/chn_heart_firework_sky_dodge.ani",
|
|
"common/firework/chn_heart_firework_sky_normal_01.ani",
|
|
"common/firework/chn_heart_firework_sky_normal.ani",
|
|
"common/firework/chn_heart_firework_yellow_dodge_01.ani",
|
|
"common/firework/chn_heart_firework_yellow_dodge.ani",
|
|
"common/firework/chn_heart_firework_yellow_normal_01.ani",
|
|
"common/firework/chn_heart_firework_yellow_normal.ani",
|
|
"common/firework/chn_heehee_firework_dodge.ani",
|
|
"common/firework/chn_heehee_firework_normal.ani"
|
|
];
|
|
|
|
FireworkAni = null;
|
|
|
|
|
|
constructor() {
|
|
Visitors = [];
|
|
FireworkAni = [];
|
|
|
|
}
|
|
|
|
function Init(Info) {
|
|
Groom = null;
|
|
//新娘
|
|
Bride = null;
|
|
//观众
|
|
Visitors = [];
|
|
ActTimer = Clock();
|
|
Canvas = false;
|
|
|
|
|
|
for (local i = 0; i< Info.len(); i++) {
|
|
local Object = {};
|
|
local InfoConfig = Info[i];
|
|
Object.Charc <- Rindro_Draw_Character(InfoConfig.job, InfoConfig.avatar, "rest.ani", null);
|
|
Object.Name <- InfoConfig.name;
|
|
if (i == 0) Groom = Object;
|
|
else if (i == 1) Bride = Object;
|
|
else {
|
|
Visitors.append(Object);
|
|
}
|
|
}
|
|
|
|
InitFirework();
|
|
|
|
Flag = true;
|
|
}
|
|
|
|
function InitFirework() {
|
|
FireworkAni = [];
|
|
for (local i = 0; i< 12; i++) {
|
|
FireworkAni.append({
|
|
ani = Rindro_Animation(FireworkPath[sq_getRandom(0, FireworkPath.len() - 1)]),
|
|
pos = {
|
|
x = sq_getRandom(0, 1066),
|
|
y = sq_getRandom(0, 800)
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
function ShowMessageBox(X, Y, STR) {
|
|
local StrDrawLen = LenheartTextClass.GetStringLength(STR);
|
|
local WLen = ((StrDrawLen - 30) / 12) + 1;
|
|
local HLen = (StrDrawLen / 110);
|
|
|
|
WLen = WLen > 7 ? 7 : WLen;
|
|
//Item信息框一般为211的宽度
|
|
L_sq_DrawImg("interface/messageballoon.img", 49, X + (30 + (WLen * 12)) * 0.7, Y + 16 + ((HLen + 1) * 13));
|
|
L_sq_DrawWindow(X, Y, 30 + (WLen * 12), 21 + (HLen * 13), "interface/messageballoon.img", 40, 9, 12, 9, 13);
|
|
//绘制字符串
|
|
local Buf = L_sq_GetStringDrawArray(STR, 123);
|
|
|
|
foreach(Line, Str in Buf) {
|
|
L_sq_DrawCode(Str, X + 8, Y + 8 + (Line * 14), sq_RGBA(255, 255, 255, 255), 0, 1);
|
|
}
|
|
}
|
|
|
|
function ShowMessageAct(CT, TimeFlag, X, Y, Str) {
|
|
if (CT >= TimeFlag && CT <= TimeFlag + 3000) {
|
|
ShowMessageBox(X, Y, Str);
|
|
}
|
|
return TimeFlag + 3000;
|
|
}
|
|
|
|
function Show(obj) {
|
|
if (!Flag) return;
|
|
local CT = Clock() - ActTimer;
|
|
|
|
DrawAuditoriumMap(obj);
|
|
|
|
//画新郎
|
|
if (Groom) {
|
|
Groom.Charc.Draw(680, 360);
|
|
}
|
|
//画新娘
|
|
if (Bride) {
|
|
Bride.Charc.Draw(686, 400);
|
|
}
|
|
|
|
//画宾客
|
|
foreach(Pos, Object in Visitors) {
|
|
Object.Charc.Draw(100 + ((Pos / 2) * 80), 350 + ((Pos % 2) * 60));
|
|
}
|
|
|
|
local TimeFlag = 5000;
|
|
TimeFlag = ShowMessageAct(CT, TimeFlag, 810, 175, format("[%s]和[%s]的婚礼现在开始!", Groom.Name, Bride.Name));
|
|
TimeFlag = ShowMessageAct(CT, TimeFlag, 810, 135, "婚姻是神圣的仪式,也是爱情和相互信任的升华,他需要的不仅是爱,更是双方一生一世的信赖。");
|
|
TimeFlag = ShowMessageAct(CT, TimeFlag, 810, 155, "在这里,我们两位新人将在来宾的见证下完成这最重要的承诺。");
|
|
TimeFlag = ShowMessageAct(CT, TimeFlag, 810, 155, "新郎,你愿意接受这个女人成为你的合法妻子并永远爱她吗?");
|
|
TimeFlag = ShowMessageAct(CT, TimeFlag, 630, 195, "是的,我愿意!");
|
|
TimeFlag = ShowMessageAct(CT, TimeFlag, 810, 155, "新娘,你愿意接受这个男人成为你的合法丈夫并永远爱他吗?");
|
|
TimeFlag = ShowMessageAct(CT, TimeFlag, 671, 215, "...");
|
|
TimeFlag = ShowMessageAct(CT, TimeFlag, 611, 215, "(害羞)我......我愿意!");
|
|
TimeFlag = ShowMessageAct(CT, TimeFlag, 810, 155, "好,我以神的名义宣布新郎新娘正式结为夫妻。");
|
|
TimeFlag = ShowMessageAct(CT, TimeFlag, 810, 155, "请所有的来宾一起祝福这对新人~");
|
|
|
|
if (CT >= TimeFlag && CT <= (TimeFlag + 5000)) {
|
|
{
|
|
L_sq_DrawImg("interface2/wedding/screenshot_bg.img", 0, 0, 0, 1, sq_RGBA(255, 255, 255, 250), getroottable().Rindro_Scr_Width / 800.0, 1.0);
|
|
for (local i = 0; i< 12; i++) {
|
|
local Info = FireworkAni[i];
|
|
Info.ani.Draw(Info.pos.x, Info.pos.y);
|
|
if (i == 11 && Info.ani.IsUsability == false) {
|
|
InitFirework();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (CT >= (TimeFlag + 5000)) {
|
|
Groom = null;
|
|
//新娘
|
|
Bride = null;
|
|
//观众
|
|
Visitors = [];
|
|
ActTimer = Clock();
|
|
Canvas = false;
|
|
Flag = false;
|
|
}
|
|
|
|
|
|
|
|
// ShowMessageBox(810, 135, "婚姻是神圣的仪式,也是爱情和相互信任的升华,他需要的不仅是爱,更是双方一生一世的信赖。");
|
|
// ShowMessageBox(810, 155, "在这里,我们两位新人将在来宾的见证下完成这最重要的承诺。");
|
|
// ShowMessageBox(810, 155, "新郎,你愿意接受这个女人成为你的合法妻子并永远爱她吗?");
|
|
// ShowMessageBox(680, 155, "是的,我愿意!");
|
|
// ShowMessageBox(810, 155, "新娘,你愿意接受这个男人成为你的合法丈夫并永远爱他吗?");
|
|
// ShowMessageBox(686, 195, "...");
|
|
// ShowMessageBox(686, 195, "(害羞)我......我愿意!");
|
|
// ShowMessageBox(810, 155, "好,我以神的名义宣布新郎新娘正式结为夫妻。");
|
|
// ShowMessageBox(810, 155, "请所有的来宾一起祝福这对新人~");
|
|
|
|
|
|
|
|
// {
|
|
// L_sq_DrawImg("interface2/wedding/screenshot_bg.img", 0, 0, 0, 1, sq_RGBA(255, 255, 255, 250), getroottable().Rindro_Scr_Width / 800.0, 1.0);
|
|
// for (local i = 0; i< 12; i++) {
|
|
// local Info = FireworkAni[i];
|
|
// Info.ani.Draw(Info.pos.x, Info.pos.y);
|
|
// if (i == 11 && Info.ani.IsUsability == false) {
|
|
// InitFirework();
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
|
|
if (!Canvas) {
|
|
local AlphaValue = sq_GetUniformVelocity(250, 0, CT - 2000, 3000);
|
|
//先画一个黑色背景
|
|
L_sq_DrawImg("marrysystem.img", 1, 0, 0, 1, sq_RGBA(255, 255, 255, AlphaValue), 1.0, 1.0);
|
|
|
|
if (CT >= 5000) {
|
|
Canvas = true;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
ScriptMapPath = "map/cataclysm/town/church/";
|
|
MapXpos = 0;
|
|
MapYpos = 47;
|
|
|
|
function DrawAuditoriumMap(obj) {
|
|
//先画一个黑色背景
|
|
L_sq_DrawImg("marrysystem.img", 1, 0, 0);
|
|
|
|
//画地板
|
|
L_sq_DrawImg("Map/Church/ChurchTile.img", 1, 0 + MapXpos, -73);
|
|
L_sq_DrawImg("Map/Church/ChurchTile.img", 0, (224 * 1) + MapXpos, -80);
|
|
L_sq_DrawImg("Map/Church/ChurchTile.img", 1, (224 * 2) + MapXpos, -80);
|
|
L_sq_DrawImg("Map/Church/ChurchTile.img", 1, (224 * 3) + MapXpos, -80);
|
|
L_sq_DrawImg("Map/Church/ChurchTile.img", 0, (224 * 4) + MapXpos, -80);
|
|
|
|
for (local i = 0; i< 2; i++) {
|
|
L_sq_DrawImg("Map/Church/ChurchTileEx.img", 0, (224 * 0) + MapXpos, 467 + (i * 120));
|
|
L_sq_DrawImg("Map/Church/ChurchTileEx.img", 0, (224 * 1) + MapXpos, 467 + (i * 120));
|
|
L_sq_DrawImg("Map/Church/ChurchTileEx.img", 0, (224 * 2) + MapXpos, 467 + (i * 120));
|
|
L_sq_DrawImg("Map/Church/ChurchTileEx.img", 0, (224 * 3) + MapXpos, 467 + (i * 120));
|
|
L_sq_DrawImg("Map/Church/ChurchTileEx.img", 0, (224 * 4) + MapXpos, 467 + (i * 120));
|
|
}
|
|
|
|
//画地图
|
|
//closeback
|
|
DrawMapAni(obj, "Animation/chn_ribbon_silk.ani", 153, 123);
|
|
DrawMapAni(obj, "Animation/chn_ribbon_silk.ani", 288, 126);
|
|
DrawMapAni(obj, "Animation/chn_ribbon_silk.ani", 420, 126);
|
|
DrawMapAni(obj, "Animation/chn_flower_stand.ani", 79, 117);
|
|
DrawMapAni(obj, "Animation/chn_flower_stand.ani", 211, 117);
|
|
DrawMapAni(obj, "Animation/chn_flower_stand.ani", 346, 118);
|
|
DrawMapAni(obj, "Animation/chn_flower_stand.ani", 482, 118);
|
|
DrawMapAni(obj, "Animation/chn_organ.ani", 790, 145);
|
|
DrawMapAni(obj, "Animation/chn_ribbon_silk.ani", 582, 628);
|
|
DrawMapAni(obj, "Animation/chn_ribbon_silk.ani", 176, 628);
|
|
DrawMapAni(obj, "Animation/chn_ribbon_silk.ani", 312, 628);
|
|
DrawMapAni(obj, "Animation/chn_ribbon_silk.ani", 447, 628);
|
|
DrawMapAni(obj, "Animation/chn_ribbon_silk.ani", 721, 628);
|
|
DrawMapAni(obj, "Animation/chn_ribbon_silk.ani", 863, 628);
|
|
|
|
//normal
|
|
DrawMapAni(obj, "Animation/chn_light_normal.ani", 833, 27);
|
|
DrawMapAni(obj, "Animation/chn_light_dodge.ani", 833, 27);
|
|
DrawMapAni(obj, "Animation/chn_light_normal.ani", 153, 29);
|
|
DrawMapAni(obj, "Animation/chn_light_dodge.ani", 153, 29);
|
|
|
|
DrawMapAni(obj, "Animation/chn_big_Carpet.ani", 617, 332);
|
|
DrawMapAni(obj, "Animation/chn_big_Carpet.ani", 393, 332);
|
|
DrawMapAni(obj, "Animation/chn_big_Carpet.ani", 169, 332);
|
|
DrawMapAni(obj, "Animation/chn_big_Carpet.ani", -55, 332);
|
|
DrawMapAni(obj, "Animation/chn_big_Carpet.ani", 1065, 332);
|
|
DrawMapAni(obj, "Animation/chn_big_Carpet.ani", 841, 332);
|
|
|
|
DrawNpc(obj, "npc/animation/chn_npc_father.ani", 888, 375, "MarryMapNpc" + 2);
|
|
|
|
DrawMapAni(obj, "Animation/chn_bridesmaid_normal_in_church.ani", 576, 37);
|
|
DrawMapAni(obj, "Animation/chn_chair.ani", 131, 232);
|
|
DrawMapAni(obj, "Animation/chn_chair.ani", 302, 232);
|
|
DrawMapAni(obj, "Animation/chn_chair.ani", 481, 232);
|
|
DrawMapAni(obj, "Animation/chn_flower_bigpot.ani", 838, 269);
|
|
DrawMapAni(obj, "Animation/chn_flower_tunnel.ani", 907, 323);
|
|
DrawMapAni(obj, "Animation/chn_flower_bigpot.ani", 959, 359);
|
|
DrawMapAni(obj, "Animation/chn_table.ani", 832, 373);
|
|
DrawMapAni(obj, "Animation/chn_tablering_dodge.ani", 832, 373);
|
|
DrawMapAni(obj, "Animation/chn_chair.ani", 971, 535);
|
|
DrawMapAni(obj, "Animation/chn_chair.ani", 661, 535);
|
|
DrawMapAni(obj, "Animation/chn_chair.ani", 114, 535);
|
|
DrawMapAni(obj, "Animation/chn_chair.ani", 485, 535);
|
|
DrawMapAni(obj, "Animation/chn_chair.ani", 297, 535);
|
|
DrawMapAni(obj, "Animation/chn_chair.ani", 817, 535);
|
|
|
|
DrawMapAni(obj, "Animation/chn_flower_stand.ani", 373, 617);
|
|
DrawMapAni(obj, "Animation/chn_flower_stand.ani", 507, 617);
|
|
DrawMapAni(obj, "Animation/chn_flower_stand.ani", 641, 617);
|
|
DrawMapAni(obj, "Animation/chn_flower_stand.ani", 102, 617);
|
|
DrawMapAni(obj, "Animation/chn_flower_stand.ani", 234, 617);
|
|
DrawMapAni(obj, "Animation/chn_flower_stand.ani", 783, 617);
|
|
DrawMapAni(obj, "Animation/chn_flower_stand.ani", 923, 617);
|
|
|
|
//画NPC
|
|
DrawNpc(obj, "npc/Animation/chn_giftbox_in_church.ani", 691, 240, "MarryMapNpc" + 1);
|
|
}
|
|
|
|
function DrawNpc(obj, aniFileName, x, y, aniname) {
|
|
local ani = obj.getVar().GetAnimationMap(aniname, aniFileName);
|
|
ani.setImageRateFromOriginal(-1.0, 1.0);
|
|
sq_AnimationProc(ani);
|
|
sq_drawCurrentFrame(ani, x, y, true);
|
|
return ani;
|
|
}
|
|
|
|
function DrawMapAni(obj, Path, X, Y) {
|
|
T_DrawDynamicAni(obj, ScriptMapPath + Path, X + MapXpos, Y + MapYpos, "MarryMapAni" + Path);
|
|
}
|
|
}
|
|
getroottable().rawdelete("MarrySystem_Obj"); |