/** * Remove $amount of an item from the logged-in player's inventory * * @param type $id * @param type $data * @param type $amount * @param type $meta * @return boolean */ function umc_clear_inv($id, $data, $amount, $meta = '') { // umc_echo("trying to remove id $id, data $data, amount $amount, Enchantment $meta"); global $UMC_USER; $inv = $UMC_USER['inv']; $player = $UMC_USER["username"]; if ($meta == '') { $meta = serialize(false); } if (is_array($meta)) { $meta = serialise($meta); } $removed = 0; foreach ($inv as $slot => $item) { $item['meta'] = serialize($item['meta']); // echo "$slot:{$item['id']}:{$item['data']}:{$item['meta']} vs $meta"; if ($item['item_name'] == $id && $item['data'] == $data && $item['meta'] == $meta) { if ($amount >= $item['amount']) { umc_ws_cmd("removeitem {$player} {$slot}", 'asConsole'); //umc_echo("removeitem $player $slot"); $amount = $amount - $item['amount']; $removed = $removed + $item['amount']; } else { umc_ws_cmd("removeitem {$player} {$slot} {$amount}", 'asConsole'); //umc_echo("removeitem $player $slot $aomunt"); $amount = $amount - $amount; $removed = $amount; } if ($amount == 0) { break; } } } if ($amount != $removed && $amount > 0) { XMPP_ERROR_trigger("Could not remove item {$id}:{$data} in amount {$amount} (" . var_export($meta, true) . "from user {$player}!"); } if ($amount == 0) { return true; } else { return false; } }
function formulaires_configurer_metas_traiter_dist($form) { $f = charger_fonction('traiter', "formulaires/{$form}", true); if ($f) { return $f($form); } else { $infos = formulaires_configurer_metas_infos($form); if (!is_array($infos)) { return $infos; } // fait ci-dessus en fait $vars = formulaires_configurer_metas_recense($infos['path'], PREG_PATTERN_ORDER); $meta = $infos['meta']; foreach (array_unique($vars[2]) as $k) { $v = _request($k); ecrire_meta($k, is_array($v) ? serialise($v) : $v, 'oui', $meta); } return !isset($infos['prefix']) ? array() : array('redirect' => generer_url_ecrire($infos['prefix'])); } }