Closed NiciusB closed 11 years ago
Si no recuerdo mal, los impuestos dependen de los ingresos, y de si tienes un casino, creo que casino era ¿+3% impuestos?
Tambien era al entrar a un clan, no?
Sí
Esta sería la función, habría que crear el campo beneficios, que sería el resultado de la operación.
function calcular_impuestos($id_user){
$user_datos=mysql_fetch_array(mysql_query("SELECT ingresos,impuestos FROM usuarios WHERE nick='".$_SESSION['nick']."'"));
$impuestos = $user_datos['ingresos'] * $user_datos['impuestos'] / 100;
$beneficios = round($user_datos['ingresos'] - $impuestos);
mysql_query("UPDATE usuarios SET beneficios=$beneficios");
}
e.e lo que quiero es la que calcula los porcentajes de impuestos xDD
No estoy muy seguro, pero creo que sería algo así.
function calcular_impuestos ($id_user)
{
$user_datos=mysql_fetch_array(mysql_query("SELECT ingresos,impuestos FROM usuarios WHERE nick='".$_SESSION['nick']."'"));
var ingresos = <?=$user_datos['ingresos']?>;
var bajo = 10000000; // Desde aqui se empieza a aumentar la cantidad de impuestos.
var alto = 20000000; // Aqui acaba un nivel de impuestos y empieza otro.
var impuestos = 3; // Minimo de impuestos para mas de 10.000.000 € ingresos.
// Si tiene menos de 10.000.000 € de ingresos, pagara solo 2% de impuestos.
if (ingresos < 10000000)
{
$impuestos = 2;
<? mysql_query("UPDATE usuarios SET impuestos = $impuestos WHERE nick='".$_SESSION['nick']."'"); ?>
}
else {
// Si tiene mas de 10 millones, calculara cuanto tiene que pagar.
function calcular ()
{
if (ingresos >= bajo && ingresos < alto)
{
$impuestos = impuestos;
<? mysql_query("UPDATE usuarios SET impuestos = $impuestos WHERE nick='".$_SESSION['nick']."'"); ?>
}
else {aumentar();} // Si no esta entre estos parametros, se aumentan en 10 millones los limites y se hace de nuevo la comprobacion.
}
function aumentar()
{
var bajo = 10000000 + bajo;
var alto = 10000000 + alto;
var impuestos = 1 + impuestos;
calcular();
}
}
}
Hombre, cambiando un poco el código para hacerlo coherente yo creo que está bien :P Solo faltan los casinos y las alianzas etc xD
Por cierto, habría que sumar el personal... A la funcion donde se asignan los beneficios:
$mantguardias = $user_datos['guardias']*500;
$mantsabots = $user_datos['saboteadores']*100;
$manttotal = $mantguardias + $mantsabots;
A la espera de que @NiciusB incluya las funciones en el cron de cada minuto.
Vosotros tambien podeis cambiarlo ehh
Ya te da el dinero sin impuestos y quitando el mantenimiento de las tropas El dinero ganado que se calcula con javascript aun no tiene en cuenta estos cambios. El campo impuestos se actualiza cada media hora y es:
//Calcular impuestos
$cantidad= 10000000; // Aqui acaba un nivel de impuestos y empieza otro.
mysql_query("UPDATE usuarios SET impuestos=2 WHERE ingresos<=$cantidad");
$impuestos = 3; // Minimo de impuestos para mas de 10.000.000 € ingresos.
for($i=0;$i<48;$i++){
mysql_query("UPDATE usuarios SET impuestos=$impuestos WHERE ingresos>$cantidad");
$cantidad+=10000000;
$impuestos +=1;
}
Faltan cosas por añadir
@NiciusB la función que hizo @DamageESP para calcular los impuestos está por aquí arriba...
Dinos si no que falta para poder cerrar.
Falta añadir los impuestos de alianzas y de casinos, y posible ventaja de eliminación de impuestos. También es muy posible que este mal el codigo
Da 3 mas de impuestos si tienes un casino, y otros 3 si tienes alianza, es asi? mysql_query("UPDATE usuarios SET impuestos=impuestos+3 WHERE alianza!=0"); mysql_query("UPDATE usuarios SET impuestos=impuestos+3 WHERE id IN (SELECT creador FROM casinos)");
Ahora el javascript ya calcula el dinero que te dan correctamente Añadida ventaja de no impuestos
confirmadme eso y cierro
Creo que es +2 cuando creas casinos. Por lo que veo esta todo ok.
Puedes cerrar.
No se pueden usar constantes para cada tipo de impuesto?
así luego se cambia rápido si hay que equilibrar cosas...
Si hay que cambiarlo pues se modifica el 3 por lo que sea y ya esta no? xD
No se a lo que te refieres.
Nunca es bueno poner números fijos sin saber lo que son... Piensa que cuando haces un código tienes que intentar que la persona que venga por detrás a verlo lo entienda...
Una constante es un identificador (nombre) para expresar un valor simple. Como el nombre sugiere, este valor no puede variar durante la ejecucción del script. (A excepción de las constantes predefinidas, que en realidad no son constantes). Una constante es sensible a mayúsculas por defecto. Por convención, los identificadores de contantes siempre suelen declararse en mayúsculas.
define('TAX_CASINO', '2'); define('TAX_CLAN', '3');
o con variables directamente...
Pero si solo van a estar en esa linea xDD que mas da que sea un int directamente? Cambiados los impuestos de casinos a 2%
Pues en teoría poner un int directamente es un "error de estilo" para ese tipo de valores de deben definir constantes.
Bueno, no se xD como quieras jajaja Hago un archivo de constantes?
una clase mejor no?
pero es que con clases en php no me manejo xDD solo las se usar en java xDD
<?php
define('MIN_VALUE', '0.0'); // RIGHT - Works OUTSIDE of a class definition.
define('MAX_VALUE', '1.0'); // RIGHT - Works OUTSIDE of a class definition.
//const MIN_VALUE = 0.0; WRONG - Works INSIDE of a class definition.
//const MAX_VALUE = 1.0; WRONG - Works INSIDE of a class definition.
class Constants
{
//define('MIN_VALUE', '0.0'); WRONG - Works OUTSIDE of a class definition.
//define('MAX_VALUE', '1.0'); WRONG - Works OUTSIDE of a class definition.
const MIN_VALUE = 0.0; // RIGHT - Works INSIDE of a class definition.
const MAX_VALUE = 1.0; // RIGHT - Works INSIDE of a class definition.
public static function getMinValue()
{
return self::MIN_VALUE;
}
public static function getMaxValue()
{
return self::MAX_VALUE;
}
}
?>
#Example 1:
You can access these constants DIRECTLY like so:
* type the class name exactly.
* type two (2) colons.
* type the const name exactly.
#Example 2:
Because our class definition provides two (2) static functions, you can also access them like so:
* type the class name exactly.
* type two (2) colons.
* type the function name exactly (with the parentheses).
<?php
#Example 1:
$min = Constants::MIN_VALUE;
$max = Constants::MAX_VALUE;
#Example 2:
$min = Constants::getMinValue();
$max = Constants::getMaxValue();
?>
Realmente, no es mas facil hacer <? $min=0 $max=1 ?>???
y también más rápido a la hora de ejecutarlo, yo con que no me pongaís los numeros tal cual, y pongaís $tax_clan, $tax_casino. Me doy más que por satisfecho...
Las constantes se almacenarán en el array $constante que esta en /constantes_juego.php que es referenciado por /funciones_conjuntas.php que es referenciado por el archivo /cron/config.php y /public_html/datos_db.php
Con el archivo de las constantes se podra hacer un panel de administracion donde se puedan cambiar todas ellas no? En ese caso perfecto.
Teniendo en cuenta que las constantes no las debería poder cambiar cualquiera no hace ninguna falta, pero técnicamente creo que sí. Pero habría que modificar un archivo php, dado que no se guardan en BD.
Dudo que sea necesario eso, ya que los unicos admins somos nosotros 3 y sabemos modificar unas variables php, no? xD
Obv xD lo decia para hacerlo más comodo. Pero no es necesario :P
Estaría bien que alguien empezara ya con los impuestos... Mi idea es hacer una función en datos_db.php que se llame calcular_impuestos($id_usuario);
Yo me encargaría de restarla del dinero en el archivo que se ejecuta cada minuto... próximamente os pondré accesibles los crons.
Cuales son las variables para tener impuestos?