solshadow 0 Report post Posted July 11, 2009 Can anyone help me make the following status effects? Plague - Like poison but spreads to other party members (40% chance to spread per turn not cured) Toxic - Poison that gets worse and deals more damage over time Berserk - Character gets attack boost but only attacks uncontrollably Confused - Character has 33% to attack themself, allies or enemies Charm - Character attacks allies and might heal enemies Stone - countdown then status. If attacked 3 times before cured they shatter and are not able to be revived Zombie - Healing skills and items instead do damage Bleed - Max HP slowly reduces Guard - Character absorbs next attack on a party member (doesnt work if next attack hits whole party) Auto Life - Revives character upon death Reflect - Bounces magic spells (If used on monster and spell is cast on it, spell randomly hits one of the party members) and also how do I make equipment that read the number on battles a player has won or how many enemies have been killed by a character? I need a sword that gains attack by defeating enemies and a shield that changes into another after a certain amount of battles. Share this post Link to post Share on other sites
0 solshadow 0 Report post Posted July 11, 2009 Sorry for the double post but I found this so I thought I'd share Auto Life, Regen, 1 MP/ Half MP Items/ 9999 Atk, Demi & Quarter Spells, and others By: Sir Edeon X Desperate not, my beloved FF Fans! Here I am leading you to salvation. Smiley This tutorial includes easy follow-the-steps guide to making: --> Regen Status: For those who don't know what this is, it is the opposite of poison. Instead of damaging you, it heals you. --> Change MP Cost: Whether Half MP Cost or No MP Cost, learn how to reduce the amount of MP you use for spells during battle. Remember the Gold Hairpin in FF6? This is useful! --> Auto-Life Status: This status assures that when you're killed, you'll be automatically revived. This is present in all FF above the 6th! So, why can't you use it, too? Smiley --> 9999 ATK: A status to assure that your next attacks will cause 9999 of damage. --> Critical ATK: A status to assure that your next attacks will hit with critical dmg. --> Overdrive: For those who use anykind of overdrive script, this status accelerates the overdrive bar. --> Demi and Quarter Spells (or Gravity and Gravija): For those who don't know what these spells does, they reduce enemy's HP by 1/2 or 1/4. --> Changing Items and Skills name and description during game: Useful if you want your game to include more than one language! Let's begin!!! If you have any doubt through any of these steps, just check the previous topic, where all steps are explained a lot better. For example, if you begin reading the 9999 ATK, I suggest to read REGEN first, where I explain everything better. REGEN: a) Open up Database, select Status Effects b) Create a new one called Regen and select the animation you want. c) Check the first and last box ('Unresistable' and 'Progressive Damage') d) Check the 'Ends after battle' box e) Select the amount of turns you want it to last for, and input '100' after it. Personnaly, I like it to last during 5 turns, so, this would be like this: 'After 5 turns, there is a 100 % Chance of Recovery Each f) Check the id (number before the name) of 'Regen' g) Close the Database. h) Open up the Script Editor and search (Ctrl+Shift+F) for 'def update_phase4_step2' If more than one appears, you'll have to add to both. This will assure that whatever scripts you have, this will work. i) Double click on it and add if @active_battler.hp > 0 and @active_battler.regen? @active_battler.regen_effect @active_battler.restorative = true @active_battler.damage_pop = true end below 'def update_phase4_step2'. j) Go to Game_Battler 2 and replace the last 'end' for def regen? for i in @states if $data_states.slip_damage and i == !!!!!! return true end end return false end def regen_effect self.damage = self.maxhp / 10 if self.damage.abs > 0 amp = [self.damage.abs * 15 / 100, 1].max self.damage += rand(amp+1) + rand(amp+1) - amp end self.hp -= -self.damage return true end end k) replace the '!!!!!!' for the id of Regen l) Go to line 129 (or the one where's 'def slip_damage?' and replace if $data_states.slip_damage for if $data_states.slip_damage and i != !!!!!! m) replace the '!!!!!!' for the id of Regen And that's all!!! You just have to create a skill that adds this status! The only problem is that the recovery will pop up as damage (white colored). This can be easily changed with a script for damage coloring. Here it is. Put it before Main. This one was put together by me. I don't know who wrote the first class script, but I've changed it a lil' bit. Thanks to whoever wrote it. module RPG class Sprite < ::Sprite def damage(damage, critical, restorative) dispose_damage if damage.is_a?(Numeric) damage_string = damage.abs.to_s else damage_string = damage.to_s end bitmap = Bitmap.new(160, 48) bitmap.font.name = "High Tower Text" bitmap.font.size = 40 bitmap.font.color.set(0, 0, 0) bitmap.draw_text(-1, 12-1, 160, 20, damage_string, 1) bitmap.draw_text(+1, 12-1, 160, 20, damage_string, 1) bitmap.draw_text(-1, 12+1, 160, 20, damage_string, 1) bitmap.draw_text(+1, 12+1, 160, 20, damage_string, 1) if damage.is_a?(Numeric) and damage < 0 bitmap.font.color.set(176, 255, 144) elsif restorative bitmap.font.color.set(176, 255, 144) else bitmap.font.color.set(255, 255, 255) end bitmap.draw_text(0, 12, 160, 36, damage_string, 1) if critical bitmap.font.size = 20 bitmap.font.color.set(0, 0, 0) bitmap.draw_text(-1, -1, 160, 36, "CRITICAL", 1) bitmap.draw_text(+1, -1, 160, 36, "CRITICAL", 1) bitmap.font.color.set(255, 255, 255) bitmap.draw_text(0, 0, 160, 20, "CRITICAL", 1) end @_damage_sprite = ::Sprite.new(self.viewport) @_damage_sprite.bitmap = bitmap @_damage_sprite.ox = 80 @_damage_sprite.oy = 20 @_damage_sprite.x = self.x @_damage_sprite.y = self.y - self.oy / 2 @_damage_sprite.z = 3000 @_damage_duration = 40 end end end # -------------------------------- class Game_Battler attr_accessor :restorative alias game_battler_initialize initialize def initialize game_battler_initialize @restorative = false end end # -------------------------------- class Sprite_Battler < RPG::Sprite def update super if @battler == nil self.bitmap = nil loop_animation(nil) return end if @battler.battler_name != @battler_name or @battler.battler_hue != @battler_hue @battler_name = @battler.battler_name @battler_hue = @battler.battler_hue self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue) @width = bitmap.width @height = bitmap.height self.ox = @width / 2 self.oy = @height if @battler.dead? or @battler.hidden self.opacity = 0 end end if @battler.damage == nil and @battler.state_animation_id != @state_animation_id @state_animation_id = @battler.state_animation_id loop_animation($data_animations[@state_animation_id]) end if @battler.is_a?(Game_Actor) and @battler_visible if $game_temp.battle_main_phase self.opacity += 3 if self.opacity < 255 else self.opacity -= 3 if self.opacity > 207 end end if @battler.blink blink_on else blink_off end unless @battler_visible if not @battler.hidden and not @battler.dead? and (@battler.damage == nil or @battler.damage_pop) appear @battler_visible = true end end if @battler_visible if @battler.hidden $game_system.se_play($data_system.escape_se) escape @battler_visible = false end if @battler.white_flash whiten @battler.white_flash = false end if @battler.animation_id != 0 animation = $data_animations[@battler.animation_id] animation(animation, @battler.animation_hit) @battler.animation_id = 0 end if @battler.damage_pop damage(@battler.damage, @battler.critical, @battler.restorative) @battler.damage = nil @battler.critical = false @battler.damage_pop = false @battler.restorative = false end if @battler.damage == nil and @battler.dead? if @battler.is_a?(Game_Enemy) $game_system.se_play($data_system.enemy_collapse_se) else $game_system.se_play($data_system.actor_collapse_se) end collapse @battler_visible = false end end self.x = @battler.screen_x self.y = @battler.screen_y self.z = @battler.screen_z end end ------------------------------------------------------------------------------------------------------------------------------------------------ CHANGING MP COST: These are a lot easier. I'll teach you how to reduce the MP(SP) cost to Half and to 0. a) Open the database, and in the Status Effects create two new status: 'Half MP Cost' and 'No MP Cost' b) Check the 'unresistable' box, which is the first one, and put them to end after battle, for both! c) Put a minus before 'Half MP Cost' IN THE 'No MP Cost' c) Check the id of the status (no. before the name) and close the database. d) Script editor!!! Go to Window_Skill and change the self.contents.draw_text(x + 232, y, 48, 32, skill.sp_cost.to_s, 2) for #---------------------------------- mp_cost = skill.sp_cost if @actor.states.include?(!!!!!) mp_cost /= 2 end if @actor.states.include?(*****) mp_cost *= 0 end self.contents.draw_text(x + 226, y, 48, 32, mp_cost.to_s, 2) #---------------------------------- where '!!!!!' is the 'Half MP Cost' ID and ***** the 'NO MP Cost' ID. e) Search for '@active_battler.sp -= @skill.sp_cost'. If more than one appears, you'll have to do the following to both. f) Replace @active_battler.sp -= @skill.sp_cost for #---------------------------------- if @active_battler.states.include?(*****) @active_battler.sp -= 0 elsif @active_battler.states.include?(!!!!!) @active_battler.sp -= (@skill.sp_cost / 2) else @active_battler.sp -= @skill.sp_cost end #---------------------------------- where '!!!!!' is the 'Half MP Cost' ID and ***** the 'NO MP Cost' ID. That's all. Create a skill that adds one of them, or even an accessory that auto-inflict one of these. AUTO_LIFE: a) Yet again, create a new status called 'Auto-Life'. Put it 'Unresistable' and ending after battle. b) After selecting the animation, memorize the ID of 'Auto-Life' c) In the Script Editor, go to Game_Party and search for 'def all_dead?'. d) Below for actor in @actors if actor.hp > 0 return false end add #---------------------------------- if actor.states.include?(Auto-life ID!!!!!) return false end #---------------------------------- e) In Scene_Battle1, go to 'def Judge', and before everything (if $game_party.all_dead...) add for i in 0...$game_party.actors.size actor = $game_party.actors if actor.states.include?(Auto-life ID!!!!!) and actor.hp == 0 actor.hp += 1 @battler = $game_actors[actor.id] @battler.remove_state(Auto-life ID!!!!!) @battler.remove_state(1) @dead = false @battler.animation_id = 25 #(this is the number of MY ressurection animation. I don't know if it is yours, too) @battler.restorative = true @battler.damage = "Auto-Life!" @battler.damage_pop = true #@spriteset.actor_sprites.default_pose (if you have the animated side view battle script, remove the #) end end f) That's all. Remember adding the damage_coloring script I gave above in REGEN or you'll receive an error message! Now, create a skill that adds it, or even an accessory that auto-inflicts it! -------------------------------------------------------------------------------------------------------------------------------------------------------------------- 9999 ATK and CRITICAL ATK: a) You know what to do, right? Create both status in the database. b) Check the 'unresistable' box and put them to end after battle and after X turns, I like 4 turns. (Check REGEN to know how this is done, if you don't know) c) In '9999 ATK' status, put a minus before 'CRITICAL ATK' d) Remember both numbers and open up the script editor e) Search for 'attack_effect' in Game_Battler3 and look for: if rand(100) < 4 * attacker.dex / self.agi self.damage *= 2 self.critical = true end f) replace it for: if attacker.states.include?(CRITICAL ATK ID!!!!) self.damage *= 2 self.critical = true else if rand(100) < 4 * attacker.dex / self.agi self.damage *= 2 self.critical = true end end g) look also for 'remove_states_shock'. Below it put this: if attacker.states.include?(9999 ATK ID!!!!) self.damage = 9999 end That's all!!! Create a skill or so. Smiley -------------------------------------------------------------------------------------------------------------------------------------------------------------------- OVERDRIVE: If you have an overdrive bar, here it is a little help. a) Create a status called 'Overdrive x1.5' and another called 'Overdrive x2'. b) Make it unresistable and ending after a few turns (I like 4 Tongue) c) Put a minus before 'Overdrive x1.5' IN 'Overdrive x2' status 'cuz 2 is bigger than 1.5! d) Search for '.overdrive +=' (Ctrl+Shift+F) and do this in each topic: e) Replace the XXXX.overdrive += YYYY for (doesn't matter what you have besides XXXX or YYYY': if XXXX.states.include?(OVERDRIVE X2 ID) XXXX.overdrive += YYYY * 2 elsif XXXX.states.include?(OVERDRIVE X1.5 ID) XXXX.overdrive += YYYY * 1.5 else XXXX.overdrive += YYYY end f) And that's all. Create a skill or an item which adds you this status and that's all. DEMI AND QUARTER SPELLS: a) create two attributes in the database (system). call them like 'Demi' or '1/2 HP' and 'Quarter' or '1/4'. What you like b) Memorize the IDs and go to the script editor c) Go to Game_Battler3 and search for 'last_hp = self.hp' in 'def skill_effect(user, skill)' d) Replace last_hp = self.hp self.hp -= self.damage for if skill.element_set.include?(DEMI STATUS ID!!!!) @damage_hp = self.hp * 50 / 100 self.damage = @damage_hp last_hp = self.hp self.hp -= @damage_hp @hp_damaging = true elsif skill.element_set.include?(QUARTER STATUS ID!!!!) @damage_hp = self.hp * 25 / 100 self.damage = @damage_hp last_hp = self.hp self.hp -= @damage_hp @hp_damaging = true else last_hp = self.hp self.hp -= self.damage end e) Now, below 'unless @status_changed' there's a 'self.damage = "Miss" '. Replace it for if @hp_damaging = true self.damage = @damage_hp @hp_damaging = false else self.damage = "Miss" end f) And that's all. Create a skill WITH NO effect rating, but WITH the element you want it to do. That's all Smiley Share this post Link to post Share on other sites
0 Blackbound 4 Report post Posted July 11, 2009 Plague- will be hard with Common Events, but can be done Toxic- This would be a little confusing but it can be done as well Berserk- I don't know about this one you might need a script Confused- Script required Charm- Only able to be half complete Stone- Countdown will need to be scripted, Needs two different states Zombie- any "Heal" skill will need to have a common event on it- expect a headache when dealing with this state Bleed- This one is gonna have to be done with scripts Guard- May be tricky. will this affect more than one character? Auto Life- hard, but not imposable with common events Reflect- Difficulty depends on the skill used... EDIT Share this post Link to post Share on other sites
0 solshadow 0 Report post Posted July 11, 2009 Plague- will be hard with Common Events, but can be doneToxic- This would be a little confusing but it can be done as well Berserk- I don't know about this one you might need a script Confused- Script required Charm- Only able to be half complete Stone- Countdown will need to be scripted, Needs two different states Zombie- any "Heal" skill will need to have a common event on it- expect a headache when dealing with this state Bleed- This one is gonna have to be done with scripts Guard- May be tricky. will this affect more than one character? Auto Life- hard, but not imposable with common events Reflect- Difficulty depends on the skill used... EDIT ah! so THATS how you strikeout...was looking for it but they dont necessarily need to be done with common events or whatever. Kind of like the trip doesnt matter, all I care about is the final destination. As for the Guard status, im thinking only one character will have it. So say there are 4 party members (arshes, zayne, tyler, marina) If arshes uses Guard then he'l get guard status and battle sprite for guard and if the enemy attacks anyone in the party then arshes would take the blow and then the status would end. Although I just thought about what if a party member is charmed and attacks the party, I suppose Arshes would need to be able to absorb that too. Did that clear things up? What do you mean for the reflect status, im dumb and dont understand >_< heehee Share this post Link to post Share on other sites
0 Blackbound 4 Report post Posted July 11, 2009 What I want to know is if its like a universal skill reflector or are some skills immune to the reflect? Share this post Link to post Share on other sites
0 solshadow 0 Report post Posted July 11, 2009 Oh! ok, some skills are immune to reflect, yes :D Share this post Link to post Share on other sites
Can anyone help me make the following status effects?
Plague - Like poison but spreads to other party members (40% chance to spread per turn not cured)
Toxic - Poison that gets worse and deals more damage over time
Berserk - Character gets attack boost but only attacks uncontrollably
Confused - Character has 33% to attack themself, allies or enemies
Charm - Character attacks allies and might heal enemies
Stone - countdown then status. If attacked 3 times before cured they shatter and are not able to be revived
Zombie - Healing skills and items instead do damage
Bleed - Max HP slowly reduces
Guard - Character absorbs next attack on a party member (doesnt work if next attack hits whole party)
Auto Life - Revives character upon death
Reflect - Bounces magic spells (If used on monster and spell is cast on it, spell randomly hits one of the party members)
and also how do I make equipment that read the number on battles a player has won or how many enemies have been killed by a character?
I need a sword that gains attack by defeating enemies and a shield that changes into another after a certain amount of battles.
Share this post
Link to post
Share on other sites