设为首页 收藏本站
登录 /立即注册 /找回密码

URPGs

快捷导航
  • 门户Portal
  • 论坛BBS
  • 群组Group
  • 导读Guide
  • 家园Space
  • 工具Tools
  • 广播Follow
  • 期刊Periodical
  • 排行榜Ranklist
  • 社区茶坊
  • pixlr图片编辑
  • 资源列表
  • photobucket
  • RMVA Lite [In English]
  • RM RTP
  • TryRUBY
  • RMXP+RMVX下载[VeryCD]
  • RMVA下载[66RPG]
搜索
  • 本版
  • 帖子
  • 用户
URPGs»论坛 › 技术讨论 › 技术讨论 › 更高级的毒 [Advanced State]
返回列表 发新帖
查看: 5578|回复: 2

[RMVA 技术讨论] 更高级的毒 [Advanced State]

[复制链接]
lbq
lbq 当前离线
积分
199
查看详细资料 窥视卡 雷达卡
发表于 2013-9-23 03:24:14 | 显示全部楼层 |阅读模式
Advanced State

只是一个渣脚本罢了=-=





于是乎在RM里面一般都要给Boss免疫毒0A0。毕竟每回合10%的伤害不是好受的。。

于是乎这个脚本的目的就是在于,能让你制造出比如说 这个毒的伤害是使用者的攻击力的两倍之类的=-=



所以说我还是废话少说直接扔脚本=-=



http://pastebin.com/bbBq9Jnz #毕竟这里都是海外党如果有国内的请自行翻墙吧._.



English Version => http://lbqscripts.wordpress.com/rgss3/advanced-state/




[code=ruby]#encoding:utf-8
#==============================================================================
# ■ Advanced State - LBQ Scripts 9/22/2013 v0.5
#------------------------------------------------------------------------------
#  This script provides basic features for advanced slip damage.
#==============================================================================


#==============================================================================
# ● How to Use it
#------------------------------------------------------------------------------
#   In the config part, use state_id => formula for the states.
#==============================================================================



#----------------------------------------------------------------------------
$imported||={}
$imported[:LBQ_Advanced_State] = true
#----------------------------------------------------------------------------
module LBQ
  module AD_STATE
    CONFIG = {
      2   =>  '0.5*b.hp'         ,
      26  =>  '-(0.3*a.hp)'     ,
    }
  end
end
#----------------------------------------------------------------------------
class Game_BattlerBase
  #--------------------------------------------------------------------------
  # ● Clear States
  #--------------------------------------------------------------------------
  alias lbq_adst_clear_states clear_states
  def clear_states
    lbq_adst_clear_states
    @state_user = {}
  end
  
  
  #--------------------------------------------------------------------------
  # ● Erase A State
  #--------------------------------------------------------------------------
  alias lbq_adst_erase_state erase_state
  def erase_state(state_id)
    lbq_adst_erase_state(state_id)
    @state_user.delete(state_id)
  end
  
end
#----------------------------------------------------------------------------
class Game_Battler < Game_BattlerBase
  #--------------------------------------------------------------------------
  # ● Add States
  #--------------------------------------------------------------------------
  def add_state(state_id, user = nil)
    if state_addable?(state_id)
      add_new_state(state_id) unless state?(state_id)
      reset_state_counts(state_id)
      @result.added_states.push(state_id).uniq!
      @state_user[state_id] = user if user
    end
  end
  
  
  #--------------------------------------------------------------------------
  # ● A Special State
  #--------------------------------------------------------------------------
  def judge_special_state(id)
    if LBQ::AD_STATE::CONFIG[id]
      return true
    else
      return false
    end
  end
  
  #--------------------------------------------------------------------------
  # ● Get a Formula
  #--------------------------------------------------------------------------
  def get_formula(id)
    raise unless judge_special_state(id)
   
    return LBQ::AD_STATE::CONFIG[id]
  end
  
  #--------------------------------------------------------------------------
  # ● Get Damage
  #--------------------------------------------------------------------------
  def get_damage(id,user)
    a = user
    b = self
    return eval(get_formula(id))
  end
  
  #--------------------------------------------------------------------------
  # ● Get Overall Damage
  #--------------------------------------------------------------------------
  def get_overall_damage
    damage = 0
    @states.each do |s|
      if judge_special_state(s)
        damage += get_damage(s,@state_user)
      end
    end
   
    return damage.to_i
  end
  
  #--------------------------------------------------------------------------
  # ● Effects => Attack
  #--------------------------------------------------------------------------
  def item_effect_add_state_attack(user, item, effect)
    user.atk_states.each do |state_id|
      chance = effect.value1
      chance *= state_rate(state_id)
      chance *= user.atk_states_rate(state_id)
      chance *= luk_effect_rate(user)
      if rand < chance
        add_state(state_id, user)
        @result.success = true
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● Effects => Normal
  #--------------------------------------------------------------------------
  def item_effect_add_state_normal(user, item, effect)
    chance = effect.value1
    chance *= state_rate(effect.data_id) if opposite?(user)
    chance *= luk_effect_rate(user)      if opposite?(user)
    if rand < chance
      add_state(effect.data_id, user)
      @result.success = true
    end
  end
  #--------------------------------------------------------------------------
  # ● Regenerate HP
  #--------------------------------------------------------------------------
  def regenerate_hp
   
    # Calc Damage
    damage = -(mhp * hrg).to_i
   
    damage+=get_overall_damage
   
    # Map Damage
    perform_map_damage_effect if $game_party.in_battle && damage > 0
   
    # Do not die over
    @result.hp_damage = [damage, max_slip_damage].min
   
    # HP Setter
    self.hp -= @result.hp_damage
  end
  
  
  
end[/code]

点评

Sonic1997
修好了. .(不过插件那边还是有问题,但是现在不影响使用. .  发表于 2013-9-23 11:18

评分

参与人数 1银币 +50 收起 理由
Sonic1997 + 50

查看全部评分

回复

使用道具 举报

  • 提升卡
  • 置顶卡
  • 沉默卡
  • 喧嚣卡
  • 变色卡
  • 抢沙发
  • 千斤顶
  • 显身卡
Sonic1997
Sonic1997 当前离线
积分
212
查看详细资料 窥视卡 雷达卡
发表于 2013-9-23 08:54:12 | 显示全部楼层
厚颜无耻地将脚本搬过来了. .

点评

lbq
特喵的有什么办法能解决一下方括号问题吗。。  发表于 2013-9-23 09:54
回复 Like Dislike

使用道具 举报

  • 显身卡
satgo1546
satgo1546 当前离线
积分
201
查看详细资料 窥视卡 雷达卡
发表于 2013-10-2 12:15:10 | 显示全部楼层
不考虑我和草莓君吗. .
回复 Like Dislike

使用道具 举报

  • 显身卡
返回列表 发新帖
高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|意见反馈[feedback]| URPGs RPG Maker 游戏制作讨论

GMT+8, 2025-5-9 14:55 , Processed in 0.022854 second(s), 7 queries .

Powered by Discuz! X3.5

© 2011-2019 URPGs (Discuz! X3.4 © 2001-2019 Comsenz Inc.)

积分 0, 距离下一级还需 积分
快速回复 返回顶部 返回列表