function complete_trade($tradeid) { //Removes trainer1's pokemon and gives them to trainer 2. Then vice versa. Then marks the trade as completed. As a traded pokemon is not "caught", supply a $source other than organic to capture_pokemon(). global $file_db; //Bring up this trade's data. $tradedata = $file_db->query("SELECT * FROM trades WHERE id=" . $tradeid . "")->fetchAll(); //Build our arrays ready for the switcheroo. $pokemon1 = explode(',', $tradedata[0]['pokemon1']); $pokemon2 = explode(',', $tradedata[0]['pokemon2']); //First up, trainer1. Say goodbye to your pokemon. $r1 = release_pokemon($tradedata[0]['trainer1'], $pokemon1); //Now give these pokemon to trainer2. foreach ($pokemon1 as $p1poke) { dex_pokemon($tradedata[0]['trainer2'], round($p1poke)); capture_pokemon($tradedata[0]['trainer2'], $p1poke, $source = "trade"); } //Now it's trainer 2's turn. $r2 = release_pokemon($tradedata[0]['trainer2'], $pokemon2); //Now give these pokemon to trainer1. foreach ($pokemon2 as $p2poke) { dex_pokemon($tradedata[0]['trainer1'], round($p2poke)); capture_pokemon($tradedata[0]['trainer1'], $p2poke, $source = "trade"); } //Release the trade slots for both users. releasetrade($tradedata[0]['trainer1'], $tradeid, $reason = "complete"); releasetrade($tradedata[0]['trainer2'], $tradeid, $reason = "complete"); //Add this successful trade to the log. $file_db->exec("INSERT INTO tradelog (\n\t\t\t\ttrainer1, \n\t\t\t\ttrainer2, \n\t\t\t\tpokemon1, \n\t\t\t\tpokemon2,\n\t\t\t\tdate)\n\t\tVALUES (\n\t\t\t\t" . $tradedata[0]['trainer1'] . ", \n\t\t\t\t" . $tradedata[0]['trainer2'] . ",\n\t\t\t\t'" . $tradedata[0]['pokemon1'] . "',\n\t\t\t\t'" . $tradedata[0]['pokemon2'] . "',\n\t\t\t\t" . time() . ")\n\t\t\t\t"); //Increase our total trades stat. $file_db->exec('UPDATE stats SET total_trades = total_trades + 1'); //Finally, this trade is now complete! $file_db->exec("UPDATE trades\n\t\t\t\t\t\t\tSET stage=99\n\t\t\t\t\t\t\tWHERE id=" . $tradeid . ""); }
exit; } } complete_trade($tradeid); header('Location: ' . $baseurl . '?trade;view=' . $tradeid . ';completed'); exit; } } elseif (isset($_GET['notready'])) { update_trade($tradeid, 'stage', 8); header('Location: ' . $baseurl . '?trade;view=' . $tradeid . ''); exit; } elseif (isset($_GET['cancel'])) { //Destroy this trade. update_trade($tradeid, 'stage', 0); releasetrade($trainer1['id'], $tradeid); releasetrade($trainer2['id'], $tradeid); header('Location: ' . $baseurl . '?trade'); exit; } } if ($tradedata[0]['stage'] == 0) { layout_above('Cancelled Trade', 'Cancelled'); echo 'This trade was cancelled!'; layout_below(); exit; } if ($is_owner) { layout_above('Trade with ' . $trainer2['name'], 'Trade with ' . $trainer2['name']); } else { echo layout_above('Trade with ' . $trainer1['name'], 'Trade with ' . $trainer1['name']); }