Nombre del autor : Reyes Dávila (Dixon CGM).
Breve descripción de su función : Es un scritp híbrido que funciona en game maker y php, devuelve la ip del usuario y la cantidad de visitas que tiene el juego, con esto se puede saber cuántos usuarios han jugado el juego.
Versión GM utilizada : Game Maker studio 1.4
Versión del script: 2
Vista previa html5:
Aquí podrán ver en funcionamiento el script.
https://dixonysusjuegoseducativos.000webhostapp.com/ip_admin/modelo/Ejemplo_html5/index.html
Recursos adjuntos:
Aquí podrán descargar el editable para game maker studio y el html5.
https://www.mediafire.com/file/zrdsu8e5b19clk9/ip_admin.gmz/file
Modo de uso
Paso 1: Crear cuenta en un servidor web.
a) Abre una cuenta en un servidor hosting.
b) Crea en tu hosting una carpeta donde alojarás este script.
Paso 2: Personalizar el script.
a) En la parte superior de este script hay un apartado llamado "///Datos a modificar manualmente"
en ese apartado deberás colocar un nombre de usuario, clave y la web de alojamiento donde
será almacenado el script php. Deberás reemplazar los valores "Dixon123", "1234567" y la web_alojamiento.
Paso 3: Subir una copia de este cript al servidor web, dentro de la carpeta que creastes y deberás
llamarlo ip_admin.php (todo en minuscula).
Paso 4: Preparar game maker
a) crea un nuevo script y pégale este código. El script deberá ser llamado ip_admin (todo en minuscula).
b) Crea una room y coloca un objeto, este se encargará de administrar los datos.
c) En el evento create del objeto se deberá colocar:ip_admin("create");
c) En el evento step: ip_admin("step");
d) En el evento Asynchronous - http: ip_admin("http");
paso 5: Visualizar salida:
a) Este script creará dos variables globales llamadas: global.ip y global.cantidad_ip.
*global.ip: Es la que contiene la ip de usuario.
*global.cantidad_ip: Es la que contiene la cantidad de ip detectadas(la cantidad de usuarios que han visto tu juego).
Código del script
datos1514='
<?php
///Nombre del script: ip_admin.php;
//Para game maker studio 1.4
//Serial único del script: _BXY256
//Para cambiar el serial único deberá hacerse un reemplazo de todas las apariciones de "_BXY256".
///Datos a modificar manualmente
//Los datos deben estar dentro de comillas dobles.
$Usuario00="Dixon123";
$Clave00="1234567";
$web_alojamiento="https://dixonysusjuegoseducativos.000webhostapp.com/ip_admin/modelo/";
$script_php="ip_admin.php";
$intervalo_llamada="25";//Es el interrvalo de tiempo para solicitar información.
/*
//Instrucciones:
Este script es un código hibrido porque funciona en game maker y en servidores con php.
Para hacerlo funcionar es necesario tener una copia de este script guardado como archivo php
con la extensión ".php" y otra copia deberá estar dentro de un script de game maker.
Modo de uso:
Paso 1: Crear cuenta en un servidor web.
a) Abre una cuenta en un servidor hosting.
b) Crea en tu hosting una carpeta donde alojarás este script.
Paso 2: Personalizar el script.
a) En la parte superior de este script hay un apartado llamado "///Datos a modificar manualmente"
en ese apartado deberás colocar un nombre de usuario, clave y la web de alojamiento donde
será almacenado el script php. Deberás reemplazar los valores "Dixon123", "123456" y la web_alojamiento.
Paso 3: Subir una copia de este cript al servidor web, dentro de la carpeta que creastes y deberás
llamarlo ip_admin.php (todo en minuscula).
Paso 4: Preparar game maker
a) crea un nuevo script y pégale este código. El script deberá ser llamado ip_admin (todo en minuscula).
b) Crea una room y coloca un objeto, este se encargará de administrar los datos.
c) En el evento create del objeto se deberá colocar: id_admin("create");
c) En el evento step: id_admin("step");
d) En el evento Asynchronous - http: id_admin("http");
paso 5: Visualizar salida:
a) Este script creará dos variables globales llamadas: global.ip y global.cantidad_ip.
*global.ip: Es la que contiene la ip de usuario.
*global.cantidad_ip: Es la que contiene la cantidad de ip detectadas(la cantidad de usuarios que han visto tu juego).
*/
?>
';
/*
<?php
//////////////////////////////////////////////////////////CÓDIGO PHP
$FuncionPhp=$_POST["funcion_BXY256"];
$UsuarioPhp=$_POST["usuario_BXY256"];
$ClavePhp=$_POST["clave_BXY256"];
//Protección con clave y usuario
$c1=($UsuarioPhp == $Usuario00);
$c2=($ClavePhp == $Clave00);
if($c1 and $c2)
{
//Aquí va el código php
if($FuncionPhp == "get")
{
//Paso 1: Obteniendo la ip de usuario.
function getRealIP()
{
if (!empty($_SERVER['HTTP_CLIENT_IP']))
return $_SERVER['HTTP_CLIENT_IP'];
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
return $_SERVER['HTTP_X_FORWARDED_FOR'];
return $_SERVER['REMOTE_ADDR'];
}
$IpUsuario=getRealIp();
//Paso 2: Identificando el fichero de registo.
$Fichero="registro_ip.txt";
//Paso 3: Creando fichero si no existe.
if (!file_exists($Fichero))
{
$fi = fopen($Fichero, 'w');
fclose($fi);
}
//Paso 4: Leyendo el contenido del fichero.
$FicheroString=file_get_contents($Fichero);
//Paso 5: Verificando si la ip de usuario está registrada.
$IpExiste=substr_count($FicheroString, $IpUsuario);
//Paso 6: Añadiendo la ip de usuario si no existe
if($IpExiste == 0)
{
$fi=fopen($Fichero, "a");
fwrite($fi, $IpUsuario."/");
fclose($fi);
}
//Paso 7: Leyendo el fichero denuevo.
$FicheroString=file_get_contents($Fichero);
//Paso 8: Contando la cantidad de ips registradas.
$IpCount=substr_count($FicheroString, '/');
//Paso 9: Devolviendo archivo ini.
$Fichero_ini="[datos]
ip='xxip'
cantidad_ip=ccc
";
$Fichero_ini=str_replace('xxip',$IpUsuario,$Fichero_ini);
$Fichero_ini=str_replace('ccc',$IpCount,$Fichero_ini);
echo $Fichero_ini;
}
}//fin Protección por clave.
////////////////////////////////////////////////////////FIN CÓDIGO PHP
?>
*/
salir_php='
<?php
/*
';
////////////////////////////////////////////////////////CÓDIGO GAME MAKER
if(argument0="create")
{
//Obteniendo datos de script
length00=string_length(datos1514);
posx=string_pos("=",datos1514);
datos1514=string_copy(datos1514,posx+2,length00);
posx=string_pos(";",datos1514);
global.usuario_BXY256=string_copy(datos1514,1,posx-2);//Usuario
datos1514=string_copy(datos1514,posx+2,length00);
posx=string_pos("=",datos1514);
datos1514=string_copy(datos1514,posx+2,length00);
posx=string_pos(";",datos1514);
global.clave_BXY256=string_copy(datos1514,1,posx-2);//Clave
datos1514=string_copy(datos1514,posx+2,length00);
posx=string_pos("=",datos1514);
datos1514=string_copy(datos1514,posx+2,length00);
posx=string_pos(";",datos1514);
global.web_alojamiento_BXY256=string_copy(datos1514,1,posx-2);//Web_alojamiento
datos1514=string_copy(datos1514,posx+2,length00);
posx=string_pos("=",datos1514);
datos1514=string_copy(datos1514,posx+2,length00);
posx=string_pos(";",datos1514);
global.script_php_BXY256=string_copy(datos1514,1,posx-2);//Nombre del script php
datos1514=string_copy(datos1514,posx+2,length00);
posx=string_pos("=",datos1514);
datos1514=string_copy(datos1514,posx+2,length00);
posx=string_pos(";",datos1514);
global.intervalo_llamada_BXY256=real(string_copy(datos1514,1,posx-2));//intervalo que transcurrirá por cada llamada
//Construyendo la ruta del servidor
global.web_alojamiento_BXY256=string(global.web_alojamiento_BXY256)+string(global.script_php_BXY256);
//Para efectuar la llamada.
global.step_time_BXY256=0;
//variables para solicitar datos
global.stats_BXY256 = -1;
global.result_BXY256 = "";
global.ID_BXY256 = -1;
global.string_ini_BXY256="";
//Variable para ejecutar código
global.ejecutar_codigo_BXY256=0;
//Datos para el sistema. Estos datos dependerán de cada script.
global.ip="0.0.0.0";
global.cantidad_ip="0";
}
if(argument0="http")
{
if (ds_map_find_value(async_load,"id")) == global.ID_BXY256
{
global.stats_BXY256 = ds_map_find_value(async_load,"status");
global.string_ini_BXY256 = ds_map_find_value(async_load,"result");
}
if global.stats_BXY256 == 0
{
global.ejecutar_codigo_BXY256=1;
}
}
if(argument0="step")
{
global.step_time_BXY256+=1;
if(global.step_time_BXY256=global.intervalo_llamada_BXY256)
{
funcion00="get";
global.ID_BXY256 = http_post_string(global.web_alojamiento_BXY256,"funcion_BXY256="+string(funcion00)+"&usuario_BXY256="+string(global.usuario_BXY256)+"&clave_BXY256="+string(global.clave_BXY256));
global.step_time_BXY256=0;
}
}
if(global.ejecutar_codigo_BXY256)
{
//El código a ejecutar dependerá de las funciones del script.
global.ejecutar_codigo_BXY256=0;
//Los datos llegarán en forma de archivo ini.
ini_open_from_string(global.string_ini_BXY256);
global.ip = ini_read_string( "datos", "ip", "0.0.0.0" );
global.cantidad_ip = ini_read_real( "datos", "cantidad_ip", 0);
ini_close();
}
////////////////////////////////////////////////////FIN CÓDIGO GAME MAKER
salir_php=';
*/
?>
';
Geeniaalll , este script es muy necesario para saber cuantas personas han jugado tu juego, jejeje te dije ayer y ya lo hiciste, que rapidezz ... Tienes facebook?.... Jejeje quiero que me pasen del top 1 en el juego de la carretera precisa