- Home /
Question by
epicVoodoo · May 13, 2015 at 07:45 AM ·
networkcoroutinedataphpdisconnect
Run PHP query On Players Disconnecting from game (Coroutine)
Hi!
I need my users to Save their Data into Database when they exit game by OnDisconnectedFromServer(NetworkDisconnection info){}
So here's a code:
void OnDisconnectedFromServer(NetworkDisconnection info)
{
this.gameObject.GetComponent<Player>().SaveCharacerData();
Network.RemoveRPCs(this.networkView.viewID);
Network.DestroyPlayerObjects(this.networkView.viewID.owner);
}
public void SaveCharacerData()
{
if (networkView.isMine)
{
if (dataSet)
{
PlayerPrefsX.SetStringArray("cdshka", this.GetComponent<SpellInterface>().cdshka);
spellsInCd.Clear();
StartCoroutine(this.GetComponent<PlayerData>().SetPlayerData(this.characterName, this.level, this.raceID, this.curEnergy, this.maxEnergy, this.money, this.meleeAttackRange, this.attackSpeed, this.dodge, this.damage, this.forceDamage, this.critical, this.defRate, this.XP, lastPosX, lastPosY, lastPosZ, this.bbSkill, this.rangeSkill, this.mageSkill, this.shieldSkill, this.defSkill, this.launchSkill, " idikatunahui", this.gender));
Debug.Log("faster!");
}
}
}
public IEnumerator SetPlayerData(string name, int level, byte raceID, int curEnergy, int maxEnergy, int money, float meleeAttackRange, float attackSpeed, float dodge, int damage, int forceDamage, float critical, float defRate, float XP, float lastPosX, float lastPosY, float lastPosZ, float bbSkill, float rangeSkill, float mageSkill, float shieldSkill, float defSkill, float launchSkill, string lastLoc, string gender)
{
string hash = StringConvertings.Md5Sum(name + level + curEnergy + maxEnergy + meleeAttackRange + attackSpeed + dodge + damage + forceDamage + critical + defRate + XP + lastPosX + lastPosY + lastPosZ + bbSkill + rangeSkill + mageSkill + shieldSkill + defSkill + launchSkill + lastLoc + gender + secretKey);
string post_url = playerSetDataUrl + "name=" + WWW.EscapeURL(name) + "&level=" + level + "&curEnergy=" + curEnergy + "&maxEnergy=" + maxEnergy + "&meleeAttackRange=" + meleeAttackRange + "&attackSpeed=" + attackSpeed + "&dodge=" + dodge + "&damage=" + damage + "&forceDamage=" + forceDamage + "&critical=" + critical + "&defRate=" + defRate + "&XP=" + XP + "&lastPosX=" + lastPosX + "&lastPosY=" + lastPosY + "&lastPosZ=" + lastPosZ + "&bbSkill=" + bbSkill + "&rangeSkill=" + rangeSkill + "&mageSkill=" + mageSkill + "&shieldSkill=" + shieldSkill + "&defSkill=" + defSkill + "&launchSkill=" + launchSkill + "&lastLoc=" + lastLoc + "&gender=" + gender + "&hash=" + hash;
// Post the URL to the site and create a download object to get the result.
WWW hs_post = new WWW(post_url);
yield return hs_post; // Wait until the download is done
if (hs_post.error != null)
{
print("There was an error: " + hs_post.error);
}
Debug.Log("finishedddd!");
finalDataWasSet = true;
}
The issue based in the fact, that when i should implement COROUTINE to send data when exiting.. and this coroutine can't finish before exititing so data won't be saved;
Please, help me to figure out how to orginize this php query when on disconnecting. Thanx in advance!:)
Comment
Your answer