FB1 Bugs - specifically screenlock issues
Friends Beyond 1
Over the next few days I am hopefully going to be able to fix at least the screenlock issues with this mod. Or you can use a "cheat" program to get around these bugs. Get the cheat prog from the downloads section.
That's really great news. If you want any help testing, let me know - I've delved into the scripts to fix a few things myself before. Off the top of my head, the screenlock stuff can be fixed just by searching the script files for
sp_disabled(¤t_sprite, 1);
and replacing it with
sp_active(¤t_sprite, 0);
There is also a major warp problem in the underground place and some issues with the run system, but stop me if I'm just telling you stuff you already know
sp_disabled(¤t_sprite, 1);
and replacing it with
sp_active(¤t_sprite, 0);
There is also a major warp problem in the underground place and some issues with the run system, but stop me if I'm just telling you stuff you already know
its been a long time since I have touched anything to do with Dink so I am trying to relearn a lot of stuff. I know the screenlock issue was a problem to do with the randomly appearing enemies. The quick fix (and the one I will most likely take) is to remove the randomness of the enemies. I tried just doing an sp_kill() on the ones that were disabled, but that didn't work, so I may look into it further or just remove the random at least for these patches. I will get the random working for later releases though as I like how it looks better than the same enemies appearing all the time.
January 17th 2006, 12:13 PM
Arik
I figured that you'd be relearning stuff - it only takes a couple of months before you go back to look at your own scripts and think "buh?", I find
I like the random enemies too. I'm pretty sure the problem is in the use of sp_disabled to stop the sprite. Disabling the sprite will it from moving, but according the the DinkC reference the script still runs, which means they're still brain 9 and they're still counted as live enemies by the screenlock script. Seriously, try replacing the sp_disabled commands with
sp_active(¤t_sprite, 0);
That'll remove the sprite entirely, so I'm 99% sure that will work. Although if using an sp_kill command didn't work then maybe not. Hmm.
I'll have a quick run through the game either tonight or tomorrow. If you don't mind being harassed a little with more bugs, that is
I like the random enemies too. I'm pretty sure the problem is in the use of sp_disabled to stop the sprite. Disabling the sprite will it from moving, but according the the DinkC reference the script still runs, which means they're still brain 9 and they're still counted as live enemies by the screenlock script. Seriously, try replacing the sp_disabled commands with
sp_active(¤t_sprite, 0);
That'll remove the sprite entirely, so I'm 99% sure that will work. Although if using an sp_kill command didn't work then maybe not. Hmm.
I'll have a quick run through the game either tonight or tomorrow. If you don't mind being harassed a little with more bugs, that is
yeah, using the sp_active() worked. I actually had seen that in the Dink C ref and tried it earlier today and got it working. I played through it and found several bugs that I fixed. I am sending version 2.0 to Tal tonight, but any other bugs you find can be addressed through a patch. I will fix probably anything that is major (forces you to quit/reload a game) but probably won't take the time to fix any cosmetic changes.
Hm, if you're sending it to me tonight and want it up pretty quickly, better send it to my Hotmail address for now... dark_inchworm at hotmail dot com
As long as you sorted the freeze bug on the warp points, I'm ecstatic.
eep, sorry, tal, I saw this too late. I sent it to the email address on your profile. I can resend it to hotmail if you want.
Yeah, I definitely fixed the screenlocks and the warp points... I don't know why they didn't work. the freeze(1) for some reason stopped the screenloads from happening so I just removed the freeze.
Yeah, I definitely fixed the screenlocks and the warp points... I don't know why they didn't work. the freeze(1) for some reason stopped the screenloads from happening so I just removed the freeze.
Don't worry about it - thanks to my medical woes I had to return to my Clifton home for tonight anyway, where my non-web-based email accounts (redrecondite and such) are already configured and ready for me to fool around with. I'll attend to your file shortly.
I think the problem with the warp points was that the "touch" procedure is restarted if Dink stays in contact with the warp point for any period of time. So when the warp point uses the "wait" command the whole procedure restarts without executing anything after the wait.
This also creates the interesting phenomenom where the statue will teleport Dink only after he stops touching the statue, because while he stays in contact it runs over and over. I thought this was quite a cool effect, actually ("One touch and you're on your way").
So yeah, removing the freeze will work, as will removing the wait before the teleport. If you want to put the freeze back in at any point, then just put
sp_touch_damage(¤t_sprite, 0);
At the start of the touch procedure - that way it will only run once for every time Dink is on that screen.
This also creates the interesting phenomenom where the statue will teleport Dink only after he stops touching the statue, because while he stays in contact it runs over and over. I thought this was quite a cool effect, actually ("One touch and you're on your way").
So yeah, removing the freeze will work, as will removing the wait before the teleport. If you want to put the freeze back in at any point, then just put
sp_touch_damage(¤t_sprite, 0);
At the start of the touch procedure - that way it will only run once for every time Dink is on that screen.