anpera.net
https://anpera.dyndns.org/phpbb3/

Spieler; Moderatoren; Admin; Onlineanzeige by Eliwood
https://anpera.dyndns.org/phpbb3/viewtopic.php?f=44&t=1877
Seite 1 von 2

Autor:  Eliwood [ Sa 29 Okt, 2005 17:42 ]
Betreff des Beitrags:  Spieler; Moderatoren; Admin; Onlineanzeige by Eliwood

Was älteres von mir...
Die, welche man hier findet, gefiel mir nich besonders, hatte zuviele Abfragen :D

Diese hier hat noch eine ;)


Öffe common.php
Suche
[php]}else{
//return "Your character info will appear here after you've logged in.";
//$sql = "SELECT name,alive,location,sex,level,laston,loggedin,lastip,uniqueid FROM accounts WHERE locked=0 AND loggedin=1 ORDER BY level DESC";
$sql="SELECT name,alive,location,sex,level,laston,loggedin,lastip,uniqueid FROM accounts WHERE locked=0 AND loggedin=1 AND laston>'".date("Y-m-d H:i:s",strtotime(date("r")."-".getsetting("LOGINTIMEOUT",900)." seconds"))."' ORDER BY level DESC";
$result = db_query($sql) or die(sql_error($sql));
$count = db_num_rows($result);
$ret.=appoencode("`b$count Spieler Online:`b`n");
for ($i=0;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
$ret.=appoencode("`^$row[name]`n");
$onlinecount++;
}
db_free_result($result);
if ($onlinecount==0) $ret.=appoencode("`iNiemand`i");
$ret.=(getsetting("maxonline",10)>0?grafbar(getsetting("maxonline",10),(getsetting("maxonline",10)-$onlinecount),180):"");
return $ret;
}[/php]

Ersetze mit
[php]}else{
/* Spieler; Moderatoren; Admin; Onlineanzeige by Eliwood */
$onlinecount = 0; $users = 0; $mods = 0; $admins = 0;
$sql="SELECT name,superuser FROM accounts WHERE locked=0 AND loggedin=1 AND laston>'".date("Y-m-d H:i:s",strtotime(date("r")."-".getsetting("LOGINTIMEOUT",900)." seconds"))."' ORDER BY level DESC";
$result = db_query($sql) or die(db_error($sql));
while ($row = db_fetch_assoc($result)){
switch($row['superuser']):
case 0:
case 1:
$text.="`^$row[name]`n";
$users++;
break;

case 2:
//case 3:
$text2.="`^$row[name]`n";
$mods++;
break;
//case 4:
//case 5:
case 3:
$text3.="`^$row[name]`n";
$admins++;
break;
endswitch;
$onlinecount++;
}
$ret.=appoencode("`@$users Spieler Online:`n");
$ret.=appoencode($text."`0");
if ($users==0) $ret.=appoencode("`iKeine Spieler Online`i`n");

$ret.=appoencode("`n`@$mods Moderatoren Online:`n");
$ret.=appoencode($text2."`0");
if ($mods==0) $ret.=appoencode("`iKeine Moderatoren Online`i`n");

$ret.=appoencode("`n`\$$admins Admins Online:`n");
$ret.=appoencode($text3."`0");
if ($admins==0) $ret.=appoencode("`iKeine Admins Online`i`n");

db_free_result($result);
$ret.=(getsetting("maxonline",10)>0?grafbar(getsetting("maxonline",10),(getsetting("maxonline",10)-$onlinecount),180):"");
return $ret;
}[/php]

Autor:  NoO [ So 05 Feb, 2006 14:13 ]
Betreff des Beitrags: 

Hi

Also ich habe die anzeige gerade übernommen und es funzt auch aber wenn sicch jetzt ein Superuser 4 eiloggt steht das net drinne und als ich dann ausprobiert habe hab ich das so gemacht
$this->bbcode_second_pass_code('', '
case 4:
$text4.="`^$row[name]`n";
$gamemaster++;
break;
')

aber das funzt net kann mir wer helfen?

achso und falls es daran liegt das ich den gamemaster (superuser4) nicht richtig eingegeben habe kann es auch sein ich hab nämlich nur im usereditor hiter ,3,admin,4,gamemaster geschrieben muss ich das noch wo einfügen ???

Autor:  Siva [ So 12 Feb, 2006 15:12 ]
Betreff des Beitrags: 

Hab grade die online anzeige eingebaut....die anzeige an sch wir auch angezeigt aber es wird nicht angezeigt das jemand online ist...kann mir bitte jemand sagen wie ich es hinbekomme das ich auch sehe wer online ist?
Liebe grüße
Siva

Autor:  Eliwood [ So 12 Feb, 2006 15:15 ]
Betreff des Beitrags: 

Siva hat geschrieben:
Hab grade die online anzeige eingebaut....die anzeige an sch wir auch angezeigt aber es wird nicht angezeigt das jemand online ist...kann mir bitte jemand sagen wie ich es hinbekomme das ich auch sehe wer online ist?
Liebe grüße
Siva


Hrm... Link zum Spiel wäre Hilfreich :)

Autor:  Drazaar [ So 12 Feb, 2006 15:21 ]
Betreff des Beitrags: 

http://test.legend-of-vinestra.de/index.php -> Indexseite
http://test.legend-of-vinestra.de/sourece -> Source

Das Problem war aber auch schon bei der standartonline-Anzeige da...
wir dachten, dass es sich durch diese vielleicht ändert :(

Autor:  Eliwood [ So 12 Feb, 2006 15:24 ]
Betreff des Beitrags: 

Hrm...

Wenn ihr PHP 5.1.2 habt, dann sucht in der common.php, Funktion charstats mal folgende Stelle:

[php]date("r")[/php]

Und ersetzt das "r" einfach mit einem "c"

Autor:  Drazaar [ So 12 Feb, 2006 15:31 ]
Betreff des Beitrags: 

jah man es funktioniert :)
du bist genial Eliwood ;)
Great thx

Autor:  Eliwood [ So 12 Feb, 2006 15:37 ]
Betreff des Beitrags: 

[OFFTOPIC]

Danke für die Blumen, auch wenn sie mir nicht zustehen :roll:

Gibt hier im Forum einen Topic mit den Fix, einfach mal suchen. Mir ist das gerade nur eingefallen, dahinter gestiegen ist wer anders :P

Autor:  Lyra [ Fr 14 Apr, 2006 20:02 ]
Betreff des Beitrags: 

ich habe das micht mit mod und admin geschrieben, da ich die bezeichnung mod nicht hab. ich hab es so eingebaut:
[php]/* Spieler; Moderatoren; Admin; Onlineanzeige by Eliwood */
$onlinecount = 0; $users = 0; $superuser[2] = 0; $superuser[3] = 0;
$sql="SELECT name,superuser FROM accounts WHERE locked=0 AND loggedin=1 AND laston>'".date("Y-m-d H:i:s",strtotime(date("r")."-".getsetting("LOGINTIMEOUT",900)." seconds"))."' ORDER BY level DESC";
$result = db_query($sql) or die(db_error($sql));
while ($row = db_fetch_assoc($result)){
switch($row['superuser']):
case 0:
case 1:
$text.="`^$row[name]`n";
$users++;
break;

case 2:
//case 3:
$text2.="`^$row[name]`n";
$mods++;
break;
//case 4:
//case 5:
case 3:
$text3.="`^$row[name]`n";
$admins++;
break;
endswitch;
$onlinecount++;
}
$ret.=appoencode("`@$users `QBewohner`0 Online:`n");
$ret.=appoencode($text."`0");
if ($users==0) $ret.=appoencode("`iKeine `QBewohner`0 Online`i`n");

$ret.=appoencode("`n`@$superuser[2] `5Halbgötter`0 Online:`n");
$ret.=appoencode($text2."`0");
if ($superuser[2]==0) $ret.=appoencode("`iKeine `5Halbgötter`0 Online`i`n");

$ret.=appoencode("`n`\$$superuser[3] `!Götter`0 Online:`n");
$ret.=appoencode($text3."`0");
if ($superuser[3]==0) $ret.=appoencode("`iKeine `!Götter`0 Online`i`n");

db_free_result($result);
$ret.=(getsetting("maxonline",10)>0?grafbar(getsetting("maxonline",10),(getsetting("maxonline",10)-$onlinecount),180):"");
return $ret;
} [/php]

es wird auch angezeigt, aber bei mir als admin also superuser3 wird angezeigt ich bin online wenn ichs bin, jedoch darunter "keine götter online". wie kommt das, kann ichs beheben?

Autor:  Eliwood [ Fr 14 Apr, 2006 20:12 ]
Betreff des Beitrags: 

Logisch. Denn ich frage mich, warum du auch die Bezeichung der Variablen geändert hast...

"superuser[2]" und "superuser[3]" sind total aus der Luft gegriffen.

Autor:  Lyra [ Fr 14 Apr, 2006 20:30 ]
Betreff des Beitrags: 

ne sind sie doch nicht, da es superuser 2 und 3 gibt. ich habe keine bezeichnung mit mod. wie soll es denn sonst gehen? wie du es hattest geht es bei mir nicht. ne lösung wär besser als son spruch

Autor:  Eliwood [ Fr 14 Apr, 2006 20:55 ]
Betreff des Beitrags: 

Ändere die Namen der Variablen nicht!
Die Texte können trostlos geändert werden.

Aber wenn man aus "$session" "$blub" macht, muss man sich auch nicht wundern, dass alles nicht mehr geht.

Autor:  Lyra [ Fr 14 Apr, 2006 21:14 ]
Betreff des Beitrags: 

man eben! und diese variablen von dir hab ich nicht in der db! ich glaub grad ich red chinesisch. dann sag mir WIE ich das machen kann, deine klugen sprüche bringen mir bloß leider nix

Autor:  BlackWarrior [ Fr 14 Apr, 2006 22:26 ]
Betreff des Beitrags: 

...... das was du verändert hast hat aber nix mit der datenbank zu tun, einzig und allein werden name und superuser aus der db genommen un das hast auch du drin .....

nützliche funktion in nem php-editor ERSETZEN einfach elis $mods eintragen und ersetzen mit deinen $superuser und dann schau mal ob dir was auffällt :)

du hast nicht alle variablen verändert die zu verändern gewesen wären ....

aber mal so nebenbei, das was eli da gebastelt hat funxt einwandfrei ;)

Autor:  Eliwood [ Fr 14 Apr, 2006 22:56 ]
Betreff des Beitrags: 

...
Nenn die Variablen wieder so um, wie sie geheissen haben. Ganz einfach.

[php]/* Spieler; Moderatoren; Admin; Onlineanzeige by Eliwood */
$onlinecount = 0; $users = 0; $mods = 0; $admins = 0;
$sql="SELECT name,superuser FROM accounts WHERE locked=0 AND loggedin=1 AND laston>'".date("Y-m-d H:i:s",strtotime(date("r")."-".getsetting("LOGINTIMEOUT",900)." seconds"))."' ORDER BY level DESC";
$result = db_query($sql) or die(db_error($sql));
while ($row = db_fetch_assoc($result)){
switch($row['superuser']):
case 0:
case 1:
$text.="`^$row[name]`n";
$users++;
break;

case 2:
//case 3:
$text2.="`^$row[name]`n";
$mods++;
break;
//case 4:
//case 5:
case 3:
$text3.="`^$row[name]`n";
$admins++;
break;
endswitch;
$onlinecount++;
}
$ret.=appoencode("`@$users `QBewohner`0 Online:`n");
$ret.=appoencode($text."`0");
if ($users==0) $ret.=appoencode("`iKeine `QBewohner`0 Online`i`n");

$ret.=appoencode("`n`@$superuser[2] `5Halbgötter`0 Online:`n");
$ret.=appoencode($text2."`0");
if ($mods==0) $ret.=appoencode("`iKeine `5Halbgötter`0 Online`i`n");

$ret.=appoencode("`n`\$$superuser[3] `!Götter`0 Online:`n");
$ret.=appoencode($text3."`0");
if ($admins==0) $ret.=appoencode("`iKeine `!Götter`0 Online`i`n");

db_free_result($result);
$ret.=(getsetting("maxonline",10)>0?grafbar(getsetting("maxonline",10),(getsetting("maxonline",10)-$onlinecount),180):"");
return $ret;
} [/php]

Autor:  Lyra [ Sa 15 Apr, 2006 11:28 ]
Betreff des Beitrags: 

gut jetzt geht es auch wieder. nur als ich es das erste mal so einbaute ging es nicht.. kann ich ja nix dran tun.. danke dennoch

Autor:  Arelcar [ Mo 17 Apr, 2006 19:53 ]
Betreff des Beitrags: 

bei mir geht es immernoch nicht! Ich hab allerdings 4 Superuser! Mein Skript würde so aussehen.

[php] /* Spieler; Moderatoren; Admin; Onlineanzeige by Eliwood */
$onlinecount = 0; $users = 0; $mods = 0; $admins = 0; $adminsu = 0;
$sql="SELECT name,superuser FROM accounts WHERE locked=0 AND loggedin=1 AND laston>'".date("Y-m-d H:i:s",strtotime(date("r")."-".getsetting("LOGINTIMEOUT",900)." seconds"))."' ORDER BY level DESC";
$result = db_query($sql) or die(db_error($sql));
while ($row = db_fetch_assoc($result)){
switch($row['superuser']):
case 0:
case 1:
$text.="`^$row[name]`n";
$users++;
break;
case 2:
$text2.="`^$row[name]`n";
$mods++;
break;
case 3:
$text3.="`^$row[name]`n";
$admins++;
break;
case 4:
$text4.="`^$row[name]`n";
$adminsu++;
break;
endswitch;
$onlinecount++;
}
$ret.=appoencode("`@$users Kreaturen im Reich:`n");
$ret.=appoencode($text."`0");
if ($users==0) $ret.=appoencode("`iKeine Kreaturen im Reich`i`n");

$ret.=appoencode("`n`@$mods Unsterblichen im Reich:`n");
$ret.=appoencode($text2."`0");
if ($mods==0) $ret.=appoencode("`iUnsterblichen im Reich`i`n");

$ret.=appoencode("`n`\$$admins Halbgötter im Reich:`n");
$ret.=appoencode($text3."`0");
if ($admins==0) $ret.=appoencode("`iKeine halbgötter im Reich`i`n");

$ret.=appoencode("`n`\$$adminsu Götter im Reich:`n");
$ret.=appoencode($text4."`0");
if ($adminsu==0) $ret.=appoencode("`iKeine Götter im Reich`i`n");

$ret.=(getsetting("maxonline",10)>0?grafbar(getsetting("maxonline",10),(getsetting("maxonline",10)-$onlinecount),180):"");
return $ret;
}[/php]

hab auch das "r" zu "c" gemacht funktioniert immer noch nicht!
Danke^^

Autor:  Eliwood [ Mo 17 Apr, 2006 19:56 ]
Betreff des Beitrags: 

Und was geht nicht?

Autor:  Harthas [ Mo 17 Apr, 2006 20:07 ]
Betreff des Beitrags: 

EDIT


Hab mist erzählt

Autor:  Eliwood [ Mo 17 Apr, 2006 20:10 ]
Betreff des Beitrags: 

`\$ ist der Farbcode, $admin ist die Variable. 2 $$ waren schon richtig.

Seite 1 von 2 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/