anpera.net
http://anpera.homeip.net/phpbb3/

Steuern
http://anpera.homeip.net/phpbb3/viewtopic.php?f=34&t=5352
Seite 1 von 1

Autor:  Lucian [ So 10 Jul, 2011 17:19 ]
Betreff des Beitrags:  Steuern

Und zwar..Bei uns hat sich der Durchschnitt bei Kronen so entwickelt:

Kronen im Durchschnitt pro User - April: 34567 (Serverstart)
Kronen im Durchschnitt pro User - Mai: 65122
Kronen im Durchschnitt pro User - Mai: 88915
Kronen im Durchschnitt pro User - Juni: 102654
Kronen im Durchschnitt pro User - Juli: 350449

Es ist heftig vorallem von Juni auf Juli..

deswegen haben wir uns eine eine STeuer überlegt, die "Luxussteuer"
Ich habs in der Newday mit ner Freundin so gemacht:

PHP:
$money=$session[user][gold]+$session[user][goldinbank];
if ($money>=5000000){$taxes=$money-($money*0.36)/100;}
elseif($money>=4000000){$taxes=$money-($money*0.20)/100;}
elseif($money>=3000000){$taxes=$money-($money*0.19)/100;}
elseif($money>=2000000){$taxes=$money-($money*0.17)/100;}
elseif($money>=1000000){$taxes=$money-($money*0.15)/100;}
elseif($money>=900000){$taxes=$money-($money*0.9)/100;}
elseif($money>=800000){$taxes=$money-($money*0.8)/100;}
elseif($money>=700000){$taxes=$money-($money*0.7)/100;}
elseif($money>=600000){$taxes=$money-($money*0.6)/100;}
elseif($money>=500000){$taxes=$money-($money*0.5)/100;}
elseif($money>=400000){$taxes=$money-($money*0.4)/100;}
elseif($money>=300000){$taxes=$money-($money*0.3)/100;}
elseif($money>=200000){$taxes=$money-($money*0.2)/100;}
elseif($money>=100000){$taxes=$money-($money*0.1)/100;}

//hab mal etwas gestaffelt

if($taxes>0){
if($taxes>$session[user][gold]){$session[user][gold]=0;
$session[user][goldinbank]-$steuern2;}
else{$session[user][gold]-=$taxes;}
}
output($taxes);


Er zieht dann immer am Neuen Tag die ganzen Kronen ab..soll er aber nicht :/ Was mach ich nur falsch?

Autor:  Eliwood [ So 10 Jul, 2011 18:07 ]
Betreff des Beitrags:  Re: Steuern

Mal eine Frage - bist du sicher, dass das, was du da aufschrieben hast, auch das ist, was du willst? Schau dir mal die Formeln an - die machen keinen Sinn.

$this->bbcode_second_pass_code('', '// [...]
elseif($money>=1000000){$taxes=$money-($money*0.15)/100;}
// [...]
elseif($money>=200000){$taxes=$money-($money*0.2)/100;}
elseif($money>=100000){$taxes=$money-($money*0.1)/100;}')

Fassen wir mal zusammen (von unten (am wenigsten Geld) bis nach oben):
100'000 Kronen: Die Steuern betragen 100'000 - ((100'000 * 0.1 / 100)) = 100'000 - 100'000 / 1000 = 100'000 - 100 = 99'900 Steuern.
200'000 Kronen: Die Steuern betragen 200'000 - ((200'000 * 0.2 / 100)) = 200'000 - 200'000 / 500 = 200'000 - 400 = 199'600 Steuern
1'000'000 Kronen: Die Steuern betragen 1'000'000 - ((1'000'000 * 0.15/100)) = 1'000'000 - 1'000'000 / 666.6... = 1'000'000 - 1'500 = 998'500 Steuern

Zudem steigt dein "Nichtsteuersatz", oder wie man das auch immer nennen mag, bis 900'00 massiv an - und sinkt dann plötzlich zusammen, um langsam auf 0.35 zu steigen? Obwohl der Satz einst bei 0.9 stand?

Warum vermutlich nicht funktioniert:
$this->bbcode_second_pass_code('', 'if($taxes>0){
if($taxes>$session[user][gold]){$session[user][gold]=0;
$session[user][goldinbank]-$steuern2;}
else{$session[user][gold]-=$taxes;}
}')

Die Steuern sind > 0. Wenn die Steuern mehr sind, als der User in der Hand hat, wird das Gold in der Hand auf 0 gesetzt (soweit richtig). Dann aber verkleinerst du GoldaufderBank um $steuern2 - $steuern2 taucht hier aber zum allersten mal auf und ist völlig undefiniert! Der Rest müsste funktionieren. Das heisst, der Grund, warum es nicht funktioniert, ist einfach: Kaum jemand wird fast sein gesamtes Gold auf der Hand haben, denn nur dann funktioniert dieser Code-Teil, so, wie er soll...

Edit: Und abgesehen davon fehlt auch ein Gleichheitszeichen beim Abzug des Goldes von der Bank. Nicht, dass das in diesem Fall einen Unterschied machen würde, funktionieren tuts eh nicht.

Autor:  Minerva [ Fr 15 Jul, 2011 08:09 ]
Betreff des Beitrags:  Re: Steuern

Danke, nu seh ich den Fehler.. weiß shcon warum ich nicht gerne übern Messanger hinweg drüber code ohne die Fehler sehen zu können...

$this->bbcode_second_pass_code('', 'if($taxes>0){
if($taxes>$session[user][gold]){$session[user][gold]=0;
$session[user][goldinbank]-$steuern2;}
else{$session[user][gold]-=$taxes;}
}')

da ist i.wie ne Zeile verschwunden..

$this->bbcode_second_pass_code('', 'if($taxes>0){
if($taxes>$session[user][gold]){
$steuern2=$taxes-$session[user][gold]; //ging wohl i.wo verloren
$session[user][gold]=0;
$session[user][goldinbank]-=$steuern2;}
else{$session[user][gold]-=$taxes;}
}')

müsste so nun stimmen.

(und meine Steuerkurve sah auch ein wenig anders aus... aber naja.. das is deine Sache ^^)

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/