anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Mo 09 Jun, 2025 14:39

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: RP Punkte
BeitragVerfasst: So 11 Feb, 2007 17:19 
Offline
Newbie

Registriert: So 11 Feb, 2007 12:57
Beiträge: 6
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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 11 Feb, 2007 19:07 
Offline
Großmeister
Großmeister

Registriert: Fr 21 Jul, 2006 00:00
Beiträge: 416
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 ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 12 Feb, 2007 11:05 
Offline
Newbie

Registriert: So 11 Feb, 2007 12:57
Beiträge: 6
Ui dankeschön, funktioniert super :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 29 Mai, 2007 21:29 
Offline
Lehrling
Lehrling
Benutzeravatar

Registriert: Do 08 Mär, 2007 09:18
Beiträge: 47
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 :wink:

http://www.valandor.de/source.php

_________________
http://www.valandor.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 29 Mai, 2007 22:02 
Offline
Großmeister
Großmeister

Registriert: Fr 21 Jul, 2006 00:00
Beiträge: 416
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...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 30 Mai, 2007 11:53 
Offline
Lehrling
Lehrling
Benutzeravatar

Registriert: Do 08 Mär, 2007 09:18
Beiträge: 47
super Kamui, ich danke dir (vorbei mit dem blöden ooc gespamme und punkte gehamster) :)

daaaaaaaaanke :kiss:

_________________
http://www.valandor.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 03 Jun, 2007 10:30 
Offline
Profi
Profi

Registriert: So 03 Sep, 2006 13:55
Beiträge: 141
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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 03 Jun, 2007 13:55 
Offline
Held
Held
Benutzeravatar

Registriert: Mo 05 Mär, 2007 22:17
Beiträge: 270
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 :P


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 03 Jun, 2007 14:38 
Offline
Profi
Profi

Registriert: So 03 Sep, 2006 13:55
Beiträge: 141
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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 03 Jun, 2007 14:40 
Offline
Held
Held
Benutzeravatar

Registriert: Mo 05 Mär, 2007 22:17
Beiträge: 270
Kein Problem... das 'ganz genau' ist weniger wegen dir, sondern wegen ein paar anderen Leute dazu gekommen ^^


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 03 Jun, 2007 14:49 
Offline
Profi
Profi

Registriert: So 03 Sep, 2006 13:55
Beiträge: 141
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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 12 Jun, 2007 19:28 
Offline
Newbie

Registriert: Do 21 Dez, 2006 17:37
Beiträge: 4
Wohnort: Lauenhagen
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)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: RP Punkte
BeitragVerfasst: Mi 21 Okt, 2009 11:01 
Offline
Lehrling
Lehrling
Benutzeravatar

Registriert: Do 08 Mär, 2007 09:18
Beiträge: 47
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) :bash:
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

_________________
http://www.valandor.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: RP Punkte
BeitragVerfasst: Mi 21 Okt, 2009 17:20 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: RP Punkte
BeitragVerfasst: Mi 21 Okt, 2009 22:34 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 05 Feb, 2007 12:33
Beiträge: 375
Wohnort: Hattingen
Geschlecht: Männlich
LoGD: http://www.alvion-logd.de/logd/
*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! ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: RP Punkte
BeitragVerfasst: Do 22 Okt, 2009 09:45 
Offline
Lehrling
Lehrling
Benutzeravatar

Registriert: Do 08 Mär, 2007 09:18
Beiträge: 47
*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

_________________
http://www.valandor.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: RP Punkte
BeitragVerfasst: Do 22 Okt, 2009 17:59 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 05 Feb, 2007 12:33
Beiträge: 375
Wohnort: Hattingen
Geschlecht: Männlich
LoGD: http://www.alvion-logd.de/logd/
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 ;) ) machst du aus dem tinyint halt ein smallint!

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* :)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum