public function actionBuy() { $output = array('errno' => 1, 'html' => ''); //Check session if (!Yii::app()->user->isGuest) { //Check input if (isset($_GET['equipments_type']) && is_numeric($_GET['equipments_type']) && $_GET['equipments_type'] > 0 && isset($_GET['id']) && is_numeric($_GET['id']) && $_GET['id'] > 0) { //Search object switch ($_GET['equipments_type']) { case Inventory::EQUIPMENT_TYPE_ARMOUR: $item = Armours::model()->findByPk($_GET['id']); $itemObject = new ArmoursObjects(); $itemObject->attributes = array('armours_id' => $item->id, 'knights_id' => $this->user_data['knights']->id, 'current_pde' => $item->pde); break; case Inventory::EQUIPMENT_TYPE_SPEAR: $item = Spears::model()->findByPk($_GET['id']); $itemObject = new SpearsObjects(); $itemObject->attributes = array('spears_id' => $item->id, 'knights_id' => $this->user_data['knights']->id, 'current_pde' => $item->pde); break; case Inventory::EQUIPMENT_TYPE_TRICK: $item = null; break; default: $item = null; } //Check item if ($item) { //Check requeriments if (EquipmentRequirements::checkAccomplish($_GET['equipments_type'], $_GET['id'], $this->user_data['knights']->id)) { //Check coins if ($item->prize <= $this->user_data['knights']->coins) { //add item to inventory of knight if ($emptyPosition = Inventory::getFirstEmptySocket($this->user_data['knights']->id)) { //Save item object $itemObject->save(); //Add item to knight's inventory $inventoryObject = new Inventory(); $inventoryObject->attributes = array('knights_id' => $this->user_data['knights']->id, 'type' => $_GET['equipments_type'], 'identificator' => $itemObject->id, 'position' => $emptyPosition, 'amount' => 1); $inventoryObject->save(); //sustract coins $this->user_data['knights']->coins -= $item->prize; $this->user_data['knights']->save(); //Set purchase history $purchase = new KnightsPurchases(); $purchase->attributes = array('knights_id' => $this->user_data['knights']->id, 'equipments_type_id' => $_GET['equipments_type'], 'identificator' => $_GET['id'], 'date' => date('Y-m-d H:i:s'), 'status' => KnightsPurchases::STATUS_PURCHASED, 'knights_card_charisma' => $this->user_data['knights_card']->charisma, 'knights_card_trade' => $this->user_data['knights_card']->trade); if (!$purchase->save()) { Yii::log('No salva el historial de la compra.'); } $output['errno'] = 0; $output['html'] = '<p>Ya tienes el objeto en tu <a href="/character/inventory/sir/' . $this->user_data['knights']->name . '">inventario</a> listo para utilizar.</p>'; $output['coins'] = number_format($this->user_data['knights']->coins, 0, ',', '.'); } else { $output['html'] = '<p>No tienes suficiente espacio en el inventario secundario.</p>'; } } else { $output['html'] = '<p>¡No tienes suficiente dinero!</p><p>Siempre puedes <a href="/jobs">ganar algo de dinero</a> prestando tus servicios como caballero.</p>'; } } else { $output['html'] = '<p>No cumples con alguno de los requisitos.</p>'; } } else { $output['html'] = '<p>El objecto no se ha encontrado.</p>'; } } else { $output['html'] = '<p>Los datos del item no son correctos.</p>'; } } else { $output['html'] = '<p>La sesión ha expirado. Necesitas volver a hacer login.</p>'; } echo CJSON::encode($output); }
$requirementsAccomplish = false; } } // Check skill else if ($requirement->skill!=null) { $attributeName = Constants::model()->findByPk($requirement->skill); if ($requirement->value >= $this->user_data['knights_card']->{$attributeName->name}) { $requirementsAccomplish = false; } } } } */ Yii::trace('[APP] checkAccomplish index'); ?> <?php if (!Yii::app()->user->isGuest && !EquipmentRequirements::checkAccomplish(Inventory::EQUIPMENT_TYPE_SPEAR, $row->id, $this->user_data['knights']->id)) { ?> <td><a href="/medievalmarket/requirements/equipments_type/<?php echo Inventory::EQUIPMENT_TYPE_SPEAR . '/id/' . $row->id; ?> " class="medievalmarket_requirements">requisitos</a></td> <?php } else { ?> <?php if ($row->equipment_rarity_id == EquipmentRarity::VERY_COMMON) { ?> <td><a href="/medievalmarket/confirmBuy/equipments_type/<?php echo Inventory::EQUIPMENT_TYPE_SPEAR . '/id/' . $row->id; ?>