PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Slots nur in 1 Fenster



b3nny82
02.05.2008, 21:53
Hi Leute,

ich habe schon das Forum durchsucht aber leider nichts zu dem Thema gefunden.

Ich bin auf der Suche nach einer möglichkeit das ein User ein Game nur 1x auf haben kann, also ich möchte einfach verhindern das User x das Selbe Game in 10 Tabs am laufen hat.

Ist sowas möglich oder muss ich drauf hoffen das meine User sich dran halten?

Gruß b3nny

Xenon
02.05.2008, 22:04
Es ist unmöglich sowas zur kontrolieren aus dem grunde da man es so nicht einfahc erkennt aber du könntets sowas machen wie auf kg , das heißt , z.b. du kannst nur xx mal auf seite x zurgreifen in x minuten und wenn du es auf 60 stellt und 10 games am laufen hast je 10 ma abfargen pro minute so werden 100 abfragen ausgeführt was dazu führt das er die leute aussperrt für die minute und dann muss er alles von neu laden :thumb:



MFG
adi

b3nny82
02.05.2008, 22:49
jo so änlich hab mir das auch schon gedacht, für micht momentan nur das problem wie ich es umsetzte

Xenon
02.05.2008, 22:54
ich kann dir nicht den genaue php code geben da ich es nciht kann aber ich knnte einen denkansatz geben :
ip 127.0.0.1 wird aufgezeichnet und wie viele male es auf die seite zurgreift pro min (nicht db sondern seite) sollte er / sie den limit überschreiten wird er / sie von der seite abgetrennt und er muss dan die seite(n) neu laden damit es geht :thumb:

MFG
adi



PS: Frag mal gremlin er kennt sich sehr gut aus mit PHP

b3nny82
02.05.2008, 23:13
ah ok dann muss ich am besten schauen wieviel games zb in 1 min möglich sind und das dann als max eintragen und dann bei jedem aufruf der seite nen eintrag mit zeit machen und dann nur noch abfragen ob xx einträge mir der zeit jetzt - 1 min da sind und wenns mehr sind nen error ausgeben

Masterphil
03.05.2008, 01:43
eigentlich geht es ganz einfach, wenn auch nicht 100 % sicher, man ruft einfach alle Games in einem PopUp auf welches immer den gleichen Namen hat, will man ein anderes Game oder das gleiche nochmal öffnen reloadet dann immer das eine PupUp, was ich in einigen Test mal festgestellt habe.

MfG

FlexMax
03.05.2008, 11:07
Hmm, an soeine "sperre" hab ich auch schon gedacht, obwohl man solche User in den buchungen eh leicht erkennt anhand der zugriffe pro minute pro slot (einmal testen dann weiss man wieviele pro minute gehen [+/-1])
Das problem... man muss halt davor sitzen.

Ich denke mir aber das dies möglich ist. entweder per IP oder (session)UID...
Muss mir da mal was einfallen lassen.
Vielleicht kommt ja was gutes bei raus :D

Liebe Grüsse
Markus

nettilein
03.05.2008, 11:21
Dass wär schön, denn auch ich hätte Interesse dran und ich denke, einige andere Mitglieder auch noch.

Gremlin
03.05.2008, 17:20
Pseudocode:



// Letzten 10 Sekunden gespielt - je nach Spiel anders
$dauer = 10;
if ($_SESSION['spielname']['last_game'] > time()-$dauer)
{
spiel_abbrechen();

}else{

spielen();

// Zeit des letzten Spiels in Session schreiben
$_SESSION['spielname']['last_game'] = time();

}

Xenon
03.05.2008, 17:22
@Gremlin : Und das funkioniert ?

MFG
adi

Gremlin
03.05.2008, 17:32
Es ist ein Pseudocode er stellt also nur da wie das gemacht wird vom Prinzip her es muss natürlich bei jedem Spiel extra angepasst werden weil jedes SPiel anders ist, vom Prinzip her ist es aber logisch.

Bei jedem Spiel wird die Zeit vom Spiel gesetzt.
Vor jedem Spiel wird dann geprüft ob in den letzten XX Sekunden schon ein Spiel war, wenn dem so ist wird das Spiel nicht gestartet ansonsten wird gespielt und wieder Zeit gesetzt.

Die Zeit die ein Spiel braucht sollte man jedoch genau bedenken lieber ne Sekunde mehr als zu wenig :smile:

FlexMax
03.05.2008, 17:32
Klar, das sieht gut aus.

Wird das limit unterschritten bricht das spiel ab.
Musst halt für jedes Spiel eingestellt werden.

Danke@Gremlin

Liebe Grüsse
Markus

Xenon
03.05.2008, 18:31
aber man müsste passend zur
spiel_abbrechen();
und zur
spielen();eine funkion erstellen in der functions.lib.php


MFG
adi

Gremlin
03.05.2008, 22:05
@adi
Ich habe es pseudocode genannt, dabei handelt es sich nicht um eine Funktion soll nur bedeuten das bei spiel_abbrechen() z.B. dann ein die() oder so hinkommt mit Meldung. und bei spielen() halt der normale Spielcode.

jpwfour
03.05.2008, 23:19
eigentlich geht es ganz einfach, wenn auch nicht 100 % sicher, man ruft einfach alle Games in einem PopUp auf welches immer den gleichen Namen hat, will man ein anderes Game oder das gleiche nochmal öffnen reloadet dann immer das eine PupUp, was ich in einigen Test mal festgestellt habe.

MfG

die idee finde ich am besten, weil diese wohl mit weniger aufwand als die von grmlin daherkommt, nur setzt das vorraus, dass die user javascript aktiviert haben (was sie aber eiegntlich eh haben sollten...), ansonten öffnet sich da natürlich gar nichts und sie können nicht spielen.

nur wenn jemand wirklich durch das speilen in 2 fenstern oder noch mehr sich einen vorteil verschaffen will, dann kann er natürlich auch aus dem quelltext der seite sich die url holen und das spiel "manuell" in mehreren fenstern öffnen, dazu müsste dann noch in der seiet, wo das spiel eingebunden ist, eine abfrage stattfinden, ob es ein "überfenster/frame" gibt, ansonten abbruch bzw. weiterleitung zu einer anderen seite.

andererseits:
was ist so schlimm daran, wenn ein suer in mehreren fenstern spielt?
das einzige ist, was mir einfällt, dass die serverlast höher wird, aber da das wohl nur ganz wenige user machen, sollte es nicht groß ins gewicht fallen.

FlexMax
04.05.2008, 00:16
:
was ist so schlimm daran, wenn ein suer in mehreren fenstern spielt?
das einzige ist, was mir einfällt, dass die serverlast höher wird, aber da das wohl nur ganz wenige user machen, sollte es nicht groß ins gewicht fallen.

Fairness

jpwfour
04.05.2008, 00:33
Fairness

okay, das ist vielleicht auch ein argument, aber es könnten ja dann doch wieder alle in mehreren fenstern spielen :biggrin1:

nunja, mal abgesehen davon, um jetzt hier mal etwas OT zu betreiben, gibt es viele seiten, wo in den banner listen banner mit 0h reload auftauchen, dass halte ich auch nicht für sehr "fair" (siehe dazu auch: http://www.designerscripte.net/showthread.php?t=5379).
und es scheinen sich die wenigsten darum zu kümmern...

b3nny82
04.05.2008, 00:41
Mit dem Popup ist schon ne einfache lösung aber auch unsicher. Weil wie schon gesagt einfach die URL vom game genommen werden kann udn so mehrfach geöffnet werden.

Die sache mit dem spielen() spiel_abbrechen() ist schon ne ganz nette lösung nur wenn ich nun bedenke das pro spiel in der DB abgefragt werden muss wieviel Einträge vom User zu dem Game in dern letzten x Minuten vorhanden sind und auch nen neuer Eintrag gemacht werden muss, so belastet es 1. schon arg die DB und 2. wird die DB so schnell einiges an Einträge mehr haben.

Man kann nun zwar die Anzahl der DB einträge beschränken in dem bei jedem GAmeaufruf alle alten Einträge gelöscht werden, nur dann gibts noch ne DB abfrage mehr.

Ich bin am Überlegen ob ich nicht einfach bei jedem Game nen eintrag mache und dann im Admin einsehen kann welcher User mehr Einträge pro Min hat als erlaubt und ihn so verwarnen kann.

Das spart einiges an Abfragen.

gruß benny

jpwfour
04.05.2008, 01:00
müsste man nicht unbedingt mit datenbank abfragen/einträgen machen, da reichen wohl auch session variablen, die etwas weniger server performance brauchen.

aber:

Ich bin am Überlegen ob ich nicht einfach bei jedem Game nen eintrag mache und dann im Admin einsehen kann welcher User mehr Einträge pro Min hat als erlaubt und ihn so verwarnen kann.

scheint mir auch das sinnvollste zu sein, wenig aufwand (man kann dazu eine funktion in der functions.lib.php erstellen und einmal je game datei aufrufen lassen), und man kann so die user, die sowas machen (dazumuss es natürlich in den agb verboten sein), verwarnen/sperren, und kann sich ja auch per script solche user aus den einträgen raussuchen lassen.

FlexMax
04.05.2008, 17:24
Stimmt, so ein script das das raussucht wäre fein.
weil entdecken kann man die ja indem sie mehr spiele in der minute machten als "möglich" sind.


und zu den 0h Reload Bannern. Ja die finde ich auch nicht fair...

b3nny82
04.05.2008, 19:55
werde mich dann ma ran machen und nen addon basteln, vllt haben ja noch mehr interesse daran