Ren'Shin'Yuu
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.


Venez ici pour apprendre plein de choses sur RPG Maker
 
AccueilRechercherDernières imagesS'enregistrerConnexion
Le deal à ne pas rater :
Jeux, jouets et Lego : le deuxième à -50% (large sélection)
Voir le deal

 

 [Combat] Player vs Player (Destined et Goldenaura3)

Aller en bas 
AuteurMessage
Kuroyami
Forum Master
Forum Master
Kuroyami


Nombre de messages : 76
Age : 29
Localisation : Amatsu
Date d'inscription : 10/05/2007

Ragnarok Character
Job: Priest ANti Injustice :-)
Lvl Base:
[Combat] Player vs Player (Destined et Goldenaura3) Left_bar_bleue76/500[Combat] Player vs Player (Destined et Goldenaura3) Empty_bar_bleue  (76/500)
Lvl Job:
[Combat] Player vs Player (Destined et Goldenaura3) Left_bar_bleue66/250[Combat] Player vs Player (Destined et Goldenaura3) Empty_bar_bleue  (66/250)

[Combat] Player vs Player (Destined et Goldenaura3) Empty
MessageSujet: [Combat] Player vs Player (Destined et Goldenaura3)   [Combat] Player vs Player (Destined et Goldenaura3) Icon_minitimeVen 18 Mai - 0:09

Game_PvP Code:


#==============================================================================
# ■ Game_PvP
#------------------------------------------------------------------------------
# Handles battle data.
# Based on Goldenaura3's original script!
# Created by Destined and Goldenaura3 ^_^
#==============================================================================

class Game_PvP
#--------------------------------------------------------------------------
# ● Class Variables
#--------------------------------------------------------------------------
attr_reader :b_hp
attr_reader :b_sp

#--------------------------------------------------------------------------
# ● Initializes the battle data for opponent!
#--------------------------------------------------------------------------
def initialize
@b_hp = 0
@b_sp = 0
@battle_active = false
end

#--------------------------------------------------------------------------
# ● Refreshes battle data.
#--------------------------------------------------------------------------
def refresh_battle(battle_data)
eval(battle_data)
end

#--------------------------------------------------------------------------
# [!] PVP Battle Starting Information
#--------------------------------------------------------------------------
def self.start_battle
@battle_active = true
end
end



PVP Code:


#=============================================================
# PvP Core Class Modifié par LeDémonNTXone
#-------------------------------------------------------------
#Modifications : Ajout de Points AME
#Traductions
#=============================================================
module PvP
class Player
#--PvP Attack--#
def self.attack
@attack_shot = rand(4)
if @attack_shot == 4
$network.socket.send("'attack'n")
else
@attack_output = rand(60)
$network.socket.send("'attack'n")
end
end

#--PvP Opponent--#
def self.opponent_attack(amount)
if amount != 0
$game_actors[1].hp -= amount
p amount
else
p "Raté"
end
death_update
end

#--PvP Death Update--#
def self.death_update
if $game_actors[1].hp == 0
$scene = Scene_Gameover.new
end
end

#--PvP Lose Battle--#
def self.lose_pvp
$game_actors[1].hp = 0
$game_variables[1] += 2
Pvp_Network.close
end

#--PvP Win Battle--#
def self.win_pvp
$game_actors[1].hp = $game_actors[1].max_hp
$game_variables[1] += 5
Pvp_Network.close
end

#--PvP Death Update--#
def self.score_update
if PvP_Network.battler[PvP_Network.battler_id].hp > 0 && $game_actors[1].hp == 0
$network.socket.send("'you_win'n")
end
if $game_actors[1].hp > 0 && PvP_Network.battler[PvP_Network.battler_id].hp == 0
$network.socket.send("'i_won'n")
end
end
end

class Pvp_Network
#--Attributes--#
attr_reader :battler
attr_reader :battle_active
attr_reader :battler_id

#--Adjust PvP Start Data--#
def self.initialize
@battler = {}
@battle_active = false
@battler_id = 0
@tname = ""
end

def self.btname
return @tname
end

#--Synchronize--#
def self.synchronize
@pvp_event = $game_map.events[8]
for p in $network.players.values
if p.global_id == @battler_id
@selected_player = p
end
end
@pvp_event.character_name = @selected_player.character_name
@pvp_event.moveto(@selected_player.x, @selected_player.y)
end

#--Synchronize Now!--#
def self.sync
for p in $network.players.values
if p.global_id == @battler_id
@selected_player = p
end
end
@pvp_event.moveto(@selected_player.x, @selected_player.y)
end

#--Find User Data--#
def self.data(datan)
for i in $network.players.values
if i.name == @tname
return eval("i." + datan.to_s)
end
end
end

#--Select Battle Cache--#
def self.request(name)
$pvp_rplay = name
$scene = Scene_Map.new
end

#--Find Battle Data--#
def self.setup_battler(name)
for id_amount in $network.players.size
for user_check in $network.players[id_amount].values
if user_check.name == name
@battler_id = user_check.global_id
@battler[user_check.global_id] ||=Game_PvP.new
@battler[user_check.global_id].battle_start
p "Phase 1 Complete.. Proccedding To Arena"
$game_temp.player_new_map_id = 27
$scene = Scene_CM.new(7, $game_switches[5])
else
print "Error (3): Battler Setting Up Error.... PvP Closing! - PHASE 1"
end
end
end
end

#--Send PvP Request Data--# (HOST)
def self.send_request(player)
$network.socket.send("" + player.to_s + "n")
end

#--Set Battler Name--#
def self.set_name(name)
@tname = name
end

#--Send PvP Start Data--#
def self.pvp_battle_start
for i in $network.players.values
print @tname.to_s
$network.socket.send("#{i.global_id}n")
end
sleep(2)
stage3_step1
end

#--Change Maps--#
def self.stage3_step1
$game_switches[5] = true
$game_map.setup(27)
$game_player.refresh
$game_map.update
$game_temp.player_new_map_id = 27
$game_temp.player_new_x = 11
$game_temp.player_new_y = 9
$scene = Scene_CM.new(7, $game_switches[5])
end

#--Change Maps--# ( LOAD EVENTS )
def self.stage3_step2
$game_switches[5] = true
$game_map.setup(27)
$game_player.refresh
$game_map.update
$game_temp.player_new_map_id = 27
$game_temp.player_new_x = 11
$game_temp.player_new_y = 9
$scene = Scene_CM.new(7, $game_switches[5])
end

def self.event_stray(event, list)
for i in 0...list.size
if list[i].code == 108 and list[i].parameters == ["Pvp_Player_Online_2"]
$game_map.events[event.id].character_name = "001-Fighter01"
#$game_map.events[event.id].character_name = data("character_name")
p "Found Event 2"
end
end
end

#--Update pvp data--#
def self.update_pvp_data(pvp_id, pvp_info)
Player.score_update
end

#--Close Pvp Stream--#
def self.close
@battler = {}
@battle_active = false
@battler_id = 0
end
end
end



PVP_Mods Code:


#===================
# PVP_Mods
#===================

class Scene_Item
alias upipvp update_item
def update_item
if Input.trigger?(Input::C)
@item = @item_window.item
if @item.id == 24
$player_vs_select = true
$scene = Scene_Map.new
end
end
upipvp
end
end
Revenir en haut Aller en bas
http://ragnarokmakerxp.rpg-board.net
Kuroyami
Forum Master
Forum Master
Kuroyami


Nombre de messages : 76
Age : 29
Localisation : Amatsu
Date d'inscription : 10/05/2007

Ragnarok Character
Job: Priest ANti Injustice :-)
Lvl Base:
[Combat] Player vs Player (Destined et Goldenaura3) Left_bar_bleue76/500[Combat] Player vs Player (Destined et Goldenaura3) Empty_bar_bleue  (76/500)
Lvl Job:
[Combat] Player vs Player (Destined et Goldenaura3) Left_bar_bleue66/250[Combat] Player vs Player (Destined et Goldenaura3) Empty_bar_bleue  (66/250)

[Combat] Player vs Player (Destined et Goldenaura3) Empty
MessageSujet: Re: [Combat] Player vs Player (Destined et Goldenaura3)   [Combat] Player vs Player (Destined et Goldenaura3) Icon_minitimeVen 18 Mai - 0:13

PvP_Map Code:

#=============================================================
# PvP Map Class Modifié par LeDémonNTXone
#=============================================================
class Scene_Map
#-- PVP Initialize Technique --#
#if $game_map.map_id == 027
#--Alias--#
alias pvp_map_update update
alias pvp_map_main main

#--Initialize--#
def initialize
$Pvp = PvP
end

#--Main--#
def main
if $player_vs_select == true
@invite = Window_Invite.new
@invite.active = true
$player_vs_select = false
end
pvp_map_main
@invite.dispose if @invite != nil
@rvie.dispose if @rvie != nil
@rwin.dispose if @rwin != nil
end

#--Update--#
def update
@invite.update if @invite != nil
@rvie.update if @rvie != nil
@rwin.update if @rwin != nil
if $player_vs_select == true
player_select
end
if $pvp_rplay != nil
pvp_request($pvp_rplay) if @rvie == nil
end
if $player_vs_search == true
player_search
$player_vs_search = false
end
if @rvie != nil && @rwin != nil
if Input.C
case @rwin.index
when 0
for i in $network.players.values
if i.name == $Pvp::Pvp_Network.btname
$network.socket.send("#{i.global_id}\n")
else
for a in $network.players.values
$network.socket.send("#{a.global_id}\n")
end

end
end
$pvp_rplay = nil
$scene = Scene_Map.new
when 1
$network.socket.send("request_return\n")
$pvp_rplay = nil
$scene = Scene_Map.new
end
end

end
pvp_map_update
end

#--Player_Select--#
def player_select
@invite = Window_Invite.new
@invite.active = true
$player_vs_select = false
end

def pvp_request(from_player)
@rvie = Window_Help.new
@rvie.set_text("You have been invited to the 'Grassland Arena' to Vs " + from_player)
@rvie.size(16)
@rwin = Window_Command.new(160, ["Accept", "Decline"])
@rwin.y = 64
@rwin.x = 220
@rwin.active = true
$pvp_rplay = ""
end

#--Player_Search--#
def player_search
for a in $network.players.values
if a.name == $player_search_data
@player_search = "a"
$player_vs_search = false
p $player_search_data + ", Votre défie à été envoyé.... Veuillez patientez pour la réponse."
for i in $network.players.values
if i.name == $player_search_data
$Pvp::Pvp_Network.new
$Pvp::Pvp_Network.send_request(i.global_id)
end
end
end
end
if @player_search != "a"
p "Demande échoué.... The player " + $player_search_data + ", N'existe pas ou n'est pas connecté!"
@player_search = "b"
$player_vs_search = false
end
end
end
#end




Pk Code:

#=============================================================
# Pk ( Player Kill )
#=============================================================
class Scene_Map

# Alias
alias pk_update update
alias pk_main main

# Initialize
def main
$pk_maps = [13] # Addin Map Id's Here ( PK Allowed )
@pk_allow = false
for a in 0...$pk_maps.size
if $pk_maps[a] == $game_map.map_id
@pk_allow = true
end
end
pk_main
end

# Update
def update
if Input.getkey(70)
if @pk_allow == true
for i in $network.players.values
if i.map_id == $game_map.map_id
if i.level.to_i == $game_actors[1].level.to_i # PK Level Restriction
if i.x == $game_player.x + 1
attack(i.global_id)
elsif i.x == $game_player.x - 1
attack(i.global_id)
elsif i.y == $game_player.y - 1
attack(i.global_id)
elsif i.y == $game_player.y + 1
attack(i.global_id)
end
end
end
end
$ABS.player_attack # if $ABS # ABS Attack
else
$ABS.player_attack #if $ABS # ABS Attack
end
end
pk_update
end

# Attack a player
def attack(id)
damage = proccess
$network.socket.send("#{id}\n")
$network.socket.send("#{proccess}\n")
for animation in $network.players.values
if animation.global_id == id
$game_actors[1].exp += $data_actors[1].exp_inflation.to_i / 8
animation.animation_id = 7
end
end
end


# Proccess damage
def proccess
data = ($game_actors[1].str / 10 + 20)
bonus = rand($data_actors[1].exp_inflation.to_i / 5 * 4) # Bonus damage!
return data + bonus
end
end

Window_Invite Code:


#==============================================================================
# ■ Window_Invite Originally created by: Cybersam
#------------------------------------------------------------------------------
#  Based on the Full-Keyboard Input script created by Cybersam.
#==============================================================================

class Window_Invite < Window_Base
attr_reader :txt
#--------------------------------------------------------------------------
# ● Initializes code input window.
#--------------------------------------------------------------------------
def initialize
super(130, 192, 380, 96)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 16
@txt = []
refresh
end

#--------------------------------------------------------------------------
# ● Refreshes code input window.
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.draw_text(0, -32, 640, 96, "Entrez le nom du joueur que vous souhaitez affronter. (1)")
self.contents.draw_text(0, 0, 620, 96, "Nom: #{@txt}")
end

#--------------------------------------------------------------------------
# ● Refreshes code input window.
#--------------------------------------------------------------------------
def add(char)
if @txt.size >= 80
$game_system.se_play($data_system.buzzer_se)
else
@txt.push(char.to_s)
refresh
end
end

#--------------------------------------------------------------------------
# ● Updates input code window.
#--------------------------------------------------------------------------
def update
refresh
# Removes last entry in test.
if Input.getkey(8)
if @txt.size == 0
$game_system.se_play($data_system.buzzer_se)
else
@txt.delete_at(-1)
refresh
end
end
#Return to GC
if Input.getkey(48)
$player_vs_select = false
$scene = Scene_Map.new
end

if Input.getkey(49)
$Pvp::Pvp_Network.set_name(@txt.to_s)
$player_vs_search = true
$player_search_data = @txt.to_s
$scene = Scene_Map.new
end

# Adds a pressed key.
if Input.getstate(16)
add("A") if Input.getkey(65)
add("B") if Input.getkey(66)
add("C") if Input.getkey(67)
add("D") if Input.getkey(68)
add("E") if Input.getkey(69)
add("F") if Input.getkey(70)
add("G") if Input.getkey(71)
add("H") if Input.getkey(72)
add("I") if Input.getkey(73)
add("J") if Input.getkey(74)
add("K") if Input.getkey(75)
add("L") if Input.getkey(76)
add("M") if Input.getkey(77)
add("N") if Input.getkey(78)
add("O") if Input.getkey(79)
add("P") if Input.getkey(80)
add("Q") if Input.getkey(81)
add("R") if Input.getkey(82)
add("S") if Input.getkey(83)
add("T") if Input.getkey(84)
add("U") if Input.getkey(85)
add("V") if Input.getkey(86)
add("W") if Input.getkey(87)
add("X") if Input.getkey(88)
add("Y") if Input.getkey(89)
add("Z") if Input.getkey(90)
add("^") if Input.getkey(54)
else
add("a") if Input.getkey(65)
add("b") if Input.getkey(66)
add("c") if Input.getkey(67)
add("d") if Input.getkey(68)
add("e") if Input.getkey(69)
add("f") if Input.getkey(70)
add("g") if Input.getkey(71)
add("h") if Input.getkey(72)
add("i") if Input.getkey(73)
add("j") if Input.getkey(74)
add("k") if Input.getkey(75)
add("l") if Input.getkey(76)
add("m") if Input.getkey(77)
add("n") if Input.getkey(78)
add("o") if Input.getkey(79)
add("p") if Input.getkey(80)
add("q") if Input.getkey(81)
add("r") if Input.getkey(82)
add("s") if Input.getkey(83)
add("t") if Input.getkey(84)
add("u") if Input.getkey(85)
add("v") if Input.getkey(86)
add("w") if Input.getkey(87)
add("x") if Input.getkey(88)
add("y") if Input.getkey(89)
add("z") if Input.getkey(90)
end
end
end
Revenir en haut Aller en bas
http://ragnarokmakerxp.rpg-board.net
 
[Combat] Player vs Player (Destined et Goldenaura3)
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Combat A-RPG
» Combat A-RPG version 3
» MAP comme fond de Combat

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Ren'Shin'Yuu :: Partie RPG Maker XP :: Scripts-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser