[BETA] EURO 2008 Webtipp

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
buegelfalte
Mitglied
Beiträge: 759
Registriert: 16.02.2005 14:32
Wohnort: Köln
Kontaktdaten:

Beitrag von buegelfalte »

helluvaguy hat geschrieben:Soll da bei den Sprachvariablen nicht besser Europameister-Tipps und Europameister 2008 stehen?
Das wäre nicht schlecht, da habe ich wohl bei der Umstellung von der WM noch was übersehen ;)
Dürfte aber eh egal sein, da im allerersten Paket des EM-MODs schon die richtigen Texte drin waren, neu installieren wird "EMWinnerStat" also niemand.
helluvaguy hat geschrieben:Nach dem Wechsel von Version 0.4 auf 0.5 bekomme ich aber eine Fehlermeldung
Dann hast du nicht die aktuelle functions_em.php, es gilt derselbe Hinweis wie oben bei der EMTJStat:
http://www.beehave.de/forum/viewtopic.php?p=16431#16431


Ich mach von beiden Archiven nochmal ein Update, bei der EMTJStat wollte ich die Länder auch noch verlinken.


EDIT 14:55:
beide Archive neu hochgespielt (keine neue Version)
- EMWinnerStat: Text geändert (auch wenn irrelevant)
- EMTJStat: Länderlinks hinzugefügt
http://www.beehave.de - home of humbug - und zocken !
[kein Support per PN]
Benutzeravatar
buegelfalte
Mitglied
Beiträge: 759
Registriert: 16.02.2005 14:32
Wohnort: Köln
Kontaktdaten:

Beitrag von buegelfalte »

[anderes Thema, neuer Post]
wwwthomasbauerattf hat geschrieben:von einem spiel das 4 tage schon vorbei war, wo ein mitspieler einen zusatpunkt bekam, war auf einmal der punkt weg. erst als ich das ergebnis noch mal aktualisert war, hat er wieder den punkt dazu bekommen...
Ich stelle jetzt mal eine Vermutung an, warum das so ist (ohne daß ich den Code selbst geschrieben habe, aber ich hab jetzt ein paar Stunden draufgestarrt):

Der Aufruf der calculate_user_points($userdata['user_id']); ist schuld !

Ich hatte weiter oben (bei meinem ersten Bugfix für das Ding) schonmal gefragt, warum das überhaupt da drinsteht ...

Und zwar läuft das offensichtlich so (man möge mich korrigieren):
Schickt ein User seine Tipps ab, wird zunächst die clear_tipps aufgerufen, die löscht aber nur Tipps von Spielen in der Zukunft (tipp_time > $current_time), danach läuft eine Schleife über die ganzen Tipps und speichert (per save_tipp) die Tipps wieder ab, die in der Zukunft liegen (wieder $tipp_time > $current_time).

Darüber, daß die Spielzeit in den Tipps nochmal geführt wird, wenn die in den Spielen schon steht, mag man streiten (ich dachte zuerst, das sei die Zeit, an der der Tipp abgegeben wurde und wollte schon eine "kurzfristigster Tipp"-Statistik bauen ;) ), aber - nochmal - warum müssen die Benutzerpunkte neu berechnet werden, wenn jemand seinen Tipp ändert ??
Es werden nur Tipps gelöscht, die noch kein Ergebnis (und damit auch keine Punkte) haben, deswegen müssen die dafür auch nicht neu berechnet werden, das passiert automatisch, wenn das Ergebnis eingetragen wird !

Die Punkteberechnung erfolgt momentan an dieser Stelle nur für den aktuellen User, aber ist - wie dargelegt - überflüssig.
(Da greift schon mein 1. Bugfix für dieses Feature, da natürlich bei EINEM User dieser immer derjenige ist, der als einziges ein Ergebnis hat.)

Wenn mir da jetzt niemand widerspricht, schafft folgendes Abhilfe:

em_round1.php UND em_finals.php

finden

Code: Alles auswählen

calculate_user_points($userdata['user_id']);
ersetzen mit

Code: Alles auswählen

//calculate_user_points($userdata['user_id']);
(oder die Zeile einfach löschen)
http://www.beehave.de - home of humbug - und zocken !
[kein Support per PN]
aliassimba
Mitglied
Beiträge: 21
Registriert: 28.03.2006 13:19
Wohnort: Halle

Beitrag von aliassimba »

Ich möchte an dieser Stelle nochmals die "olle" Bügelfalte loben.

Nachdem jetzt tausende gesucht und keiner gefunden hat, aber das Problem anscheinend bei vielen (wissentlich oder nicht) bestand, hat er endlich die Lösung gefunden...

THX @ Bügelfalte. Endlich können User Tips ändern ohne das danach die Sonderpunkte verloren gehen...
:grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin:

Achso, was ich damit sagen will... Jetzt Funzt Es....
Benutzeravatar
bacci
Mitglied
Beiträge: 84
Registriert: 24.03.2007 11:02
Wohnort: Hennigsdorf
Kontaktdaten:

THX Bügelfalte

Beitrag von bacci »

aliassimba hat geschrieben:Ich möchte an dieser Stelle nochmals die "olle" Bügelfalte loben.

Nachdem jetzt tausende gesucht und keiner gefunden hat, aber das Problem anscheinend bei vielen (wissentlich oder nicht) bestand, hat er endlich die Lösung gefunden...

THX @ Bügelfalte. Endlich können User Tips ändern ohne das danach die Sonderpunkte verloren gehen...
:grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin:

Achso, was ich damit sagen will... Jetzt Funzt Es....
Dem muss und möchte ich mich vollkommen Anschließen !!!

DANKE Bügelfalte !!!
Wenn Du denkst du hast ihn drinne ...
http://formel1.ofcomputer.de F1 WebTip
Benutzeravatar
buegelfalte
Mitglied
Beiträge: 759
Registriert: 16.02.2005 14:32
Wohnort: Köln
Kontaktdaten:

Beitrag von buegelfalte »

Yeah, Mädels, das geht runter wie Öl ;)

Krieg ich n Pokal, wenn ich das Torschützen-Problem auch noch in den Griff kriege ? :grin:
Da ist nämlich auf jeden Fall der Wurm drin:

Code: Alles auswählen

SELECT userid from phpbb_em_torschuetzen_user u inner join phpbb_em_torschuetzen t on t.spielerid = u.spielerid where userid = (select tipp_user from phpbb_em_tipps where tipp_id = " . $em_tipps[$current_game_id][$u]['tipp_id'] . ") and tore = (Select max(tore) from phpbb_em_torschuetzen)
1. wird nach "max(tore)" selektiert, derjenige mit den meisten Toren ist also automatisch der Torschützenkönig (ob ers wirklich ist oder nicht)
2. hat der Query wieder verschachtelte SELECTs, die Leute, deren SQL das nicht kann, sind also wieder angeschmiert


Folgenden Hack kann ich anbieten (nicht komplett durchgetestet, die EM läuft ja noch und ich habe momentan kein separates Testsystem !):

erstmal eine Änderung an der Datenbank ("phpbb_em_torschuetzen" anpassen, falls man ein anderes Prefix nimmt):

Code: Alles auswählen

ALTER TABLE `phpbb_em_torschuetzen` ADD `isking` TINYINT NOT NULL DEFAULT '0';
(die Spalte "berechnet" in der phpbb_em_torschuetzen_user wird übrigens nirgendwo benutzt !?)

dann: öffnen

includes/functions_em.php

finden

Code: Alles auswählen

				//Torjäger
				$torjaegerpoints = 0;
				$sql = "SELECT userid from phpbb_em_torschuetzen_user u inner join phpbb_em_torschuetzen t on t.spielerid = u.spielerid where userid = (select tipp_user from phpbb_em_tipps where tipp_id = " . $em_tipps[$current_game_id][$u]['tipp_id'] . ") and tore = (Select max(tore) from phpbb_em_torschuetzen)";
				if( !$result = $db->sql_query($sql) )
				message_die(GENERAL_ERROR, $lang['tipp_Sql_Error'], $lang['Error'], __LINE__, __FILE__, $sql);
				while($row = $db->sql_fetchrow($result))
				{
					$torjaegerpoints = $row['userid'];
				}
				if ($torjaegerpoints > 0) {
					$tipp_new_points = $tipp_new_points + $em_config['points_winnerscorer'];
				}
ersetzen mit

Code: Alles auswählen

				//Torjäger
				$sql = "SELECT userid
						FROM " . EM_TJAEGERTIPPS_TABLE . " u, " . EM_TJAEGER_TABLE . " t, " . EM_TIPPS_TABLE . " v
						WHERE u.spielerid = t.spielerid AND
								u.userid = v.tipp_user AND
								v.tipp_id = " . $em_tipps[$current_game_id][$u]['tipp_id'] . " AND
								t.isking = 1";
				if( !$result = $db->sql_query($sql) )
				{
					message_die(GENERAL_ERROR, $lang['tipp_Sql_Error'], $lang['Error'], __LINE__, __FILE__, $sql);
				}
				if ($db->sql_numrows($result) > 0)
				{
					$tipp_new_points = $tipp_new_points + $em_config['points_winnerscorer'];
				}
Der Query verzichtet jetzt auf Subselects, das läuft also schonmal überall.

Ansonsten ist etwas Handarbeit angesagt: durch die DB-Änderung erhält die Tabelle em_torschuetzen eine neue Spalte ("isking"), die man - momentan MANUELL (also per phpMyAdmin !) - auf "1" setzen muß, wenn der Torschützenkönig feststeht, spätestens vor Eintrag des Final-Ergebnisses.
Das Flag wird im Query mit abgefragt, es zählt jetzt also nicht mehr die höchste Torzahl !
(wurde der Torschützenkönig von niemandem getippt, bleibt die Spalte halt bei allen Spielern auf "0", dann bekommt auch keiner die Extra-Punkte)

Damit ist schonmal verhindert, daß Punkte vergeben werden, nur weil bei einem Spieler die meisten Tore eingetragen wurde, ohne daß dieser Torschützenkönig ist.

HINWEIS: im o.a. Query habe ich die Datenbanknamen aus der config.php gezogen (da stand vorher im Klartext "phpbb-" drin !), die config.php sollte also mit allen Tabellen auf dem neusten Stand sein !


TODO: die admin/em_config.php so abändern, daß man eine zusätzliche Checkbox bei den Torjägern hat, mit der man den König setzen kann (dann muß man nicht in der Datenbank rumhampeln).
Daran kann sich aber gerne auch mal jemand anderes versuchen ;)

B.
http://www.beehave.de - home of humbug - und zocken !
[kein Support per PN]
Benutzeravatar
bacci
Mitglied
Beiträge: 84
Registriert: 24.03.2007 11:02
Wohnort: Hennigsdorf
Kontaktdaten:

Problem Torschützenkönig

Beitrag von bacci »

Bügelfalte hat geschrieben:Krieg ich n Pokal, wenn ich das Torschützen-Problem auch noch in den Griff kriege ?
Na klar :lol: ;-)

[ externes Bild ]

Dieser Pokal ist für die Superarbeit beim WM2008 Mod. upps ... EM 2008 natürlich, hab ja recht :lol: :lol:

und wird hiermit an Bügelfalte verliehen. :lol: :lol:
Zuletzt geändert von bacci am 17.06.2008 10:36, insgesamt 2-mal geändert.
Wenn Du denkst du hast ihn drinne ...
http://formel1.ofcomputer.de F1 WebTip
Kuschel19
Mitglied
Beiträge: 331
Registriert: 30.06.2007 23:34

Beitrag von Kuschel19 »

bacci wenn schon dann richtig ^^

Code: Alles auswählen

 Dieser Pokal ist für die Superarbeit beim WM2008 Mod. 
EM2008 ^^

Meine Frage ^^ ich hatte sie schonmal gestellt ^^

1. Wieso sind 2 stats_body.tpl vorhanden? Ist eine nicht zuviel?

und

2. Was habe ich bei den Änderung falsch das bei den Finals nicht die Bilder ard sowie zdf angezeigt werden?

MfG
fluidman
Mitglied
Beiträge: 98
Registriert: 19.04.2005 10:26
Wohnort: Radolfzell am Bodensee

Beitrag von fluidman »

Kuschel19 hat geschrieben:2. Was habe ich bei den Änderung falsch das bei den Finals nicht die Bilder ard sowie zdf angezeigt werden?
gar nichts... die links waren noch nicht bekannt.. die tage kommt das update raus und dann werden auch dort die links angezeigt..
Kuschel19
Mitglied
Beiträge: 331
Registriert: 30.06.2007 23:34

Beitrag von Kuschel19 »

achso ok dann bin ich mal beruhigt, Danke für die Antwort :-)
Benutzeravatar
buegelfalte
Mitglied
Beiträge: 759
Registriert: 16.02.2005 14:32
Wohnort: Köln
Kontaktdaten:

Re: Problem Torschützenkönig

Beitrag von buegelfalte »

bacci hat geschrieben:Dieser Pokal ist für die Superarbeit beim WM2008 Mod.
Danke :D :D

Direkt noch ein Fix:

em_showtipps.php

Code: Alles auswählen

if ($int_gameid > 48)
{
	$str_winner = ($int_gameid == 63) ? 'final_loser' : 'final_winner';
	$row_match['game_home'] = ($int_gameid > 56) ? $results_data[$row_match['game_home']][$str_winner] : $em_config[$row_match['game_home']];
	$row_match['game_away'] = ($int_gameid > 56) ? $results_data[$row_match['game_away']][$str_winner] : $em_config[$row_match['game_away']];
}
ersetzen mit

Code: Alles auswählen

if ($int_gameid > 56)
{
	$str_winner = ($int_gameid == 64) ? 'final_loser' : 'final_winner';
	$row_match['game_home'] = ($int_gameid > 61) ? $results_data[$row_match['game_home']][$str_winner] : $em_config[$row_match['game_home']];
	$row_match['game_away'] = ($int_gameid > 61) ? $results_data[$row_match['game_away']][$str_winner] : $em_config[$row_match['game_away']];
}
Das war noch auf WM gemünzt, bei den Finalspielen fehlten Flagge und Teamname (momentan eh nur für den Admin sichtbar).
Ich hoffe, daß das auch ab Spiel 61 (Halbfinale) paßt, die Datenverteilung in der Datenbank ist da etwas kryptisch. Ansonsten muß da nochmal kurz nachkorrigiert werden, aber für die Viertelfinalspiele gehts erstmal so.
http://www.beehave.de - home of humbug - und zocken !
[kein Support per PN]
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“