View Full Version : Climbing up and down
Grandad
23-11-09, 02:35 PM
I've just been playing the Amiga version of Crystal Kingdom Dizzy and enjoyed the way that Dizzy could climb up and down masts on the pirate ship. I've noticed that Colin has done something similar in SummerBlast with the ivy by the museum, but when I had a sneaky peek, all I could see was two action blocks and some scripting that went way over my head as there didn't seem to be any reference to movement control by the player.
Visually, climbing seems much more satisfying than the regular 'jumping up on climb material' (especially as you can't climb down). Is this a really advanced bit of coding or can any old Tom, Dick or Grandad do it fairly easily?
Grandad
:v2_dizzy_confused2:
Check out P_CUSTOMMOVE and the chapter called 'player' in the manual. This allows you to use a custom move routine or the default one just by changing a value.
The custom movement scripts are in 'movement.gs'. Replace the jumping up code with your own script that moves the player up or down by altering the 'P_Y' property.
When the player collides with the climbing material change from default movement to custom movement.
This is how I would do it anyway.
i'll have a look at how colin has done it tomorrow, and try to post an easy guide to doing it - if i can work it out! :p
^ surprised you haven't tried doing this before.
Lord Dizzy of Yolkfolk
24-11-09, 05:18 PM
i'll have a look at how colin has done it tomorrow, and try to post an easy guide to doing it - if i can work it out! :p
If you can and its not too complicated & I can follow it then it would be good to beable to add to Feverbound as is quite a bit of climbing but you have to jump.
ummm colin's coding is quite complex, i think because it also incorporates the character switching code too.
Basically if i were to do it myself, i'd therefore write my own code. However I have no plans to do it myself, so unless my brain comes up with an easy way to do it, I can't help, sorry!
Maybe Colin would be able to explain it, but i suspect that it is pretty complicated. I've had a bit of a think how i'd do it, and it really isn't a 10 minute job. In fact i suspect it would take me about 2 or 3 hours to completely work out and get working properly.
Lord Dizzy of Yolkfolk
24-11-09, 07:57 PM
ummm colin's coding is quite complex, i think because it also incorporates the character switching code too.
Basically if i were to do it myself, i'd therefore write my own code. However I have no plans to do it myself, so unless my brain comes up with an easy way to do it, I can't help, sorry!
Maybe Colin would be able to explain it, but i suspect that it is pretty complicated. I've had a bit of a think how i'd do it, and it really isn't a 10 minute job. In fact i suspect it would take me about 2 or 3 hours to completely work out and get working properly.
Thats ok, I expected it would be complex which means no way I could implement it. I would as always need an example and some explanation, perhaps Colin may if it isnt too difficult. It would fit neatly to Feverbound though but its a nice to have to make it more polished & playable rather than a real requirement, will just have to jump to climb :v2_dizzy_dry:
Yes the code was quite complex. I Also know it wasn't really the best way, I expect, to actually do it.
I have sent Grandad a modified version of his game, with the climbing added so he can play about with it. I stripped the multi switching code out as well.
here is the code I added and i'll try to explain how it works
First I had to add the 2 tiles that show daisy turning and climbing.
on the map there are 2 new action object blocks. they are ID:-
8900 bottom of ivy
8901 top of ivy
there are 2 new daisy objects, pasted outside the play area
2002 daisy turning
2020 daisy climbing (animation needs to be stopped)
the action objects 8900-8901
1st they set the x and y coords for the object that will replace the player
next it enters a scripted state, stopping key control of the player
then replaces the player with the turning object 2002
it makes sure the tile animation is set at the 1st frame of the animation
and it slows the animation down with a delay
it show the animation for 12 game frames, then replaces the turn object 2002, with the climb object 2020
it then activates the climb control by setting the status of the bottom of ivy action 8900 to 1
//top bottom action
func ActionObject_8900()
{
idx = ObjFind(8900);
if(ObjGet(idx,O_STATUS)==0)
{
chrx = ObjFind(2002);
x = 3008; //you need to set this at climb location
y = PlayerGet(P_Y);
PlayerSet(P_STATUS,STATUS_SCRIPTED);
PlayerSet(P_DISABLE,1);
ObjSet(chrx,O_X,x);
ObjSet(chrx,O_Y,y-14);
ObjSet(chrx,O_DISABLE,0);
ObjSet(chrx,O_FRAME,0);
ObjPresent(chrx);
ObjSet(chrx,O_DELAY,6);
WaitFrames(12);
ObjSet(chrx,O_DISABLE,1);
chrx = ObjFind(2020);
ObjSet(chrx,O_X,x);
y-=2;
ObjSet(chrx,O_Y,y-14);
ObjSet(chrx,O_DISABLE,0);
ObjSet(chrx,O_FRAME,0);
ObjPresent(chrx);
f=0;
idx = ObjFind(8900);
ObjSet(idx,O_STATUS,1);
}
}
//top ivy action
func ActionObject_8901()
{
chrx = ObjFind(2002);
x = 3008; //you need to set x as climb location
y = 258; //you need to set y<>8 pixels lower to drop down
PlayerSet(P_STATUS,STATUS_SCRIPTED);
PlayerSet(P_DISABLE,1);
ObjSet(chrx,O_X,x);
ObjSet(chrx,O_Y,y-14);
ObjSet(chrx,O_DISABLE,0);
ObjSet(chrx,O_FRAME,0);
ObjPresent(chrx);
ObjSet(chrx,O_DELAY,6);
WaitFrames(12);
ObjSet(chrx,O_DISABLE,1);
chrx = ObjFind(2020);
ObjSet(chrx,O_X,x);
ObjSet(chrx,O_Y,y-14);
ObjSet(chrx,O_DISABLE,0);
ObjSet(chrx,O_FRAME,0);
ObjPresent(chrx);
f=0;
idx = ObjFind(8900);
ObjSet(idx,O_STATUS,1);
}
Room Updates
there are 3 room updates here, as you will climb through 3 rooms
they all check if the bottom of ivy action 8900 status is set at 1.
if it is, then it calls the ivy1 function, which is the movement control.
else it reenables the player
func UpdateRoom_12_3()
{
idx = ObjFind(8900);
if(ObjGet(idx,O_STATUS)==1)
{
Ivy1();
ClearKeys();
}
idx = ObjFind(8900);
if(ObjGet(idx,O_STATUS)==2)
{
PlayerSet(P_DIR, 0);
PlayerSet(P_POW, 0);
idx = ObjFind(8900);
ObjSet(idx,O_STATUS,0);
}
}
func UpdateRoom_12_2()
{
idx = ObjFind(8900);
if(ObjGet(idx,O_STATUS)==1)
{
Ivy1();
ClearKeys();
}
idx = ObjFind(8900);
if(ObjGet(idx,O_STATUS)==2)
{
PlayerSet(P_DIR, 0);
PlayerSet(P_POW, 0);
idx = ObjFind(8900);
ObjSet(idx,O_STATUS,0);
}
}
func UpdateRoom_12_1()
{
idx = ObjFind(8900);
if(ObjGet(idx,O_STATUS)==1)
{
Ivy1();
ClearKeys();
}
idx = ObjFind(8900);
if(ObjGet(idx,O_STATUS)==2)
{
PlayerSet(P_DIR, 0);
PlayerSet(P_POW, 0);
idx = ObjFind(8900);
ObjSet(idx,O_STATUS,0);
}
}
Movement Control
This handles player input. for when the player presses cursor up, it will first check which frame of the animation is currently being shown on variable f and it's y coordinate. it then reduces both numbers by 1 (on the down key it adds 1 to them). So basically it is running the animation in reverse. the next few lines of code checks if has f has gone below 0. As this would cause an error it resets it to 8 (the animation has 8 frames).
it now checks if has reached the top of the climb (in this the top is set when y goes below 248). If it has then it removes the climb tile, resets the key checker and re-places the player into position. The last part will check if you are moving out of screen. If you didn't check, as you continue the climb he would walk off screen but you wouldn't follow. this code checks if you cross the coordinate it moves the player (that is hidden) into the new room.
func Ivy1()
{
//up
if(GetKey(KEY_UP)==1)
{
ClearKeys();
chrx = ObjFind(2020);
f = ObjGet(chrx,O_FRAME);
y = ObjGet(chrx,O_Y);
y-=1;
f-=1;
if(f<0)
{
f=8;
}
if(y<248) //this is the top point where he/she steps off
{
idx = ObjFind(8900);
ObjSet(idx,O_STATUS,2);
PlayerSet(P_X,3016);
PlayerSet(P_Y,240);
ClearKeys();
PlayerSet(P_DIR, 0);
PlayerSet(P_POW, 0);
PlayerSet(P_DISABLE,0);
PlayerEnterIdle();
chrx = ObjFind(2020);
ObjSet(chrx,O_DISABLE,1);
}
chrx = ObjFind(2020);
ObjSet(chrx,O_FRAME,f);
ObjSet(chrx,O_Y,y);
if(y==400)
{
PlayerSet(P_Y,380);
}
if(y==264)
{
PlayerSet(P_Y,250);
}
}
//down
if(GetKey(KEY_DOWN)==1)
{
ClearKeys();
chrx = ObjFind(2020);
f = ObjGet(chrx,O_FRAME);
y = ObjGet(chrx,O_Y);
y+=1;
f+=1;
if(f>8)
{
f=0;
}
if(y==488) //lowest point to get off
{
idx = ObjFind(8900);
ObjSet(idx,O_STATUS,2);
PlayerSet(P_X,3016);
PlayerSet(P_Y,y+14);
ClearKeys();
PlayerSet(P_DIR, 0);
PlayerSet(P_POW, 0);
PlayerSet(P_DISABLE,0);
PlayerEnterIdle();
chrx = ObjFind(2020);
ObjSet(chrx,O_DISABLE,1);
}
chrx = ObjFind(2020);
ObjSet(chrx,O_FRAME,f);
ObjSet(chrx,O_Y,y);
if(y==538)
{
PlayerSet(P_Y,500);
}
if(y==401)
{
PlayerSet(P_Y,480);
}
if(y==265)
{
PlayerSet(P_Y,380);
}
}
}
i find it very difficult to give up on something...
so i'm currently working on my own code :p
I've currently got him to go into the 'climb' mode, and moving up and down, however I still need to change the collision detection for 'block' brushes, and implement my own. :v2_dizzy_smile:
I'll post the code once I've got it fully working.
EDIT:: Bah, getting bogged down with this collision detection coding :(
EDIT 2:: sorry, but i give up for tonight. The movement code again baffles me with it's unwillingness to do stuff.
DizzyFanUK
24-11-09, 10:18 PM
Seeing as you guys enjoy a challenge - heres one for the mix:
Can you get Dizzy to do near misses onto ledges, but hang on by his gloves and pull himself up - like in Prince of Persia?
oh you have got to be joking...!
Right, I've created a small example of how I would do it using custom movement which I still think is the best way.
I have drawn a single room which has a rope hanging from the ceiling. If Dizzy stands under or jumps onto the rope he can climb up or down. Dizzy can leave the rope by moving left or right. What I have not done is change dizzys graphic into a climbing one. I didn't want to over complicate the code at this point as I have written this to show how the climbing routine works. Once a user has it working then they can think about adding code to change Dizzy's costume.
To use it create a room and put in your climbing medium (rope, tree etc). Over (or under in my example) the climbing medium place a blank brush that is dynamic, material climb (to stop the effects of gravity), material map only and an ID (1001 for this example).
It works by using collision detection to see if Dizzy is over the blank climbing material. If he is then custom movement is switched on. When Dizzy leaves the brush then custom movement is turned off. Whilst custom movement is on the jump routine is not called. Instead Dizzy moves up by 4 pixels (can be made greater or smaller). Same for the down key, Dizzy moves down. All other movement is unchanged.
Enter the code below.
in game.gs at the bottom.
func CollideObject_1001_1() // moved into collision with rope
{
PlayerSet(P_CUSTOMMOVE,1);
PlayerEnterIdle();
}
func CollideObject_1001_0() // moved off collision with rope
{
PlayerSet(P_CUSTOMMOVE,0);
}
In handlers.gs find 'func HandlerPlayerUpdate()' and add the following line before the final curly bracket.
if (PlayerGet(P_CUSTOMMOVE) == 1) CM_Update();
In movement.gs find 'func CM_EnterKeyState()'. Remove the whole function and relace it with the amended one below.
func CM_EnterKeyState()
{
if( PlayerGet(P_LIFE)<=0 ) { CM_EnterIdle(); return; } // prepare to die
dir = 0;
if( GetKey(KEY_RIGHT) ) dir++;
if( GetKey(KEY_LEFT) ) dir--;
if( GetKey(KEY_JUMP) )
{
PlayerSet(P_Y,PlayerGet(P_Y) -4); // speed of climb
// call jump handler to determine the power of the jump
ScrSetHandlerData(0,-1); // send no material
ScrSetHandlerData(1,0); // clean return for safety
}
else if( GetKey(KEY_DOWN) )
{
PlayerSet(P_Y,PlayerGet(P_Y) +4); // speed of climb
// call jump handler to determine the power of the jump
ScrSetHandlerData(0,-1); // send no material
ScrSetHandlerData(1,0); // clean return for safety
}
else
if(dir!=0)
{
CM_EnterWalk(dir);
}
else
{
CM_EnterIdle();
}
}
And thats all there is to it.
I recomend downloading my example to give you a better indication of how it works.
Download here. (http://homepage.ntlworld.com/dtgames/files/climbing.zip)
Remember, this is just a rough example to show how to do it. It is not the final polished thing. Treat it as a starting point.
Grandad
26-11-09, 10:34 AM
The guy who wrote 'Spud's Quest' (fan game on this site) does that with Dizzy too ..but unfortunately it's not written with DizzyAge.
Grandad
Lord Dizzy of Yolkfolk
26-11-09, 07:20 PM
Had a play about with the code Colin kindly posted & I sort of got it working but some of the latter parts of the code with the numbers I wasnt sure with and Dizzy was reappearing in funny positions lol.
Got Dizzy to turn, to climb, although he just went up but no real climb animation which he does when he comes down, dunno if that correct or not. He sort of just glided up.
Anyway took me ages and ages to do just for one and I have lots of 'climb' brushes in Feverbound so its far too impractical without a much simpler code. The code list be hundred miles long lol & would take me eons.
Prob too soon to ask but how you getting on Jamie with tackling this.
Had a play about with the code Colin kindly posted & I sort of got it working but some of the latter parts of the code with the numbers I wasnt sure with and Dizzy was reappearing in funny positions lol.
Got Dizzy to turn, to climb, although he just went up but no real climb animation which he does when he comes down, dunno if that correct or not. He sort of just glided up.
Anyway took me ages and ages to do just for one and I have lots of 'climb' brushes in Feverbound so its far too impractical without a much simpler code. The code list be hundred miles long lol & would take me eons.
Prob too soon to ask but how you getting on Jamie with tackling this.
LOL! why do you think my game script was so massive!
Seeing as you guys enjoy a challenge - heres one for the mix:
Can you get Dizzy to do near misses onto ledges, but hang on by his gloves and pull himself up - like in Prince of Persia?
I thought i'd have a little go!
sort of works
ledge-hang-test.zip (http://homepage.ntlworld.com/colin.page33/ledge-hang-test.zip)
up key to climb up and left key to fall back off!
Prob too soon to ask but how you getting on Jamie with tackling this.
I haven't had chance to try again since the other day, as I also did the Ice Slide coding too. The problem is that the climb coding is rather more complicated...
I may have another bash at it tomorrow sometime if i get the time.
DizzyFanUK
27-11-09, 07:12 AM
OMG - Colin that is so cool
That is the sort of thing I never thought Id see - wow!!!
fyi, it only seems to work when I jump right onto the top ledge
When I jump left near the bottom ledge I cant seem to get it to work - but thats only minor detail - Great demo!!!
Now before someone creates the full game:
"Dizzy - Prince (of the Yolkfolk) of Persia"
I wonder if you can do this?:
Can Dizzy skid?
Like just after he comes off the ice - he travels a fraction longer before stopping - or a bit like in Sonic the Hedgehog - when you want him to turn around, he kinda over travels in the direction he was originally moving before skidding, stopping and turning back?
Mataeus
29-11-09, 07:31 PM
Wow, that last chance grab is pretty cool stuff! I mean, seriously, that's really really great! Along with the skid example, you could create a pretty nifty fast-paced platformer... Maybe he could speed up to running (also like sonic), starting out at a little wobble, looking at the ground and gradually building up to full speed, his little gloves really pumping and his chest puffed out (in an eggy, rotund kinda way)? I'm not suggesting that somebody should try and code this and draw all the animations, I'm simply saying it would look pretty cool. And then when you flip the joystick the other way he skids along. Kind of like Mayhem in Monsterland on the C64 :D
Perhaps a Dizzy Olympics will the be next spin off.
Grandad
08-03-10, 02:41 PM
I've been playing around with both Macon and Colin's climbing demos and although I seem to understand what's going on I just can't make a tile switch to a climbing animated tile. It's not really a case of switching the player to another character as there's no change of inventory etc.
I've tried changing the costume and adding 'dizzy_climb' as def 24 in the def.gs file and trying to use the code:
PlayerSet(P_TILE, PlayerGet(P_COSTUME)+PlayerGet(P_TILECLIMB));
which I saw in the movement file, but keep getting laughed at by the engine's pre-game check.
I even tried to set up a special custom climb movement and movement update sequence in the movement file and added to the 'enter states' section and added a define to it, but the engine just couldn't find it.
In Macon's demo you collide with the object which opens up the custom movement and then sets Dizzy in the Idle state, so all I'm really trying to do is to switch the 'idle' tile to an animated 'climb' tile (id 24) whilst Dizzy is in the custom movement mode. Any hints please.
Grandad
I dunno about Macon's version as i haven't tried it but Colin's works fine, didn't touch the movement file form what i can remember.
The climb tile/turn tile should be some were on your 'map' with the correct ID. But it might be differant in Macons version.
yes, this is the old method. i've since rewritten the climbing function. i'll post the new one!
>>>>>>>>NOW V3 updated 28/09/10<<<<<<<<
you need to 1st copy this movement2.gs (http://homepage.ntlworld.com/colin.page33/movement2.gs) to the scripts folder (REPLACE ANY OLDER COPIES BEFORE V3)
then add it to the dizzy.gs list.
you need to replace the custom movement code at the bottom section of func HandlerPlayerUpdate()
with
//Custom movement
custommove = PlayerGet(P_CUSTOMMOVE);
if(custommove==0) // engine default
{
PlayerSet(P_W,CM_BOXW);
PlayerSet(P_H,CM_BOXH);
}
else
if(custommove==1) // scripted default
{
CM2_Update();
}
add to the end of def.gs or gamedef.gs
int laddbott
int laddtop
int laddx
int climbtype
int clde
int del
the next part is added in game.gs and will be called when the ladder or rope is activated
//////////////////
//rope climbing
//////////////////
func RopeCollide()
{
PlayerSet(P_Y, PlayerGet(P_Y) -2);
PlayerSet(P_X,laddx);
if(PlayerGet(P_CUSTOMMOVE)==0){PlayerEnterScripted ();}
PlayerSet(P_TILE, 28);
if(PlayerGet(P_FLIP)==0){PlayerSet(P_X,laddx);}
if(PlayerGet(P_FLIP)==1){PlayerSet(P_X,laddx+16);}
scub = InventoryHasItem(ID_SCUBA);
if(scub==1){PlayerSet(P_TILE, 56);}
WaitFrames(6);
PlayerSet(P_CUSTOMMOVE,1);
CM2_EnterIdle();
}
//////////////////
//ladder climbing
//////////////////
func LadderCollide()
{
PlayerSet(P_Y, PlayerGet(P_Y) -2);
PlayerSet(P_X,laddx);
if(PlayerGet(P_CUSTOMMOVE)==0){PlayerEnterScripted ();}
PlayerSet(P_TILE, 26);
scub = InventoryHasItem(ID_SCUBA);
if(scub==1){PlayerSet(P_TILE, 56);}
WaitFrames(6);
PlayerSet(P_CUSTOMMOVE,1);
CM2_EnterIdle();
}
add this code into BeginNewGame() to initialise the 2 variables
climbtype=0;del=0;
the ladder activates when you hit a collider. this needs to be the length of the ladder.
you need tell it the ladder top and bottom positions.
also it needs to know the x position when dizzy is on the ladder
the x position must be a multiple of 4.
//////////////////
//rope collider
//////////////////
func CollideObject_1000_1() // moved into collision with rope
{
laddtop=164;
laddbott=244;
laddx=596;
clde=1000;idx=ObjFind(clde);ObjSet(idx,O_DISABLE,1 );
climbtype=1;
RopeCollide();
}
//////////////////
//ladder collider
//////////////////
func CollideObject_1001_1() // moved into collision with ladder
{
laddtop=164;
laddbott=242;
laddx=684;
clde=1001;idx=ObjFind(clde);ObjSet(idx,O_DISABLE,1 );
climbtype=0;
LadderCollide();
}
finally here are the tiles for dizzy climbing. you will need to re-colour the aqualung ones to match your game
dizzy climb tiles v3 zip (http://homepage.ntlworld.com/colin.page33/dizzy_climb_tiles_v3.zip)
Grandad
09-03-10, 10:07 AM
Thanks Meph ...I can't believe I forgot to put the climbing tile in the map.
Thanks for the code and tiles Colin, this will help lots.
Grandad
Grandad
09-03-10, 01:33 PM
Hmm, can't get it to work. I copied the movement2 file and the tiles and followed your instructions to the letter and have checked all the coding (inc the cm2enteridle and the cm2enterup just to make sure, and everything seems OK.
All that happens is that when Dizzy collides with the actionObject the tile changes to the backview and clings onto the ladder, but when I press the up key all that happens is that Dizzy does a normal jump up as the default jumptile (tile 12).
Is there anything I need to check?
it might be the player offset
here is a pic of a ladder in my game
http://homepage.ntlworld.com/colin.page33/ladder_sample.jpg
you will see that the laddtop and laddbott are set higher than the actual ladder position. try taking 14 off of each.
climb code now updated to V3. not only does it include the ladder climbing, but now includes rope climbing too.
here's a working demo map with the new code.
climbing_v3.zip (http://homepage.ntlworld.com/colin.page33/climbing_v3.zip)
it works similar to the v2 but you need to tell it which type of climb to switch into
//ladder climbing
/////////////////
func CollideObject_1001_1() // moved into collision with ladder
{
laddtop=164;
laddbott=242;
laddx=684;
climbtype=0;
LadderCollide();
}
//rope climbing
///////////////
func CollideObject_1000_1() // moved into collision with rope
{
laddtop=164;
laddbott=244;
laddx=596;
climbtype=1;
RopeCollide();
}
when climbing ropes, you can switch rope sides. needed if a solid block is in your way. you can't jump off the rope if a solid block is in your way. press and hold direction key, till you fall off a clear side.
go up the page for the full instructions on V3
Hi Colin !
Thank you for your climbing system ! I've implemented it to my game but I've found a bug I think (and in your demo example too).
Please, try the following in the demo:
1. go to the second room (or stay in the first room, it doesn't matter)
2. climb up the ladder and go off the ladder to the left or right
3. then climb down and e.g. in the half of the ladder climb up
4. at the end of the ladder you will see that Dizzy jumps up and fall down
5. after that ladder doesn't work
Then F6 repair this in the dev mode.
remove this line in the ladders collideobject
cide=****;idx=ObjFind(clde);ObjSet(idx,O_DISABLE,1 );
my game uses this line, as scrolling is turned on. it stops dizzy pausing when he switches rooms and picks up the collider again. really only works with ropes.
right, I've worked out my own way of doing climbing now :)
It's pretty simple coding, and dead easy to put in the map too! It also works without you having to use colliders or any of that shiz :p
give me an hour or so, and I'll put it up on Dizzy Stories :)
Done! It's now up on Dizzy Stories :)
Personally I think it's easier to implement and use than Colin's code, but then I would say that wouldn't I? :p
Sorry Col! :embarassed:
cool, it does looked alittle easier to follow I'll have to try it out on the next game, i used the original coding on HLD and it was difficult.
Is Dizzy still invincible while climbing? or can he now be hurt under your new method?
cool, it does looked alittle easier to follow I'll have to try it out on the next game, i used the original coding on HLD and it was difficult.
Is Dizzy still invincible while climbing? or can he now be hurt under your new method?
He should be able to be hurt. I can't see any reason why not. I've not actually tried it - he should die as normal if killed, but tbh I'm not sure...
EDIT:: OOER! he can be hurt and killed, but the game freezes once he's killed! I'll have to fix that...
EDIT2:: I've fixed that. Turns out that I'd forgotten to tell the game to check the two new player statuses when checking deaths :p
Lord Dizzy of Yolkfolk
09-10-10, 08:50 PM
Ive used Colin's climbing code & are quite a lot of climbing areas, are pretty much all in place now but I couldn't use any baddies whilst climbing as it caused an error if dizzy got hurt.
yeah with the old code dizzy couldn't be hurt.. that was the whole point in me adding that climb in HLD lol which is why it now feels tagged on as an extra as it didn't do anything.
:dizzy_biggrin:
I've just modified it slightly so that you can use the 'up' button for jumping when not in front of a ladder
EDIT:: also added a line in function CM_EnterWalk( dir ) that I'd forgotten about...
EDIT2:: I've added the snorkel tile too...
Hi Colin !
Thanks, I've removed the 'clde' variable from all the code and now it works fine.
But there is another problem, or maybe a mistake. This tile - 'aqua_dizzy_rclimb 8.tga' has id '54' in your demo and I think that it has to be '58' and the tile 'aqua_dizzy_rclimbidle.tga' (id 59) is missing completely.
I've made this tile by myself from the climbing tile and it works good. So only a hint to your example.
Powered by vBulletin® Version 4.2.0 Copyright © 2013 vBulletin Solutions, Inc. All rights reserved.