Hello, i have two script, in first script is character stats (in create character scene) and second script for health, mana, and load stats (in second scene with game). But i don’t know how to load stats in second scene. Can you help me? please?
Script for character stats:
static var HP : int = 0;
static var MP : int = 0;
static var STR : int = 0;
static var MND : int = 0;
static var DEF : int = 0;
static var ATK : int = 0;
var loadlevel : boolean = false;
var pocet = 15; //maximum presses on +
var pridat : boolean = true; //+ button
var odebrat : boolean = true; //- button
function Update(){
if (loadlevel){
Application.LoadLevel("Mapa2");
gameObject.Find("player").SendMessage("loadgame");
}
if (pocet == 0){
pridat = false;
odebrat = true;
}
else if(pocet >= 0){
pridat = true;
odebrat = true;
}
if (pocet == 15){
pridat = true;
odebrat = false;
}
}
function OnGUI ()
{
//(H-pos, V-pos, H-size, V-size)
GUI.Label (Rect (5,5,100,25), "HP: " + HP);
GUI.Label (Rect (5,20,100,25), "MP: " + MP);
GUI.Label (Rect (5,35,100,25), "STR: " + STR);
GUI.Label (Rect (5,50,100,25), "MND " + MND);
GUI.Label (Rect (5,65,100,25), "DEF: " + DEF);
GUI.Label (Rect (5,80,100,25), "ATK: " + ATK);
GUI.Box (Rect (115,80,50,20), "" + pocet);
if(GUI.Button (Rect (500,500,50,20), "Vytvořit")){
loadlevel = true;
}
//STATS +
if(GUI.Button (Rect (50,5,25,15), "+")){ //HP+
if(pridat){
HP ++;
pocet --;
}
}
if(GUI.Button (Rect (50,20,25,15), "+")){ //MP+
if(pridat){
MP ++;
pocet --;
}
}
if(GUI.Button (Rect (50,35,25,15), "+")){ //STR+
if(pridat){
STR ++;
pocet --;
}
}
if(GUI.Button (Rect (50,50,25,15), "+")){ //MND+
if(pridat){
MND ++;
pocet --;
}
}
if(GUI.Button (Rect (50,65,25,15), "+")){ //DEF+
if(pridat){
DEF ++;
pocet --;
}
}
if(GUI.Button (Rect (50,80,25,15), "+")){ //ATK+
if(pridat){
ATK ++;
pocet --;
}
}
//STATS -
if(GUI.Button (Rect (74,5,25,15), "-")){ //HP-
if(odebrat){
HP --;
pocet ++;
}
}
if(GUI.Button (Rect (74,20,25,15), "-")){ //MP-
if(odebrat){
MP --;
pocet ++;
}
}
if(GUI.Button (Rect (74,35,25,15), "-")){ //STR-
if(odebrat){
STR --;
pocet ++;
}
}
if(GUI.Button (Rect (74,50,25,15), "-")){ //MND-
if(odebrat){
MND --;
pocet ++;
}
}
if(GUI.Button (Rect (74,65,25,15), "-")){ //DEF-
if(odebrat){
DEF --;
pocet ++;
}
}
if(GUI.Button (Rect (74,80,25,15), "-")){ //ATK-
if(odebrat){
ATK --;
pocet ++;
}
}
}
And script for health,mana and load stats…
import System;
import System.Collections;
import System.Xml;
import System.Xml.Serialization;
import System.IO;
import System.Text;
class DemoData
{
var x : float;
var y : float;
var z : float;
var name : String;
var experience : float;
}
class UserData
{
public var _iUser : DemoData = new DemoData();
function UserData() { }
}
var load : boolean = false;
var save : boolean = false;
var mySkin : GUISkin;
var expTexture : Texture;
var window : boolean = false;
var target: Transform;
var generalWidth = 50;
var userHeight = 50;
var maxPlayerHealth = 1000;
var playerHealth = 1000;
var playerMana = 1000;
var maxPlayerMana = 1000;
var playerEnergy = 100;
//Character stats *********************************
static var HP : int = 0;
static var MP : int = 0;
static var STR : int = 0;
static var MND : int = 0;
static var DEF : int = 0;
static var ATK : int = 0;
var pocet = 0; //maximum presses on +
var pridat : boolean = true; //+ button
var odebrat : boolean = true; //- button
//End of Character stats ********************************
var playerPositionX = 0;
var playerPositionY = 0;
var playerPositionZ = 0;
//Variable For Experience *******************************************************
var curExp : float;
var maxExp : float;
var level : float = 0;
//EndofExpVariables *************************************************************
//Saving Variables **************************************************************
private var _Save : Rect;
private var _Load : Rect;
private var _SaveMSG : Rect;
private var _LoadMSG : Rect;
//var _ShouldSave : boolean;
//var _ShouldLoad : boolean;
//var _SwitchSave : boolean;
//var _SwitchLoad : boolean;
private var _FileLocation : String;
private var _FileName : String = "SaveData.xml";
//public GameObject player;
var player : GameObject;
var playerName : String = "Default";
private var myData : UserData;
private var _data : String;
private var VPosition : Vector3;
//EndOfSaving Variables *********************************************************
function health(){
playerHealth -= 50;
}
function savegame(){
yield WaitForSeconds(10);
save = true;
}
function Start(){
savegame();
}
function loadgame(){
load = true;
}
function Awake () {
// GUI for the Save/Load
_Save=new Rect(50,155,100,20);
_Load=new Rect(50,175,100,20);
_Name=new Rect(50,240,200,20);
_SaveMSG=new Rect(50,120,200,40);
_LoadMSG=new Rect(50,140,200,40);
_NameMSG=new Rect(50,180,200,40);
// XML Save/Load path
_FileLocation=Application.dataPath;
// Creating something to store information into.
myData=new UserData();
}
function OnGUI ()
{
GUI.skin = mySkin;
if(window){
//Character stats ********************************
//(H-pos, V-pos, H-size, V-size)
GUI.Label (Rect (200,75,100,25), "HP: " + HP);
GUI.Label (Rect (200,90,100,25), "MP: " + MP);
GUI.Label (Rect (200,105,100,25), "STR: " + STR);
GUI.Label (Rect (200,120,100,25), "MND " + MND);
GUI.Label (Rect (200,135,100,25), "DEF: " + DEF);
GUI.Label (Rect (200,150,100,25), "ATK: " + ATK);
GUI.Box (Rect (310,150,50,20), "" + pocet);
//STATS +
if(GUI.Button (Rect (245,75,25,15), "+")){ //HP+
if(pridat){
HP ++;
pocet --;
playerHealth += 15;
}
}
if(GUI.Button (Rect (245,90,25,15), "+")){ //MP+
if(pridat){
MP ++;
pocet --;
playerMana += 15;
}
}
if(GUI.Button (Rect (245,105,25,15), "+")){ //STR+
if(pridat){
STR ++;
pocet --;
}
}
if(GUI.Button (Rect (245,120,25,15), "+")){ //MND+
if(pridat){
MND ++;
pocet --;
}
}
if(GUI.Button (Rect (245,135,25,15), "+")){ //DEF+
if(pridat){
DEF ++;
pocet --;
}
}
if(GUI.Button (Rect (245,150,25,15), "+")){ //ATK+
if(pridat){
ATK ++;
pocet --;
}
}
//End of Character stats ***********************************
playerName = GUI.TextArea (Rect(generalWidth,userHeight,100,25),playerName);
//Health ********************************************************************
GUI.Box (Rect (50,75,150,25), "Health:" + playerHealth);
//EndOfHealth ***************************************************************
//Mana **********************************************************************
GUI.Box (Rect (50,100,150,25), "Mana:" + playerMana);
//EndOfMana *****************************************************************
//Energy ********************************************************************
GUI.Box (Rect (50,125,150,25), "Energy:" + playerEnergy);
//EndOfEnergy ***************************************************************
//Experience ****************************************************************
GUI.Box (Rect (50,25,150,25),"Level:" + level);
//EndOfExperience ***********************************************************
//LoadingPlayers ************************************************************
if (load) {
// Load our UserData into myData
LoadXML();
if(_data.ToString() != "")
{
myData = DeserializeObject(_data);
VPosition=new Vector3(myData._iUser.x,myData._iUser.y,myData._iUser.z);
player.transform.position=VPosition;
curExp = myData._iUser.experience;
Debug.Log("Load Successful");
}
}
//EndOfLoadingPlayers *******************************************************
//SavingPlayers *************************************************************
if (save) {
//Debug.Log("SaveLoadXML: sanity check:"+ player.transform.position.x);
myData._iUser.x = player.transform.position.x;
myData._iUser.y = player.transform.position.y;
myData._iUser.z = player.transform.position.z;
myData._iUser.name = playerName;
myData._iUser.experience = curExp;
// Time to creat our XML!
_data = SerializeObject(myData);
// This is the final resulting XML from the serialization process
CreateXML();
Debug.Log(_data);
}
}
//EndOfSavingPlayers *********************************************************
GUI.DrawTexture(Rect(300, 598, 700 *(curExp/maxExp), 10), expTexture);
//Health bar********************************************************************
GUI.Box (Rect (50,534,150,25), "Health:" + playerHealth);
//EndOfHealth bar***************************************************************
//Mana bar**********************************************************************
GUI.Box (Rect (50,559,150,25), "Mana:" + playerMana);
//EndOfMana bar*****************************************************************
//Energy bar********************************************************************
GUI.Box (Rect (50,584,150,25), "Energy:" + playerEnergy);
//EndOfEnergy bar************************************************************
}
function Update ()
{
savegame();
//Character stats *****************************
if (pocet == 0){
pridat = false;
odebrat = true;
}
else if(pocet >= 0){
pridat = true;
odebrat = true;
}
if (pocet == 15){
pridat = true;
odebrat = false;
}
//End of Character stats *******************************
if (Input.GetKeyDown ("c")){
if(window == false){
window = true;
}else{
window = false;
}
}
if(playerHealth <= 0) {
print(playerName + "has died...");
PlayerDie();
}
// Here is the level decider. If the current exp is higher then the number there then you +1 level.
if (curExp >= maxExp)
{
// It means we have leveled up
print ("LevelUp" + level);
curExp = 0;
LevelUp();
}
}
function LevelUp()
{
// Increase our max exp
maxExp += 50;
level ++;
pocet += 3;
playerMana = maxPlayerMana;
maxPlayerMana += 40;
playerHealth = maxPlayerHealth;
maxPlayerHealth += 50;
}
function PlayerDie()
{
player.transform.position = Vector3(-10,1,-5); // A vector 3 teleport
player.transform.localEulerAngles = Vector3(0,0,0);
playerHealth = 1000;
playerMana = 1000; // Reseting the vitals or else it will loop the death(HP = 0)
playerEnergy = 100;
curExp -= 20;
}
function EnemyDie()
{
curExp += 10;
}
function RedPotion()
{
playerHealth += 200;
}
function BluePotion()
{
playerMana += 200;
}
function OnCollisionEnter(collision : Collision) {
}
function OnTriggerEnter()
{
}
//XML Code *****************************************************************
function UTF8ByteArrayToString(characters : byte[] )
{
var encoding : UTF8Encoding = new UTF8Encoding();
var constructedString : String = encoding.GetString(characters);
return (constructedString);
}
function StringToUTF8ByteArray(pXmlString : String)
{
var encoding : UTF8Encoding = new UTF8Encoding();
var byteArray : byte[] = encoding.GetBytes(pXmlString);
return byteArray;
}
function SerializeObject(pObject : Object)
{
var XmlizedString : String = null;
var memoryStream : MemoryStream = new MemoryStream();
var xs : XmlSerializer = new XmlSerializer(typeof(UserData));
var xmlTextWriter : XmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
xs.Serialize(xmlTextWriter, pObject);
memoryStream = xmlTextWriter.BaseStream; // (MemoryStream)
XmlizedString = UTF8ByteArrayToString(memoryStream.ToArray());
return XmlizedString;
}
function DeserializeObject(pXmlizedString : String)
{
var xs : XmlSerializer = new XmlSerializer(typeof(UserData));
var memoryStream : MemoryStream = new MemoryStream(StringToUTF8ByteArray(pXmlizedString));
var xmlTextWriter : XmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
return xs.Deserialize(memoryStream);
}
function CreateXML()
{
var writer : StreamWriter;
var t : FileInfo = new FileInfo(_FileLocation+"/"+ _FileName);
if(!t.Exists)
{
writer = t.CreateText();
}
else
{
t.Delete();
writer = t.CreateText();
}
writer.Write(_data);
writer.Close();
Debug.Log("File written");
}
function LoadXML()
{
//StreamReader r = File.OpenText(_FileLocation+"\\"+ _FileName);
var r : StreamReader = File.OpenText(_FileLocation+"/"+ _FileName);
var _info : String = r.ReadToEnd();
r.Close();
_data=_info;
Debug.Log("File Read");
}
//EndOfXML Code **************************************************************