Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mensajes - Iros

31
Preguntas y respuestas / Re:Problema con las views
Enero 26, 2016, 04:15:58 PM
Probá con screen_save_part() poniendole los valores de las dimensiones de las views que queres que se capturen.
32
Noticias / Re:Concurso Comunidad Game Maker 2016
Enero 26, 2016, 04:25:52 AM
Dejo por acá que participo del concurso, espero no terminar muy quemado de la GGJ.
33
Preguntas y respuestas / Re:Pregunta sobre If
Enero 25, 2016, 01:42:54 AM
arcangelcaos, si vas a seguir usando ese método te recomiendo que uses Switch Case ya que tenes varias "posiciones". El Switch Case tiene ventaja sobre el IF ya que si se quiere acceder al Case 35 por dar un ejemplo iría automáticamente hasta el Case 35, en cambio si usas IF tiene que recorrer IF por IF (sin importar si se usa ELSE IF) hasta dar con posición == 35 lo que hace que la performance se vea realmente afectada. Por más que no te guste tener muchas líneas de código, si realmente queres lograr optimización, te recomiendo aguantarte todo ese desastre y utilizar Switch Case.
34
Acá dejo el código algo más protegido. Es cuestión de hacer un par de validaciones y pasarle ciertas funciones PHP para que reemplace código HTML y evitar un ataque XSS.


<?php

//The way this script works is pretty easy
//To make the script put or update a player in the list call the script as:    highscore.php?action=set&name=putnamehere&score=scorehere
//To make the script output the top 5 people call it either: highscore.php or highscore.php?action=top

//first connect to database

$host "localhost";
$user "user";
$pass "pass";
$scores_db "db";

$connect=mysql_connect ($host,$user,$pass) or die ('I cannot connect to the database because: ' mysql_error());
mysql_select_db ($scores_db);

//set variables for easier use inside strings
$action=$_GET["action"];

$_GET['name'] = htmlspecialchars($_GET['name']);

if (
is_numeric($_GET['score'])) { //Comprobamos si SCORE es del tipo numérico, de lo contrario lo convertimos en 0.
$_GET['score'] = htmlspecialchars($_GET['score']);
else
$_GET['score'] = 0;

//this function is the responsible of modifing the player in the table
function modify_table()
{
//first the query try to get a riw where the name of the player is = to the name in the url
 
$query "SELECT name FROM hallelujahez WHERE name='".mysql_escape_string($_GET["name"])."'";
 
$res mysql_query($query) or die("Couldn't execute $query: ".mysql_error());
 
 
//if the query returns 0 rows the player doesn't exist, if it returns 1 the player already exists
 
if (mysql_num_rows($res)==0)
 {
  
//the query makes a new row with the player name and the score
  
$query "INSERT INTO hallelujahez VALUES('".mysql_escape_string($_GET["name"])."',".mysql_escape_string($_GET["score"]).")";
  
mysql_query($query) or die("Couldn't execute $query: ".mysql_error());
 }
 else
 {
  
//the query looks for the row with name=name in the url and updates his score
  
$query "UPDATE hallelujahez SET score=".mysql_escape_string($_GET["score"])." WHERE name='".mysql_escape_string($_GET["name"])."'";
  
mysql_query($query) or die("Couldn't execute $query: ".mysql_error());
 }
}

function 
show_top()
{
 
//we make mysql return all rows in the database, but ordered descendent by the socre column and only the firt 5
 //so, the 5 highest scores will be showed, change the 5 with the number of top players you want to show
 
$query "SELECT name, score FROM hallelujahez ORDER BY score DESC LIMIT 50";
 
$res mysql_query($query) or die("Couldn't execute query: ".mysql_error());
 
 
//this echos the html code for starting a table
 
echo "Hallelujah - Easy | o3Beat Online Ranking<br>
 <br>
 <br>
 <table>
  <tr>
   <td align='center' style='font-color: white;'> <b>Name</b> </td> <td align='center' style='font-color: white;'> <b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Combo</b> </td>
  </tr>
  "
;
 while (
$user mysql_fetch_assoc($res))
 {
  
//the while loop is complicated, took me a week to fully understand how it works
  //It'll output a row with the user name and score
  
echo "<tr> 
          <td align='center' style='font-color: white;'> 
  "
.$user["name"].
  </td> <td align='center' style='font-color: white;'> 
   "
.$user["score"].
  </td> 
  </tr>"
;
 }
 echo 
" </table>.";
}

//this switch will look at the $action variable I declared
//IF action=set means the person wants to input a player score, so we call modify_table()
//If action=top means the person wants to see the top5 players
//If none of the above simply show the top players
switch ($action)
{
 case 
"set"modify_table(); break;
 case 
"top"show_top(); break;
 default: 
show_top(); break;
}

//if you want to make the show_top() function alone in one php file simply copy the code before the function modify table()
//put the function code in the middle and put mysql_close()

//close the connection, you MUSTN't forget to do this after you open a connection
mysql_close();
?>
?>

35
Creo que yo había subido en una época esa DLL con un ejemplo. La verdad que el "highscore.php" es demasiado vulnerable, si tenes conocimientos en PHP podes agregarle seguridad con un par de validaciones antes de agregar los datos a la DB. Si queres dejá en el mensaje el código del highscore.php y veo como agregarle algo más de seguridad.
36
Pregunta, ¿a que viene este código?:

[gml]if (instance_create(64,320,obj_joystick)){
    hspeed = view_xview;

}[/gml]

Pregunto porque en Drag GUI no hace falta darle posición por código más que al dibujarlo y se adapta a la view automáticamente, di le agregás velocidad a tu Joystick es lógico que se dispare y no esté en tu view ni en tu room.
37
Primero que nada poner todo en mayúscula en los foros significa gritar. Después, el evento donde se hace es Draw GUI, y pusiste que trataste y nada, sería bueno que pusieras el código del objeto para ver en que falla, si no no te vamos a poder ayudar.
38
Los puntos se agregan por varios motivos: por registro, por crear tema, por responder a un tema y por recibirlos en un tema.

Si le das puntos a un usuario no se te descuentan a vos si no que es como una reserva de puntos por día, es decir que podes dar hasta 12 puntos (creo que eran 12) por día.
39
VS es para C, C++ y C#.

Si queres aprender C# te recomiendo http://www.csharpya.com.ar/, varios ejemplos de esa web son los que me están dando a mi en la facultad. Si queres C++ en la misma página arriba a la derecha te sale para ir al curso de C++.
40
Escapá el caracter con un \. Te quedaría algo así: \#.
41
Preguntas y respuestas / Re:CICLO FOR
Octubre 24, 2015, 06:44:07 PM
Si es posible, en el evento Draw haces los dos for anidados para dibujar los objetos quedándote algo así:

[gml]
for (i=0;i<10;i++) {
    for (j=0;j<10;j++) {
         if (inventario[j] != "empty")
             draw_sprite(inventario[j].sprite_index,0,j*32,i*32);
    }
}
[/gml]

Lo que hace es, mediante el valor almacenado en la matriz, comprueba si no está vacío y dibuja el sprite del objeto en la posición "i","j" del inventario en la posición j*32, i*32 de la pantalla. Es decir, en un primer instante como el valor de i y j es 0 va a multiplicar 32 * 0 dando 0, es decir que lo posicionaría al principio de la pantalla. Eso lo podes ir regulando como quieras que se dibuje tu inventario, también podes hacer que se dibuje con respecto a un objeto haciendo objetoInventario.x+(j*32),objetoInventario.y+(i*32).

Te dejo un proyecto que estoy haciendo donde utilizo una matriz y muestro la posición por donde paso el cursor:

https://www.dropbox.com/s/s0roesrddysqhqd/pTubo.gmz?dl=0
42
Preguntas y respuestas / Re:CICLO FOR
Octubre 24, 2015, 06:03:07 PM
El bucle for es un bucle que tiene la característica de que se le puede asignar de una forma fácil la cantidad de veces que queres que se repita definiendole condiciones. Más o menos para que te des una idea lo podes analizar de esta forma: "Iniciar en X valor; Comprobar que el valor esté dentro de la condición; Incrementar/Decrementar el valor".

Este bucle se utiliza bastante, es muy utilizado para recorrer vectores ya que en la condición se le asigna como límite el tamaño del vector. También se utiliza como retardo haciendo un bucle bastante grande, ésta función la he utilizado en C, C++, Java y JavaScript, en GM no es necesario ya que se cuenta con alarmas.

Para sacarle el mayor provecho a este bucle tenes que saber que es lo que queres realizar, por ejemplo, podes usar dos bucles for anidados para recorrer una matriz, el primero representa las filas y el segundo representa las columnas:

[gml]
for (i=0;i<10;i++) {
    for (j=0;j<10;j++) {
         matriz[j] = 0;
    }
}
[/gml]

En ese ejemplo se utilizan dos bucles for anidados para inicializar una matriz de 10x10 en 0.

En cuanto al tema de un inventario, simplemente tenes que ver el inventario como una matriz, tenes que considerar cada posición del inventario como una posición de la matriz. Es decir, podes tener el objetoA en inventario[0][0], el objetoB en inventario[0][1] y así sucesivamente hasta completar todas las posiciones de memoria. En el caso de agregar un objeto tendrías que comprobar que la posición esté vacía, para ello basta con corroborar la posición en la que lo vas a agregar, si la posición está ocupada (podrías usar "empty" para las posiciones vacías y el nombre del objeto para las posiciones ocupadas) comprobás la siguiente posición, para ello es necesario el bucle for.
43
Preguntas y respuestas / Re:Publicar estos juegos?
Octubre 16, 2015, 02:45:01 AM
Es el mismo caso. Te recomiendo leer sobre el tema de derechos de autor. Por ejemplo, si algo es libre tenes que fijarte bajo que licencia se encuentra, hay veces que la licencia te permite publicar con modificación y otras que directamente no te dejan.
44
Preguntas y respuestas / Re:Publicar estos juegos?
Octubre 16, 2015, 02:26:14 AM
Los juegos que te venden son para jugarlos, si te dan el código fuente es a modo de ejemplo.

¿Qué sentirías si alguien publica un juego tuyo sin tener los derechos de autor y saca provecho?
45
Preguntas y respuestas / Re:Publicar estos juegos?
Octubre 16, 2015, 02:09:12 AM
Es lo mismo, lo mismo sería robo. El juego no lo hiciste vos por ende no podes publicarlo. Lo que si podes hacer es basarte en esos ejemplos para hacer tu juego completamente desde cero y publicar tu juego.