/**
 * 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;
    }
}
Example #2
0
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']));
    }
}