Page 1 of 1

Custom Checkpoints

PostPosted: Sun Aug 07, 2016 1:15 pm
by Niicola
Well, I just got some inspiration... suddenly... for no apparent reason...

These checkpoints are animated and functional. Why would you choose them instead of the original one? Because you can use "move item" on them and they'll still work perfectly (because you define the respawn coordinates) and you can turn them on or off so that the player can touch them only after some events (if done well and of course, if you want). Explanations are detailed in-game. There are really a lot of comments actually. I wanted it to be practical so as to be used by others.

Code: Select all
23x23~.5aB5.6am7.5aB5.6am7.5aB5.6am7.5aB5.6am7.5aB.10am7.5aB.22aB.22aB.22aB.22aB.17aB6.224aa5.aa7.3aa12.aa7.3aa12.aa7.3aa7~~~x1:Respawn1;320;648;1;1;0;|x1:Respawn2;656;648;1;1;0;|9:Particles2;656;472;;23,143;.25aE.59aE.15aE.11aE.27aE.58aE.84aE.31aE.6aE.22aE.22aE.72aE.17aE.4aE.8aE.8aE.79aE.8aE.51aE.10aE.11aE.48aE.10aE.11aE.10aE.11aE.40aE.88aE.14aE.22aE.60aE.16aE.108aE.13aE.11aE.10aE.11aE.103aE.17aE.4aE.17aE.61aE.22aE.26aE.22aE.132aE.2aE.32aE.22aE.92aE.22aE.83aE.52aE.6aE.48aE.23aE.30aE.61aE.36aE.23aE.11aE.22aE.44aE.11aE.10aE.49aE.37aE.18aE.49aE.36aE.22aE.60aE.22aE.12aE.15aE.12aE.25aE.22aE.84aE.aE.14aE.7aE.45aE.22aE.26aE.3aE.18aE.3aE.8aE.76aE.22aE.32aE2.23aE.12aE.41aE.90aE.10aE.96aE.12aE.18aE;all;0;0;5;300;0;100;0;90;30;0;3;3;5;5;5;5;30;30;128;128;0;0;0;0;3;10;10;30;0;1;1;-;0;1;64;5;0;0;1000;3;0;1;;0.04;0.1;1;0;1|6:Checkpoint2;640;384;32;256;0;1;set,s_checkpoint,2:set,s_COINS,g_COINS:playsound,43,0.5:setpostfilter,100/100/100/100/0/0/0/0/100:sleep,3:setpostfilter,100/100/100/100/0/0/0/0/80:sleep,3:setpostfilter,100/100/100/100/0/0/0/0/60:sleep,3:setpostfilter,100/100/100/100/0/0/0/0/40:sleep,3:setpostfilter,100/100/100/100/0/0/0/0/20:sleep,3:setpostfilter,100/100/100/100/0/0/0/0/5:sleep,3:setpostfilter,:dissolve,Respawn2,10,45:move,Respawn2,0,9999,0,0:dissolve,Particles2,10,10:stoptrigger,Respawn2:move,Particles2,0,9999,0,0~0;64;640;1;0;0|9:Particles1;320;472;;23,143;.25aE.59aE.15aE.11aE.27aE.58aE.84aE.31aE.6aE.22aE.22aE.72aE.17aE.4aE.8aE.8aE.79aE.8aE.51aE.10aE.11aE.48aE.10aE.11aE.10aE.11aE.40aE.88aE.14aE.22aE.60aE.16aE.108aE.13aE.11aE.10aE.11aE.103aE.17aE.4aE.17aE.61aE.22aE.26aE.22aE.132aE.2aE.32aE.22aE.92aE.22aE.83aE.52aE.6aE.48aE.23aE.30aE.61aE.36aE.23aE.11aE.22aE.44aE.11aE.10aE.49aE.37aE.18aE.49aE.36aE.22aE.60aE.22aE.12aE.15aE.12aE.25aE.22aE.84aE.aE.14aE.7aE.45aE.22aE.26aE.3aE.18aE.3aE.8aE.76aE.22aE.32aE2.23aE.12aE.41aE.90aE.10aE.96aE.12aE.18aE;all;0;0;5;300;0;100;0;90;30;0;3;3;5;5;5;5;30;30;128;128;0;0;0;0;3;10;10;30;0;1;1;-;0;1;64;5;0;0;1000;3;0;1;;0.04;0.1;1;0;1~6:Respawn1;288;656;16;16;0;1;setscale,Respawn1,1,1,0,1,1,0,1:setscale,Respawn1,0.025,0.025,0,1,1,0,0:sleep,1:add,a,a,1:branch,6,1,a,30:sleep,2:setscale,Respawn1,-0.025,-0.025,0,1,1,0,0:sleep,1:sub,a,a,1:branch,6,6,a,0:sleep,2:goto,0|6:Respawn1;272;656;16;16;0;1;move,Particles1,0,-2,0,0:sleep,1:add,a,a,1:branch,6,0,a,48:move,Particles1,0,96,0,0:set,a,0:goto,0|6:Respawn1;256;656;16;16;0;1;dissolve,Particles1,10,16:sleep,2:goto,0|6:Checkpoint1;304;384;32;256;0;1;set,s_checkpoint,1:set,s_COINS,g_COINS:playsound,43,0.5:setpostfilter,100/100/100/100/0/0/0/0/100:sleep,3:setpostfilter,100/100/100/100/0/0/0/0/80:sleep,3:setpostfilter,100/100/100/100/0/0/0/0/60:sleep,3:setpostfilter,100/100/100/100/0/0/0/0/40:sleep,3:setpostfilter,100/100/100/100/0/0/0/0/20:sleep,3:setpostfilter,100/100/100/100/0/0/0/0/5:sleep,3:setpostfilter,:dissolve,Respawn1,10,45:move,Respawn1,0,9999,0,0:dissolve,Particles1,10,10:stoptrigger,Respawn1:move,Particles1,0,9999,0,0|6;32;576;64;64;0;1;set,g_COINS,s_COINS:c,This%20function%20allows%20you%20to%20keep%20your%20coins%20after%20your%20death%20eventhough%20they%20reappear.%0D_________________________%0DDelete%20it%20to%20prevent%20coin-grinding%20but%20be%20careful%20with%20the%20values%20of%20the%20lines%20in%20the%20branches.:activate,Respawn1:activate,Respawn2:c,%5B%u2605%5D%20When%20adding%20a%20new%20checkpoint%2C%20make%20sure%20you%20activate%20it%20by%20following%20the%20aforementioned%20scheme.%0D_________________________For%20the%20checkpoint%20%28n%29%2C%20put%20the%20trigger%20function%20%3A%0D%5BActivate%20%22Respawn%28n%29%22%5D%0D_________________________%0DExample%20%3A%20for%20checkpoint%203%2C%20put%0D%5BActivate%20%22Respawn3%22%5D%20below%0D%5BActivate%20%22Respawn2%22%5D:branch,5,13,s_checkpoint,0:branch,5,9,s_checkpoint,1:branch,5,14,s_checkpoint,2:c,%5B%u2605%5D%20When%20adding%20a%20new%20checkpoint%2C%20make%20sure%20you%20create%20a%20new%20branch%20to%20prevent%20the%20static%20variables%20from%20not%20working.%20%0D_________________________For%20the%20checkpoint%20%28n%29%2C%20put%20the%20trigger%20function%20%3A%0D%5BIf%20s_checkpoint%20%3D%20n%2C%20goto%20%28m%29%5D%0Dwith%20%28m%29%20being%20the%0D%28n%29th%5BMove%20Character%5D%0D_________________________%0DExample%20%3A%20for%20checkpoint%203%2C%20put%0D%5BIf%20s_checkpoint%20%3D%203%2C%20goto%2021%5D%20below%0D%5BIf%20s_checkpoint%20%3D%202%2C%20goto%2015%5D:movechar,this,320,640,0,0,0,1:turnoff,Checkpoint1:move,Respawn1,0,9999,0,0:move,Particles1,0,9999,0,0:exit:movechar,this,656,640,0,0,0,1:turnoff,Checkpoint2:move,Respawn2,0,9999,0,0:move,Particles2,0,9999,0,0:c,%5B%u2605%5D%20When%20adding%20a%20new%20checkpoint%2C%20copy-paste%20the%20five%20last%20functions%20%28without%20this%20comment%29%20and%20increment%20the%20value%20of%20each%20tag.%20Also%2C%20do%20not%20forget%20about%20modifying%20the%20coordinates%20of%20the%0D%5BMove%20Character%5D%20function.%20They%20correspond%20to%20the%20place%20where%20you%20will%20revive.%0D_________________________%0DFor%20the%20checkpoint%20%28n%29%2C%20put%20the%20following%20functions%20after%20the%0D%28n-1%29th%5BExit%5D%20%3A%20%0D%5BMove%20Character%20%28x%3By%29%5D%0D%5BTurn%20Off%20%22Checkpoint%28n%29%22%5D%0D%5BMove%20Item%20%22Respawn%28n%29%22%5D%0D%5BMove%20Item%20%22Particles%28n%29%22%5D%0D%5BExit%5D%0D_________________________%0DExample%20%3A%20for%20checkpoint%203%2C%20put%20%5BMove%20Character%20%28x%3By%29%5D%0D%5BTurn%20Off%20%22Checkpoint3%22%5D%0D%5BMove%20Item%20%22Respawn3%22%5D%0D%5BMove%20Item%20%22Particles3%22%5D%0D%5BExit%5D%0Dbelow%20the%202nd%20%5BExit%5D:exit|6:Respawn2;624;656;16;16;0;1;setscale,Respawn2,1,1,0,1,1,0,1:setscale,Respawn2,0.025,0.025,0,1,1,0,0:sleep,1:add,a,a,1:branch,6,1,a,30:sleep,2:setscale,Respawn2,-0.025,-0.025,0,1,1,0,0:sleep,1:sub,a,a,1:branch,6,6,a,0:sleep,2:goto,0|6:Respawn2;608;656;16;16;0;1;move,Particles2,0,-2,0,0:sleep,1:add,a,a,1:branch,6,0,a,48:move,Particles2,0,96,0,0:set,a,0:goto,0|6:Respawn2;592;656;16;16;0;1;dissolve,Particles2,10,16:sleep,2:goto,0|40;424;552;|40;464;552;|40;496;552;|x1:Respawn;80;264;1;1;0;|9:Particles;80;88;;23,143;.25aE.59aE.15aE.11aE.27aE.58aE.84aE.31aE.6aE.22aE.22aE.72aE.17aE.4aE.8aE.8aE.79aE.8aE.51aE.10aE.11aE.48aE.10aE.11aE.10aE.11aE.40aE.88aE.14aE.22aE.60aE.16aE.108aE.13aE.11aE.10aE.11aE.103aE.17aE.4aE.17aE.61aE.22aE.26aE.22aE.132aE.2aE.32aE.22aE.92aE.22aE.83aE.52aE.6aE.48aE.23aE.30aE.61aE.36aE.23aE.11aE.22aE.44aE.11aE.10aE.49aE.37aE.18aE.49aE.36aE.22aE.60aE.22aE.12aE.15aE.12aE.25aE.22aE.84aE.aE.14aE.7aE.45aE.22aE.26aE.3aE.18aE.3aE.8aE.76aE.22aE.32aE2.23aE.12aE.41aE.90aE.10aE.96aE.12aE.18aE;all;0;0;5;300;0;100;0;90;30;0;3;3;5;5;5;5;30;30;128;128;0;0;0;0;3;10;10;30;0;1;1;-;0;1;64;5;0;0;1000;3;0;1;;0.04;0.1;1;0;1|6:Respawn;48;272;16;16;0;1;setscale,Respawn,1,1,0,1,1,0,1:setscale,Respawn,0.025,0.025,0,1,1,0,0:c,%5B%u2605%5D%20When%20adding%20a%20new%20checkpoint%2C%20don%27t%20forget%20to%20add%20the%20number%20corresponding%20to%20the%20checkpoint%20after%20the%20tag%20in%20the%20functions%20above.%0D_________________________For%20the%20checkpoint%20%28n%29%2C%20the%20trigger%20functions%20should%20be%20%3A%0D%5BScale%20Item%20%22Respawn%28n%29%22%5D%0D%5BScale%20Item%20%22Respawn%28n%29%22%5D%0D_________________________%0DExample%20%3A%20for%20checkpoint%203%2C%20put%0D%5BScale%20Item%20%22Particles3%22%5D%0D%5BScale%20Item%20%22Particles3%22%5D:sleep,1:add,a,a,1:branch,6,1,a,30:sleep,2:setscale,Respawn,-0.025,-0.025,0,1,1,0,0:c,%5B%u2605%5D%20When%20adding%20a%20new%20checkpoint%2C%20don%27t%20forget%20to%20add%20the%20number%20corresponding%20to%20the%20checkpoint%20after%20the%20tag%20in%20the%20function%20above.%0D_________________________For%20the%20checkpoint%20%28n%29%2C%20the%20trigger%20function%20should%20be%20%3A%0D%5BScale%20Item%20%22Respawn%28n%29%22%5D%0D_________________________%0DExample%20%3A%20for%20checkpoint%203%2C%20put%0D%5BScale%20Item%20%22Particles3%22%5D:sleep,1:sub,a,a,1:branch,6,7,a,0:sleep,2:goto,0|6:Respawn;32;272;16;16;0;1;move,Particles,0,-2,0,0:c,%5B%u2605%5D%20When%20adding%20a%20new%20checkpoint%2C%20don%27t%20forget%20to%20add%20the%20number%20corresponding%20to%20the%20checkpoint%20after%20the%20tag%20in%20the%20function%20above.%0D_________________________For%20the%20checkpoint%20%28n%29%2C%20the%20trigger%20function%20should%20be%20%3A%0DMove%20Item%20%22Particles%28n%29%22%5D%0D_________________________%0DExample%20%3A%20for%20checkpoint%203%2C%20put%0D%5BMove%20Item%20%22Particles3%22%5D:sleep,1:add,a,a,1:branch,6,0,a,48:move,Particles,0,96,0,0:c,%5B%u2605%5D%20When%20adding%20a%20new%20checkpoint%2C%20don%27t%20forget%20to%20add%20the%20number%20corresponding%20to%20the%20checkpoint%20after%20the%20tag%20in%20the%20function%20above.%0D_________________________For%20the%20checkpoint%20%28n%29%2C%20the%20trigger%20function%20should%20be%20%3A%0DMove%20Item%20%22Particles%28n%29%22%5D%0D_________________________%0DExample%20%3A%20for%20checkpoint%203%2C%20put%0D%5BMove%20Item%20%22Particles3%22%5D:set,a,0:goto,0|6:Respawn;16;272;16;16;0;1;dissolve,Particles,10,16:c,%5B%u2605%5D%20When%20adding%20a%20new%20checkpoint%2C%20don%27t%20forget%20to%20add%20the%20number%20corresponding%20to%20the%20checkpoint%20after%20the%20tag%20in%20the%20function%20above.%0D_________________________For%20the%20checkpoint%20%28n%29%2C%20the%20trigger%20function%20should%20be%20%3A%0D%5BDissolve%20Particles%28n%29%5D%0D_________________________%0DExample%20%3A%20for%20checkpoint%203%2C%20put%0D%5BDissolve%20Particles3%5D:sleep,2:goto,0|6:Checkpoint;64;0;32;256;0;1;set,s_checkpoint,n:c,%5B%u2605%5D%20When%20adding%20a%20new%20checkpoint%2C%20don%27t%20forget%20to%20replace%20the%20%28n%29%20seen%20above%20with%20the%20number%20of%20the%20checkpoint.%0D_________________________%0DExample%20%3A%20for%20checkpoint%203%2C%20the%20function%20above%20should%20set%0D%5Bs_checkpoint%20%3D%203%5D:set,s_COINS,g_COINS:playsound,43,0.5:setpostfilter,100/100/100/100/0/0/0/0/100:sleep,3:setpostfilter,100/100/100/100/0/0/0/0/80:sleep,3:setpostfilter,100/100/100/100/0/0/0/0/60:sleep,3:setpostfilter,100/100/100/100/0/0/0/0/40:sleep,3:setpostfilter,100/100/100/100/0/0/0/0/20:sleep,3:setpostfilter,100/100/100/100/0/0/0/0/5:sleep,3:setpostfilter,:dissolve,Respawn,10,45:move,Respawn,0,9999,0,0:dissolve,Particles,10,10:stoptrigger,Respawn:move,Particles,0,9999,0,0:c,%5B%u2605%5D%20When%20adding%20a%20new%20checkpoint%2C%20don%27t%20forget%20to%20add%20the%20number%20corresponding%20to%20the%20checkpoint%20after%20the%20tag%20in%20the%20five%20functions%20above.%0D_________________________For%20the%20checkpoint%20%28n%29%2C%20the%20trigger%20functions%20should%20be%20%3A%0D%5BDissolve%20Respawn%28n%29%5D%0D%5BMove%20Item%20%22Respawn%28n%29%22%5D%0D%5BDissolve%20Item%20Particles%28n%29%5D%0D%5BStop%20Trg%3A%20%22Respawn%28n%29%22%5D%0D%5BMove%20Item%20%22Particles%28n%29%22%5D%0D_________________________%0DExample%20%3A%20for%20checkpoint%203%2C%20the%20functions%20should%20be%0D%5BDissolve%20Respawn3%5D%0D%5BMove%20Item%20%22Respawn3%22%5D%0D%5BDissolve%20Item%20Particles3%5D%0D%5BStop%20Trg%3A%20%22Respawn3%22%5D%0D%5BMove%20Item%20%22Particles3%22%5D|8;8;440;0.5;0.5;0;100,100,100,100,0,0,0,0,100;%3Cp%20align%3D%22justify%22%3E%3Cfont%20face%3D%22Helvetica%22%3EThis%20box%20should%20be%20wherever%0Dthe%20player%20spawns%2C%0Dit%20ensures%20the%20proper%0Dfunctioning%20of%20the%20system.%0DTo%20add%20a%20new%20checkpoint%2C%0Dfollow%20the%20%5B%u2605%5D%20instructions.|8;168;16;0.5;0.5;0;100,100,100,100,0,0,0,0,100;%3Cp%20align%3D%22justify%22%3E%3Cfont%20face%3D%22Helvetica%22%3EThese%20items%20are%20the%0Dcore%20of%20the%20checkpoint.%0DMake%20sure%20to%20add%20the%0Dcorresponding%20number%0Din%20their%20item%20tag%20and%0Dfollow%20the%20%5B%u2605%5D%20instructions%0Dinside%20the%20trigger%20panels.|8;384;416;0.5;0.5;0;100,100,100,100,0,0,0,0,100;%3Cp%20align%3D%22center%22%3E%3Cfont%20face%3D%22Helvetica%22%3EThese%20are%20working%20prototypes.%0DYou%20can%20try%20them%20and%20see%20how%0Dthey%20work%20by%20dying%20after%20touching%20them.|606;384;440;1;1;-180;100,100,100,100,0,0,0,0,100;0|606;608;440;1;1;0;100,100,100,100,0,0,0,0,100;0|606;136;136;1;1;135;100,100,100,100,0,0,0,0,100;0|606;72;552;1;1;90;100,100,100,100,0,0,0,0,100;0|8;536;24;0.5;0.5;0;100,100,100,100,0,0,0,0,100;%3Cp%20align%3D%22justify%22%3E%3Cfont%20face%3D%22Helvetica%22%3EI%20can%27t%20explain%20everything.%0DIt%20is%20easy%20to%20do%20something%20which%0Dwill%20inevitably%20lead%20to%20unwanted%0Deffects.%20In%20that%20case%2C%20use%20your%0Dlogical%20reasoning.%20If%20something%0Dis%20really%20odd%2C%20ask%20the%20question.|8;200;680;0.25;0.25;0;100,100,100,100,0,0,0,0,100;%3Cp%20align%3D%22center%22%3E%3Cfont%20face%3D%22Helvetica%22%3EParticles%20should%20be%20placed%202%0Dtiles%20below%20the%20checkpoint%20so%0Dthat%20the%20animation%20plays%20correctly.%0DThe%203%20invisible%20boxes%20can%20be%0Deverywhere%20as%20long%20as%20they%20are%0Din%20the%20same%20transition.|606;296;688;0.5;0.5;-45;100,100,100,100,0,0,0,0,100;0~Custom%20checkpoint%20~Niicola~1~1;0;0~1~26;93~0;0;3~1470574880~0.5~0,0,0,0,0,0,0,0,0,0,0,0


Some screenshots aaaand they're too large :
llcheck1.jpg
llcheck1.jpg (203.9 KiB) Viewed 4812 times

llcheck2.jpg
llcheck2.jpg (179.12 KiB) Viewed 4812 times

llcheck3.jpg
llcheck3.jpg (250.68 KiB) Viewed 4812 times


So, what do you think about these? (oh and if you see some grammar mistakes I'd like to know too btw)

Re: Custom Checkpoints

PostPosted: Mon Aug 08, 2016 2:16 am
by Forgotten
That's interesting, and thank you for this.
Although I don't know how it'll work across transitions, I've placed a transition between the two checkpoints in the test level, it works but the player will have to go through a loading screen since the player always respawns at the first area, before teleporting to the checkpoint.

Also, as for g_ variables, do we need to change them to s_ variables every time we hit a new checkpoint?

I'm not sure how much I'll have to change to implement this to my current level, so I might not be using this yet.
I'll probably use this for another level though. It looks handy, and we can even change the graphic for the checkpoints to make our own unique checkpoints.

Re: Custom Checkpoints

PostPosted: Mon Aug 08, 2016 10:06 am
by Niicola
Thank you, I'm actually quite surprised nobody thought of customizing checkpoints already.

Forgotten wrote:Although I don't know how it'll work across transitions

I think I'll rework the system because transitions actually impede its proper functioning. It was predictable... yet I totally forgot about testing them through transitions when I posted it.

Do not feel obliged to use them now, for this is only the first version and I'm counting on people to help me improve it.

I'm working on it

EDIT:I'm absolutely not working on it. Busy right now

Re: Custom Checkpoints

PostPosted: Mon Aug 08, 2016 11:29 am
by Supershroom
Niicola wrote:I think I'll rework the system because transitions actually impede its proper functioning. It was predictable... yet I totally forgot about testing them through transitions when I posted it.

Shouldn't it work with the common use of global/static variables? (haven't tried it out yet)