[TopMetin] Ayuda para hacer script PHP, 7 días premium de recompensa

Topic created · 10 Mensajes · 1501 Visitas
  • Necesito que alguien me ayude a crear un script con lo siguiente, os dejo el privado que envie a salvatore:

    votar 1 vez cada 24 horas, solo 1 vez por ip y por e-mail, y que tuvieran que poner el nombre de la cuenta y las coins se añadirían ahí (claramente solo 1 vez cada 24h),

    Su respuesta de más o menos como seria:

    se me ocurre crear una tabla en la base de datos (llamémosla por ejemplo topmetin_notifications) que almacene los siguientes campos:

    • id (automático)
    • fecha
    • tipo (de momento topmetin solo usa como tipo "vote", pero quizá más adelante notifique "comment" o más cosas)
    • email (el email del votante en este caso)
    • status (por defecto "pending", y una vez entregadas las coins lo pondremos a "completed" indicando que se han entregado, o "canceled" si no es válido)

    Una vez tenemos la tabla, yo la usaría de la siguiente forma:
    Cuando llegue una notificación de TopMetin, en vez de entregar las coins directamente, creamos una entrada en esa tabla con los datos de la notificación y enviamos un email al usuario diciendo algo así:
    "gracias por su voto, para recibir las coins por favor haga clic en el siguiente enlace y escriba el nombre de la cuenta: http://tumetin.com/topmetin_confirm.php?id=XX"
    (donde id=XX llevaría el ID de la entrada en la tabla, me sigues no?)

    Y en ese otro script (topmetin_confirm.php) simplemente pones un formulario que pida el nombre de cuenta (o la info que quieras del usuario, porque solo tenemos su email claro). Cuando el user envíe el formulario, buscamos el ID en la tabla, comprobamos que esté en status="pending", comprobamos que no haya ninguna entrada con ese mismo email en las últimas 24 horas en status=completed (de haberla significaría que el usuario ya ha recibido coins con ese email) y si las comprobaciones son correctas, entregas las coins y pones status="completed". O si no es correcto, status="canceled" por ejemplo.

    No es complicado, simplemente es crear una tabla, rellenarla con cada notificación y actualizarla cuando el usuario rellene el formulario adicional.

    Además me ha dicho que dará una semana premium de topmetin a quién lo haga.

    Gracias.

  • Efectivamente, la persona que se anime a hacer este script en PHP y lo publique en este hilo tendrá 1 semana de premium en TopMetin.

    Hay ya un script simple del que partir ( http://foro.universojuegos.es/showthread.php?pid=281104#pid281104 ) solo habría q modificarlo un poco (crear una entrada en la DB y enviar un mail) y luego crear un segundo script donde el usuario metería su cuenta, validación y entrega de coins.

    Sencillo. El primero que lo haga se lleva el premio.

    Enviado desde mi GT-I9100 usando Tapatalk 2

  • la oferta sigue en pie, si nadie se anima lo hago yo 🙂

  • Yo lo hago, pero una semana en top metin... no tengo metin!! xD
    Salva si quieres nos ponemos a hacerlo no creo que se tarde tanto en hacerlo.

    Aparte, se puede mejorar mucho el sistema, ya que eso es algo sencillo.

  • Te dejo una cosilla rapida.
    Mejor chequear que el archivo exista, para ello mejor como comente es que lo cree el servidor.

    [php]
    // Chequeo del archivo en la web del cliente
    $url = 'tuurl.com';
    private function url_exists($url) {
    $ch = @curl_init($url);
    @curl_setopt($ch, CURLOPT_HEADER, TRUE);
    @curl_setopt($ch, CURLOPT_NOBODY, TRUE);
    @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
    @curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    $status = array();
    preg_match('/HTTP\/.* ([0-9]+) .*/', @curl_exec($ch) , $status);
    return ($status[1] == 200);
    }

    echo url_exists($url)? 'existe' : 'no existe';
    [/php]

  • Me interesa bastante urgente, rimander ponte en contacto conmigo.

    Por un privado aquí o skype:
    metin2neocon

  • Ya te agregue a skype

    PD: Salva necesito hablar contigo, estoy confundido con una cosa xD

  • De este script nada no?

  • @'ADMPulpin' said:

    De este script nada no?

    al parecer no :ninja:

  • Yo ya hice el script *-* Como adquiero la cuenta premium :wiii:

    [php]//Este Script fue echo por el [ADM]Vagoo de www.metin2inferis.com para contactarlo por problemas en el script pueden hacerlo mediante el skype r-rangel1993

    // Inicia Configuración del Servidor
    // Aquí debes modificar la información acorde con tu servidor. Dicha información es igual a como te conectas a traves de navicat o de algún otro gestor de bases de datos. Ten cuidado al modificar de esto depende el correcto funcionamiento de este SCRIPT.

    $host = ''; // Ip donde está la base de datos. Si la base de datos esta en el mismo lugar de la página web borra esta linea de código.
    //$host = 'localhost'; // Ip donde está la base de datos. Si la base de datos NO esta en el mismo lugar de la página web borra esta linea de código.
    $usuario = ''; // Coloca aquí el usuario de tu base de datos.
    $pass = ''; // Coloca aquí la contraseña de tu base de datos.
    $basededatos = 'account'; // Nombre de la Base de datos donde estan las cuentas. Por lo general es la base de datos account, sino es asi modifica esta linea y copia el nombre de tu base de datos.
    $tabla = 'account'; // Nombre de la tabla de la Base de datos donde estan las cuentas. Por lo general es la tabla se llama account, sino es asi modifica esta linea y copia el nombre de la tabla donde están las cuentas.
    $atribute = 'coins'; // Nombre de la columna de la tabla donde se asiganarán los coins a dar por voto.
    $atribute2 = 'email'; // Nombre de la columna de la tabla donde estan los correos con que un usuario registra su cuenta.
    $tcoins = 1; // Cantidad de coins a asignar por voto

    // Finaliza Configuración del Servidor

    // Inicia la declaración de variables necesarias
    $correo = mysql_escape_string( $_POST['email'] );
    $evento = mysql_escape_string( $_POST['event'] );
    $sqlServ = mysql_connect($host, $usuario, $pass);
    // Finaliza la declaración de variables necesarias

    if (!empty($_POST)) {
    if ((!empty($correo)) && (!empty($evento)) ){
    if ($evento == 'vote'){
    $sqlCmd = "UPDATE ".$basededatos.".".$tabla." SET ".$atribute." = ".$atribute." + ".$tcoins." WHERE ".$atribute2."='".$correo."' LIMIT 1";
    $sqlQry = mysql_query($sqlCmd,$sqlServ);

    if ($sqlQry) {
    exit(header("Status: 200 OK"));
    } else {
    die('Consulta fallida: ' . mysql_error());
    }
    }
    }
    }

    ?>[/php]