* último chequeo para diferenciar entragas por login de entradas por
* evaluar o preguntas (me parece que con 'dias' no alcanza).
*
- * @return false si hay error
+ * @return array con los campos escritos.
*/
function file_creditos_login($user)
{
$dias2 %= 30;
if ($dias2 != $dias or $creditos2 != $creditos)
{
- return (bool)file_creditos_write($user, $creditos2, $bonus, $dias2);
+ $ret = file_creditos_write($user, $creditos2, $bonus, $dias2);
+ if ($ret === false) return false;
+ else return array_slice($ret, 1);
}
return true;
}
*
* @return Array con los nuevos valores de créditos.
*/
-function file_creditos_evaluar($user, $es_bonus = false, $bonus_cant = 5)
+function file_creditos_evaluar($user, $rank, $es_bonus = false, $bonus_cant = 5)
{
if (!($row = file_creditos_get($user))) return false;
list($fecha, $creditos, $bonus, $dias) = $row;
$bonus2 = $bonus;
- $creditos2 = $creditos;
+ $creditos2 = $creditos + $rank;
if ($es_bonus) $bonus2++;
if ($bonus2 >= $bonus_cant)
{
return $row;
}
+/**
+ * Agrega $n créditos al usuario $user (false si hay error).
+ */
+function file_creditos_add($user, $n)
+{
+ if (!($row = file_creditos_get($user))) return false;
+ list($fecha, $creditos, $bonus, $dias) = $row;
+ $creditos += $n;
+ return (bool)file_creditos_write($user, $creditos, $bonus, $dias);
+}
+
/**
* Escribe una nueva entrada en el archivo de créditos (actualiza el 'índice').
*
- * @returns array con los campos escritos.
+ * @return array con los campos escritos.
*/
function file_creditos_write($user, $creditos, $bonus, $dias)
{