Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Help Me Modify Mr.Mo's SBABS (Advanced Scripters Please)

TaCk

Member

Hey guys. I realize the original scripters of this ABS are busy and they don't need more problems bothering with heavy modifications, so I decided to ask other talented scripters that have the time to do it.

I'll need some pretty good scripters probably, because I'll be asking for some heavy modifications especially the creation of special skills that aren't included by default in the ABS, such as controlled short-distance teleportation within the same map (like the Blink skill from WarCraft III, if anybody knows about it), and the placement of traps/bombs. There are tons of other skills, including skill specialization, passive skills and the implementation of double-attacking, dual wielding, etc. There are hundreds of planned skills so I'll make a better list of those later.

So if any scripter feels like they know how to script the first two skills (described in detail later), and maybe double-attacking and dual wielding, I'll post the details of those skills at the end of this post as well.

I also need some menu scripters to help me modify the look of the UI and HUD. Just minor cosmetic changes and new variables so this is probably going to be easy for even not-so-high-level scripters that know what they're doing (unlike me). Here's what I need for the menu screen:

1. Change the "Play Time" window with a "Time of Day" window. Make it go by real-time seconds, but when you go to an inn and sleep, the time will go forward by a random amount ranging from 6-10 hours. This is linked to the new stat Fatigue, explained in number 2.

2. Remove the "Steps" window and replace it with a "Fatigue" window. Fatigue goes up by:
* -1 point every 1 minute when in an inn, tavern or other healing area
* 1 point every 10 minutes when standing still
* 1 point every 2 minutes when walking
* 1 point for every basic attack
* 2 points for every skill used

When Fatigue reaches a certain amount (the current plan is about 500; just make this easy to adjust later on) the character gets a Fatigue status. You don't have to worry about what the status does, I'll handle that. Just make it so that the Fatigue status can only be cured by going to sleep. Sleeping outdoors removes less points than sleeping in an inn (outdoors removes 200 fatigue points and sleeping in an inn removes all of them).

When overfatigued (the current plan is about 1000 fatigue points), accumulated by not sleeping for too long, the character will enter a new status, where the controls get messed up (trying to go forward makes you go sideways or backwards), the screen can go dark randomly, and you can't attack anything. In other words, you're falling asleep while walking or standing.

While overfatigued, you can also randomly suddenly enter a Sleep status (by a 10% chance checked every second). When asleep, the screen goes black for a few seconds, and you can't control your character. The screen becomes bright again after the few seconds, and the Time of Day is adjusted randomly like normal sleeping, and your fatigue points are reduced by 200. You wouldn't be overfatigued anymore but you still have to sleep at an inn to remove all the fatigue points.

If you fall asleep in this way in a hostile area while enemies can see you, assume that you got beat up and you'll wake up in a hospital with your all of your equipment gone. If you fall asleep like that in a hostile area where enemies can't reach or attack you (like you're behind a wall or in a relatively safe area), or in a place where there are no aggressive monsters, then you'll wake up in the same place with no changes to your inventory.

Additionally there will be items that can reduce fatigue points, such as energy drinks etc. Just leave lots of instructions on making more items like this. These items will not cure overfatigue, so once you go over the limit of overfatigue, even if you drink enough energy drinks, you'd still be too sleepy to move effectively. This is to force players not to stay out of a town for too long, or to at least watch their fatigue limits.

3. I want only one character to ever be controllable, displayed and equippable. So the menu should only display the main character's walking sprite, face graphic, its stats and equipment on the main page. The status page should be removed since it's all written on the front page. The equipment and skills pages could be modified to fit the look, but I don't really want to change their content since it's unnecessary. Even if other characters are in your party (your squad), I want them to never be selectable (as in you can't scroll down to choose their equipment or skills or even view their stats or anything).


Now about the skills: The most complicated skills I can think of right now are the Blink skill (short range teleportation skill) and the placement of traps. Here's a description of how I want each skill to work.

Blink:
When you press the hotkey for the Blink skill, the game waits for you to press another button. If you press a directional button, the character teleports instantly a certain number of cells (please make this easy to edit) in the direction pressed. Like if you press Blink button and left, your character teleports three cells to the left. If the cell is blocked or unpassable, the character will only teleport as far as the furthest passable cell is. So if there's a wall two cells away, but you can normally blink up to three cells, you'll only blink on cell to the left (because the wall is on the second cell).

Additionally, if you press the attack button instead of a directional button, you automatically teleport behind the nearest enemy event (if specifying where "behind" is would be too hard, it's okay to teleport on any available cell next to the nearest enemy event). Right after teleportation, automatically do a regular attack to that enemy. If there are no available cells near the enemy (like the enemy is boxed in), teleport directly on top of the enemy and attack. The range of this Blink-attack can't go over the maximum range of the normal Blink skill. So if you can only Blink up to three cells away, you can't Blink-attack an enemy further than that.

Traps and Bombs:
I have no idea how to script this one at all. What I want to happen is that the character can leave an item on the ground, and when an enemy steps on (or goes near a certain range) the item triggers various effects. For example, you put a land mine on the ground. If an enemy steps on the land mine, the land mine explodes and damages all nearby characters up to 3 cells away, friend or foe. Another trap I'd like is a Snare trap, where if stepped on by an enemy, the enemy can't move for a certain amount of time. If anybody can figure out how to do this stuff and teach me how it was done, I can probably figure out how to make other kinds of traps.

Skill Specialization:
Skill Specialization is an always-on kind of thing that allows the character that uses certain skills a lot to gain mastery of it, thereby specializing in it. This should be available for all skills, including passives, healing/curative, and non-combat skills.

Whenever a skill is used, it gets 1 point. Passive skills gain 1 point whenever they are checked. The skill doesn't have to be successful for the point to be added. When the skill reaches 100 points, it levels up, and the counter is reset to 0. Each succeeding skill's level adds 10 points necessary for levelling it up. So level 1 to level 2 needs 100 points, level 2 to level 3 needs 110 points, and so on.

Every 10th level, the skill's name changes by adding certain words to the beginning. For example, a level 1 Cross Slash is a Beginner's Cross Slash, and a level 10 will become a Basic Cross Slash. Don't worry, let me figure out what the words to add will be. Just make it easy to edit.

Every level of the skill makes it very slightly more effective than the previous level, either by adding damage, success rate, effective range, or whatever, or any kind of mixture of the above (let me figure out what to do with each skill; I still have to test them for balance). For example, a level 1 Cross Slash does 105% damage, level 2 will do 108%, and level 3 will do 111%. Every 10th level, the bonus damage added is increased significantly (10%). So at level 9 Cross Slash should do 132% damage, but at level 10, Cross Slash would do 142% damage instead of 135%.

Also, level 1 Cross Slash might have a 75% accuracy rate, then level 2 will have 76%, and so on. At the point when success rates of skills go over 100%, they stay at 100% meaning they will always be successful (so basically, they're only leveling up now for the other effects such as additional damage and the bragging right of saying you have a skill mastered).

To make it easier to script, every damage skill will have a fixed amount of 3% damage added to its base damage per level. Every skill gets 1% additional accuracy or success rate per level. Passive skills in this game often happen by success rate, for example, a chance to do double damage when you use normal attacks. At level 1, such a passive skill would only have 5% chance, and 1% is added per level of the skill.

Double Attacking
This is probably semi-easy, but I dunno. I want this to be a passive skill that checks its success rate. When successful, the character performs two hits with a single weapon. The two hits should happen in rapid succession, that is with only a delay of about 0.1 seconds. So first hit, wait 0.1 second, then the second hit. If possible, display the total damage of the two hits instead of displaying each hit's damage. Level 1 Double Attacking has a 5% success rate, increased by 1%. Obviously, it can't go over 100% (that wouldn't do anything anyway).

When Double Attacking is level 50 and above (in which case, it has over 55% accuracy), it gets a damage bonus equal to 1% per level. So at level 50, Double Attacking does an extra 1% damage more than a regular attack, and level 51 does 2% more. This is so that a level 100 (mastered) Double Attacking skill does 150% damage, effectively making the character attack twice every attack and do extra damage as well.

Dual Wielding
Dual Wielding should be a passive skill. At level 1, there should be a penalty for Dual Wielding, which is having each weapon's damage reduced by 75% (meaning you attack twice, but at 25% damage for each weapon; this is to simulate for trying to wield two heavy weapons when you're not used to it yet). As the skill levels up, the damage each weapon does is increased by 1% and should be allowed to go over 100%. So at this rate, a level 100 (mastered) Dual Wielder should be able to do 125% damage for each weapon.

I want any weapon to be dual-wieldable (except obviously impossible weapons like bows), and compatible with this CBS. When dual wielding, each weapon should attack individually, calculating each hit's damage depending on which weapon hits (rather than combining the attack power causing too much damage). This should also work with the Double Attacking skill, so that if the Double Attacking skill works for both weapons, the character can hit a total of four times.

However, judging by the way most Dual Wielding scripts don't seem to work with CBSs, I'll be happy with just the Double Attacking skill and I'll just make supposed dual-wieldable weapons two-hand weapons. But please try to script actual Dual Wielding, if you can (whoever scripter you are).


Why is there so much importance on such passive skills? Because I don't want all characters to be the same and spamming active skills. In my game, the character's skills are completely customizable, as in he has to talk to different trainers to learn skills, and there is a certain number of skills that the character can learn (don't worry you don't have to script this part, I'm just explaining). So if you're trying to build a warrior character then you might want to focus on learning just passive skills, while mage characters may want to focus on active magic skills, etc. Don't worry because the other passive skills are easy to script myself (they include increased damage, increased defense, HP or MP regeneration, etc; I think I already know how to script simple stuff like that, but they'll still rely on the Skill Specialization script).


Lastly, it's important to note that you will only ever have one character selectable and controllable, so you don't need to program all these new variables for the skills for any other party members, just the character in slot 0. All monsters have random levels assigned to their skills, so a monster can possibly be a beginner or a master of a particular skill in its skill list. All party members will have their own skills that are separate from the skills that the user's character can have, and thusly do not require any skill specialization. This is because of non-static party members, meaning they usually only join you for one fight, otherwise you're always alone when walking around. It might save scripting time if I do it this way. So basically I only need these new variables to be assigned to the main character's skills.


I hope this isn't too tall an order. I know it's a little long and a seemingly big request, but the guidelines told me to be specific about what I want so that scripters that pick it up would know what they should be trying to achieve. I actually feel like I'm forgetting to explain some things but the post is already pretty long right now.

If there are any questions or if I didn't explain something properly or you get otherwise confused, feel free to ask me. Tell me which scripts seem impossible or unscriptable efficiently as well so I can think of alternatives. Also, if you feel that Mr. Mo's SBABS is not the best platform for the systems I have in mind, or if you can provide a better CBS (even if it's simpler), please do say so. I don't particularly need the SBABS, but it looked interesting and it didn't seem to conflict with any of my ideas. But I'd like to keep my battle system as a real-time thing so that positioning traps and stuff is part of the gamer's strategy.

I'm not in any rush to finish this project (it's just something I like to think about while I'm at work, on the way home, and something I like to do when resting when I get home; so it's really just a hobby), so if it's a hard scripting job, feel free to take all the time you need to finish it, and I won't pressure you (as long as you don't forget about my project completely :().

Thanks a bunch for anyone that tries to help.

- edit: Oh btw, if it seems overwhelming as a scripter, you don't have to work on all of the scripts. It's alright to work on just one of them if that's all you want to/can do.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top