Save-Point
Stealing, Mugging, and Scanning - Printable Version

+- Save-Point (https://www.save-point.org)
+-- Forum: Material Development (https://www.save-point.org/forum-8.html)
+--- Forum: Scripts Database (https://www.save-point.org/forum-39.html)
+---- Forum: RPGMaker XP (RGSS) Engine (https://www.save-point.org/forum-116.html)
+---- Thread: Stealing, Mugging, and Scanning (/thread-2794.html)



Stealing, Mugging, and Scanning - Trickster - 03-02-2008

Stealing, Mugging, and Scanning
Version: 6.3


Introduction
This script lets heroes and enemies to steal exp, gold, items, and skills (for a certain amount of turns, the rest of the battle, or permanently). Also from this update lets the battlers steal + attack (mug) and also adds a scan skill that scans a enemy (stats, exp and gold carrying, weaknesses, strengths, and the items able to be stolen from them). This is the First Revision of this script It does not add any features, but It does fix some coding, looks neater and a few bugs may have been fixed.


Features
  • The ability to steal gold from monsters and have gold stolen from you
  • The stealback ability allows you to stealback the gold/item the monster stole from you (can be turned off)
  • The ability to steal items from monsters and have items stolen from you
  • Monsters may hold three items (the regular item, secondary item, and rare item
  • The ability to steal skills from monsters and have skills stolen
  • The ability to steal the commonly used skill from a monster
  • The ability to steal a skill for a certain amount of turns and have skills stolen from you for a certain amount of turns
  • The ability to steal a skill forever and have monsters steal skills from you forever *coughcruelcough*
  • The ability to steal exp from a monster and have exp stolen from you
  • Display what was stolen from you
  • Help window edit to allow for color changes/bold and italic toggling
  • You may have items/skills that are unstealable
  • Enemies may use stolen skills against you
  • Damage Display using the help window
  • Copy Skills from the enemy instead of stealing them
  • Steal/Copy the last skill the enemy used
  • Can be used with encrypted projects
  • Mugging skills (stealing and attacking)
  • A scan skill that displays enemy stats, stealable items, and strengths and weaknesses
  • Stuff I'm probably forgetting to mention ;)


Screenshots
NEW UPDATED
[Image: scanningrb3.png]
[Image: scanning2bv5.png]
[Image: stealingyw8.png]


Demo
Download Here


Instructions
Also Copy the File Steal.rxdata from the data folder to the data folder of your demo.

Create five new elements named Steal, Copy, Last Skill, Mug, and Scan
Edit in the script these lines each with their corresponding element id
Code:
#--------------------------------------------------------------------------
  # * Steal Element
  #--------------------------------------------------------------------------
  Steal_Element = 20
  #--------------------------------------------------------------------------
  # * Copy Skill Element - Copies Skills instead of stealing them
  #--------------------------------------------------------------------------
  Copy_Element = 21
  #--------------------------------------------------------------------------
  # * Steal Last Skill - Steals Last Skill Target Used
  #--------------------------------------------------------------------------
  Steal_Last_Skill = 22
  #--------------------------------------------------------------------------
  # * Mugging Element - Steals + Attacks Target
  #--------------------------------------------------------------------------
  Mug_Element = 23
  #--------------------------------------------------------------------------
  # * Scanning Element - Note: Do not use in conjunction with above
  #--------------------------------------------------------------------------
  Scan_Element = 24


You may either edit the skills directly in the database or you can do this in the file Steal.rxdata located in the data folder of the demo (see below). If you don't plan on using the Text file then set the option Using_Steal_Rxdata to false.

Here is how you set up a skill steal
Quote:Here is how you set up a skill steal
* means the argument is required
*1)id
The id of the skill to overwrite
*2)steal
The steal type (Item, Gold, Exp, Skill, HRSkill)
note: HRSKill = Highest Rated Skill
3)Mugging
set this to true if you want the skill user to also attack the enemy

4)base
For Gold and Exp Stealing the base amount stolen
note: (leave blank for base = enemy gold)
For Skill Stealing The amount of turns the skill is stolen
note: Set this to true = stolen forever and set to false to steal just for the battle
5)item_get
For Item Stealing The id of the item given to the player
note: (leave blank for item = enemy item)
6)type
For Item Stealing The type of the item given 1 item 2 weapon 3 armor
For Skill Stealing 1 = steal last skill 2 = copy skill 3 = copy last skill
7)number
The maximum number that could be stolen
8)agility
Agility influence
9)dexerity
Dexerity influence
10)Theft Defense
For Exp and Gold Stealing the Defensiveness Influence
11)variance
For Gold and Exp Stealing the variance
12)accuracy
Accuracy


NEW Setting up unstealables
Look in script Steal Setup and see these constants
Code:
#--------------------------------------------------------------------------
  # * Actor Unstealable Items
  #--------------------------------------------------------------------------
  Actor_Items = []
  #--------------------------------------------------------------------------
  # * Actor Unstealable Weapons
  #--------------------------------------------------------------------------
  Actor_Weapons = []
  #--------------------------------------------------------------------------
  # * Actor Unstealable Armors
  #--------------------------------------------------------------------------
  Actor_Armors = []
  #--------------------------------------------------------------------------
  # * Actor Unstealable Skills
  #--------------------------------------------------------------------------
  Actor_Skills = []
  #--------------------------------------------------------------------------
  # * Enemy Unstealable Items
  #--------------------------------------------------------------------------
  Enemy_Items = []
  #--------------------------------------------------------------------------
  # * Enemy Unstealable Weapons
  #--------------------------------------------------------------------------
  Enemy_Weapons = []
  #--------------------------------------------------------------------------
  # * Enemy Unstealable Armors
  #--------------------------------------------------------------------------
  Enemy_Armors = []
  #--------------------------------------------------------------------------
  # * Enemy Unstealable Skills
  #--------------------------------------------------------------------------
  Enemy_Skills = []


and add the corresponding id of the unstealable item in the array

NEW Setting up secondary/rare items
This was changed as well in the Script Steal Setup find these constants
Code:
#--------------------------------------------------------------------------
  # * Enemy Secondary Stealable Items
  #   syntax enemy_id => [id, type, chance]
  #   where id is the id of the id
  #         type is 1: item, 2: weapon, 3:armor
  #         chance is the chance of stealing
  #--------------------------------------------------------------------------
  Secondary_Items = {
  1 => [5, 1, 40]
  }
  #--------------------------------------------------------------------------
  # * Enemy Rare Stealable Items (see Secondary Items)
  #--------------------------------------------------------------------------
  Rare_Items = {
  1 => [3, 1, 20]
  }


Now in the Secondary Items you can define the enemies second stealable item. and in the Rare Items hash you can define the enemies rare stealable items (when scanning they show in a golden color)

So From My Example Above
1 => [5, 1, 40] interprets as Ghost Also Holds High Perfume as a secondary item and you have a 40% chance of taking it
1 => [3, 1, 20] interprets as Ghost Also Holds Full Potion as a Rare Item and you have a 20% chance of taking it


FAQ
Note: Permission granted by Trickster to post:
Quote:And if you post what you have now of my stuff then you don't have the latest versions. I'm too lazy/busy to post stuff.
As this is his material, it is deletable upon his request. Due to his current absense, no support is available. Please do not PM or eMail him for support.


Compatibility
Should not pose much of a compatibility problem

Yes Still Incompatible with RTAB. No we are not going in that direction again, if you really want to use this script then make a request in the Script Requests Forum asking for a merge. Lets Keep it out of this thread this time, thanks.


Credits and Thanks
Sol_Fury for suggesting a Scan ability be added.


Notes
1) So what was sacrificed for SDK Dependancy? If you are using the Save Data option you must Go all the way to the first map (that is to a scene other than Scene_Title) as I have moved the main_database alias to the end of main (and this will be easier for me also).

2) Feel free to edit the scan window. If you have a redesign then post here or PM me with the redesign and I'll do it for you (Since I am soo nice)

3) This is the first revision of this script, I will fix bugs in the script if I find/ or someone tells me

4) What Did I do? I can't remember everything I did since this wasn't a one-day job. This script now uses MACL. This script is not dependent on SDK. I ran through the formulas/methods over 5 times catching errors and commenting code. The Setup has been cleaned and added more stuff to it. Redesigned the Scan Window a Bit and added the option to use a cropped picture or a zoom to fit picture.

5) This scirpt is also 2000 (1863) lines of code and has to be the most advanced stealing system out there as it allows you to steal skills, and exp.

6) This is also my very first script Enjoy

If you need any extra help/examples feel free to post here and I'll answer your question/problem and if you find any bugs tell me (please be detailed)


Terms and Conditions
Hey, I posted this publicly. You can use it. What do you expect? But if you do use it, I do expect you to spell my name correctly in your game. And yes you can use it in commercial games too.


RE: Stealing, Mugging, and Scanning - KasperKalamity - 07-12-2013

is there a quick way to edit this script that would allow you to preemptively steal loot, and have it subtracted from the post battle?


RE: Stealing, Mugging, and Scanning - MechanicalPen - 07-12-2013

This is off topic, but can I ask why you would want to do that? The player is not going to waste turns stealing if she gets the same benefit as not stealing when the battle is over. Unless a party member has a money powered gun, or something...


RE: Stealing, Mugging, and Scanning - KasperKalamity - 07-12-2013

i'm working on something where you don't get items normally, you either have to steal them from enemies, or wait until the end of battle to get them as loot. i want to add an element of luck, without having to give away the store. if you can steal a potion or two during battle, then logically you wouldn't get another one from the enemy after you kill them because you already stole it.


RE: Stealing, Mugging, and Scanning - MechanicalPen - 07-12-2013

Oh so you want to do a "steal stuff then run away" mechanic. Sounds funs if the escape chance isn't super dumb like it is in default RPGmXP.


RE: Stealing, Mugging, and Scanning - DerVVulfman - 07-13-2013

I fully understand his intention given that I made a pickpocketing system so you can steal stuff from events.

It works with my Lycan ABS so you can snag things from an event, but that is because how I coded the 'additional drops' in my ABS to work. Trickster's Steal script (like so many others) rely on the items stored in the Enemy's database so these are only accessed in the battlesystem and not before. Can't readily steal from them before entering battle as you wish... not the items within the Enemy Database list anyway. And you'd have a great deal of issue getting it to recognize an event as an enemy in the database.