anpera.net https://anpera.homeip.net/phpbb3/ |
|
Robin Hod https://anpera.homeip.net/phpbb3/viewtopic.php?f=34&t=2953 |
Seite 1 von 1 |
Autor: | Varius [ So 01 Okt, 2006 12:31 ] |
Betreff des Beitrags: | Robin Hod |
Bäuerin SheelaNaGig wurde von Robin Hood und seinen treuen Gesellen ausgeraubt. Sie nahmen 841 Gold an sich und verteilten es unter 47 Leuten. Jeder von euch erhielt 17.8936170213 Gold. Das Gold wurde in euer Bankfach gelegt. Sieht irgentwie doch komisch aus. Gibt es einen Befehl fürs auf bzw abrunden von den was jeder bekommt ? ![]() |
Autor: | Kamui [ So 01 Okt, 2006 12:38 ] |
Betreff des Beitrags: | |
Ich glaube mal das du die Rechnung im Skript verändern müsstest anders weiss ich es auch nicht aber so müsste es normalerweise gehen |
Autor: | -DoM [ So 01 Okt, 2006 13:29 ] |
Betreff des Beitrags: | |
Beispiel: [php] //$row['gold'] sind 458,74125 Gold $gerundetesgold = round($row['gold'],0); //ergibt $gerundetesgold sind 459 Gold [/php] Ich frage mich warum es Leute gibt, die überall Antworten müssen, auch wenn sie keine Ahnung haben, wie man die Frage, lösen könnte. Aber ich denke, es liegt daran, eine möglichst hohe Forumwertung zu bekommen, auch wenn sie nur zusammen gespamt ist. |
Autor: | Eliwood [ So 01 Okt, 2006 13:43 ] |
Betreff des Beitrags: | |
Noch als Ergänzung: floor() für abrunden (Auch bei 2.9999 wird auf 2 abgerundet) ceil() für aufrunden (Auch bei 2.00001 wird auf 3 aufgerundet) |
Autor: | Auric [ So 01 Okt, 2006 20:19 ] |
Betreff des Beitrags: | |
floor ist ja eigetlich überflüssig, da man auch einfach $gerundet = (int) $dezimal; Verwenden kann - auch wenn ich glaube ich ins OT abschweife.. Desshalb noch mal was sinnvolles: per $zahlA%$zahlB Kannst du den Restwert bei einer Division bekommen. Wenn du den dann noch einem beliebigen User zusteckst, wird auch das gesammte gold verteilt, und es verschwinet nichts in den Unendlichkeiten der Rundungsfehler^^ |
Autor: | Tidus [ So 01 Okt, 2006 22:15 ] |
Betreff des Beitrags: | |
ich habe mal am anfang bemerkt das es das geld an mehrere vergibt egal ob 3 oder sowas in der message steht es bekommen mehrere aufjedenfall blick ich in dem script nicht durch den ganzen datenbank müll |
Autor: | Varius [ So 01 Okt, 2006 22:19 ] |
Betreff des Beitrags: | |
Danke für die ganzen Ratschläge und Hinweise ![]() @ Tidus ja das hab ich ich schon gemerkt das er es da nicht so genau nimmt. ![]() |
Autor: | Tidus [ So 01 Okt, 2006 22:31 ] |
Betreff des Beitrags: | |
kan ndas mal einer durchehen das sit das reinste chaos dort ich blick da ncih durch aluter abfragen xD |
Autor: | -DoM [ Mo 02 Okt, 2006 08:39 ] |
Betreff des Beitrags: | |
die originale robin hood ist auch buggy. mal schreibt er es bekommt einer ob wohl er dann den komplett betrag an 40 verteilt, ohne ihn vorher zu teilen (also durch 40). eine geile geldmaschine. ich habe das script für die verteilung mit dem hier ersetzt: [php] $loot = $session['user']['gold']; $session['user']['gold'] = 0; $sql = ("SELECT acctid,name,goldinbank,gold,login FROM accounts WHERE goldinbank < 3000 AND gold < 10000 AND acctid <> ".$session['user']['acctid']); $result = db_query($sql); $num = db_num_rows($result); $dist = round(($loot/$num),0); if ($num > 1){ for ($i=0;$i<$num;$i++){ $row = db_fetch_assoc($result); $sql2 = ("UPDATE accounts SET goldinbank=goldinbank+$dist WHERE acctid = ".$row['acctid']); db_query($sql2); $mailmessage = $session['user']['name']; if ($_GET['op2'] == "give"){ $mailmessage .= " `0hat Robin Hood und seinen treuen Gesellen `^"; $mailmessage .= $loot; $mailmessage .= " Gold`0 gegeben. Robin Hood verteilt es unter `\$"; $mailmessage .= $num; $mailmessage .= " `0Leuten. Jeder von euch erhielt `^"; $mailmessage .= $dist; $mailmessage .= " Gold`0. Das Gold wurde in euer Bankfach gelegt."; }else{ $mailmessage .= " `0wurde von Robin Hood und seinen treuen Gesellen ausgeraubt. Sie nahmen `^"; $mailmessage .= $loot; $mailmessage .= " Gold`0 an sich und verteilten es unter `\$"; $mailmessage .= $num; $mailmessage .= " `0Leuten. Jeder von euch erhielt `^"; $mailmessage .= $dist; $mailmessage .= " Gold`0. Das Gold wurde in euer Bankfach gelegt."; } systemmail($row['acctid'],"`2Robin Hood hat dir etwas Gold gegeben!",$mailmessage); } [/php] |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |