Quellcode der Dragonslayer-Edition
Quellcode der Dragonslayer-Edition: 0.9.7(DS V3) Ithil-Edition


Anmerkung: Dies ist nur ein Auszug aus dem Source. Ein etwas älteres, abgespecktes Release der Dragonslayer-Edition ist für jeden Interessenten frei zum Download verfügbar. 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!


./gardens.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:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
<?php

// gardenflirt 1.0 by anpera
// uses 'charisma' entry in database to determine how far a love goes, and 'marriedto' to know who with whom. ;)
// no changes necessary in database
// some changes in newday.php, hof.php, dragon.php, and inn.php required and in user.php optional!
// See http://www.anpera.net/forum/viewforum.php?f=27 for details

// MOD by tcb, 11.5.05: neues Heiratssytem, Details s. tempel.php
// Schaukel-Addon, 26.08.06 by Maris (Maraxxus [-[at]-] gmx.de)

require_once 'common.php';
require_once(
LIB_PATH.'profession.lib.php');

page_header('Der Garten');

music_set('garten');

if (
$_GET['op']=='swing')
{
    
music_set('schaukel');
    
addcommentary();
    
checkday();
    
$str_output .= '`c`b`GDie Gartenschaukel`0`b`c
    `n`n`gIm hinteren Teil des Gartens, nahe einer romantischen Laube, befindet sich an mächtigen Pfählen angebracht eine große Schaukel. Sie ist wohl stabil genug, um auch den kräftigsten Troll zu tragen, allerdings bietet sie nur Platz für eine einzige Person. Du kannst dich hier auf den Bänken niederlassen, es dir in der Laube gemütlich machen oder gar einen Schaukelgang wagen.`n`n`0'
;
    
viewcommentary('gardens_swing','Flüstern',30,'flüstert');

}
elseif (
$_GET['op']=='rosengarten')
{
    
page_header('Der Rosengarten');
    
addcommentary();
    
checkday();
    
$str_output .= '`c`b`GDer Rosengarten`0`b`c
    `n`gWenn man den Weg weiter geht, der über die Kleine Brücke im Garten geführt hat, betritt man einen Ort der von den Jahreszeiten unberührt zu sein scheint. Rosenbüsche und -hecken blühen hier das ganze Jahr über. Die Farben sind vielfällig und der Duft ist an manchen Büschen durch aus betörend. Der kleine Weg der durch ihn hindruch führt, endet bei einem Pavillon der umrankt von Rosen zum ausruhen und genießen des Anblickes einläd, der sich an diesem magischen Ort bietet.`n`n`0'
;
    
viewcommentary('rosengarden','Flüstern',30,'flüstert');

}
elseif (
$_GET['op']=='flirt1')
{

    
$str_output .= get_title('`GFlirten');
    if (
$session['user']['seenlover'])
    {
        
$sql "SELECT name FROM accounts WHERE locked=0 AND acctid=".$session['user']['marriedto'];
        
$result db_query($sql);
        
$row db_fetch_assoc($result);
        
$partner=$row['name'];
        if (
$partner=='')
        {
            
$partner $session['user']['sex']?'`9D`wa`Fri`wa`9n`0':'`lN`Lo`Xel`Ll`le`0';
        }
        
$str_output .= '`gDu wanderst durch den Garten und bist voller Vorfreude auf eine romantische Begegnung mit deine'.($session['user']['sex']?'m':'r').' Auserwählten, doch deine Gedanken
        schweifen immer wieder ab. Da du heute bereits einen Flirt mit einer Person hattest, kannst du dich nicht auf dieses Treffen konzentrieren, so dass das gewisse Etwas nun einfach fehlt. Warte lieber bis morgen, wenn du den Kopf wieder frei hast!'
;
    }
    else
    {

        require_once(
LIB_PATH.'jslib.lib.php');

        
$charmdiff=$session['user']['dragonkills']*2+23//neue Charmedifferenz: 23 Basiswert + 2 pro Drachen

        
if (isset($_POST['search']) || strlen($_GET['search'])>0)
        {
            if (
strlen($_GET['search'])>0)
            {
                
$_POST['search']=$_GET['search'];
            }
            
$search str_create_search_string($_POST['search']);
            
$search='name LIKE \''.$search.'\' AND ';
        }
        else
        {
            
$search='';
        }
        
$ppp=25// Player Per Page to display
        
if (!$_GET['limit'])
        {
            
$page=0;
        }
        else
        {
            
$page=(int)$_GET['limit'];
            
addnav('Vorherige Seite','gardens.php?op=flirt1&limit='.($page-1).'&search='.$_POST['search']);
        }
        
$limit=($page*$ppp).','.($ppp+1);
        if (
$session['user']['marriedto']==4294967295)
        {
            
$str_output .= '`gDu denkst nochmal über deine Ehe mit '.($session['user']['sex']?'`9D`wa`Fri`wa`9n`0':'`lN`Lo`Xel`Ll`le`0').' nach und überlegst, ob du '.($session['user']['sex']?'ihn':'sie').' in der Kneipe besuchen sollst oder für wen du diese Ehe aufs Spiel setzen würdest.`n';
        }
        if(
$session['user']['charisma']==4294967295)
        {
            
$str_output .= '`gDu überlegst dir, dass du dir mal wieder etwas Zeit für '.($session['user']['sex']?'deinen Mann':'deine Frau').' nehmen solltest. Während du '.($session['user']['sex']?'ihn':'sie').' im Garten suchst, stellst du aber fest, dass der Rest der '.($session['user']['sex']?'Männer':'Frauen').' hier auch nicht zu verachten ist.`n';
        }
        
$str_output .= '`gFür wen entscheidest du dich?`n`n`0';
        
$str_output .= "<form action='gardens.php?op=flirt1' method='POST'>
        `gNach Name suchen:`0
        <input name='search' value='
$_POST[search]'>
        <input type='submit' class='button' value='Suchen'>
        </form>"
;
        
addnav('','gardens.php?op=flirt1');

        
$bool_lockhtml $access_control->su_check(access_control::SU_RIGHT_LOCKHTML); //unnötigen JOIN vermeiden
        
$sql 'SELECT    accounts.name,
                    accounts.login,
                    accounts.acctid,
                    accounts.loggedin,
                    accounts.laston,
                    accounts.imprisoned,
                    accounts.activated,
                    accounts.expedition,
                    accounts.dragonkills,
                    accounts.sex,
                    accounts.race,
                    accounts.marriedto,
                    accounts.charisma,
                    accounts.charm
                    '
.($bool_lockhtml ',aei.html_locked' '').'
                    FROM accounts
                    '
.($bool_lockhtml 'INNER JOIN account_extra_info aei ON accounts.acctid=aei.acctid' '').'
                    WHERE     '
.$search.'
                            (locked=0) AND
                            /*(sex <> '
.$session['user']['sex'].') AND // Auskommentiert von Shaiya 2.4.10 */
                            (alive=1 OR hitpoints>0) AND
                            (laston > "'
.date('Y-m-d H:i:s',strtotime(date('r').'-7 day')).'" OR (charisma=4294967295 AND accounts.acctid='.$session['user']['marriedto'].') )
                    ORDER BY (accounts.acctid='
.$session['user']['marriedto'].') DESC, 
                            charm DESC
                    LIMIT '
.$limit;
        
$result db_query($sql);

        
$str_output .= "<table border='0' cellpadding='3' cellspacing='0'>
            <tr class='trhead'>
            <th></th>  
            <th>Name</th>
            <th>Alter(DK)</th>
            <th>Rasse</th>
            <th>Status</th>
            <th>Aktion</th>
            </tr>"
;
            
// Originalzeile Auskommentiert von Shaiya 2.4.10
        /*$str_output .= "<table border='0' cellpadding='3' cellspacing='0'>
            <tr class='trhead'>
            <th>".($session['user']['sex']?"<img src=\"images/male.gif\">":"<img src=\"images/female.gif\">")."</th>  
            <th>Name</th>
            <th>Alter(DK)</th>
            <th>Rasse</th>
            <th>Status</th>
            <th>Aktion</th>
            </tr>";*/
        
if (db_num_rows($result)>$ppp)
        {
            
addnav('Nächste Seite','gardens.php?op=flirt1&limit='.($page+1).'&search='.$_POST['search']);
        }

        
// Rassen abrufen
        
$arr_races db_create_list(db_query('SELECT colname,id FROM races'),'id');

        
$count db_num_rows($result);
        for (
$i=0;$i<$count;$i++)
        {
            
$row db_fetch_assoc($result);
            
$biolink='bio.php?char='.rawurlencode($row['login']).'&ret='.urlencode($_SERVER['REQUEST_URI']);
            
addnav(''$biolink);
            
$flirtnum=min($session['user']['charisma'],$row['charisma']);
            
            
            
$str_output .= '<tr valign="top" class="'.($i%2?'trlight':'trdark').'">
            <td>'
.($row['sex']?"<img src=\"images/female.gif\">":"<img src=\"images/male.gif\">").'</td>
            <td>'
.jslib_getmenuuserlink$row$rowtrue ).'`0</td>
            <td align="center">'
.$row['dragonkills'].'</td>
            <td align="center">'
.$arr_races[$row['race']]['colname'].'`0</td>
            <td align="center">'
;
            
//Originalzeile Auskommentiert von Shaiya 2.4.10
            /*$str_output .= '<tr valign="top" class="'.($i%2?'trlight':'trdark').'">
            <td>&nbsp;</td>
            <td>'.jslib_getmenuuserlink( $row, $row, true ).'`0</td>
            <td align="center">'.$row['dragonkills'].'</td>
            <td align="center">'.$arr_races[$row['race']]['colname'].'`0</td>
            <td align="center">';*/
            
if ($session['user']['acctid']==$row['marriedto'] && $session['user']['marriedto']==$row['acctid'])
            {
                if (
$session['user']['charisma']==4294967295 && $row['charisma']==4294967295)
                {
                    
$str_output .= '`@`bDein'.($row['sex']?'e Frau':' Mann').'!`b`n`n`0';
                }
                else if (
$flirtnum==999)
                {
                    
$str_output .= '`$Heiratsantrag!`0';
                }
                else
                {
                    
$str_output .= '`^'.$flirtnum.' von '.$session['user']['charisma'].' Flirts erwidert!`0';
                }
            }
            else if (
$session['user']['acctid']==$row['marriedto'])
            {
                
$str_output .= 'Flirtet '.$row['charisma'].' mal mit dir';
            }
            else if (
$session['user']['marriedto']==$row['acctid'])
            {
                
$str_output .= 'Deine letzten '.$session['user']['charisma'].' Flirts';
            }
            else if (
$row['marriedto']==4294967295 || $row['charisma']==4294967295)
            {
                
$str_output .= '`q`iVerheiratet`i`0';
            }
            else if (
$row['charisma']==999)
            {
                
$str_output .= '`q`iVerlobt`i`0';
            }
            
// Auskommentiert von Shaiya (=> keine Charmpunkteabfrage) 2.4.10
            //else if ($row['charm']>$session['user']['charm']+$charmdiff)
            //{
            //    $str_output .= 'unerreichbar schön';
            //}
            //else if ($row['charm']<$session['user']['charm']-$charmdiff)
            //{
            //    $str_output .= 'zu unscheinbar';
            //}
            
else
            {
                
$str_output .= '-';
            }
            
//$str_output .= '</td><td>[ <a href="'.$biolink.'">Bio</a> | <a href="gardens.php?op=flirt&name='.rawurlencode($row['login']).'">Flirten</a> ]</td></tr>';
            
$str_output .= '</td><td>[<a href="gardens.php?op=flirt&id='.rawurlencode($row['acctid']).'"> Flirten</a> ]</td></tr>'//hinzugefügt von Shaiya 2.4.10
            
$str_output .= '</td></tr>';
            
addnav('','gardens.php?op=flirt&id='.$row['acctid']);
        }
        
$str_output .= '</table>';

        
$js_add '
            function JSLIB_FLIRT(){
                window.location.href = "gardens.php?op=flirt&id=" + g_user_menu.m_pl.m_id;
            }'
;
        
$js_afterinit 'g_user_menu.insertItem(1, new LOTGD.MenuItem( {label: "Flirten", icon: "images/herz.gif", action: JSLIB_FLIRT} ) );';
        
jslib_initmenu$js_add$js_afterinit );
    }
}

else if (
$_GET['op']=='flirt')
{
    
$flirt_inc_style='gardens'
    
//alle Aktionen nach flirt.inc.php ausgelagert. Texte für output und Systemmails hier definieren.
    
$flirtmail_subject='`%Gartenflirt!`0';
    
$flirtmail_body='`&'.$session['user']['name'].'`6 hat mit dir einige wunderschöne Momente im Garten verbracht';
    
$flirtlocation=' im Garten ';
    
$str_output_noturns .= '`gAls {flirt_name} `gendlich im Garten auftaucht, fühlst du dich plötzlich vom vielen Kämpfen so erledigt und geschwächt, dass du es für besser hältst, mit dem Flirten bis morgen zu warten.`nDu hast deine Runden für heute aufgebraucht. ';
    
$bool_flirtaffianced=true;
    include (
'flirt.inc.php');
}

else if (
$_GET['op']=='disband')
//Verlobung lösen
    
$str_output .= '`gDrum prüfe wer sich ewig bindet, ob sich nicht noch was bess\'res findet.`n`4Du löst deine Verlobung mit '.$session['disband']['oldname'].'`4 auf`g und hoffst, dass '.$session['disband']['newname'].'`0 auf dein Werben reagiert.`n`n(Falls du beim Dinner warst, kannst du jetzt wieder hineingehen)';
    
systemmail($session['user']['marriedto'],'`$Trennung!`0','`&'.$session['user']['name'].'`6 erklärt dir kurz und unmissverständlich, dass '.($session['user']['sex']?'sie':'er').' nicht mehr länger mit dir verlobt sein will.`nTraurig stellst du fest dass '.($session['user']['sex']?'sie':'er').' dich für '.$session['disband']['newname'].'`6 verlassen hat.');
    
addhistory('`tTrennung von '.$session['user']['name'],1,$session['user']['marriedto']);
    
addhistory('`tTrennung von '.$session['disband']['oldname'],1,$session['user']['acctid']);

    
user_update(
        array
        (
            
'charisma'=>0,
            
'marriedto'=>0
        
),
        
$session['user']['marriedto']
    );
    
    
systemmail($_GET['acctid'],'`%Flirt!`0','`&'.$session['user']['name'].'`6 hat mit dir einige wunderschöne Momente im Garten verbracht.');
    
$session['user']['charisma']=1;
    
$session['user']['seenlover']=1;
    
$session['user']['marriedto']=$_GET['acctid'];
    unset(
$session['disband']);
}

else if (
$_GET['op']=='su_reset_marriedto')
//Bugfix: Jeder Verlobte darf nur 1 User haben der seine acctid in marriedto hat
    
$sql='SELECT acctid,marriedto
        FROM accounts
        WHERE charisma >998
        ORDER BY acctid'
;
    
$result=db_query($sql);
    while (
$row=db_fetch_assoc($result))
    {
        
user_update(
            array
            (
                
'charisma'=>0,
                
'marriedto'=>0,
                
'where'=>'acctid<>'.$row['marriedto'].' AND marriedto='.$row['acctid']
            )
        );

        
$db_rows=db_affected_rows();
        if(
$db_rows>0)
        {
            
$str_output.='acctid '.$row['acctid'].': '.$db_rows.' Einträge gelöscht`n';
        }
    }
    
$str_output.='Fertig.';
}

else
{
    
addcommentary();
    
checkday();

    
$show_invent true;

    
//$str_output .= '`c`b`GDer `ORosen`Ggarten`0`b`c`n';
    //$str_output .= '`c`b`GDer Garten`0`b`c`n';
    
if (!$session['user']['prefs']['nosounds'])
    {
        
$str_output .= '<embed src="media/vogel.wav" width=10 height=10 autostart=true loop=false hidden=true volume=100>';
    }
    
/*$str_output .= '`gIn unmittelbarer Nähe zum Dorfplatz liegt der Rosengarten '.getsetting('townname','Atrahor').'s, der durch besondere Zauber das ganze Jahr über blüht und grünt.
    Es herrscht eine vollkommene, himmlische Stille; nur die Blätter der Bäume rascheln leise und das Gras wiegt sich sanft im Wind, als tanze es nach einer lieblichen Melodie.
    An manchen Stellen ist das leise Plätschern des silbrig schimmernden Baches zu hören, der sich anmutig durch den Garten schlängelt. Rosensträucher blühen in prächtigen Farben und säumen die einfachen Kieswege, die zum kleinen Tempel und dem Geschenkeladen führen.
    Gut versteckt hinter den Sträuchern und Bäumen sind im Garten viele vereinzelte Bänke aufgestellt, um den Liebenden des Dorfes traute Zweisamkeit zu zaubern. ';*/
    // Bild mit Ramen mit Copyright
    
if ($session['user']['prefs']['noimg']==0)
    {
        
$str_output '`n`c'.print_frame(('<img src="images/rporte/garden.jpg" border="0" title="© ithil-lotgd.de">'),'Der Garten',0,true).'`c`n';
    
//output($str_out);
    
}
    
/*$str_output .= 'Ein kleiner Weg schlängelt sich vom Dorfplatz durch ein kleines eisernes Tor. Jedoch ist keine Mauer vorhanden, sondern eine Hecke aus Büschen begrenzt den kleinen Garten der auf einer Waldlichtung angelegt wurde. Der Weg der durch den Garten führt ist von hellem Kies und kleine Hecken grenzen die Wege von dem Grünflächen ab welche sicher an warmen Tagen zum faulenzen einladen. Durch die Wiesen fließt ein kleiner Bach, gesäumt von einige Bäumen. Eine kleine Brücke lädt dazu ein ihn zu über queren und den Garten weiter zu erkunden.. ';
    */
    
$str_output .='`c`b`?D`Re`rr `yG`ga`@r`Ýt`jen`b`c
`n
`?Es i`Rst e`rin k`ylei`gner`@, un`Ýbef`jestigter Pfad, der sich vom Dorfplatz wegschlängelt und einen vor ein kleines Eisentor führt, welches statt von einer Mauer von hohen Hecken umgeben wird. Sie begrenzen einen kleinen Garten, welcher auf einer hellen Lichtung inmitten des Waldes angelegt wurde. Die Wege, die durch den Garten führen sind aus hellem Kies und von kleinen Büschen gesäumt, wodurch sie klar von den großzügigen Grünflächen getrennt sind. Nicht nur entlang der Grenzen, sondern auch vereinzelt auf den Wiesen stehen Bäume und werfen ihre Schatten. Das macht diesen Ort zu einem wunderschönen Rastplatz, der zum Faulenzen und Verweilen einläd. Die Idylle wird nicht nur von Vogelgezwitscher und dem leichten Rauschen des Windes, sondern auch vom Plätschern eines Baches unterstrichen. Eine kleine Brücke aus Stein führt über das bewegte Wasser und erlaubt, den restlichen Teil des Gartens zu erkunden, welcher etwa`Ýs di`@cht`ger b`yewa`rchs`Ren i`?st.'
;
    if(
$session['user']['exchangequest']==3//Tauschquest
    
{
        
$indate getsetting('gamedate','0005-01-01');
        
$date explode('-',$indate);
        if (
$date[1]==&& $date[2]<10)
        {
            
$str_output.='`n`%Auf einer Bank siehst du ein Mädchen sitzen, welches sinnlose Reime vor sich hin spricht. Sie sieht hübsch aus, aber du kannst dich nicht daran erinnern, sie schon einmal gesehen zu haben.`g ';
            
addnav('M?`%Gehe zu dem Mädchen','exchangequest.php');
        }
    }
    
$str_output .= '`n`n`0';
    
viewcommentary('gardens','Hier flüstern',30,'flüstert');

    
//Gartenspecials laden
    
spc_get_special('gardens',70,'',array('op'));

    
addnav('Liebesdinge');
    
addnav('Flirten','gardens.php?op=flirt1');
    if(
$session['user']['marriedto']>&& $session['user']['marriedto'] < 4294967295)
    { 
        if(
$session['user']['charisma']>=999 && $session['user']['seenlover']==0)
        { 
//Schnellflirt
            
addnav('Quickie','gardens.php?op=flirt&id='.$session['user']['marriedto']);
        }
    }
    
addnav('Orte');
    
addnav('Tempel','tempel.php');
    
addnav('S?Zur Schaukel','gardens.php?op=swing');
    
addnav('W?Zur Wolkeninsel','wolkeninsel.php');
    
addnav ('H?Zur geheimnisvollen Höhle''geheimnisvolleHoehle.php?op=eingang');
    
addnav ('H?Zum Rosengarten''gardens.php?op=rosengarten');
    
addnav ('Tempel des Adron''tempel_adron.php');
    
addnav('Der Garten');
    
addnav('Geschenkeladen','newgiftshop.php');
    
addnav('Drachenhöhle','weiserdrache.php'); 
    
addnav('Nymphe suchen','nymphe.php'); 
    if(
item_get(' owner='.$session['user']['acctid'].' AND tpl_id="beet" ',false))
    {
        
addnav('Blumenbeet','flowers.php');
    }
    
addnav('Tiefer in den Garten','treeoflife.php');
    
//if($access_control->su_check(access_control::SU_RIGHT_DEV)) addnav('marriedto-Einträge prüfen','gardens.php?op=su_reset_marriedto');
    
addnav('Zurück');
}

if(
$_GET['op'])
{
    
addnav('G?Zurück zum Garten','gardens.php');
}
addnav('Zurück zum Dorf','village.php');
headoutput($str_output,true);
page_footer();
?>
0.9.7(DS V3) Ithil-Edition