anpera.net https://anpera.dyndns.org/phpbb3/ |
|
Speichern in der Datenbank? https://anpera.dyndns.org/phpbb3/viewtopic.php?f=25&t=4213 |
Seite 1 von 2 |
Autor: | Calamita [ Di 25 Dez, 2007 01:11 ] |
Betreff des Beitrags: | Speichern in der Datenbank? |
Oh man, mal wieder ich ![]() Also, ich hab mal wiede ne Frage.. Ich habe jetzt einen Brunnen gemacht. In den soll man Goldstücke werfen können und das soll dann in der Datenbank abgespeichert werden, damit man sehen kann, wer am meisten (also auch wieviel) "verschwendet" hat und wieviel es insgesamt ist. Aber ich weiß nicht, wie ich das machen soll, dass das in der DB gespeichert wird. Den Code hab ich jetzt so weit, dass man zumindest schonmal was reinspeichern kann^^ Kann mir da wer helfen? Edit: Da ich keine Lust habe nun wieder nen Thread zu erstellen, stell ich meine Frage einfach auch mal hier.. Irgendwas mache ich wohl falsch -.- Ich habe jetzt Bedürfnisse, wie Hunger,m Durst, etc. eingebaut. Jetzt will ich, dass die Lebenspunkte bei zB 30 Minuspunkten auf 1 gesetzt werden, man also Lebenspunkte verliert. Ich hab das jetzt so: [php]if ($session[user][beduerfnisse_hunger]>=30){ $session[user][hitpoints] = 1; output("Blablabla"); }[/php] Funktioniert nur leider nicht ![]() |
Autor: | -DoM [ Di 25 Dez, 2007 13:08 ] |
Betreff des Beitrags: | |
Zu deinem ersten: Du kannst es recht einfach machen, und gehst her und erstellst in der Accountstabelle ein Feld z. B. mit dem Namen "brunnenwerf" Wenn der Spieler nun etwas in den Brunnen wirft wird dem Spieler ja eine gewisse Menge Gold abgezogen, diesen Betrag fügst du dann in das Feld "brunnenwerf" hinzu. [php]//Geworfenes GOld wird abgezogen $session['user']['gold'] -= $gold; //Geworfenes Gold wird in anderem Feld hinzugefügt $session['user']['brunnenwerf'] += $gold;[/php] Das Tabellenfeld kannst du hiermit erstellen: $this->bbcode_second_pass_code('', 'ALTER TABLE `accounts` ADD `brunnenwerf` INT( 11 ) UNSIGNED NOT NULL DEFAULT '0';') Zu deinem 2. Sollte es mit "hitpoints" eigentlich gehen, es sei denn du hast das Feld umbenannt.... Wenn Natürlich der jenige nur einen Lebenspunkt hat, kann sich nichts ändern.... Wenn du dem jenigen nur einen Punkt abziehen möchtest, musst du es so machen: [php]$session['user']['hitpoints'] -= 1; //oder $session['user']['hitpoints'] --; [/php] |
Autor: | Calamita [ Di 25 Dez, 2007 15:07 ] |
Betreff des Beitrags: | |
Erstma Danke für die Antwort^^ Ja, wie ich das mit dem Abziehen machen muss, wusste ich, aber jetzt weiß ich auch, wie das mit dem abspeichern geht. (Soweit war ich in der DB auch schon, wusste nur icht, wie ich das im Code zu schreiben hab) Also, wie gesagt: Danke^^ Mein User hat 10 LP, da müsste es doch gehen? Aber das Feld habe ich nicht umbenannt.. Ich hab es sogar extra noch kopiert und dann eingefügt, damit ich sicher gehen konnte, dass ich keinen Tippfehler drin hab. ![]() Aber wenn ich demjenigen auch einen Punkt abziehen will, dann funktioniert das auch nicht. |
Autor: | MySql [ Di 25 Dez, 2007 15:10 ] |
Betreff des Beitrags: | |
Mal so ne gaaaanz doofe Frage^^ Werden dem Spieler die Lebenspunkte in der newday.php abgezoggen? Wenn ja, wo? My. |
Autor: | Calamita [ Di 25 Dez, 2007 20:15 ] |
Betreff des Beitrags: | |
Jap, es ist in der newday.php [php]output("`2Runden für den heutigen Tag: `^$turnsperday`n"); //Bedürfnisse $session[user][beduerfnisse_hunger]++; $session[user][beduerfnisse_durst]++; $session[user][beduerfnisse_blase]++; $session[user][beduerfnisse_schmutz]++; output("Du bekommst Hunger und Durst und solltest auch demnächst mal aufs Klo^^. Außerdem solltest du dich mal wieder waschen.`n`n"); if($session['user'] ['beduerfnisse_hunger']>=30){ $session['user']['hitpoints']=1; output("Du verlierst Lebenspunkte`n`n`n"); } if($session['user'] ['beduerfnisse_durst']>=30){ $session['user']['hitpoints']=1; output("Du verlierst Lebenspunkte`n`n`n"); } //Zinsen if ($session[user][goldinbank]<0 && abs($session[user][goldinbank])<(int)getsetting("maxinbank",10000)){ output("`2Heutiger Zinssatz: `^".(($interestrate-1)*100)."% `n");[/php] Mal als Übersicht, wo genau ich das hin gepackt hab... |
Autor: | -DoM [ Di 25 Dez, 2007 20:55 ] |
Betreff des Beitrags: | |
Dann setze den Codeschnipsel mal weiter nach hinten. Am neuen Tag werden doch die hitpoints wieder hergestellt.... |
Autor: | Calamita [ Mi 26 Dez, 2007 13:11 ] |
Betreff des Beitrags: | |
Argh.. Kann mich mal wer erschlagen ![]() So sollte es dann ja gehen.. Vielen Dank |
Autor: | Calamita [ Mi 26 Dez, 2007 19:12 ] |
Betreff des Beitrags: | |
Sry für den Doppelpost.. Aber hab da noch ne Frage zu meinem Brunnen-Dings. Wie mach ich das dann, dass in nem Text dann angezeigt wird, wieviel man selbst schon insgesamt reingeworfen hat und wieviel insgesamt chon drin liegt? Felder in der DB hab ich dafür, aber weiß nicht, wie ich da eiter machen muss.. |
Autor: | MySql [ Mi 26 Dez, 2007 19:28 ] |
Betreff des Beitrags: | |
Oehmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm Was genau? Sollen die gesammten Schlüssel angezeigt werden die im Brunnen liegen? [php]savesetting("brunnen_schluessel",(string)(getsetting("brunnen_schluessel",0)+ (1)));[/php] Wären dan zum Abspeichern [ des Schlüssels ]^^ [php]$session['user']['brunnen_schluessel']++;[/php] Speichert die Anzahl ab^^ $this->bbcode_second_pass_code('', 'ALTER TABLE accounts ADD brunnen_schluessel INT(11) NOT NULL default 0;') Nicht vergessen! ![]() Nun wollen wir die Sachen ncoh anzeigen lassen... Das geht so: [php] $schluessel = getsetting("brunnen_schluessel",0); output('`2Es liegen '.$schluessel.' Schlüssel im Brunnen');[/php] Damit werden alle Schlüssel [ sofern welche vorhanen ] angezeigt. [php]output('`2Davon hast du '.$session['user']['brunnen_schluessel'].' hinein geworfen.');[/php] ![]() My. |
Autor: | -DoM [ Do 27 Dez, 2007 10:05 ] |
Betreff des Beitrags: | |
@MySQL: Lese doch einfach mal den Thread bevor du etwas schreibst.... @Calamita: [php]output('Du hast bereits '.$session['user']['brunnenwerf'].($session['user']['brunnenwerf']==1?' Goldstück':' Goldstücke').' in den Brunnen geworfen.');[/php] Oder Irgendein anderer Text, der für dich passen würde... |
Autor: | MySql [ Do 27 Dez, 2007 11:53 ] |
Betreff des Beitrags: | |
Ich verweiße auf ihren letzten Post. Dort sagt sie, das sie auch eine Abfrage für ALLE Schlüssel die im Brunnen liegen haben will! ^^ |
Autor: | -DoM [ Do 27 Dez, 2007 15:22 ] |
Betreff des Beitrags: | |
Calamita hat geschrieben: Sry für den Doppelpost..
Aber hab da noch ne Frage zu meinem Brunnen-Dings. Wie mach ich das dann, dass in nem Text dann angezeigt wird, wieviel man selbst schon insgesamt reingeworfen hat und wieviel insgesamt chon drin liegt? Felder in der DB hab ich dafür, aber weiß nicht, wie ich da eiter machen muss.. Ich lese hier nichts von Schlüsseln, sondern nur eine Nachfrage zu ihrem ersten Problem... Lese doch einfach... (Das schwarze sind die Buchstaben ![]() Und was ich noch vergessen habe für den kompletten Betrag, der im Brunnen liegt: [php]$sql = 'SELECT `brunnenwerf` FROM `accounts` WHERE `brunnenwerf` > 0'; $result = db_query($sql); $rows = db_num_rows($result); $gesamt_gold = 0; for ($i = 0; $i < $rows; $i ++){ $row = db_fetch_assoc($result); $gesamt_gold += $row['brunnenwerf']; } db_free_result($result); output('Es liegen insgesamt '.$gesamt_gold.' Gold im Brunnen.'); [/php] |
Autor: | MySql [ Do 27 Dez, 2007 16:11 ] |
Betreff des Beitrags: | |
Zitat: wieviel man selbst schon insgesamt reingeworfen hat und wieviel insgesamt chon drin liegt
tut mir leid, dann bin ich wohl ein Analphabet! Das dicke ist von bedeutung.. (fängt bei dem und an und hört bei dem liegt auf ![]() |
Autor: | -DoM [ Do 27 Dez, 2007 17:10 ] |
Betreff des Beitrags: | |
Ja, bist du... Denn ich lese nicht das Wort "Schlüssel", sondern (in Bezug nehmend des Threads) Gold. Dummbatz, du.... *sfg* |
Autor: | Calamita [ Do 27 Dez, 2007 17:26 ] |
Betreff des Beitrags: | |
@MySql Die Schlüssel haben sich auf das Privatzimmer bezogen. In den Brunnen wollte ich Gold reinwerfen ![]() @DoM Danke, werd ich mal ausprobieren.. Edit: Hab da noch ein Problem: Wenn ich einen Betrag eingebe, dann nimmt dein mein ganzes Gold und wirft es da rein. (Den Code hab ich auch nur von jmd übernommen, den ich aber gra nicht fragen kann) Nämlich: [php]case "throwgoldfinish": $sql = "SELECT goldbrunnen,geworfen FROM accounts"; $verschwendet = abs((int)$_POST['geworfen"]); if ($verschwendet==0){ $verschwendet=$session['user']['gold']; }[/php] Hat es was damit zu tun? |
Autor: | MySql [ Do 27 Dez, 2007 18:09 ] |
Betreff des Beitrags: | |
eig. dürfte der teil gar nicht funktionieren ![]() [php]case "throwgoldfinish": $sql = "SELECT goldbrunnen,geworfen FROM accounts"; $verschwendet = abs((int)$_POST['geworfen"]); if ($verschwendet==0){ $verschwendet=$session['user']['gold]; } [/php] [php]$verschwendet = abs((int)$_POST['geworfen"]); [/php] sollte wohl so lauten: [php]$verschwendet = abs((int)$_POST['geworfen']);[/php] und [php] $verschwendet=$session['user']['gold]; [/php] wohl so: [php]$verschwendet=$session['user']['gold'];[/php] Zu deiner frage. Wenn "$verschwendet" gleich "0" ist wird er Spieler zu einer If abfrage gebracht die ihm als sein Gold nimmt. Dies ist diese: [php]if ($verschwendet==0){ $verschwendet=$session['user']['gold']; } [/php] ... Dom? Sry ![]() |
Autor: | Calamita [ Do 27 Dez, 2007 22:15 ] |
Betreff des Beitrags: | |
Argh, verdammt >< Ich musste den Code abtippen (bin nicht an meinem PC) und da sind mir wohl in aller Eile diese Tippfehler unterlaufen. Aber der Code sieht bei mir so aus.. Ich weiß, dass man da zu ner if-Abfrage weiter geleitet wird, die hab ich ja auch. Aber auch WENN ich einen Betrag eingebe, der größer als 0 ist, wirft der mein gesamtes Gold darein.. [php]case "throwgoldfinish": $sql = "SELECT goldbrunnen,geworfen FROM accounts"; $verschwendet = abs((int)$_POST['geworfen']); if($verschwendet==0){ $verschwendet=$session['user']['gold']; } //Zu wenig Gold if($verschwendet>$session['user']['gold']){ output("`\$Fehler: So viele Goldstücke besitzt du nicht.`n`n"); //Kein Gold }elseif($session['user']['gold']<1){ output("`\$Fehler: Du besitzt keine Goldstücke. `n`n"); }else{[/php] Und hier kommt der Teil, der funktioniert.. |
Autor: | MySql [ Do 27 Dez, 2007 22:26 ] |
Betreff des Beitrags: | |
[php] if($verschwendet==0){ $verschwendet=$session['user']['gold']; } [/php] Warum auch immer? Des weiteren: Poste bitte den kommpleten code. Daher man damit nicht wirklich viel anfangen kann. [ Es sind nur abfrage und ob er gold hat oder nicht ] Es wird kein Gold bis auf [php] if($verschwendet==0){ $verschwendet=$session['user']['gold']; } [/php] verschwendet. |
Autor: | Calamita [ Fr 28 Dez, 2007 14:50 ] |
Betreff des Beitrags: | |
Hm.. Das mit dem Code könnte viel arbeit werden das abzutippen^^ Ich lads morgen dann mal hoch ![]() |
Autor: | MySql [ Fr 28 Dez, 2007 21:15 ] |
Betreff des Beitrags: | |
Wie wärs mit Kopieren?^^ Mindestens aus der Source. |
Seite 1 von 2 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |