public function run() { global $request; $em = \Shared\DoctrineHelper::getEntityManager(); $idMarchePersonnage = $request->request->get("idMarchePersonnage"); $objMarchePersonnage = \Site\SiteHelper::getMarchePersonnagesRepository()->findByIdAndIdProprietaire($idMarchePersonnage, $this->objAccount->getId()); if ($objMarchePersonnage !== null) { $ID_Personnage = $objMarchePersonnage->getIdPersonnage(); $Emplacement_Personnage = $objMarchePersonnage->getPid(); $objPlayerIndex = \Player\PlayerHelper::getPlayerIndexRepository()->findByEmplacementAndAccountId($Emplacement_Personnage, $this->objAccount->getId()); if ($objPlayerIndex !== null) { $objPlayer = \Player\PlayerHelper::getPlayerRepository()->find($ID_Personnage); if ($objPlayer !== null) { $func = "setPid" . $Emplacement_Personnage; $objPlayerIndex->{$func}($ID_Personnage); $em->persist($objPlayerIndex); $objPlayer->setIdAccount($this->objAccount->getId()); $em->persist($objPlayer); $em->remove($objMarchePersonnage); $em->flush(); \Site\SiteHelper::getMarcheArticlesRepository()->deleteByIdentifiantArticle($idMarchePersonnage); $Tableau_Retour_Json = array('result' => true, 'reasons' => ""); } else { $Tableau_Retour_Json = array('result' => false, 'reasons' => "Le personnage est déja lié a un compte."); } } else { $Tableau_Retour_Json = array('result' => false, 'reasons' => "L'emplacement original est occupé par un vrai personnage."); } } else { $Tableau_Retour_Json = array('result' => false, 'reasons' => "Ce personnage ne vous appartient pas."); } echo json_encode($Tableau_Retour_Json); }
public function run() { global $request; $idMarchePersonnage = $request->query->get("id_marche_perso"); $objMarchePersonnage = \Site\SiteHelper::getMarchePersonnagesRepository()->find($idMarchePersonnage); $objPlayer = \Player\PlayerHelper::getPlayerRepository()->find($objMarchePersonnage->getIdPersonnage()); $calculateGrade = \Player\PlayerHelper::calculateGrade($objPlayer->getAlignment()); $localisation = json_decode(\Localisation::localize(0, $objPlayer, false)); $templateEquipement = $this->objTwig->loadTemplate("playerEquipement.html5.twig"); $tailleImageEquipement = getimagesize("../../images/equipement.png"); $objItemArme = \Player\PlayerHelper::getItemRepository()->findByPosIntervalAndOwnerId(4, 4, $objPlayer->getId(), "EQUIPMENT", true); $objItemArmure = \Player\PlayerHelper::getItemRepository()->findByPosIntervalAndOwnerId(0, 0, $objPlayer->getId(), "EQUIPMENT", true); $objItemCasque = \Player\PlayerHelper::getItemRepository()->findByPosIntervalAndOwnerId(1, 1, $objPlayer->getId(), "EQUIPMENT", true); $objItemBouclier = \Player\PlayerHelper::getItemRepository()->findByPosIntervalAndOwnerId(10, 10, $objPlayer->getId(), "EQUIPMENT", true); $objItemBracelet = \Player\PlayerHelper::getItemRepository()->findByPosIntervalAndOwnerId(3, 3, $objPlayer->getId(), "EQUIPMENT", true); $objItemBoucle = \Player\PlayerHelper::getItemRepository()->findByPosIntervalAndOwnerId(6, 6, $objPlayer->getId(), "EQUIPMENT", true); $objItemCollier = \Player\PlayerHelper::getItemRepository()->findByPosIntervalAndOwnerId(5, 5, $objPlayer->getId(), "EQUIPMENT", true); $objItemChaussure = \Player\PlayerHelper::getItemRepository()->findByPosIntervalAndOwnerId(2, 2, $objPlayer->getId(), "EQUIPMENT", true); $objItemFleche = \Player\PlayerHelper::getItemRepository()->findByPosIntervalAndOwnerId(9, 9, $objPlayer->getId(), "EQUIPMENT", true); $objItemSpecial1 = \Player\PlayerHelper::getItemRepository()->findByPosIntervalAndOwnerId(7, 7, $objPlayer->getId(), "EQUIPMENT", true); $objItemSpecial2 = \Player\PlayerHelper::getItemRepository()->findByPosIntervalAndOwnerId(8, 8, $objPlayer->getId(), "EQUIPMENT", true); $viewEquipement = $templateEquipement->render(["tailleImageEquipementWidth" => $tailleImageEquipement[0], "tailleImageEquipementHeight" => $tailleImageEquipement[1], "objItemArme" => $objItemArme, "objItemArmure" => $objItemArmure, "objItemCasque" => $objItemCasque, "objItemBouclier" => $objItemBouclier, "objItemBracelet" => $objItemBracelet, "objItemBoucle" => $objItemBoucle, "objItemCollier" => $objItemCollier, "objItemChaussure" => $objItemChaussure, "objItemFleche" => $objItemFleche, "objItemSpecial1" => $objItemSpecial1, "objItemSpecial2" => $objItemSpecial2]); $arrObjItemsInventairePage1 = \Player\PlayerHelper::getItemRepository()->findByPosIntervalAndOwnerId(0, 44, $objPlayer->getId(), "INVENTORY"); $templateInventairePage1 = $this->objTwig->loadTemplate("ajaxInventairePage.html5.twig"); $viewInventairePage1 = $templateInventairePage1->render(["arrObjItems" => $arrObjItemsInventairePage1, "iDepart" => 0]); $templateInventaire = $this->objTwig->loadTemplate("playerInventaire.html5.twig"); $viewInventaire = $templateInventaire->render(["objAccount" => $this->objAccount, "viewInventairePage1" => $viewInventairePage1, "idPlayer" => $objPlayer->getId()]); $this->arrayTemplate["viewInventaire"] = $viewInventaire; $this->arrayTemplate["viewEquipement"] = $viewEquipement; $this->arrayTemplate["calculateGrade"] = $calculateGrade; $this->arrayTemplate["objPlayer"] = $objPlayer; $this->arrayTemplate["localisation"] = $localisation; $view = $this->template->render($this->arrayTemplate); $this->response->setContent($view); $this->response->send(); }
public function run() { global $session; global $request; $em = \Shared\DoctrineHelper::getEntityManager(); $idMarchePersonnage = $request->request->get("idMarchePersonnage"); $objMarchePersonnage = \Site\SiteHelper::getMarchePersonnagesRepository()->find($idMarchePersonnage); if ($objMarchePersonnage !== null) { $idVendeur = $objMarchePersonnage->getIdProprietaire(); $idPlayer = $objMarchePersonnage->getIdPersonnage(); $pidVendeur = $objMarchePersonnage->getPid(); $objMarcheArticle = \Site\SiteHelper::getMarcheArticlesRepository()->findByIdentifiantArticle($idMarchePersonnage); if ($objMarcheArticle !== null) { $prixMarcheArticle = $objMarcheArticle->getPrix(); $deviseMarcheArticle = $objMarcheArticle->getDevise(); $asserDeMonnaies = false; if ($deviseMarcheArticle == 1) { if ($this->objAccount->getCash() >= $prixMarcheArticle) { $asserDeMonnaies = true; } } else { if ($deviseMarcheArticle == 2) { if ($this->objAccount->getMileage() >= $prixMarcheArticle) { $asserDeMonnaies = true; } } } if ($asserDeMonnaies) { $objPlayerIndex = \Player\PlayerHelper::getPlayerIndexRepository()->find($this->objAccount->getId()); if ($objPlayerIndex !== null) { $pidDisponible = false; if ($objPlayerIndex->getPid1() == "0") { $pidDisponible = "1"; } else { if ($objPlayerIndex->getPid2() == "0") { $pidDisponible = "2"; } else { if ($objPlayerIndex->getPid3() == "0") { $pidDisponible = "3"; } else { if ($objPlayerIndex->getPid4() == "0") { $pidDisponible = "4"; } } } } if ($pidDisponible != false) { $objAccountProprietaire = \Account\AccountHelper::getAccountRepository()->find($idVendeur); if ($objAccountProprietaire !== null) { if ($deviseMarcheArticle == 1) { $objAccountProprietaire->setCash($objAccountProprietaire->getCash() + $prixMarcheArticle); $this->objAccount->setCash($this->objAccount->getCash() - $prixMarcheArticle); } else { if ($deviseMarcheArticle == 2) { $objAccountProprietaire->setMileage($objAccountProprietaire->getMileage() + $prixMarcheArticle); $this->objAccount->setMileage($this->objAccount->getMileage() - $prixMarcheArticle); } } $em->persist($objAccountProprietaire); $em->persist($this->objAccount); $session->set("Cash", $this->objAccount->getCash()); $session->set("Mileage", $this->objAccount->getMileage()); $objLogsMarcheAchats = new \Site\Entity\LogsMarcheAchats(); $objLogsMarcheAchats->setIdVendeur($idVendeur); $objLogsMarcheAchats->setIdAcheteur($this->objAccount->getId()); $objLogsMarcheAchats->setIdPersonnage($idPlayer); $objLogsMarcheAchats->setPrix($prixMarcheArticle); $objLogsMarcheAchats->setDate(\Carbon\Carbon::now()); $objLogsMarcheAchats->setDevise($deviseMarcheArticle); $objLogsMarcheAchats->setIp($this->ipAdresse); $em->persist($objLogsMarcheAchats); //Ajout du personnage sur le compte acheteur $funcAcheteur = "setPid" . $pidDisponible; $objPlayerIndex->{$funcAcheteur}($idPlayer); $em->persist($objPlayerIndex); //Rajout du compte acheteur sur le personnage $objPlayer = \Player\PlayerHelper::getPlayerRepository()->find($idPlayer); $objPlayer->setIdAccount($this->objAccount->getId()); $objPlayer->setIp(""); $em->persist($objPlayer); //Suppression du personnage fictif du compte vendeur $objPlayerIndexVendeur = \Player\PlayerHelper::getPlayerIndexRepository()->find($idVendeur); $funcVendeur = "setPid" . $pidVendeur; $objPlayerIndexVendeur->{$funcVendeur}(0); $em->persist($objPlayerIndexVendeur); //Suppression de l'article de la vente $em->remove($objMarcheArticle); //Suppression du personnage de la vente $em->remove($objMarchePersonnage); $em->flush(); //Email vendeur $template = $this->objTwig->loadTemplate("ajaxBuyPlayerVendeur.html5.twig"); $result = $template->render(["compte" => $objAccountProprietaire->getLogin(), "player" => $objPlayer->getName(), "prix" => $prixMarcheArticle, "devise" => $deviseMarcheArticle]); $subject = 'VamosMT2 - Vente du joueur ' . $objPlayer->getName(); \EmailHelper::sendEmail($objAccountProprietaire->getEmail(), $subject, $result); //Email acheteur $templateAcheteur = $this->objTwig->loadTemplate("ajaxBuyPlayerAcheteur.html5.twig"); $resultAcheteur = $templateAcheteur->render(["compte" => $this->objAccount->getLogin(), "player" => $objPlayer->getName(), "prix" => $prixMarcheArticle, "devise" => $deviseMarcheArticle]); $subjectAcheteur = 'VamosMT2 - Achat du joueur ' . $objPlayer->getName(); \EmailHelper::sendEmail($this->objAccount->getEmail(), $subjectAcheteur, $resultAcheteur); $Tableau_Retour_Json = array('result' => true, 'cash' => $this->objAccount->getCash(), 'mileage' => $this->objAccount->getMileage(), 'idPlayer' => \Encryption::encryptForUrl($idPlayer)); } else { $Tableau_Retour_Json = array('result' => false, 'reasons' => "Le proprietaire n'existe pas."); } } else { $Tableau_Retour_Json = array('result' => false, 'reasons' => "Vous n'avez pas d'emplacement pour mettre ce joueur."); } } else { $Tableau_Retour_Json = array('result' => false, 'reasons' => "Votre compte n'existe pas."); } } else { $Tableau_Retour_Json = array('result' => false, 'reasons' => "Vous n'avez pas assez de monnaies."); } } else { $Tableau_Retour_Json = array('result' => false, 'reasons' => "L'article n'existe plus."); } } else { $Tableau_Retour_Json = array('result' => false, 'reasons' => "Ce personnage n'est plus en vente."); } echo json_encode($Tableau_Retour_Json); }