anpera.net https://anpera.dyndns.org/phpbb3/ |
|
RP Punkte https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=3370 |
Seite 1 von 1 |
Autor: | Thamorra [ So 11 Feb, 2007 17:19 ] |
Betreff des Beitrags: | RP Punkte |
Halloechen, ich habe ein Problem, wenn ich einem Charakter pro Post zB 5 Dp's geben will, ich bin ein totaler Noob in solchem PHP Kram und hab mir deswegen helfen lassen $this->bbcode_second_pass_code('', 'output("Postcount: ".$session[user][postcount]); if($session[user][postcount]>1){ $session[user][postcount]=0; $session[user][donation]+=5; } else { $session[user][postcount]+=1; } ') das habe ich in der common.php am Ende eingefügt, es wurden auch Punkte gegeben... nur leider für JEDEN Klick, den ich gemacht habe, nicht nur fürs posten... Da kam dann auch meine Hilfe nicht weiter *fg* zudem hätte ichs gern, wenn die RP Punkte in der Vitalinfo angezeigt werden würden, die Punkte insgesamt und die, die noch übrig sind (wenn man welche ausgegeben hat) Nutze die hier downloadbare 097 ger Version von Lotgd Kann mir da vielleicht jemand helfen? MFG Thamorra |
Autor: | Kamui [ So 11 Feb, 2007 19:07 ] |
Betreff des Beitrags: | |
suche in der common.php in der function addcommentary(); [php] db_query($sql) or die(db_error(LINK)); return true; } else { $doublepost = 1; } } return false; } [/php] und füge dein Code DAVOR ein dann bekommt der Spieler wenn er ein Kommentar absendet seine DP's ![]() Und zum zweiten: suche in der function charstats(); [php] .templatereplace("statrow",array("title"=>"Erfahrung","value"=>expbar())) [/php] und füge danach ein: [php] .templatereplace("statrow",array("title"=>"DP-Punkte insgesamt","value"=>$u['donation'])) .templatereplace("statrow",array("title"=>"Übrige DP-Punkte","value"=>$u['donation']-$u['donationspent'])) [/php] Und schon werden auch die bisher gesammelten und die überigen DP's angezeigt ![]() |
Autor: | Thamorra [ Mo 12 Feb, 2007 11:05 ] |
Betreff des Beitrags: | |
Ui dankeschön, funktioniert super ![]() |
Autor: | Tíra [ Di 29 Mai, 2007 21:29 ] |
Betreff des Beitrags: | |
huhu...ich mal wieder *stirn runzeln und langsam doof fühle weil ich immer die alten Themen auspacke* ^^ hoffe ihr hattet schöne Pfingsten... Ähm... also folgendes ihr Lieben, mir ist aufgefallen das die lieben User bei mir anfangen RP Punkte zusammen zuspammen um OOC.Gibt es dafür eine Sperre? Oder noch besser...mmh ein Befehl (ich habe den hier schon gefunden allerdings weiss ich nicht wo ich ihn einbauen soll), damit man erst nach zum Beispiel 100 Zeichen einen RP Punkt bekommt? Wäre super wenn man mir Noobmaus das nochmal erklären könnte ^^ Ich danke im Vorraus ![]() http://www.valandor.de/source.php |
Autor: | Kamui [ Di 29 Mai, 2007 22:02 ] |
Betreff des Beitrags: | |
Einen schönen Abend die Dame... Suche mal in deiner common.php (function addcommentary) [php] if ($session[user][beta]==1) $session[user][donation]+=1; [/php] und ersetze es durch: [php] $nopoints_sections = array('ooc'=>true); if (!$nopoints_sections[''.$section.''] && $session['user']['beta']) { $session['user']['donation']++; } [/php] Den array kannst du beliebig erweitern und alle Sectionen eintragen wo man keine Punkte fürs posten bekommen soll ![]() Noch einen schönen Abend wünsche ich... |
Autor: | Tíra [ Mi 30 Mai, 2007 11:53 ] |
Betreff des Beitrags: | |
super Kamui, ich danke dir (vorbei mit dem blöden ooc gespamme und punkte gehamster) ![]() daaaaaaaaanke ![]() |
Autor: | december [ So 03 Jun, 2007 10:30 ] |
Betreff des Beitrags: | |
Das finde ich super, mit dem keine RP-Punkte im OCC-Raum bekommen. Da hatte ich gar nicht dran gedacht. Hab jetzt mal das eingebaut was Kamui hier gepostet hat und es läuft auch super. Meine Frage jetzt an die Profis hier, wie kann ich es schaffen, dass man wirklich erst ab 100 Zeichen die (bei mir) fünf RP-Points bekommt? Ich habe User die schreiben dann drei Worte und bekommen ihre Punkte. Weiter wäre es gut zu wissen wie man das gestalltet, dass RP-Points abgezogen werden, wenn Posts gelöscht werden. Ich habe die RPG-Orte bei mir und da kann der Ersteller des Ortes in seinem Ort Posts löschen. Da liegt es ja für einige User nahe dort ein bisschen Müll zu schreiben und den wieder zu löschen, um an die Punkte zu kommen. Ich weiß jetzt nicht wie sich das mit dem automatischen Löschen (bei mir) nach sieben Realdays verhält. Wenn jemand was geschrieben hat, löscht der Server nach sieben Tagen automatisch die Posts. In diesem Fall sollten natürlich keine RP-Punkte abgezogen werden. Nur wenn man eben an den RPG-Orten selbst etwas löscht oder Posts vom Admin gelöscht werden. Ich bedanke mich jetzt schon einmal für die Aufmerksamkeit und hoffentliche Hilfe. Source ist wie immer offen und einsehbar. Source: http://www.saturuusu-logd.de/source.php December |
Autor: | Naria [ So 03 Jun, 2007 13:55 ] |
Betreff des Beitrags: | |
Das [php] if (!$nopoints_sections[''.$section.'']) { $session['user']['rppoints']+=5; } $session[user][posts]++; //post-counter return true; } else { $doublepost = 1; } } return false; }[/php] durch das ersetzen (hoffe ich mal... bin mir nicht ganz sicher, ob man das strlen einfach so reinbauen kann oO) [php] if (!$nopoints_sections[''.$section.''] && strlen($commentary)>=100) { $session['user']['rppoints']+=5; } $session[user][posts]++; //post-counter return true; } else { $doublepost = 1; } } return false; }[/php] €dit: Alles in der common.php zu finden in der addcommentary Funktion. Lieber ganz genau, bevor jemand nachher tausend mal nachfragt ![]() |
Autor: | december [ So 03 Jun, 2007 14:38 ] |
Betreff des Beitrags: | |
Danke für die Hilfe, jetzt klappt alles wunderbar. Und auch ein Danke für das "ganz genau", das sollte man bei mir immer angeben, da ich mich wirklich nicht sonderlich auskenne. Noch mal riesen Dank für die schnelle Hilfe. |
Autor: | Naria [ So 03 Jun, 2007 14:40 ] |
Betreff des Beitrags: | |
Kein Problem... das 'ganz genau' ist weniger wegen dir, sondern wegen ein paar anderen Leute dazu gekommen ^^ |
Autor: | december [ So 03 Jun, 2007 14:49 ] |
Betreff des Beitrags: | |
Das mit dem "ganz genau" hat aber bei mir so richtig schön reingepasst. Jetzt fehlt mir für den perfekten Abschluss der Woche nur noch die Auslagerung der RPG-Orte und schon kann ich beruhigt schlafen gehen. So, jetzt hör ich aber mal auf das Forum hier zuzuspammen, bevor ich noch Ärger bekomme. Noch mal danke für die schnelle Hilfe. December |
Autor: | Anduriell [ Di 12 Jun, 2007 19:28 ] |
Betreff des Beitrags: | |
So, ich habe nun noch ein Problem. Ich habe die Punktevergabe etwas erweitert: $this->bbcode_second_pass_code('', '$nopoints_sections = array('ooc'=>true,'shade'=>true); if (!$nopoints_sections[''.$section.''] && $session['user']['beta'] && strlen($commentary)<=100) { $session['user']['donation']++; } elseif (!$nopoints_sections[''.$section.''] && $session['user']['beta'] && strlen($commentary)<=500) { $session['user']['donation']+=3; } elseif (!$nopoints_sections[''.$section.''] && $session['user']['beta'] && strlen($commentary)<=1000) { $session['user']['donation']+=5; }') und will diese aber auch wieder abziehen, wenn man den letzten Post löscht. Hab dann das gleich wieder in die chat_delete.php eingefügt und abgeändert. Doch wird immer nur ein Punkt abgezogen, obwohl ich vorher 3 Punkte bekommen habe. Ich denke es liegt daran, das strlen($commentary) die Wörter des Textes nicht zählen kann. Würde mich über eine schnelle Antwort freuen, da ich schon die Funktion am Laufen habe. Frage hat sich erledigt. Sorry, aber falsch gesucht. Mit freundlichen Grüßen Nomegz (Anduriell) |
Autor: | Tíra [ Mi 21 Okt, 2009 11:01 ] |
Betreff des Beitrags: | Re: RP Punkte |
So ich krame das alte Thema auch mal wieder aus. Ich habe einige Themen über die Punktevergabe der Post´s gelesen doch bin aus keinem wirklich schlau geworden (bei mir ja nicht weiter verwunderlich) ![]() Dann habe ich angefangen mir selbst was zu basteln aufgrund den verschiedenen Forumpost´s zu diesem Thema. Unzwar möchte ich gerne pro 100 Zeichen einen Punkt vergeben. Nun habe ich das so gebastelt: $nopoints_sections = array('ooc'=>true,'superuser'=>true); if (!$nopoints_sections[''.$section.''] && $session['user']['beta'] && strlen($commentary)<=100) { $session['user']['donation']+=1; }elseif($length <= 200){ $session['user']['donation']+=2; }elseif($length <= 300){ $session['user']['donation']+=3; }elseif($length <= 400){ $session['user']['donation']+=4; }elseif($length <= 500){ $session['user']['donation']+=5; }elseif($length <= 600){ $session['user']['donation']+=6; }elseif($length <= 700){ $session['user']['donation']+=7; }elseif($length <= 800){ $session['user']['donation']+=2; }elseif($length <= 900){ $session['user']['donation']+=3; }elseif($length <= 1000){ $session['user']['donation']+=4; }elseif($length <= 1100){ $session['user']['donation']+=5; }elseif($length <= 1200){ $session['user']['donation']+=6; }elseif($length <= 1300){ $session['user']['donation']+=7; } return true; } else { $doublepost = 1; } } return false; } aber nun bekommt man bei jedem Post,egal wie lang er ist,2 Punkte ^^ Ich bin nun schon knapp zwei stunden dabei das irgendwie hinzubekommen und verzweifel einfach. Kann mir da jemand helfen?Wäre echt super! Lg Tira |
Autor: | Eliwood [ Mi 21 Okt, 2009 17:20 ] |
Betreff des Beitrags: | Re: RP Punkte |
Pro 100 Zeichen einen Punkt? Warum so kompliziert? Für so etwas gibt es einfache Mathematik: Zitat: $points = floor($length/100); floor() rundet dabei ab. |
Autor: | Linus [ Mi 21 Okt, 2009 22:34 ] |
Betreff des Beitrags: | Re: RP Punkte |
*nick* Gebe Eli da voll recht. Werf das ganze if-elseif-Konstrukt in die Tonne und versuchs mal damit: $this->bbcode_second_pass_code('', '$nopoints_sections = array('ooc','superuser'); if (!in_array($section,$nopoints_sections)) { $session['user']['donation']+=floor($length/100); }') Abgesehen davon das deine ganze Abfragerei nur Sinn machen würde wenn du auf größer oder gleich (>=) anstatt kleiner gleich (<=) testen würdent! ![]() |
Autor: | Tíra [ Do 22 Okt, 2009 09:45 ] |
Betreff des Beitrags: | Re: RP Punkte |
*gg* dürfte nicht mittlerweile bekannt sein das ich n noob bin? ![]() dafür gibt es zum glück ja so schlaue leute wie euch die mir da freundlicherweise weiterhelfen und so wird man selbst immer ein stück schlauer. ich werde es so bauen und bedanke mich vorweg schon mal herzlichst bei euch. @Linus-bist doch der admin aus alvion....dann kannste mir sicher auch sagen wie ich das mache das der mir dann auch nach meinem post in klammern die punkte anzeigt hmm?schöner server übrigens ![]() bin da nun schon knapp ein jahr am playn POSTPOSTPOSTPOST....[12] zum beispiel ![]() liebe grüße Tira |
Autor: | Linus [ Do 22 Okt, 2009 17:59 ] |
Betreff des Beitrags: | Re: RP Punkte |
Das mit der Punkteanzeige ist recht schnell und einfach lösbar. Damit nicht bei jedem aktualisieren die Punkte und somit Postlänge neu berechnet werden muss trage ich sie in der Funktion addcommentary() in die Datenbank ein. 1.) Also muss erst einmal die Tabelle commentary in der Datenbank erweitert werden: $this->bbcode_second_pass_code('', 'ALTER TABLE `commentary` ADD `punkte` tinyint(3) unsigned NOT NULL DEFAULT '0';') Das reicht aus für bis zu 255 Punkte, also Postlängen bis zu 100*255 Zeichen. Solltest du in deinem Projekt Postlängen größer als 25500 Zeichen zulassen (ich mags kaum glauben - denn so lange Posts mag doch niemand mehr lesen ![]() 2.) Muss dafür gesorgt werden dass die Punkte berechnet und in die DB eingetragen werden. Suche die Zeile: $this->bbcode_second_pass_code('', '$sql = "INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'$section',".$session['user']['acctid'].",\"$commentary\")";') und ändere sie in: $this->bbcode_second_pass_code('', ' $points=0; $nopoints_sections = array('ooc','superuser'); if (!in_array($section,$nopoints_sections)) { $points=floor(strlen($commentary)/100) $session['user']['donation']+=$points; } $sql = "INSERT INTO commentary (postdate,section,author,comment,punkte) VALUES (now(),'$section',".$session['user']['acctid'].",\"$commentary\",$points)";') 3.) Die Ausgabe der Punkte hinter den Kommentaren: Suche folgende Stelle: $this->bbcode_second_pass_code('', 'for ($i=0;$i < db_num_rows($result);$i++){ $row = db_fetch_assoc($result); $row[comment]=preg_replace("'[`][^".$appoencode_str."`]'","",$row[comment]); $commentids[$i] = $row[commentid];') und füge darunter ein: $this->bbcode_second_pass_code('', '$punkte="`& [`@".$row['punkte']."`&]";') Und nun kommt noch ein wenig Fleißarbeit: Du suchst alle Stellen die so beginnen: $this->bbcode_second_pass_code('', '$op[$i] = ') und änderst das abschließende $this->bbcode_second_pass_code('', '`0`n";') in: $this->bbcode_second_pass_code('', '$punkte `0`n";') Fertig! Ist nicht getestet, aber wenn sich kein Tippfehler eingeschlichen hat sollte es so funktionieren! ![]() Ahja ... und danke für das Lob! *sich mal gebauchpinselt fühlt* ![]() |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |