Quellcodeviewer der Dragonslayer-Edition
Quellcodeviewer der Dragonslayer-Edition : 0.9.7+jt ext (GER)


Anmerkung: Dies ist nur ein Auszug aus dem Source. Um das jeweils aktuelle, vollständige Release zu erhalten, ist eine Anfrage mit gültiger Email-Adresse erforderlich. Ebenso sollte darin die Serveradresse bzw. sonstiger Verwendungszweck aufgeführt sein. 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!


./setnewday.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:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
<?php

// 11092004

/*setweather.php
An element of the global weather mod Version 0.5
Written by Talisman
Latest version available at http://dragonprime.cawsquad.net

translation: anpera
*/

if ((int)getsetting("expirecontent",180)>0){
    
$sql "DELETE FROM commentary WHERE postdate<'".date("Y-m-d H:i:s",strtotime(date("r")."-".getsetting("expirecontent",180)." days"))."'";
    
db_query($sql);
    
$sql "DELETE FROM news WHERE newsdate<'".date("Y-m-d H:i:s",strtotime(date("r")."-".getsetting("expirecontent",180)." days"))."'";
    
db_query($sql);
}
$sql "DELETE FROM mail WHERE sent<'".date("Y-m-d H:i:s",strtotime(date("r")."-".getsetting("oldmail",14)."days"))."'";
db_query($sql);

switch(
e_rand(1,9)){
    case 
1:
    
$clouds="Wechselhaft und kühl, mit sonnigen Abschnitten";
                break;
                case 
2:
      
$clouds="Warm und sonnig";
                break;
                case 
3:
      
$clouds="Regnerisch";
                break;
                case 
4:
      
$clouds="Neblig";
                break;
                case 
5:
     
$clouds="Kalt bei klarem Himmel";
                break;
                case 
6:
      
$clouds="Heiß und sonnig";
                break;
                case 
7:
      
$clouds="Starker Wind mit vereinzelten Regenschauern";
                break;
                case 
8:
      
$clouds="Gewittersturm";
                break;
                case 
9:
      
$clouds="Schneeregen";
                break;        
}
savesetting("weather",$clouds); 

// Vendor in town?
if (e_rand(1,3)==1)
{
    
savesetting("vendor","1");
    
$sql "INSERT INTO news(newstext,newsdate,accountid) VALUES ('`6De`@r W`.an`,de`lrh`män`pdl`qer `pis`mt i`ln d`,er `.St`@ad`6t!`0',NOW(),0)";
    
db_query($sql) or die(db_error($link));
}

else
{
savesetting('vendor','0');}

// Other hidden paths
$spec="Keines";
$what=e_rand(1,3);
if (
$what==1$spec="Waldsee";
if (
$what==3$spec="Orkburg";
savesetting("dailyspecial","$spec");

// Gamedate-Mod by Chaosmaker
if (getsetting('activategamedate',0)==1) {
    
$date getsetting('gamedate','0000-01-01');
    
$date explode('-',$date);
    
$date[2]++;
    switch (
$date[2]) {
        case 
32:
            
$date[2] = 1;
            
$date[1]++;
            break;
        case 
31:
            if (
in_array($date[1], array(4,6,9,11))) {
                
$date[2] = 1;
                
$date[1]++;
            }
            break;
        case 
30:
            if (
$date[1]==2) {
                
$date[2] = 1;
                
$date[1]++;
            }
            break;
        case 
29:
            if (
$date[1]==&& ($date[0]%4!=|| ($date[0]%100==&& $date[0]%400!=0))) {
                
$date[2] = 1;
                
$date[1]++;
            }
    }
    if (
$date[1]==13) {
        
$date[1] = 1;
        
$date[0]++;
    }
    
$date sprintf('%04d-%02d-%02d',$date[0],$date[1],$date[2]);
    
savesetting('gamedate',$date);
}


// this now includes the database cleanup from index.php
$old getsetting("expireoldacct",45)-5;
$new getsetting("expirenewacct",10);
$trash getsetting("expiretrashacct",1);

$sql "SELECT acctid,emailaddress FROM accounts WHERE 1=0 "
.($old>0?"OR (laston < \"".date("Y-m-d H:i:s",strtotime(date("r")."-$old days"))."\")\n":"")
.
" AND emailaddress!='' AND sentnotice=0";
$result db_query($sql);
for (
$i=0;$i<db_num_rows($result);$i++){
    
$row db_fetch_assoc($result);

// can't send mail on anpera.net

    
mail($row[emailaddress],"LoGD Charakter verfällt","Einer oder mehrere deiner Charaktere von Legend of the Green Dragon auf ".$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME']." verfällt demnächst und wird gelöscht. Wenn du den Charakter retten willst, solltest du dich bald möglichst mal damit einloggen! Falls der Charakter ein Haus hatte, ist dieses bereits enteignet.","From: ".getsetting("gameadminemail","postmaster@localhost.com"));
    
    
$sql "UPDATE accounts SET sentnotice=1,house=0,housekey=0,marriedto=0 WHERE acctid='$row[acctid]'";
    
    if ((int)
$row[acctid]==(int)getsetting("hasegg",0))
    
savesetting("hasegg",stripslashes(0));
    
    
db_query($sql);
    
$sql "UPDATE houses SET owner=0 WHERE owner=$row[acctid]";
    
db_query($sql);
    
$sql "UPDATE items SET owner=0 WHERE owner=$row[acctid]";
    
db_query($sql);
    
$sql "DELETE FROM pvp WHERE acctid2=$row[acctid] OR acctid1=$row[acctid]";
    
db_query($sql) or die(db_error(LINK));
    
$sql "UPDATE accounts SET charisma=0,marriedto=0 WHERE marriedto=$row[acctid]";
    
db_query($sql);
}

$old+=5;
//Friedhof Skript by Samsa (Idee: Fenja)
    
        
$delaccts '0';
    
$sql "SELECT acctid FROM accounts WHERE superuser<=1 AND (1=0\n"
    
.($old>0?"OR (laston < \"".date("Y-m-d H:i:s",time()-3600*24*$old)."\")\n":"")
    .(
$new>0?"OR (laston < \"".date("Y-m-d H:i:s",time()-3600*24*$new)."\" AND level=1 AND dragonkills=0)\n":"")
    .(
$trash>0?"OR (laston < \"".date("Y-m-d H:i:s",time()-3600*24*($trash+1))."\" AND level=1 AND experience < 10 AND dragonkills=0)\n":"")
    .
")";
    
$result db_query($sql);
    while (
$row db_fetch_assoc($result)) {
        
$delaccts .= ','.$row['acctid'];
        if (
$row['acctid']==getsetting("hasegg",0)) savesetting("hasegg","0");
    }
    
$sql "DELETE FROM accounts WHERE acctid IN ($delaccts)";
    
db_query($sql) or die(db_error(LINK));
    
    
/*
    $sql = 'DELETE FORM `rporte` WHERE acctid IN ('.$delaccts.')';
    db_query($sql) or die (db_error(LINK));
    */
    
    
$sql "UPDATE houses SET owner=0 WHERE owner IN ($delaccts)";
    
db_query($sql);
    
$sql "UPDATE items SET owner=0 WHERE owner IN ($delaccts) AND class='Schlüssel'";
    
db_query($sql);
    
$sql "DELETE FROM items WHERE owner IN ($delaccts) AND owner!=0";
    
db_query($sql);
    
$sql "DELETE FROM pvp WHERE acctid2 IN ($delaccts) OR acctid1 IN ($delaccts)";
    
db_query($sql) or die(db_error(LINK));
    
$sql "DELETE FROM mail WHERE msgto IN ($delaccts)";
    
db_query($sql) or die(db_error(LINK));
    
$sql "UPDATE accounts SET charisma=0,marriedto=0 WHERE marriedto IN ($delaccts)";
    
db_query($sql);
    
// end cleanup

/**
  * PHP version 4 and 5
  *
  * Das Goldene Ei, Verfallszeit!,
  *
  * ist eine Modifikation mit dem das "Goldene Ei" nach einem bestimmten
  * Zeitinterval zurueckgesetzt werden kann.
  *
  * Es werden derzeit vier- Optionen unterstuetzt:
  *
  * - Ak-/Deaktivieren der Verfallszeit vom Goldenen Ei
  * - das manuelle zuruecksetzen des Besitzers
  * - das automatische zuruecksetzen; Zeitinterval nach Tagen
  * - das automatische zuruecksetzen; Zeitinterval nach Inaktivitaetstagen
  *
  *
  * @author  Kevin Goedecker [Kevz]
  * @version 23/06/2009
  */


  /**
   * Wir ueberpruefen vorab erst einmal, ob die Verfallszeit vom Goldenen Ei
   * ueberhaupt aktiviert ist. Ansonsten macht das alles wenig sinn. (:
   */
  
if (getsetting('eggduedates'0))
  {
    
/**
     * Bevor wir dem Spieler das Ei entziehen und dadurch eine unnoetige SQL-
     * Abfrage machen und dabei die ganze accounts- Tabelle ankratzen, schauen
     * wir erst einmal, wann das Ei entzogen wird und setzen es dann zurueck!
     */
    
if (getsetting('expireegg_timestamp'time()) < time()-(3600*24*getsetting('expireegg'14))) {
      
// ..besitzer vom Ei zuruecksetzen!
      
savesetting('hasegg'0);
      
// ..Verfallszeit zuruecksetzen!
      
savesetting('expireegg_timestamp'time());
    }

    
/**
     * Nun.. wenn das Goldene Ei noch in Besitz sein sollte, ueberpruefen wir
     * einfach, wann der Benutzer das letzte mal Aktiv war und entziehen es dann
     * wenn er zulange inaktiv war!
     */
    
if (getsetting('hasegg'0)) {
      
/**
       * Den Benutzer finden, der das Goldene Ei versteckt hat und es nicht
       * hergeben mag! So ein poehser... ;(
       */
      
$sql 'SELECT `acctid` FROM `accounts` WHERE `acctid` = "%u" AND `laston` < DATE_SUB(NOW(), INTERVAL %u DAY)';
      
db_query(sprintf($sqlgetsetting('hasegg'0), getsetting('expirehasegg'10))) or die(db_error(LINK));

      
/**
       * Falls der jenige gefunden wurde und er nicht zulang inaktiv war, wurde
       * auch ein Datensatz gefunden... Macht sinn, oder?!
       * Denn das Goldene Ei kann ja hoechstens einen Besitzer haben und wenn er
       * nicht zulang inaktiv war, wurde er auch nicht gefunden. (:
       */
      
if (db_affected_rows() == 1)
        
savesetting('hasegg'0);
      else
        
debuglog('Der Spieler mit dem Goldenen Ei war noch nicht lang genug inaktiv!');
    }
  }

        
//Ende Friedhof Skript

savesetting("lastdboptimize",date("Y-m-d H:i:s"));
$result db_query("SHOW TABLES");
for (
$i=0;$i<db_num_rows($result);$i++){
    list(
$key,$val)=each(db_fetch_assoc($result));
    
db_query("OPTIMIZE TABLE $val");
}
?>
0.9.7+jt ext (GER)