Karten X Uhrzeitabhängig verändern
Karten X Uhrzeitabhängig verändern
Ich habe gehört, dass das das X auf der Karte angeblich zu verschiedenen Tageszeiten ( z.B. Tag/Nacht) anders aussehen lassen kann,
also dass es sich durchwechselt.
Jetzt wollte ich erstmal wissen ob das stimmt und wenn ja, wie dass denn genau funktioniert.
Danke für die Bemühungen.
also dass es sich durchwechselt.
Jetzt wollte ich erstmal wissen ob das stimmt und wenn ja, wie dass denn genau funktioniert.
Danke für die Bemühungen.
Re: Karten X Uhrzeitabhängig verändern
ich würde mal behaupten mithilfe von PHP... wie genau kann dir bestimmt einer von den PHP-Jüngern hier sagen 

Bazinga!
Re: Karten X Uhrzeitabhängig verändern
Du erstellst dir ein PHP script welches jenach tageszeit verschiedene Bilder ausgeibt. Dabei muss auf den richtigen Haedder geachtet werden. Dann wird dieses PHP script wie in bild per IMG eingebunden. (bez. über den Style)
Nils
Nils
Re: Karten X Uhrzeitabhängig verändern
Ich habe zwar schon etwas mti php gearbeitet aber, es wäre nett wenn mir einer noch ein bisschen mehr zu diese Script schreiben könnte.
Bin damit sonst total überfordert und würde das aber gerne im Style haben.
Danke
Bin damit sonst total überfordert und würde das aber gerne im Style haben.
Danke
- Bombenpflanze
- Wächter des Vulkans
- Beiträge: 280
- Registriert: 2. Apr 2008, 22:50
- Wohnort: Kiras Gasthaus - Fruchtsafttheke
- Kontaktdaten:
Re: Karten X Uhrzeitabhängig verändern
Ganz banal (sicherlichlich nicht das effektivste) wäre das simple Schema mit Bedinung durch if.
Du fragst ab, welche Uhrzeit es ist und je nach Uhrzeit wird dann per imagecreatefromjpg (oder andres Bildformat) ein von dir vorher zurechtgelegtes Bildchen erstellt/ausgegeben.
Zu Zeit-Funktion gibts hier was und zu Bilderstellung hier.
Du fragst ab, welche Uhrzeit es ist und je nach Uhrzeit wird dann per imagecreatefromjpg (oder andres Bildformat) ein von dir vorher zurechtgelegtes Bildchen erstellt/ausgegeben.
Zu Zeit-Funktion gibts hier was und zu Bilderstellung hier.
Your skill in Reading has increased by +1 Point.
Re: Karten X Uhrzeitabhängig verändern
Also wie von einigen hier schon angemerkt, ist die technisch einfachste Lösung einfach die Tages-Zeit mit if abzufragen und dann das Bild entsprechend als Variable einzubinden mit
if zeit == abend $tageszeit = abend;
elseif zeit == tag $tageszeit = tag;
Header ("Content-type: image/png");
$img_handle = imageCreateFromPNG("$tageszeit.png");
ImagePng ($img_handle);
ImageDestroy ($img_handle);
Und dann halt entsprechend eine tag.png und eien abend.png zur Verfügung stellen.
ABER:
das ist nur die einfachste Lösung und sollte auf jedem Fall noch auf Performance geprüft werden. Denn hier wird bei jeder aktuallisierung der Map das "Bild" neu erstellt. Ich weiss nicht, ob das vernünftig aussehen wird aber als ich mit einem php-bg im mainframe mal herumgetestet hatte, ging es in die Hose.. was natürlich auch an der Größe liegen kann.
Andere Möglichkeit ist natürlich die Erstellung des Bildes wo anders durchzuführen. zB durch Aufruf eines php-scriptes im banner-frame (aktuallisiert das eigentlich, wenn neue Werbung geladen wird?) oder im geöffnetem Item-Frame.. halt etwas, was regelmäßig aber nicht oft aktuallisiert wird.
Dieses hier aufgerufene php-script ändert dann halt einfach den Namen der Bilder.. also rename x.png zu abend.png udn rename tag.png zu x.png und andersherum.
Dies würde ich (ohne jetzt weiter zu überlegen, wo es mehr sinn machen würde) als bild im Item-Frame einfügen.. halt an einer Stelle, die einmalig und nur geladen wird, sobald das Inventar offen ist. Man müsste zwra noch prüfen wie lange das aktuelle X dann noch gecached wird.. aber so in etwa würde man es glaube ich am schlausten machen.
Natürlich geht es per cronjob oder mit anderen Möglichkeiten noch einfacher aber das gehört dann nimmer zu den Basics, die jeder webspace zur Verfügung stellt.
if zeit == abend $tageszeit = abend;
elseif zeit == tag $tageszeit = tag;
Header ("Content-type: image/png");
$img_handle = imageCreateFromPNG("$tageszeit.png");
ImagePng ($img_handle);
ImageDestroy ($img_handle);
Und dann halt entsprechend eine tag.png und eien abend.png zur Verfügung stellen.
ABER:
das ist nur die einfachste Lösung und sollte auf jedem Fall noch auf Performance geprüft werden. Denn hier wird bei jeder aktuallisierung der Map das "Bild" neu erstellt. Ich weiss nicht, ob das vernünftig aussehen wird aber als ich mit einem php-bg im mainframe mal herumgetestet hatte, ging es in die Hose.. was natürlich auch an der Größe liegen kann.
Andere Möglichkeit ist natürlich die Erstellung des Bildes wo anders durchzuführen. zB durch Aufruf eines php-scriptes im banner-frame (aktuallisiert das eigentlich, wenn neue Werbung geladen wird?) oder im geöffnetem Item-Frame.. halt etwas, was regelmäßig aber nicht oft aktuallisiert wird.
Dieses hier aufgerufene php-script ändert dann halt einfach den Namen der Bilder.. also rename x.png zu abend.png udn rename tag.png zu x.png und andersherum.
Dies würde ich (ohne jetzt weiter zu überlegen, wo es mehr sinn machen würde) als bild im Item-Frame einfügen.. halt an einer Stelle, die einmalig und nur geladen wird, sobald das Inventar offen ist. Man müsste zwra noch prüfen wie lange das aktuelle X dann noch gecached wird.. aber so in etwa würde man es glaube ich am schlausten machen.
Natürlich geht es per cronjob oder mit anderen Möglichkeiten noch einfacher aber das gehört dann nimmer zu den Basics, die jeder webspace zur Verfügung stellt.
...
Re: Karten X Uhrzeitabhängig verändern
Danke für die Hilfe,
had das Skript soweit fertig.
Jetzt komme ich zu meinem nächsten Punkt.(Ich weiß ich hör mcih hier an wie ein Kleinkind das alles erst erklärt bekommen muss.)
Wie binde ich das ganze in meine css ein?
Danke nochmals.
P.S.: Ich habs grad mal hochgeladen, und das Skript einfach mal so gestartet. Es bringt keinen Fehler, aber es zeigt auch kein Bild an, ich spiel mal ein bisschen am Quelltext rum..
had das Skript soweit fertig.
Jetzt komme ich zu meinem nächsten Punkt.(Ich weiß ich hör mcih hier an wie ein Kleinkind das alles erst erklärt bekommen muss.)
Wie binde ich das ganze in meine css ein?
Danke nochmals.
P.S.: Ich habs grad mal hochgeladen, und das Skript einfach mal so gestartet. Es bringt keinen Fehler, aber es zeigt auch kein Bild an, ich spiel mal ein bisschen am Quelltext rum..
Re: Karten X Uhrzeitabhängig verändern
Code: Alles auswählen
<?php
$t = localtime (time(),1);
if (($t['tm_hour']<=20) && ($t['tm_hour']>=6))
{$zeit= tag;}
else
{$zeit= abend;}
if ($zeit == abend)
{$tageszeit = abend;}
elseif ($zeit == tag)
{$tageszeit = tag;}
Header ("Content-type: image/png");
$img_handle = imageCreateFromPNG("$tageszeit.png");
ImagePng ($img_handle);
ImageDestroy ($img_handle);
?>
Re: Karten X Uhrzeitabhängig verändern
Hätte auch vlt ne möglichkeit per PHP das ganze so zu gestalten, dass nit immer neu berechnet wird ( is zwar etwas aufwenig aber ein nur eine txt datei mehr.
falls ich das mit dem bild noch hingrieg dann werd ich alles hier drin veröffentlichen.
aber dazu brauch ich erstmal die fakten wie ich das einbinde und wieso da noch kein bild angezeit wird....
falls ich das mit dem bild noch hingrieg dann werd ich alles hier drin veröffentlichen.
aber dazu brauch ich erstmal die fakten wie ich das einbinde und wieso da noch kein bild angezeit wird....
Re: Karten X Uhrzeitabhängig verändern
also ich weiss nicht warum es bei dir nicht läuft. Ich habe mal deinen Quelltext kopiert (etwa sgekürzt) und in ein php-script bei mir eingefügt.
bei mir funktioniert es einwandfrei das Bild anzuzeigen. Du hast deine tag- und abend-datei auch im png-format vorliegen nehme ich an? php funktioniert auf deinem webspace auch?
Wenn ja, poste mal bitte quelltext und link zur php-datei.
Einfügen kannst du das dann mit:
img[src$="user.gif"] { display: block; width: 0; background: url(bild.php); no-repeat; padding-left: 50px; overflow: hidden; }
Code: Alles auswählen
<?php
$t = localtime (time(),1);
if (($t['tm_hour']<=20) && ($t['tm_hour']>=6))
{$zeit= tag;}
else
{$zeit= abend;}
Header ("Content-type: image/png");
$img_handle = imageCreateFromPNG("$zeit.png");
ImagePng ($img_handle);
ImageDestroy ($img_handle);
?>
Wenn ja, poste mal bitte quelltext und link zur php-datei.
Einfügen kannst du das dann mit:
img[src$="user.gif"] { display: block; width: 0; background: url(bild.php); no-repeat; padding-left: 50px; overflow: hidden; }
...
Re: Karten X Uhrzeitabhängig verändern
Ich glaube da fehlen einfach noch anführungszeichen:
Wundert mich das es ohne überhaupt geht.
Nils
Code: Alles auswählen
if (($t['tm_hour']<=20) && ($t['tm_hour']>=6))
{$zeit= "tag";}
else
{$zeit= "abend";}
Nils
Re: Karten X Uhrzeitabhängig verändern
Die Variable bei ImageCreatefromPNG ist ebenfalls in Anführungszeichen was nicht sein Soll... Schreibt dort ($Zeit.".png"); hin sonst klappt's nicht...
Bogs sind meine Spezialität - Signaturen sind eigentlich doch überflüssig...
Re: Karten X Uhrzeitabhängig verändern
Variablennamen in doppelten anfürungszeichen werden aufgelöst @bwoebi das sollte also gehen.
Nils
Nils
Re: Karten X Uhrzeitabhängig verändern
Ja, wenn aber hier wird der Punkt als Endung gebraucht und nicht als Trenner...
Und der PHP-Parser versteht das falsch...
Und der PHP-Parser versteht das falsch...
Bogs sind meine Spezialität - Signaturen sind eigentlich doch überflüssig...
Re: Karten X Uhrzeitabhängig verändern
Bevor ihr streitet und euch so sicher seid, dass es so nicht geht... testet es halt? Das mit den fehlenden Anführungsstrichen war auch mein erster Gedanke... aber ein Test hat mir gezeigt, dass PHP hier wohl erkennt, dass es sich um einen String handelt. Bei mir jedenfalls. Klingt komisch, ist aber so.
bwoebi das stimmt so nicht. PHP erkennt hier schon korrekt, wo die Variable endet. Denn der Punkt innerhalb des strings wird auch als Punkt erkannt und nicht als zusammensetzendes Zeichen wie ausserhalb. Hier liegt also definitiv kein Fehler vor. Ich habe dne unten geposteten quelltext wie gesgat getestet und er tut es problemlos. Kann sein, dass er beim TE wegen der Strings nicht geht aufgrund der php version aber das wäre schon ein Zufall irgendwie, denn bei mir geht es wie gesagt.
bwoebi das stimmt so nicht. PHP erkennt hier schon korrekt, wo die Variable endet. Denn der Punkt innerhalb des strings wird auch als Punkt erkannt und nicht als zusammensetzendes Zeichen wie ausserhalb. Hier liegt also definitiv kein Fehler vor. Ich habe dne unten geposteten quelltext wie gesgat getestet und er tut es problemlos. Kann sein, dass er beim TE wegen der Strings nicht geht aufgrund der php version aber das wäre schon ein Zufall irgendwie, denn bei mir geht es wie gesagt.
...
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste