I guarentee someone has a steal ability? Note that all who give me scripts are noted in the credits under development team. Also is it wrong to have a traditional RPG with no strings attached. Like exactly the same style as FF1? Just curious since you all have these wild styled games and I feel odd having an old school role playing game.
Post by Neo Samurai on Jul 26, 2006 23:05:54 GMT -5
I'm an old schooler. So I'd play your game. Just keep in mind about balancing your character/enemy stats. This can make or break a traditional RPG. Make it too easy and your audience will get bored. Make it too hard and they'll get frustrated.
If you look at the number of completed titles for RPGM2, you'll notice 2 things. There aren't many and most are not old school RPG's. So your game will stick out, which is good. If you keep the game balanced and tell a good story, It'll be a good game.
As to your scripting question, I'm 99% sure that there is a steal script on this site. Look in the common script database or do a search. I saw one before, if not here, than at the pavilion.
Post by KuroShinnen on Jul 27, 2006 13:04:06 GMT -5
In my opinion, it depends what kind of steal ability we are talking about... Item, weapon. Does each enemy have a different item or weapon? You have to be more descriptive... That is like saying how do you make a magic ability.
Post by Doan the Nado on Jul 27, 2006 22:13:40 GMT -5
A couple things:
1. You don't have to be sorry for posting. The reason that people are here is because they make posts.
2. You should be sorry for making a post with a horrible title. If someone goes looking through this forum in a month or two wondering how to make a steal ability, what does the title of this post tell them? Absolutely nothing. It's especially important in this forum that all posts are appropriately titled so that there is not a huge repetition of effort asking and answering the same question over and over again. I have changed the title to better reflect the purpose of this post.
3. I assume you're using the Default Battle System? I don't really know what I'm talking about in this department, but I'll try to give you a push in the right direction. One way would be to have certain "item groups" that different enemies can give. For example:
0: nothing 1: Herb (50%), Antidote (25%), 50-100 G (25%) 2: Life Potion (70%), Cure-All (30%) 3: nothing (50%), 1-500 G (45%), Super-sweet Sword (5%)
Those would be 4 different possible groups of items. Now, you may have many different enemies in your game. For each enemy, decide which kind of item it should give away when stolen from (note that all enemies will have some value for this, even if it is 0: nothing). Assign some special variable (there are a few extra variables for enemies, I believe, just as there are for Party Members), let's call it EnemyItem here, where you designate for each enemy what it can give away.
Now for the Steal script, you would load the information of the enemy being stolen from, and then call a script (let's call it ItemSteal) that would do the following:
Message: Clear Message: "You stole " SB: Sort Var [EnemyItem] Apply If 0 Message: "nothing!" To End Apply If 1 TempVar0 = 0 ? 3 SB: Condition TempVar0 < 2 (50% chance) Message: "Herb!" --Add item to member or bag To End SB: End SB: Condition TempVar0 < 3 (25% chance) Message: "Antidote!" --Add item to member or bag To End SB: End TempVar0 = 50 ? 100 (amount of Gold to give) Message: Data: TempVar0 Message: " G!" Gold = Gold + TempVar0 To End Apply If 2 ...
I think you can see where this is going. For each item group, you would use random variables to create the desired percentages of each outcome occurring, and then add the necessary crap to the parties supplies.
Setting it up this way serves a few important purposes: 1. Allows the same enemy to give away different items with varying frequencies. Keeps stealing somewhat interesting. 2. Allows different enemies to give away the same types of items. This may not seem like such a great thing, but when you think of a huge sort involving every enemy in the game, this is definitely a better alternative. If you happen to have a special enemy that gives away its own thing, you would create a special number just for that enemy. In this manner, this method is efficient when possible, but still flexible if necessary. 3. Easily modifiable to add additional features. Let's say you want to make it so that you can steal from some enemies multiple times. You could then use multiple variables to indicate the different possible item groups, along with one additional variable to indicate how many steals have been performed. Then:
--Load enemy info SB: Sort: [NumSteals] Apply If 0 EnemyItem = EnemyItem0 To End Apply If 1 EnemyItem = EnemyItem1 To End Apply If 2 ... SB: End Call [ItemStealing]
4. It allows the act of stealing to be separate from item determination. First, you would load character and enemy info to determine if the steal is successful (if desired), then after doing so, you would set up the EnemyItem variable to contain the information for what item group should be stolen from, and you would call the ItemStealing script to actually perform the theft. After returning, if more than one steal was allowed you would increment the NumSteals variable for the correct enemy, and then be done. Changes to the Stealing success would be made in one place, while changes to the Items would be made in another. This kind of separation is almost always a good thing.
5. Well, I can't think of much else, other than the fact that I am partial to it because I wrote it .
I know this doesn't go into exactly what is necessary to write the script in terms of the DBS and whatnot, but I hope it gives you a clear idea as to one possible way to go about setting up such a system in an intelligent, modify-able, efficient manner. Good luck!
Post by JimmyPaladin on Jul 28, 2006 13:44:04 GMT -5
I have a Steal Ability in The Solemn Truth.
Anyways, what Doan posted is perfect as far as I know (I forget the exact scripts, but it sounds just like what I did), and his customizing ideas are awesome.
What I'll add is:
The Steal Ability is very similar to the Scan Ability but more complex, so I recommend you try making a Scan Ability first. Both load information about the enemy and do something according to it, but while the Scan Ability is a simple text message (can't mess anything up since you're only loading and displaying info) the Steal Ability involves one or two of the preset BattleVariables (one to store whether enemy has item or not, and two to store which item type enemy has (refer to Doan's post)), a sort command to configure whether to give an item or not and what item to give (sort by enemy name or enemy item-steal-type BattleVariable (refer to Doan's post)), and remembering what items have been obtained per battle in order to put them in the Bag after battle (at least, that's the easiest way) (access to Bag is lost during Default Battle System, same method here is the one used for the Using Items Directly from the Bag in DBS technique).
Lastly, the script you make for the Steal Ability is placed accordingly:
(taken from Scan Ability post)
"Step #2. Make a System Event like so:
Place your script from Step 1 in it.
Step #3. Make a Direct Effect like so:
Copy the preset 'Fireball' Direct Effect, or a Direct Effect you've made and believe functions perfectly. Under Adv/Result/Success Slot, put your event from Step 2 in it. To explain: that slot's script is what happens when the Direct Effect is successful, and is therefore where you would put your Steal/SubtractHP/AddHP/whatever (effect on target when successful) script/event.
Step #4. Make an Ability like so:
Copy preset 'Fireball' Ability, or an Ability you've made and believe functions perfectly. Under Custom/Direct Effect Slot, put your Direct Effect from Step 3."
Mine is just like the old Final Fantasy Steal. It's an Ability (technically 'Magic' in RPGM2) that costs MP to use (easy option in RPGM2 'Ability' database) and tries to steal an item from an enemy. I did but didn't do Doan's item group idea, kind of. Each enemy has one copy of one item that can be stolen (which can vary depending on which dungeon you encounter them in via a custom 'Location' variable), but when Sorting the enemy's name in Input#1[Common Name], all I do is this to make the same item on two different enemies:
Sort: Input: Input#1[Common Name] Apply If: 'Soldier' *Apply If: 'Warrior' (stuff for 'Tonic' item) To End Branch End
Just add an Apply If: (second enemy's name). I certainly like his idea for a few different items per enemy though, and may very well do that too!
edit: The '(stuff for 'Tonic' item)' also includes the percent chance of success. So, if it was a good item you'd have to keep trying to steal it where as a crappy item would be near 100% success (which this is also how the old Final Fantasy's had it set up). I always disliked it when the chance was so low that you sat there trying steal it for an hour till getting it (FF5, FF9), which is why I did the location idea and am thinking that 25% success will probably be the lowest I do in my game.
I love your idea as well Solemn Truth. I am going to combine yours both and make it that you steal one item once and if you reapply the steal ability to the same monster it gives you a totally new item and not the same one.
Post by Doan the Nado on Jul 28, 2006 22:09:49 GMT -5
A quick review of two equally viable solution, including their pros and cons:
Option 1: Sort based on enemy name: Pros: No variables are necessary to store item information. Highly customizable: every enemy can easily offer different items Cons: Every enemy that can be stolen from must be included in the sort.
Option 2: Sort based on item groups: Pros: Very flexible: can be used to have a few different possibilites of stolen items across many enemies, or in its most extreme, every enemy can have its own item group (although if you were doing this, you may as well use Option 1). Different enemies can easily yield the same types of items without having to have every enemy in a big sort. Cons: Requires the use of enemy variables. Adds one more layer of access where it may not be necessary (in some cases, it will be simpler just to Sort based on the enemy rather than on the enemy's Item group)
Either way, you're going to have a pretty big sort script. If you have few enemies and want all of them to offer different items, Option 1 is your best bet. If you have a lot of enemies, and some of them may as well give away the same thing, then Option 2 can shorten your script a bit. Either way, you will learn a lot about Script flow and variable manipulation when you implement this ability.
Well, I have steal scripts that are somewhat similar to these, though I set aside one of the battle variables for that. Basically, each enemy has their own gold steal value, and item number group. I have three separate skills, Pickpocket, Steal, and Mug, which only steal based on one of the variables. Atm, I have repetitive stealing allowed, if only because I like the idea myself... Also, been assigning each enemy their own various items you could potentially get from them, which does kind of cause the steal item script to be a bit on the bigger side, though I find it allows for more fun with stealing since every enemy has a unique item set you could potentially get from. This is also convenient as I use a blacksmith npc as well, allows for more items per enemy, as in more mats for my blacksmith stuff.
It's pretty nice though, being able to load an enemy's specific variable, steal say 100 gold, then pickpocket another enemy, get 200, then go back to the first and get 100 more, was not sure if I could work battle variables though.
Curious, could you use them for like SP/Morale/TP, some other custom stat like mp, drain from each enemy's/party member's stat individually, and save it back to their battle variable, or if it's 100 at the start, it's always 100? Sudden thought that occurred to me, can't test atm.
Post by Doan the Nado on Oct 19, 2014 7:15:56 GMT -5
That sounds pretty good so far!
I don't see anything that would prevent you from updating party member attributes, but I haven't played in a long time. At the least, you could save to some designated variables and customize the appropriate battle scripts to account for the boosts.