Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/11/2010, 12:00
NazCarLpa
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años, 1 mes
Puntos: 5
Ayuda con condiciones

Hola a todos, tengo un pequeño problema con un trozo de código que no me hace lo que quiero.

Me explico, es un juego online, el usuario puede comprar por medio de la tienda que tiene extras para su cuenta, pues bien hay extras que no se pueden comprar si tiene actividad algunas de las zonas del juego, le he incluido en el if que condiciona un aspecto de la compra esta otra condición pero no consigo que funcione, la única menar que lo he logrado ha sido concatenando pero creo que no sería correcto.

Os dejo el code bueno y el malo a ver si me podéis ayudar por favor.

Con este no me funciona

Código PHP:
if(( $Mode == 'pack26') && ($darkmatter >= 20000) && ($tecno == 0) && ($minas == 0)){

//restamos la materia oscura
doquery("UPDATE {{table}} SET `darkmatter`=darkmatter-20000 WHERE id={$user['id']}",'users');

//ponemos las minas
doquery("UPDATE {{table}} SET `nano_factory`=nano_factory+1
                               WHERE `galaxy`='"
.$planetrow['galaxy']."'
                               AND `system` ='"
.$planetrow['system']."'
                               AND `planet` ='"
.$planetrow['planet']."'
                               AND `planet_type` ='"
.$planetrow['planet_type']."'
                               "
,'planets');

//imprimimos el mensaje de adhision o error
message ('Se ha añadido<br /><div style="text-align:left;"> +1 Nivel en la Fábrica de Nanobots</div>
         <br /> A cambio de 20.000 de Materia Oscura.'
,"game.php?page=packplanetas"4);
}elseif(
$darkmatter <20000 && $Mode == 'pack26'){
message ('No tienes suficiente Materia Oscura, necesitas 20.000. <br /><br />Tienes '.$user['darkmatter'].' de Materia Oscura',"game.php?page=achatbonus"3);
}elseif((
$tecno != 0) && ($minas != 0) && ($Mode =='pack26')) {
message ('No puedes comprar este paquete si estás construyendo algún edificio',"game.php?page=achatbonus"3);

Con este otro sí pero creo que no es correcto concatenar de esta forma:
Código PHP:
if( $Mode == 'pack26' && $darkmatter >= 20000 && $tecno$minas == 0){

//restamos la materia oscura
doquery("UPDATE {{table}} SET `darkmatter`=darkmatter-20000 WHERE id={$user['id']}",'users');

//ponemos las minas
doquery("UPDATE {{table}} SET `nano_factory`=nano_factory+1
                               WHERE `galaxy`='"
.$planetrow['galaxy']."'
                               AND `system` ='"
.$planetrow['system']."'
                               AND `planet` ='"
.$planetrow['planet']."'
                               AND `planet_type` ='"
.$planetrow['planet_type']."'
                               "
,'planets');

//imprimimos el mensaje de adhision o error
message ('Se ha añadido<br /><div style="text-align:left;"> +1 Nivel en la Fábrica de Nanobots</div>
         <br /> A cambio de 20.000 de Materia Oscura.'
,"game.php?page=packplanetas"4);
}elseif(
$darkmatter <20000 && $Mode == 'pack26'){
message ('No tienes suficiente Materia Oscura, necesitas 20.000. <br /><br />Tienes '.$user['darkmatter'].' de Materia Oscura',"game.php?page=achatbonus"3);
}elseif(
$tecno$minas != && $Mode =='pack26') {
message ('No puedes comprar este paquete si estás construyendo algún edificio',"game.php?page=achatbonus"3);

Lo que tiene que hacer este código es permitir comprar un nivel más en la factoria de nanobots pero la condición solo lo puede permitir si tiene más o = de 20000 $darkmatter continua, luego comprobamos si $tecno !=0 y las $minas !=0 entonces si puede ejecutar el pack26 si no $message.

He cambiado la forma de hacerlo pero no lo logro.

Espero vuestra ayuda por favor.

Un saludo.