Quellcode der Dragonslayer-Edition
Quellcode der Dragonslayer-Edition : 0.9.7(Dragonslayer Edition V/3.42 + LOTGD-JSLIB)


Anmerkung: Dies ist nur ein Auszug aus dem Source. Ein etwas älteres, abgespecktes Release ist für jeden Interessenten frei zum Download verfügbar. Allerdings würden wir uns über eine Anfrage freuen, in der die Serveradresse bzw. sonstiger Verwendungszweck aufgeführt sind, da wir gern wissen würden wohin unsere Version geht. Was wir uns unbedingt verbitten, ist Diebstahl unserer Arbeit ohne Nennung des Copyrights.
Falls beim Lesen des Source ein Bug entdeckt werden sollte, bitten wir um sofortige Meldung per Anfrage!


./index.php

zurück
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
<?php
/**
 * index.php: Startseite für Atrahor
 * @author LOGD-Core / Drachenserver-Team (Überarbeitung, Performance, Liverestzeit)
 * @version DS-E V/2
*/

require_once 'common.php';

if (
$session['loggedin'])
{
    
redirect('badnav.php');
}

//Falls mehrere URLs auf den gleichen Server zeigen aber nur eine Domain verwendet werden soll leitet
//dieses Codefragment den User auf die richtige Domain um und setzt den Cookie neu, so dass er nicht in
//einer Aktualisierungssperre landet
$arr_server parse_url(getsetting('server_address','localhost'));
$str_referer = ($_SERVER['HTTPS']?'https://':'http://').$_SERVER['HTTP_HOST'];
if(!
LOCAL_TESTSERVER && !preg_match('/'.preg_quote($arr_server['host']).'/i',$str_referer))
{
    
setcookie('lasthit',0,strtotime(date('r').'+365 days'));
    
redirect(getsetting('server_address','localhost'));
}

page_header();

// Ausgabestring
$str_out '';

// In Var speichern, wird mehrfach verwendet
$str_townname getsetting('townname','Atrahor');
$int_maxonline getsetting('maxonline',10);

if(
$str_townname=='Atrahor'){
    
$str_out .= '`n`n`c`b`$Wi`Dl`Ql`dk`qo`Im`tme`yn i`tn `IAt`qr`da`Qh`Do`$r!`0`b`n`n`n';
}
else
{
    
$str_out .= '`c`IWillkommen bei Legend of the Green Dragon in der Dragonslayer-Edition, schamlos abgekupfert von Seth Able\'s Legend of the Red Dragon.`n`n';
}
if (
getsetting('activategamedate','0')==1)
{
    
$str_out .='`IWir schreiben den `y'.getgamedate().'`I.`0`n';
}
$str_out .='`IDie gegenwärtige Zeit in '.$str_townname.' ist `y'.getgametime(true).'`I.`0`n';

//Next New Day in ... is by JT from logd.dragoncat.net
$time gametime();
// $tomorrow = strtotime(date("Y-m-d H:i:s",$time)." + 1 day");
$tomorrow mktime(0,0,0,date('m',$time),date('d',$time)+1,date('Y',$time));
// $tomorrow = strtotime(date("Y-m-d 00:00:00",$tomorrow));
$secstotomorrow $tomorrow-$time;
$realsecstotomorrow round($secstotomorrow / (int)getsetting("daysperday",4));

$calctime strtotime('1980-01-01 00:00:00 + '.$realsecstotomorrow.' seconds');

$nextdattime date('G \\S\\t\\u\\n\\d\\e\\n, i \\M\\i\\n\\u\\t\\e\\n, s \\S\\e\\k\\u\\n\\d\\e\\n\\ \\(\\E\\c\\h\\t\\z\\e\\i\\t\\)',$calctime);
$str_out .='`INächster neuer Tagesabschnitt in: `0<div id="index_time">`y'.$nextdattime.'`0</div>`n`n';
$str_out .='
<script language="javascript" type="text/javascript">
/*Kleines Schmankerl by Alucard
    www.atrahor.de
*/
var index_time_div = document.getElementById("index_time");
var index_time_day = Math.ceil(24/'
.(int)getsetting("daysperday",4).');
var index_dest_time = 0;
</script>
<script language="javascript" type="text/javascript" src="'
.TEMPLATE_PATH.'stuff.js"></script>
<script language="javascript" type="text/javascript">
if( index_time_div ){
    index_set_time('
.date('G, i, s',$calctime).');
}
</script>
'
;

/*$newplayer=stripslashes(getsetting('newplayer',''));
if ($newplayer!='')
{
//$str_out .='`@Unser jüngster Spieler ist `^'.$newplayer.'`@!`0`n';
}*/
$newdk=stripslashes(getsetting('newdragonkill',''));
if (
$newdk!='')
{
    
$str_out .='`IDie letzte Heldentat vollbrachte: `y'.$newdk.'`I!`0`n';
}

$guild=stripslashes(getsetting('dgtopguild',''));
if (
$guild!='')
{
    
$str_out .='`IDie angesehenste Gilde '.getsetting('townname','Atrahor').'s zur Zeit ist: `y'.$guild.'`I!`0`n`n';
}

$dkcounter number_format( (int)getsetting('dkcounterges',0) , ' '' ' );
if (
$dkcounter>0)
{
    
$str_out .='`IInsgesamt haben unsere Helden bereits `y'.$dkcounter.'`I Heldentaten vollbracht!`0`n`n';
}

$fuerst=stripslashes(getsetting('fuerst',''));
if (
$fuerst!='')
{
    
$str_out .='`IDen Fürstentitel '.$str_townname.'s trägt zur Zeit: `0`b`y'.$fuerst.'`0`b`I!`0`n`n';
}

if(
getsetting('wartung',0) > 0) {
    
$str_out .='`b`^Der Server befindet sich im Moment im Wartungsmodus, um Änderungen am Spiel oder dem Server störungsfrei vornehmen zu können.`0`b`^`nBitte warte, bis sich dies ändert.`n`n`0';
}

$result db_fetch_assoc(db_query("SELECT COUNT(*) AS onlinecount FROM accounts WHERE locked=0 AND ".user_get_online() ));
$onlinecount $result['onlinecount'];

// do not check if playerlimit is not reached!
if (( $onlinecount >= $int_maxonline && $int_maxonline!=0) || getsetting('wartung',0) > )
{
    
$id=$_COOKIE['lgi'];
    
$sql "SELECT superuser,uniqueid FROM accounts WHERE uniqueid='$id' AND superuser>0";
    
$result db_query($sql);
    if (
db_num_rows($result)>0)
    {
        
$row db_fetch_assoc($result);
        
$is_superuser=$row['superuser'];
    }
    else
    {
        
$is_superuser=0;
    }
}
else
{
    
$is_superuser 0;
}

if ( (
$onlinecount<$int_maxonline || $int_maxonline==|| $is_superuser) )
{
    
$str_out .='`tGib deinen Namen und dein Passwort ein, um '.$str_townname.' zu betreten.`n
    (Falls kein Loginfeld sichtbar ist: Lies bitte die <a href="petition.php?op=faq" target="_blank" onClick="window.open(\'petition.php?op=faq\',\'petitionphpopfaq\',\'scrollbars=yes,resizable=yes,width=550,height=300\');return false;">FAQ</a> bzw. schreibe eine Anfrage.)`n`0'
;
    if (
$_GET['op']=='timeout' )
    {
        
$session['message'].='`nDeine Sessionzeit ist abgelaufen. Bitte neu einloggen.`n';
        if (!isset(
$_COOKIE['PHPSESSID']))
        {
            
$session['message'].=' Es scheint, als ob die Cookies dieser Seite von deinem System blockiert werden. Zumindest Sessioncookies müssen für diese Seite zugelassen werden.`n';
        }
    }
    if (
$session['message']!='')
    {
        
$str_out .= '`b`$'.$session['message'].'`0`b`n';
    }
    
$encoded_password_transfer_script 'onSubmit=do_challenge_response();';
    
$str_out .= "
    <noscript><b style=\"color: #FF0000;\">Javascript wird zur korrekten Funktionsweise benötigt. Bitte aktiviere es! Tipps und Hinweise hierzu findest du in der <a href='petition.php?op=faq' target='_blank'>FAQ</a>.</b></noscript>
    <div id=\"NOT_COMP\" style=\"display: none;\"><br /><br /><br /><b style=\"color: #FF0000;\">Dein Browser erfüllt leider nicht die Anforderungen des Spiels. Weitere Informationen hierzu findest du in der <a href='petition.php?op=faq' target='_blank'>FAQ</a>.</b></div>
    <div id=\"LOGIN_FORM\" style=\"display: block;\"><form action='login.php' name='loginform' method='POST' 
$encoded_password_transfer_script>
    <input type='hidden' name='hidden_pw' /><input type='hidden' name='challenge' value='"
.access_control::create_challenge()."'/>"
    
.templatereplace("login",array("username"=>"<u>N</u>ame","password"=>"<u>P</u>asswort","button"=>"Einloggen"))
    .
'</form></div>`c
    <script language="JavaScript" type="text/javascript" src="templates/security.js"></script>
    <script type="text/javascript" language="JavaScript">
        function do_challenge_response()
        {
            document.forms.loginform.hidden_pw.value = sha1(document.forms.loginform.password.value);
            document.forms.loginform.challenge.value = sha1(calcMD5(document.forms.loginform.password.value)+document.forms.loginform.name.value.toLowerCase()+document.forms.loginform.challenge.value);
            document.forms.loginform.password.value=\'\';
        }
        var is_c = LOTGD.compCheck();
        document.getElementById("NOT_COMP").style.display = (is_c ? "none" : "block");
        document.forms.loginform.name.focus();
    </script>'
;
    
// Without this, I had one user constantly get 'badnav.php' :/  Everyone else worked, but he didn't
    
addnav('','login.php');
}
else
{
    
$str_out .='`b`^Der Server ist im Moment ausgelastet, die maximale Anzahl an Usern ist bereits online.`0`b`^`nBitte warte, bis wieder ein Platz frei ist.`n`n`0';
    if (
$_GET['op']=='timeout')
    {
        
$session['message'].='`nDeine Sessionzeit ist abgelaufen. Bitte neu einloggen.`n';
        if (!isset(
$_COOKIE['PHPSESSID']))
        {
            
$session['message'].=' Es scheint, als ob die Cookies dieser Seite von deinem System blockiert werden.  Zumindest Sessioncookies müssen für diese Seite zugelassen werden.`n';
        }
    }
    if (
$session['message']!='')
    {
        
$str_out .='`b`$'.$session['message'].'`b`n';
    }
    
$str_out .=templatereplace('full').'`c';
}


$str_out .='`n`c`b`&'.getsetting('loginbanner','').'`0`b`c`n';
$session['message']='';
$str_out .='`c`t'.$str_townname.' läuft unter: `y'.GAME_VERSION.'`0`c';

// Ausgabe
output($str_out);

// Hotkeys auf Startseite?
$bool_hotkeys false;
$int_ref=intval($_GET['r']);
$str_ref=($int_ref>0?'?r='.$int_ref:'');
$str_ref2=($int_ref>0?'&r='.$int_ref:'');
clearnav();
addnav('Neu hier?');
addnav('`yCharakter erstellen`0','create_rules.php'.$str_ref,false,false,false,$bool_hotkeys);
if(
getsetting('demouser_public',0)>0)
{
    
addnav('Schnupperzugang','demouser.php'.$str_ref,false,false,false,$bool_hotkeys);
}
addnav('Über Atrahor (LotGD)','about.php'.$str_ref,false,false,false,$bool_hotkeys);
addnav('F.A.Q.','petition.php?op=faq',false,true,false,$bool_hotkeys);
addnav('Das Spiel');
addnav('Liste der Einwohner','list.php'.$str_ref,false,false,false,$bool_hotkeys);
addnav('Passwort vergessen?','create.php?op=forgot'.$str_ref2,false,false,false,$bool_hotkeys);
addnav('Sonstiges in '.getsetting('townname','Atrahor'));
addnav('Impressum''about.php?op=impressum'.$str_ref2,false,false,false,$bool_hotkeys);
addnav($str_townname.' Forum',getsetting('forum','http://forum.atrahor.de'),false,false,true,$bool_hotkeys);
addnav('AETL-Taubenleser','get_aetl.php'.$str_ref,false,false,false,$bool_hotkeys);
//addnav('Die LoGD-Welt');
addnav('LoGD Netz','logdnet.php?op=list'.$str_ref2,false,false,false,$bool_hotkeys);
//addnav('DragonPrime','http://www.dragonprime.net',false,false,true);

page_footer();
?>
0.9.7(Dragonslayer Edition V/3.42 + LOTGD-JSLIB)