Let's see it then? I've never been particularly interested in 3v3, it can easily be done, though I haven't seen what you suggest yet. Forgot to post these, I only get down-votes when I post on this forum those few haters, but for the sake of advancement.. The turn-out & reception is mostly positive and more people are getting interested in Ikemen so it all worked out. Spoiler, click to toggle visibilty
VIDEO
@MangeX : @Gacel : Where do you suggest I look for inserting something like this?"A new Challenger has interrupted the tournament", or just inserting cut-scenes mid arcade mode https://youtu.be/hnSB3FXOD_A?t=972 . Most likely storyboard.lua I figure. Has anyone looked at this? Is anyone interested in this? Trying to.. Get it setup to sometime similar to Alpha 3, which I've already managed to do, but could still use some work. Spoiler, click to toggle visibilty
VIDEO
with a mix of cvs2 interruptions. Geese/Bison, Akuma/Rugal Spoiler, click to toggle visibilty
VIDEO
Spoiler, click to toggle visibilty
module(..., package.seeall) t_data = {} --stores all SFF, SND, FNT data structures function f_storyboard(path) local file = io.open(path, 'r') local all = file:read("*all") all = all:lower() local file = io.open(path, 'r') local fileDir, fileName = path:match('^(.-)([^/\\]+)$') local t = {} t['fileDir'] = fileDir t['fileName'] = fileName t['scenes'] = {} t['anim'] = {} t['ctrldef'] = {} local pos = t local row = '' local bg = '' local ctrl = '' for line in file:lines() do line = line:gsub('%s*;.*$', '') line = line:gsub('%s+', ' ') local part1, part2, part3 = line:match('^([^"]*"?)([^"]*)("?[^"]*)$') line = part1:lower() .. part2 .. part3:lower() row = line:match('^%s*%[%s*([^%]]+)%s*%]%s*$') if row then if row:match('^scene%s+[0-9]+$') then row = #t.scenes + 1 t.scenes[row] = {} pos = t.scenes[row] elseif row:match('^begin%s+action%s+[0-9]+$') then row = row:match('^begin%s+action%s+([0-9]+)$') + 1 t.anim[row] = {} pos = t.anim[row] elseif row:match('[^%s]ctrldef') then ctrl = row:match('^(.-ctrl)def') row = #t.ctrldef+1 t.ctrldef[row] = {} t.ctrldef[row]['ctrl'] = {} pos = t.ctrldef[row] elseif ctrl ~= '' and row:match('^' .. ctrl) then row = #t.ctrldef[#t.ctrldef]['ctrl']+1 t.ctrldef[#t.ctrldef]['ctrl'][row] = {} pos = t.ctrldef[#t.ctrldef]['ctrl'][row] elseif row:match('[^%s]def') and all:match('%s*bg%.name%s*=%s*' .. row:match('^(.-)def$')) then ctrl = '' bg = tostring(row:match('^(.-)def')) t[bg] = {} elseif bg ~= '' and row:match('^' .. bg) then ctrl = '' row = #t[bg] + 1 t[bg][row] = {} pos = t[bg][row] else ctrl = '' bg = '' t[row] = t[row] or {} pos = t[row] end else local param, value = line:match('^%s*([^=]-)%s*=%s*(.-)%s*$') if param and value ~= nil then if tonumber(param) then param = tonumber(param) end if tonumber(value) then value = tonumber(value) elseif value == 'true' then value = true elseif value == 'false' then value = false end pos[param] = value else local value = line:match('^%s*([0-9%-]+%s*,%s*[0-9%-]+%s*,%s*[0-9%-]+%s*,%s*[0-9%-]+%s*,%s*[0-9%-]+.-)[,%s]*$') or line:match('^%s*loopstart') if value ~= nil then pos[#pos+1] = value end end end end file:close() --f_printTable(t, 'debug/t_' .. fileName) f_storyboardPlay(t) return end function f_storyboardPlay(tIn) --Info Optional Parameters: --localcoord = width, height (int, int) local tOut = {} if tIn.info ~= nil and tIn.info.localcoord ~= nil then tOut['xScale'], tOut['yScale'] = tIn.info.localcoord:match('^([^,]-)%s*,%s*(.-)$') tOut['xScale'] = 320 / tOut['xScale'] tOut['yScale'] = 240 / tOut['yScale'] else tOut['xScale'] = 1 tOut['yScale'] = 1 end --SceneDef Required Parameters: --spr = filename (string) if tIn.scenedef.spr ~= nil then if tIn.scenedef.spr:match('[/\\]') then tOut['sff'] = tIn.scenedef.spr else tOut['sff'] = tIn.fileDir .. tIn.scenedef.spr end if t_data[tOut.sff] == nil then t_data[tOut.sff] = sffNew(tOut.sff) end end --SceneDef Optional Parameters: --snd = filename (string) if tIn.scenedef.snd ~= nil then if tIn.scenedef.snd:match('[/\\]') then tOut['snd'] = tIn.scenedef.snd else tOut['snd'] = tIn.fileDir .. tIn.scenedef.snd end if t_data[tOut.snd] == nil then t_data[tOut.snd] = sndNew(tOut.snd) end end --fontX = filename (string) tOut['fnt'] = {} for i=0, 9 do if tIn.scenedef['font' .. i] ~= nil then local i_s = tostring(i) if tIn.scenedef['font' .. i]:match('[/\\]') then tOut['fnt'][i_s] = tIn.scenedef['font' .. i] else tOut['fnt'][i_s] = tIn.fileDir .. tIn.scenedef['font' .. i] --tOut['fnt'][i_s] = 'font/' .. tIn.scenedef['font' .. i] end if t_data[tOut.fnt[i_s]] == nil then t_data[tOut.fnt[i_s]] = fontNew(tOut.fnt[i_s]) end end end --startscene = scene_number (int) if tIn.scenedef.startscene ~= nil then tOut['startscene'] = tIn.scenedef.startscene + 1 else tOut['startscene'] = 1 end --Scene Parameters: tOut['scenes'] = {} for i=1, #tIn.scenes do tOut.scenes = {} --Required parameters: --end.time = t (int) if tIn.scenes['end.time'] ~= nil then tOut.scenes['endTime'] = tIn.scenes['end.time'] else tOut.scenes['endTime'] = 0 end --Optional parameters: --fadein.time = duration (int) if tIn.scenes['fadein.time'] ~= nil then tOut.scenes['fadeinTime'] = tIn.scenes['fadein.time'] else tOut.scenes['fadeinTime'] = 0 end --fadein.col = r, g, b (int, int, int) if tIn.scenes['fadein.col'] ~= nil and tIn.scenes['fadein.col']:match('255%s*,%s*255,%s*255') then tOut.scenes['fadeinCol'] = 'white' else tOut.scenes['fadeinCol'] = 'black' end --fadein (anim data) tOut.scenes['fadeinData'] = f_fadeAnim(tOut.scenes.fadeinTime, 'fadein', tOut.scenes.fadeinCol, fadeSff) --fadeout.time = duration (int) if tIn.scenes['fadeout.time'] ~= nil then tOut.scenes['fadeoutTime'] = tIn.scenes['fadeout.time'] else tOut.scenes['fadeoutTime'] = 0 end --fadeout.col = r, g, b (int, int, int) if tIn.scenes['fadeout.col'] ~= nil and tIn.scenes['fadeout.col']:match('255%s*,%s*255,%s*255') then tOut.scenes['fadeoutCol'] = 'white' else tOut.scenes['fadeoutCol'] = 'black' end --fadeout (anim data) tOut.scenes['fadeoutData'] = f_fadeAnim(tOut.scenes.fadeoutTime, 'fadeout', tOut.scenes.fadeoutCol, fadeSff) --clearcolor = r, g, b (int, int, int) --currently only black when average of RGB <= 128 and white if >128, can't generate a color not from sprite if tIn.scenes['clearcolor'] ~= nil then local tmp1, tmp2, tmp3 = tIn.scenes['clearcolor']:match('([0-9]+)%s*,%s*([0-9]+)%s*,%s*([0-9]+)') if (tmp1+tmp2+tmp3)/3 > 128 then tOut.scenes['clearcolor'] = 'white' --for debugging only tOut.scenes['clearcolorData'] = animNew(fadeSff, '0,1, 0,0, -1') animUpdate(tOut.scenes['clearcolorData']) else tOut.scenes['clearcolor'] = 'black' --for debugging only tOut.scenes['clearcolorData'] = animNew(fadeSff, '0,0, 0,0, -1') animUpdate(tOut.scenes['clearcolorData']) end elseif i > 1 then tOut.scenes['clearcolor'] = tOut.scenes[i-1].clearcolor --for debugging only tOut.scenes['clearcolorData'] = tOut.scenes[i-1].clearcolorData else tOut.scenes['clearcolor'] = 'black' --for debugging only tOut.scenes['clearcolorData'] = animNew(fadeSff, '0,0, 0,0, -1') animUpdate(tOut.scenes['clearcolorData']) end --layerall.pos = x, y (int, int) if tIn.scenes['layerall.pos'] ~= nil then tOut.scenes['layerallPosX'], tOut.scenes['layerallPosY'] = tIn.scenes['layerall.pos']:match('^([^,]-)%s*,%s*(.-)$') elseif i > 1 then tOut.scenes['layerallPosX'] = tOut.scenes[i-1].layerallPosX tOut.scenes['layerallPosY'] = tOut.scenes[i-1].layerallPosY else tOut.scenes['layerallPosX'] = 0 tOut.scenes['layerallPosY'] = 0 end --window = x1, y1, x2, y2 (int, int, int, int) if tIn.scenes['window'] ~= nil then tOut.scenes['windowX1'], tOut.scenes['windowY1'], tOut.scenes['windowX2'], tOut.scenes['windowY2'] = tIn.scenes['window']:match('([0-9]+)%s*,%s*([0-9]+)%s*,%s*([0-9]+)%s*,%s*([0-9]+)') tOut.scenes['windowX2'] = tOut.scenes['windowX2'] - tOut.scenes['windowX1'] tOut.scenes['windowY2'] = tOut.scenes['windowY2'] - tOut.scenes['windowY1'] else tOut.scenes['windowX1'] = 0 tOut.scenes['windowY1'] = 0 tOut.scenes['windowX2'] = 320 tOut.scenes['windowY2'] = 240 end --layerX tOut.scenes['layers'] = {} for j=0, 9 do tOut.scenes.layers[j+1] = {} local posOut = tOut.scenes.layers[j+1] local layerX = 'layer' .. j --layerX.offset = offx, offy (int, int) if tIn.scenes[layerX .. '.offset'] ~= nil then posOut['offsetX'], posOut['offsetY'] = tIn.scenes[layerX .. '.offset']:match('^([^,]-)%s*,%s*(.-)$') else posOut['offsetX'] = 0 posOut['offsetY'] = 0 end --layerX.anim = actionno (int) if tIn.scenes[layerX .. '.anim'] ~= nil then posOut['anim'] = tIn.anim[tIn.scenes[layerX .. '.anim']+1] --for debugging only posOut['animNumber'] = tIn.scenes[layerX .. '.anim'] --for debugging only local anim = '' for k=1, #tIn.anim[tIn.scenes[layerX .. '.anim']+1] do anim = anim .. tIn.anim[tIn.scenes[layerX .. '.anim']+1][k] .. '\n' end anim = anim:gsub('add1', 'a1') anim = anim:gsub('add', 'a') anim = anim:gsub('sub', 's') posOut['animData'] = animNew(t_data[tOut.sff], anim) animAddPos(posOut['animData'], tOut.scenes.layerallPosX+posOut.offsetX, tOut.scenes.layerallPosY+posOut.offsetY) animSetScale(posOut['animData'], tOut.xScale, tOut.yScale) animSetWindow(posOut['animData'], tOut.scenes['windowX1'], tOut.scenes['windowY1'], tOut.scenes['windowX2'], tOut.scenes['windowY2']) animUpdate(posOut['animData']) end if tIn.scenes[layerX .. '.text'] ~= nil then posOut['text'] = tostring(tIn.scenes[layerX .. '.text']) end --layerX.text = text (string) if tIn.scenes[layerX .. '.text'] ~= nil then posOut['text'] = tIn.scenes[layerX .. '.text']:match('^"?(.-)"?$') end --layerX.font = font_no, bank, align, r, g, b (int, int, int, int, int, int) --r, g, b parameters currently unsupported --IKEMEN feature: additional optional parameters: -- spacing: spacing between lines (rendering Y position increasement for each line), defaults to 20 -- limit: maximum line length (string wraps when reached), if omitted line wraps only if string contains '\n' -- scaleX: X scale factor, defaults to 1.0 -- scaleY: Y scale factor, defaults to 1.0 if tIn.scenes[layerX .. '.font'] ~= nil then posOut['font'] = tIn.scenes[layerX .. '.font'] --for debugging only posOut['fontData'] = textImgNew() local font, bank, aline, r, g, b, spacing, limit, scaleX, scaleY = posOut['font']:match('^([^,]*)%s*,?%s*([^,]*)%s*,?%s*([^,]*)%s*,?%s*([^,]*)%s*,?%s*([^,]*)%s*,?%s*([^,]*)%s*,?%s*([^,]*)%s*,?%s*([^,]*)%s*,?%s*([^,]*)%s*,?%s*([^,]*)$') if bank == '' then bank = 0 end if aline == '' then aline = 0 end if r == '' then r = 0 end if g == '' then g = 0 end if b == '' then b = 0 end if spacing == '' then spacing = 20 end if limit == '' then limit = -1 end if scaleX == '' then scaleX = 1 end if scaleY == '' then scaleY = 1 end textImgSetFont(posOut['fontData'], t_data[tOut.fnt[font]]) textImgSetBank(posOut['fontData'], bank) textImgSetAlign(posOut['fontData'], aline) --textImgSetPos(posOut['fontData'], tOut.scenes.layerallPosX+posOut.offsetX, tOut.scenes.layerallPosY+posOut.offsetY) textImgSetScale(posOut['fontData'], scaleX, scaleY) textImgSetText(posOut['fontData'], '') posOut['spacing'] = spacing posOut['limit'] = limit posOut['counter'] = 0 end --layerX.textdelay = delay (int) if tIn.scenes[layerX .. '.textdelay'] ~= nil then posOut['textdelay'] = tIn.scenes[layerX .. '.textdelay'] else posOut['textdelay'] = 0 end --layerX.starttime = t (int, int) if tIn.scenes[layerX .. '.starttime'] ~= nil then posOut['starttime'] = tIn.scenes[layerX .. '.starttime'] else posOut['starttime'] = 0 end --layerX.endtime = t (int, int) if tIn.scenes[layerX .. '.endtime'] ~= nil then posOut['endtime'] = tIn.scenes[layerX .. '.endtime'] else posOut['endtime'] = tOut.scenes.endTime end end --soundX tOut.scenes['sounds'] = {} for j=0, 99 do local soundX = 'sound' .. j if tIn.scenes[soundX .. '.value'] ~= nil then tOut.scenes.sounds[#tOut.scenes.sounds+1] = {} local posOut = tOut.scenes.sounds[#tOut.scenes.sounds] --soundX.value = group_no, sound_no (int, int) posOut['group'], posOut['sound'] = tIn.scenes[soundX .. '.value']:match('^([^,]-)%s*,%s*(.-)$') --soundX.starttime = t (int) if tIn.scenes[soundX .. '.starttime'] ~= nil then posOut['starttime'] = tIn.scenes[soundX .. '.starttime'] else posOut['starttime'] = 0 end --soundX.volumescale = volume_scale (double) --currently unsupported if tIn.scenes[soundX .. '.volumescale'] ~= nil then posOut['volumescale'] = tIn.scenes[soundX .. '.volumescale'] end --soundX.pan = p (int) --currently unsupported if tIn.scenes[soundX .. '.pan'] ~= nil then posOut['pan'] = tIn.scenes[soundX .. '.pan'] end end end --bgm = filename (string) if tIn.scenes['bgm'] ~= nil then if tIn.scenes['bgm']:match('[/\\]') then tOut.scenes['bgm'] = tIn.scenes['bgm'] else tOut.scenes['bgm'] = tIn.fileDir .. tIn.scenes['bgm'] end end --bgm.loop = loop (boolean) --currently unsupported if tIn.scenes['bgm.loop'] ~= nil then tOut.scenes['bgmLoop'] = tIn.scenes['bgm.loop'] end --bg.name = bgname (string) if tIn.scenes['bg.name'] ~= nil then --Background element parameters: tOut.scenes['backgrounds'] = {} for j=1, #tIn[tIn.scenes['bg.name']] do local posIn = tIn[tIn.scenes['bg.name']][j] tOut.scenes['backgrounds'][j] = {} local posOut = tOut.scenes['backgrounds'][j] --type = normal (string) if posIn['type'] ~= nil then posOut['type'] = posIn['type'] else posOut['type'] = '' end posOut['type'] = bgType --layer if posIn['layer'] ~= nil then posOut['layer'] = posIn['layer'] else posOut['layer'] = 0 end --id if posIn['id'] ~= nil then posOut['id'] = posIn['id'] else posOut['id'] = 0 end --spriteno = groupno, imageno (int, int) if posIn['spriteno'] ~= nil then posOut['group'], posOut['sprite'] = posIn['spriteno']:match('^([^,]-)%s*,%s*(.-)$') else posOut['group'] = '-1' posOut['sprite'] = '-1' end --start = x,y (float, float) if posIn['start'] ~= nil then if type(posIn['start']) ~= 'string' then posOut['startX'] = posIn['start'] posOut['startY'] = 0 else posOut['startX'], posOut['startY'] = posIn['start']:match('^([^,]-)%s*,%s*(.-)$') end else posOut['startX'] = 0 posOut['startY'] = 0 end --velocity = vel_x, vel_y (float, float) if posIn['velocity'] ~= nil then if type(posIn['velocity']) ~= 'string' then posOut['velocityX'] = posIn['velocity'] posOut['velocityY'] = 0 else posOut['velocityX'], posOut['velocityY'] = posIn['velocity']:match('^([^,]-)%s*,%s*(.-)$') end else posOut['velocityX'] = 0 posOut['velocityY'] = 0 end --tile = x_tile,y_tile (int, int) if posIn['tile'] ~= nil then if type(posIn['tile']) ~= 'string' then posOut['tileX'] = posIn['tile'] posOut['tileY'] = 0 else posOut['tileX'], posOut['tileY'] = posIn['tile']:match('^([^,]-)%s*,%s*(.-)$') end else posOut['tileX'] = 0 posOut['tileY'] = 0 end --tilespacing = x_spacing,y_spacing (int, int) --currently unsupported if posIn['tilespacing'] ~= nil then if type(posIn['tilespacing']) ~= 'string' then posOut['tilespacingX'] = posIn['tilespacing'] posOut['tilespacingY'] = 0 else posOut['tilespacingX'], posOut['tilespacingY'] = posIn['tilespacing']:match('^([^,]-)%s*,%s*(.-)$') end else posOut['tilespacingX'] = 0 posOut['tilespacingY'] = 0 end --trans = trans (string) if posIn['trans'] ~= nil then if posIn['trans'] == 'add' then posOut['trans'] = 'a' elseif posIn['trans'] == 'add1' then posOut['trans'] = 'a1' elseif posIn['trans'] == 'sub' then posOut['trans'] = 's' else --ASxxxDxxx posOut['trans'] = posIn['trans'] end else posOut['trans'] = '' end --window = x1,y1,x2,y2 ; (int, int, int, int) if posIn['window'] ~= nil then posOut['windowX1'], posOut['windowY1'], posOut['windowX2'], posOut['windowY2'] = posIn['window']:match('([0-9]+)%s*,%s*([0-9]+)%s*,%s*([0-9]+)%s*,%s*([0-9]+)') posOut['windowX2'] = posOut['windowX2'] - posOut['windowX1'] posOut['windowY2'] = posOut['windowY2'] - posOut['windowY1'] else posOut['windowX1'] = 0 posOut['windowY1'] = 0 posOut['windowX2'] = 320 posOut['windowY2'] = 240 end local anim = posOut.group .. ',' .. posOut.sprite .. ', ' .. posOut.startX .. ',' .. posOut.startY .. ', ' .. tOut.scenes['endTime'] if posOut['trans'] ~= '' then anim = anim .. ', , ' .. posOut['trans'] end posOut['anim'] = anim --for debugging only posOut['bgData'] = animNew(t_data[tOut.sff], anim) animAddPos(posOut['bgData'], 160, 0) --background objects are rendered at center in mugen animSetWindow(posOut['bgData'], posOut['windowX1'], posOut['windowY1'], posOut['windowX2'], posOut['windowY2']) animSetTile(posOut['bgData'], posOut['tileX'], posOut['tileY']) animUpdate(posOut['bgData']) end end end --Background controller parameters: local tPos = '' for i=1, #tIn.ctrldef do for j=1, #tIn.ctrldef.ctrl do tPos = tIn.ctrldef.ctrl[j] --time = START_TIME, END_TIME, LOOPTIME --code reference for future use --[[ if tPos['time'] ~= nil then for k, c in ipairs(script.randomtest.strsplit(',', tPos.time)) do if k == 1 then tPos['time'] = tonumber(c) elseif k == 2 then tPos['timeEnd'] = tonumber(c) elseif k == 3 then tPos['timeLoop'] = tonumber(c) end end end if tPos['time'] == nil then tPos['time'] = -1 end if tPos['timeEnd'] == nil then tPos['timeEnd'] = -1 end if tPos['timeLoop'] == nil then tPos['timeLoop'] = -1 end ]]-- if tPos['time'] ~= nil then if type(tPos['time']) ~= 'string' then tPos['timeEnd'] = -1 tPos['timeLoop'] = -1 else tPos['timeEnd'], tPos['timeLoop'] = tPos['time']:match('^[0-9-]-%s*,%s*[0-9-]-%s*,?%s*([0-9-]*)$') if tPos['timeLoop'] == nil then tPos['timeLoop'] = -1 end end else tPos['time'] = -1 tPos['timeEnd'] = -1 tPos['timeLoop'] = -1 end end end tOut['ctrldef'] = {} tOut.ctrldef = tIn.ctrldef --Actual storyboard loop f_printTable(tOut, 'debug/t_storyboard.txt') local velX = 0 local velY = 0 for i=tOut.startscene, #tOut.scenes do for j=0, tOut.scenes.endTime do if esc() or btnPalNo(p1Cmd) > 0 then cmdInput() refresh() return end if j == 0 and tOut.scenes.bgm ~= nil then playBGM(tOut.scenes.bgm) end for k=1, #tOut.scenes.sounds do if j == tOut.scenes.sounds[k].starttime then sndPlay(t_data[tOut.snd], tOut.scenes.sounds[k].group, tOut.scenes.sounds[k].sound) end end animDraw(tOut.scenes.clearcolorData) if tOut.scenes.backgrounds ~= nil then for k=1, #tOut.scenes.backgrounds do if tOut.scenes.backgrounds[k].layer == 0 and tOut.scenes.backgrounds[k].id ~= nil then velX, velY = f_ctrlCheck(tOut.scenes.backgrounds[k].id, tOut.ctrldef, j) animDraw(tOut.scenes.backgrounds[k].bgData) animAddPos(tOut.scenes.backgrounds[k].bgData, tOut.scenes.backgrounds[k].velocityX+velX, tOut.scenes.backgrounds[k].velocityY+velY) animUpdate(tOut.scenes.backgrounds[k].bgData) end end end for k=1, 10 do local tPos = tOut.scenes.layers[k] if tPos ~= nil and j >= tPos.starttime and j <= tPos.endtime then if tPos.animData ~= nil then animDraw(tPos.animData) animUpdate(tPos.animData) end if tPos.fontData ~= nil then tPos.counter = tPos.counter + 1 f_textRender(tPos.fontData, tPos.text, tPos.counter, tOut.scenes.layerallPosX+tPos.offsetX, tOut.scenes.layerallPosY+tPos.offsetY, tPos.spacing, tPos.textdelay, tPos.limit) end end end if tOut.scenes.backgrounds ~= nil then for k=1, #tOut.scenes.backgrounds do if tOut.scenes.backgrounds[k].layer > 0 and tOut.scenes.backgrounds[k].id ~= nil then velX, velY = f_ctrlCheck(tOut.scenes.backgrounds[k].id, tOut.ctrldef, j) animDraw(tOut.scenes.backgrounds[k].bgData) animAddPos(tOut.scenes.backgrounds[k].bgData, tOut.scenes.backgrounds[k].velocityX+velX, tOut.scenes.backgrounds[k].velocityY+velY) animUpdate(tOut.scenes.backgrounds[k].bgData) end end end if j <= tOut.scenes.fadeinTime then animDraw(tOut.scenes.fadeinData) animUpdate(tOut.scenes.fadeinData) end if j >= tOut.scenes.endTime - tOut.scenes.fadeoutTime then animDraw(tOut.scenes.fadeoutData) animUpdate(tOut.scenes.fadeoutData) end cmdInput() refresh() end end playBGM('') end function f_ctrlCheck(id, t, timer) local x = 0 local y = 0 for i=1, #t do if id == t.ctrlid then local defLooptime = t.looptime for j=1, #t.ctrl do local start_time = t.ctrl[j].time local end_time = t.ctrl[j].timeEnd local looptime = t.ctrl[j].timeLoop if timer >= start_time and (end_time == -1 or timer < end_time) then local ctrlType = t.ctrl[j].type if ctrlType == 'velset' or ctrlType == 'veladd' then if t.ctrl[j].y ~= nil then y = t.ctrl[j].y else y = 0 end if t.ctrl[j].x ~= nil then x = t.ctrl[j].x else x = 0 end end end end end end return x, y end
So far, made a lot of progress on dialogue, similar to SVC/KOFXIII every character has script with one another & mirror, but now working on doing this universally instead of individual characters. Trying to use this setup to replicate Garou's win screen, if anyone is familiar with it, it shows the stage background instead of going to a separate screen, unless it is a separate screen with darkened versions of each stage.Spoiler, click to toggle visibilty
VIDEO
Has anyone tested the online on Go yet? I'd been experimenting with this, very little.. Haven't had any success getting it to work yet Spoiler, click to toggle visibilty
VIDEO
When selecting the character, changing the animation, this should already be doable no? Many have requested this feature.