Complemento para o sistema de skill do NPM
LOG |
Script |
- Código:
#================================================================
#================================================================
#=========== Complemento para o sistema de skill do NPM =========
#================================================================
#=======BY:Gladistony Silva======================================
#=======Criada para o forum: Aldeiarpgbr ========================
#=======NÃO POSTA EM OUTRO FORUM SEM AUTORIZAÇÃO=================
#================================================================
#================================================================
STATUSSTUN = [17]
#================================================================
#================================================================
#================================================================
class MrMo_ABS
alias player_skill_evento player_skill
alias atk_stun attacked_monster?
alias atkk_stun attacked_player?
def attacked_monster?
return false if $no_move
atk_stun
end
def attacked_player?
return false if $no_move
atkk_stun
end
def player_skill(id)
return false if $no_move
rede = Network::Main.id
skill = $data_skills[id]
return if $game_party.actors[0].sp < skill.sp_cost
$game_party.actors[0].sp -= skill.sp_cost
if skill.common_event_id > 0
$game_temp.common_event_id = skill.common_event_id
else
Network::Main.socket.send("<23> efeitoskill(#{rede},#{id}) </23>\n")
$game_system.se_play(skill.menu_se)
player_skill_evento(id)
end
end
end
def efeitoskill(id,skill)
return if Network::Main.id.to_i == id.to_i
return if Network::Main.players[id] == nil
return if Network::Main.players[id].map_id != $game_map.map_id
skill = $data_skills[skill]
Network::Main.players[id].animation_id = skill.animation1_id
$game_system.se_play(skill.menu_se)
end
def efeitoskill2(id,skill)
if Network::Main.id.to_i == id.to_i
$game_player.animation_id = skill.animation2_id
skill = $data_skills[skill]
$game_player.states_plus(skill.plus_state_se)
$game_player.states_minus(skill.minus_state_set)
else
return if Network::Main.players[id] == nil
return if Network::Main.players[id].map_id != $game_map.map_id
skill = $data_skills[skill]
Network::Main.players[id].animation_id = skill.animation2_id
end
end
class Game_Ranged_Skill
def hit_netplayer(player)
@stop = true
actor = player
enemy = @actor
damage = actor.effect_skill(enemy, @skill)
damage = player.damage
netid = player.netid
a = @skill.animation2_id
return if can_pvp?(player) == false
Network::Main.socket.send("<attack_id>#{netid}\n") if damage != "Miss" and damage != 0
Network::Main.socket.send("<attack_effect>dam=#{damage}; ani=#{a} id=#{Network::Main.id}; map=#{$game_map.map_id}</attack_effect>\n") if damage != "Miss" and damage != 0
id = @skill.id
Network::Main.socket.send("<23> efeitoskill2(#{netid},#{id}) </23>\n")
player.show_demage(player.damage,false) if damage != "Miss" and damage != 0
$ABS.netplayer_killed(player) if player.hp <= 0
end
end
def Input.dir4
return if $no_move
return 2 if Input.pressed?(Input::DN)
return 4 if Input.pressed?(Input::LT)
return 6 if Input.pressed?(Input::RT)
return 8 if Input.pressed?(Input::UPs)
end
class Scene_Map
alias stun_main_draw main_draw
alias stunr_update update
def main_draw
@time_stun = {}
@cont_buff = 0
$no_move = false
stun_main_draw
end
def update_states
for state in $game_party.actors[0].states
@time_stun[state] = 0 if @time_stun[state] == nil
@time_stun[state] += 1
data = $data_states[state]
$game_player.animation_id = data.animation_id
if @time_stun[state] > data.hold_turn
$game_party.actors[0].states.delete(state)
@time_stun[state] = 0
end
end
end
def update
stunr_update
if $game_party.actors[0].states.size > 0
@cont_buff += 1
if @cont_buff > 40
update_states
@cont_buff = 0
end
if ($game_party.actors[0].states & STATUSSTUN).size > 0
$no_move = true
else
$no_move = false
end
else
@cont_buff = 0
$no_move = false
@time_stun = {}
end
end
end
Instalação |
Configuração |
Nessa variável você deve lista as IDs dos status que provocarão paralisia, separe eles por virgula, exemplo: STATUSSTUN = [17,20,21]
Notas |
>Ao usar uma magia a animação aparece para todos os computadores no mapa.
>Agora dá para ativar eventos comuns usando o menu da magia.(Igual ao meu antigo script com mesma função)
>Está incluso um sistema de stun (igual ao antigo também). O jogador que estiver com o status de stun não pode se mover, usar magias ou ainda ataca. Mas pode usar itens.
>Agora, na tela de configuração de buffs do rmxp, você pode definir a duração que o buff vai ter em segundos.
- Spoiler:
Bugs |
Compatibilidade |
>Se você possui o meu script de Evento Global ou de Stun instalado, remova eles do contrario esse script não ira funcionar. (Todas as funções desses 2 scripts estão nesse aqui também, o que os torna obsoletos)