Go Back   The PokéCommunity Forums > Creative Discussions > Game Development > Scripts & Tutorials

Notices
For all updates, view the main page.

Scripts & Tutorials This forum is for scripts and code, as well as all kinds of tutorials, software, tools and so forth. Remember to give credit!
The thread revival limit does not apply here.



Reply
 
Thread Tools
  #1    
Old January 26th, 2014 (06:45 PM). Edited November 12th, 2014 by Umbreon.
Umbreon's Avatar
Umbreon
Community Supporter
 
Join Date: Aug 2009
Location: Nearby my feet.
Age: 18
Gender: Male
Nature: Calm
Okay, well it's not EXACTLY PvP, it's actually just player vs. player's party controlled by an AI. script... But close enough... right?


Code:
################################################################################
# PvP Script
# By Hansiec
# Credits Required
################################################################################
# NOTICE: By PvP this does NOT really mean player vs player, it's more like
#         player vs other player's party controlled by an AI.
#
# To use:
#   * Create a folder in your game's folder called "Trainers" (otherwise there
#       WILL be errors)
#   * Call "PVP.open"
#
################################################################################

class TrainerPackage
  attr_accessor :trainer
  attr_accessor :start_speech
  attr_accessor :lose_speech
  attr_accessor :win_speech
  attr_accessor :game_code
end

module PVP
  def self.open
    loop do
      commands = []
      commands[cmdDump=commands.length] = "Create Trainer Data"
      commands[cmdBattle=commands.length] = "Battle a Trainer"
      commands[cmdExit=commands.length] = "Exit"
      choice = Kernel.pbMessage(_INTL("Welcome to the PVP station, how may I help you?"),
      commands, 0, nil, 0)
      if choice == cmdDump
        if PVPCore.createTrainerFile
          Kernel.pbMessage(_INTL("Successfully made trainer data to: Trainers/#{$Trainer.name}'s Trainer.tpk"))
        else
          Kernel.pbMessage(_INTL("Could not make trainer data"))
        end
      elsif choice == cmdBattle
        files = ["Cancel"]
        Dir.chdir("Trainers"){
          Dir.glob("*.tpk"){|f|
            files.push(f)
          }
        }
        choice = Kernel.pbMessage(_INTL("select a trainer file"), files, -1, nil, 0)
        if choice >= 1
          file = "Trainers/" + files[choice]
          trainer = PVPCore.loadTrainer(file)
          if trainer
            PVPCore.battleTrainer(trainer)
          else
            Kernel.pbMessage(_INTL("Cannot load trainer file..."))
          end
        end
      elsif choice == cmdExit
        break
      end
    end
  end
end

module PVPCore
  # Pokemon that cannot, no matter what be accepted.
  BLACK_LIST = [
    PBSpecies::MEWTWO,
    PBSpecies::MEW,
    PBSpecies::HOOH,
    PBSpecies::LUGIA,
    PBSpecies::CELEBI,
    PBSpecies::KYOGRE,
    PBSpecies::GROUDON,
    PBSpecies::RAYQUAZA,
    PBSpecies::DEOXYS,
    PBSpecies::JIRACHI,
    PBSpecies::DIALGA,
    PBSpecies::PALKIA,
    PBSpecies::GIRATINA,
    PBSpecies::HEATRAN,
    PBSpecies::DARKRAI,
    PBSpecies::SHAYMIN,
    PBSpecies::ARCEUS,
    PBSpecies::ZEKROM,
    PBSpecies::RESHIRAM,
    PBSpecies::KYUREM,
    PBSpecies::LANDORUS,
    PBSpecies::MELOETTA,
    PBSpecies::KELDEO,
    PBSpecies::GENESECT
  ]
  
  def self.partyEligible?(party=$Trainer.party)
    for i in party
      if BLACK_LIST.include?(i.species) || i.egg?
        return false
      end
    end
    return true
  end
  
  def self.getBannedPokemonString
    string = PBSpecies.getName(BLACK_LIST[0])
    for i in 1...BLACK_LIST.length-1
      string += ", " + PBSpecies.getName(BLACK_LIST[i])
    end
    string += ", and " + PBSpecies.getName(BLACK_LIST[BLACK_LIST.length - 1])
  end
  
  def self.createTrainerFile
    pre=Kernel.pbMessageFreeText("Enter the speech for when you are challenged", "Battle me, Now!", false, 256)
    win=Kernel.pbMessageFreeText("Enter the speech for when you win", "I win!", false, 256)
    lose=Kernel.pbMessageFreeText("Enter the speech for when you lost", "I Lost...", false, 256)
    return dumpTrainer(pre, win, lose)
  end
    
  def self.dumpTrainer(pre, win, lose)
    f = File.open("Game.ini")
    lines = f.readlines()
    s = lines[3]
    len = s.size
    title = (s[6,len - 7])
    f.close
    if !partyEligible?
      Kernel.pbMessage(_INTL("Sorry, but the trainer file could not be created.\n"+
      "This may be because you have a banned pokemon or an egg in your party."+
      "\n Banned Pokemon Are: "+getBannedPokemonString + "."))
      return false
    end
    tp = TrainerPackage.new
    tp.trainer = $Trainer
    tp.game_code = title
    tp.start_speech = pre
    tp.win_speech = win
    tp.lose_speech = lose
    save_data(tp, "Trainers/#{$Trainer.name}'s Trainer.tpk")
    return true
  rescue
    return nil
  end
  
  def self.loadTrainer(file)
    f = File.open("Game.ini")
    lines = f.readlines()
    s = lines[3]
    len = s.size
    title = (s[6,len - 7])
    f.close
    tp = load_data(file)
    return false if tp.game_code != title
    return [tp.trainer, tp.start_speech, tp.lose_speech, tp.win_speech]
  rescue
    return nil
  end
  
  def self.battleTrainer(file)
    trainer = file
    trainer = loadTrainer(file) if !file.is_a?(Array)
    return false if !trainer
    Kernel.pbMessage(_INTL(trainer[1]))
    return pbOrganizedBattleEx(trainer[0],nil,trainer[2],trainer[3])
  end
  
end

To use, simply call: "PVP.open", ALSO, BE SURE TO CREATE A FOLDER CALLED "Trainers" OR THIS SCRIPT WILL FAIL!
Reply With Quote
  #2    
Old January 26th, 2014 (07:31 PM).
p.claydon
 
Join Date: Jan 2011
Gender:
ok one question how do we get other trainers info file? and does this allow mega evolution?
Reply With Quote
  #3    
Old January 26th, 2014 (07:41 PM).
Umbreon's Avatar
Umbreon
Community Supporter
 
Join Date: Aug 2009
Location: Nearby my feet.
Age: 18
Gender: Male
Nature: Calm
Quote originally posted by p.claydon:
ok one question how do we get other trainers info file? and does this allow mega evolution?
Just say "Create Trainer Data" as an option, you're actually going to have to post the file somewhere where people can download it (I was to lazy to implement a server like I did with my GTS system) and then you insert it into the "Trainers" folder you had to create to use the script. As for mega evolutions maybe, maybe not. It depends on your essentials version and if and Organised Battle allows it (the battles used normally for Battling other players, Battle Tower trainers, ect.)
Reply With Quote
  #4    
Old January 26th, 2014 (07:44 PM).
p.claydon
 
Join Date: Jan 2011
Gender:
ok fair enough sounds ok and i guess could also be used offline if you have trainer data already saved
Reply With Quote
  #5    
Old January 26th, 2014 (07:45 PM).
Umbreon's Avatar
Umbreon
Community Supporter
 
Join Date: Aug 2009
Location: Nearby my feet.
Age: 18
Gender: Male
Nature: Calm
Quote originally posted by p.claydon:
ok fair enough sounds ok and i guess could also be used offline if you have trainer data already saved
Yes, I don't see why you need an internet connection for a file saved on your computer
Reply With Quote
  #6    
Old January 26th, 2014 (09:36 PM).
Cuflock's Avatar
Cuflock
 
Join Date: Mar 2012
Thanks! It works very good, and It's awesome!
Reply With Quote
  #7    
Old January 27th, 2014 (01:21 AM).
Luka S.J.'s Avatar
Luka S.J.
S.J.Ware HD
 
Join Date: Dec 2008
Age: 21
Gender: Male
Nature: Adamant
For Pokémon eligibility, make sure to check for eggs too.
Reply With Quote
  #8    
Old January 27th, 2014 (02:48 AM).
venom12's Avatar
venom12
Pokemon Crystal Rain Relased
 
Join Date: Sep 2006
Age: 23
Gender: Male
Nature: Adamant
Send a message via Windows Live Messenger to venom12
OMG MAN :O I didnt expected that :D My remake with those features will be awesome :D Thanks man.
__________________
This signature has been disabled.
Exceeds signature height limit because of broken images.
Please review and fix the issues by reading the signature rules.

You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
Reply With Quote
  #9    
Old January 27th, 2014 (05:35 AM). Edited January 27th, 2014 by Air Lock.
Air Lock's Avatar
Air Lock
Will I come back?
Community Supporter
 
Join Date: Sep 2008
Location: California
Age: 16
Gender: Male
Nature: Jolly
This looks great! I'll be using this one too.
You sure are coming out with a few scripts...what's next?
Reply With Quote
  #10    
Old January 27th, 2014 (04:50 PM).
Ratty524's Avatar
Ratty524
 
Join Date: Jan 2011
Gender: Male
Nature: Calm
So... Forgive me for not quite understanding what you just posted, but how does this work?

I get the folder creation and all, but when you say "simply call: 'PVP.open'" what do you mean? Is it a script call through the event editor, or something else?

Also, how will other players be able to extract their team data from the game?
Reply With Quote
  #11    
Old January 27th, 2014 (04:55 PM).
venom12's Avatar
venom12
Pokemon Crystal Rain Relased
 
Join Date: Sep 2006
Age: 23
Gender: Male
Nature: Adamant
Send a message via Windows Live Messenger to venom12
Quote originally posted by Ratty524:
So... Forgive me for not quite understanding what you just posted, but how does this work?

I get the folder creation and all, but when you say "simply call: 'PVP.open'" what do you mean? Is it a script call through the event editor, or something else?

Also, how will other players be able to extract their team data from the game?
For the open script just use call script from event command on page 3.

For the data extract simply they will use command "Creata Trainer Data" from this script.
__________________
This signature has been disabled.
Exceeds signature height limit because of broken images.
Please review and fix the issues by reading the signature rules.

You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
Reply With Quote
  #12    
Old January 27th, 2014 (06:34 PM). Edited January 27th, 2014 by Umbreon.
Umbreon's Avatar
Umbreon
Community Supporter
 
Join Date: Aug 2009
Location: Nearby my feet.
Age: 18
Gender: Male
Nature: Calm
Quote originally posted by Luka S.J.:
For Pokémon eligibility, make sure to check for eggs too.
Dang, this was at the bottom of my head when making this, thanks for pointing it out though!


Edit: I just added checks against eggs, and now if you don't have an eligible pokemon, it will tell you that one or more pokemon are not eligible.
Reply With Quote
  #13    
Old January 31st, 2014 (10:52 AM).
bartyboy6's Avatar
bartyboy6
 
Join Date: Sep 2010
Gender: Male
I constantly get a "Could not make trainer data" error, what did I do wrong, I did everything I should.
Reply With Quote
  #14    
Old January 31st, 2014 (04:23 PM).
Umbreon's Avatar
Umbreon
Community Supporter
 
Join Date: Aug 2009
Location: Nearby my feet.
Age: 18
Gender: Male
Nature: Calm
Quote originally posted by bartyboy6:
I constantly get a "Could not make trainer data" error, what did I do wrong, I did everything I should.
Did you add the "Trainers" folder in the root of your game (the root is the folder that contains Game.exe, Game.rpgproj, and all the sub-folders for resources)
Reply With Quote
  #15    
Old February 1st, 2014 (06:53 AM).
bartyboy6's Avatar
bartyboy6
 
Join Date: Sep 2010
Gender: Male
I did but it still gives me this error...
Reply With Quote
  #16    
Old February 1st, 2014 (10:15 AM).
Rayd12smitty's Avatar
Rayd12smitty
Shadow Maker
 
Join Date: Dec 2011
Gender: Male
Quote originally posted by bartyboy6:
I did but it still gives me this error...
Do you have a legendary or egg in your party?
__________________
Reply With Quote
  #17    
Old February 1st, 2014 (04:04 PM).
Umbreon's Avatar
Umbreon
Community Supporter
 
Join Date: Aug 2009
Location: Nearby my feet.
Age: 18
Gender: Male
Nature: Calm
Quote originally posted by bartyboy6:
I did but it still gives me this error...
Again what Rayd12Smitty said, if you have a legendary or an egg it won't work otherwise I have no clue, I don't get any errors and no one else has had one (that I know of)
Reply With Quote
  #18    
Old February 2nd, 2014 (02:01 AM).
bartyboy6's Avatar
bartyboy6
 
Join Date: Sep 2010
Gender: Male
I have a Latios, but it's not on the banned list last time I checked...
Reply With Quote
  #19    
Old February 2nd, 2014 (04:02 PM).
Umbreon's Avatar
Umbreon
Community Supporter
 
Join Date: Aug 2009
Location: Nearby my feet.
Age: 18
Gender: Male
Nature: Calm
Quote originally posted by bartyboy6:
I have a Latios, but it's not on the banned list last time I checked...
I have no idea what your problem could be
Reply With Quote
  #20    
Old February 3rd, 2014 (03:39 AM).
bartyboy6's Avatar
bartyboy6
 
Join Date: Sep 2010
Gender: Male
Perhaps it's because of some other scripts I'm using... I could try it on a clean Pokemon Essentials and see if it works.
Reply With Quote
  #21    
Old February 3rd, 2014 (04:24 PM).
Umbreon's Avatar
Umbreon
Community Supporter
 
Join Date: Aug 2009
Location: Nearby my feet.
Age: 18
Gender: Male
Nature: Calm
Quote originally posted by bartyboy6:
Perhaps it's because of some other scripts I'm using... I could try it on a clean Pokemon Essentials and see if it works.
I don't think it's really that, all my scripts are highly flexible, they should support modifications to any and all of the classes used by them... But you could try, I could be wrong
Reply With Quote
  #22    
Old February 3rd, 2014 (06:14 PM).
ShadowFiendZX's Avatar
ShadowFiendZX
Gym Leader
 
Join Date: Jan 2013
Location: Hamden Connecticut
Age: 17
Gender: Male
Nature: Serious
Send a message via Skype™ to ShadowFiendZX
I decided to try this script, same thing. "Could not make trainer" I was using a bulbasaur, sandslash, and abra.
__________________
BEHOLD THE FLOPPY MAGIKARP IN ALL ITS GLORY AND WISDOM

Reply With Quote
  #23    
Old February 3rd, 2014 (06:15 PM).
Umbreon's Avatar
Umbreon
Community Supporter
 
Join Date: Aug 2009
Location: Nearby my feet.
Age: 18
Gender: Male
Nature: Calm
Okay, I found the error, it was something with my script, it should work fine now
Reply With Quote
  #24    
Old February 5th, 2014 (11:20 AM).
dydd90's Avatar
dydd90
 
Join Date: Dec 2013
Location: Italy
Gender: Male
It is a very interesting script thank you friend
__________________
Reply With Quote
  #25    
Old February 16th, 2014 (01:11 PM).
felixcruzer
 
Join Date: May 2012
Gender: Male
i got a very early version of this script, i try it now again i hope the creator fixed these brute bugs

regards
Reply With Quote
Reply
Quick Reply

Sponsored Links
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Minimum Characters Per Post: 25



All times are UTC -8. The time now is 01:00 AM.