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: 384: 385: 386: 387: 388: 389: 390: 391: 392: 393: 394: 395: 396: 397: 398: 399: 400: 401: 402: 403: 404: 405: 406: 407: 408: 409: 410: 411: 412: 413: 414: 415: 416: 417: 418: 419: 420: 421: 422: 423: 424: 425: 426: 427: 428: 429: 430: 431: 432: 433: 434: 435: 436: 437: 438: 439: 440: 441: 442: 443: 444: 445: 446: 447: 448: 449: 450: 451: 452: 453: 454: 455: 456: 457: 458: 459: 460: 461: 462: 463: 464: 465: 466: 467: 468: 469: 470: 471: 472: 473: 474: 475: 476: 477: 478: 479: 480: 481: 482: 483: 484: 485: 486: 487: 488: 489: 490: 491: 492: 493: 494: 495: 496: 497: 498: 499: 500: 501: 502: 503: 504: 505: 506: 507: 508: 509: 510: 511: 512: 513: 514: 515: 516: 517: 518: 519: 520: 521: 522: 523: 524: 525: 526: 527: 528: 529: 530: 531: 532: 533: 534: 535: 536: 537: 538: 539: 540: 541: 542: 543: 544: 545: 546: 547: 548: 549: 550: 551: 552: 553: 554: 555: 556: 557: 558: 559: 560: 561: 562: 563: 564: 565: 566: 567: 568: 569: 570: 571: 572: 573: 574: 575: 576: 577: 578: 579: 580: 581: 582: 583: 584: 585: 586: 587: 588: 589: 590: 591: 592: 593: 594: 595: 596: 597: 598: 599: 600: 601: 602: 603: 604: 605: 606: 607: 608: 609: 610: 611: 612: 613: 614: 615: 616: 617: 618: 619: 620: 621: 622: 623: 624: 625: 626: 627: 628: 629: 630: 631: 632: 633: 634: 635: 636: 637: 638: 639: 640: 641: 642: 643: 644: 645: 646: 647: 648: 649: 650: 651: 652: 653: 654: 655: 656: 657: 658: 659: 660: 661: 662: 663: 664: 665: 666: 667: 668: 669: 670: 671: 672: 673: 674: 675: 676: 677: 678: 679: 680: 681: 682: 683: 684: 685: 686: 687: 688: 689: 690: 691: 692: 693: 694: 695: 696: 697: 698: 699: 700: 701: 702: 703: 704: 705: 706: 707: 708: 709: 710: 711: 712: 713: 714: 715: 716: 717: 718: 719: 720: 721: 722: 723: 724: 725: 726: 727:
|
<?php /****************************************************** * Autor: Salator (salator [-[at]-] gmx.de) * inspired by G.Samsa (sorry, dein Script ist schon beim Lesen durchgefallen) * lotgd-Version Dragonslayer V2.5 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +Beschreibung: +Ein Friedhof, auf dem man für seine Angehörigen und Freunde trauern kann, +um ihnen das leben in der Unterwelt zu erleichtern +oder raube das Grab aus... +Enthält Ruhmeshalle gelöschter Charaktere +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
************ *Anleitung:* ************
SQL-Befehl in PHPmyAdmin ausführen:
CREATE TABLE `valhalla` ( `acctid` int(11) NOT NULL default '0', `name` varchar(255) collate latin1_german1_ci NOT NULL default '', `birth` date NOT NULL default '0000-00-00', `death` date NOT NULL default '0000-00-00', `dragonkills` tinyint(11) NOT NULL default '0', `sex` tinyint(3) NOT NULL default '0', `race` char(3) collate latin1_german1_ci NOT NULL default '', `bio` text collate latin1_german1_ci NOT NULL, `comments` text collate latin1_german1_ci NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci COMMENT='Ruhmeshalle gelöschter Charaktere'; INSERT INTO `settings` ( `setting` , `value` ) VALUES ('famous_deleted_chars_min_DKs', '30');
Öffne lib/user.lib.php ´´´´´´´´´´´´´´´ suche: function user_delete ($uid) { Füge nach den Zeilen $acc = db_fetch_assoc(db_query($sql)); $acc['tmpname'] = ($acc['cname'] ? $acc['cname'] : $acc['login']); ein: //User in Valhalla speichern if($acc['dragonkills'] >= getsetting('famous_deleted_chars_min_DKs',30)) { $sql='SELECT a.acctid,name,race,dragonkills,sex,aei.long_bio AS bio,birthday AS birth FROM accounts a LEFT JOIN account_extra_info aei USING(acctid) WHERE a.acctid='.$uid.' AND locked=0'; $result=db_query($sql); if(db_num_rows($result)) { $row=db_fetch_assoc($result); $row['death'] = getsetting('gamedate','0005-01-01'); $row['bio']=strip_tags($row['bio']); db_insert('valhalla',$row); } } */
require_once("common.php"); require_once(LIB_PATH.'board.lib.php'); require_once(LIB_PATH.'picture.lib.php');
page_header('Der Friedhof'); addcommentary(); music_set('friedhof'); //Mendelssohn-Trauermarsch, Chopin-MarcheFunebre $ppp=30; if (!$_GET['limit']) { $page=0; } else { $page=(int)$_GET['limit']; } $limit=''.($page*$ppp).','.($ppp); switch ($_GET['op']) { //-----------Listen von Toten case 'dead': //derzeit tote { $sql = 'SELECT acctid,name,level,sex,deathpower, IF('.user_get_online().',"`@Online`0","`4Offline`0") AS loggedin FROM accounts WHERE alive = 0 AND hitpoints=0 AND dragonkills '.($_GET['type']?'>':'=').' 0 AND restatlocation = 0 ORDER BY laston DESC, dragonkills DESC LIMIT '.$limit; if($_GET['type']==1) { $str_out='`kDu gehst einen der Seitenwege entlang, in den Bereich des Friedhofs wo sich die neuesten Gräber befinden. Hier gibt es außer frischen Gräbern nicht viel zu sehen. Zwar entdeckst du auf einigen Gräbern wertvolle Grabbeigaben, du weißt jedoch, dass die Herrin jene straft, die es wagen, Dinge von den Gräbern zu entwenden.'; } else { $str_out='`kDu begibst dich in den Bereich des Friedhofs in dem die jüngsten und unerfahrensten Einwohner '.getsetting('townname','Atrahor').'s begraben sind. Noch so jung, und hatten doch keine Chance im rauhen Alltag...'; } $str_out.='`n`yAuf schlichten Holztafeln stehen die Namen der Verstorbenen: `n`n`0`c<table cellpadding=2 cellspacing=1 bgcolor=\'#999999\' align=\'center\'> <tr class=\'trhead\'> <th> # </th> <th>Name des Toten</th> <th>m/w</th> <th>online</th> </tr>';
$result = db_query($sql); if ($page>0) addnav('Vorherige Seite','friedhof.php?op=dead&type='.$_GET['type'].'&limit='.($page-1)); if (db_num_rows($result)>($ppp-1)) addnav('Nächste Seite','friedhof.php?op=dead&type='.$_GET['type'].'&limit='.($page+1)); if (!db_num_rows($result)) { $str_out.='<tr class=\'trdark\'><td colspan=4 align=\'center\'>Hier ruht niemand.</td></tr>'; } else { while ($row = db_fetch_assoc($result)) { $bgclass = ($bgclass=='trdark'?'trlight':'trdark'); $i++; $str_out.='<tr class="'.$bgclass.'"><td align=center>'; $str_out.=$page*$ppp+$i; $str_out.='</td><td>'; $str_out.='<a href="friedhof.php?op=viewgrave&acctid='.$row['acctid'].'&type='.$_GET['type'].'&limit='.$page.'">'.$row['name'].'</a>'; $str_out.='</td><td align=center>'; $str_out.=($row['sex']?'<img src="images/female.gif">':'<img src=images/male.gif>'); $str_out.='</td><td>'; $str_out.=$row['loggedin']; $str_out.='</td></tr>'; addnav('','friedhof.php?op=viewgrave&acctid='.$row['acctid'].'&type='.$_GET['type'].'&limit='.$page); } } output($str_out.'</table>`c'); break; } case 'valhalla': //gelöschte Chars { //music_set('valhalla'); //Hekate-Der Nibelunge Nôt $sql = 'SELECT * FROM valhalla '; //$sql.='WHERE dragonkills'.($_GET['type']?'>=':'<').'100 '; //Vorbereitung für die Unterscheidung zwischen Valhalla und Folkvang $sql.='ORDER BY dragonkills DESC LIMIT '.$limit; $result = db_query($sql); if ($page>0) { addnav('Vorherige Seite','friedhof.php?op=valhalla&type='.$_GET['type'].'&limit='.($page-1)); } if (db_num_rows($result)>($ppp-1)) { addnav('Nächste Seite','friedhof.php?op=valhalla&type='.$_GET['type'].'&limit='.($page+1)); } if($_GET['type']==1) { $str_out='`c`b`2Walhalla`0`b`c `n`k Ehrfürchtig betrittst du die große, reich verzierte Halle. Hier wurde den berühmtesten Helden vergangener Zeiten ein Denkmal gesetzt.'; } else { $str_out='`c`b`2Folkvang`0`b`c `n`k Ehrfürchtig betrittst du die große Halle. Hier wurde den großen Helden vergangener Zeiten ein Denkmal gesetzt.'; } $str_out.='`n`n`0`c<table cellpadding=2 cellspacing=1 bgcolor="#999999" align="center"><tr class="trhead"><td>Grabstein</td><td>Name des Toten</td>'; if($access_control->su_check(access_control::SU_RIGHT_EDITORUSER)) { $str_out.='<td>Op</td></tr>'; } if (!db_num_rows($result)) { $str_out.='<tr class="trdark"><td colspan="3" align="center">Es gibt noch keine ruhmreichen Helden.</td></tr>'; } else { while ($row = db_fetch_assoc($result)) { $bgclass = ($bgclass=='trdark'?'trlight':'trdark'); $i++; $str_out.='<tr class='.$bgclass.'><td>'; $str_out.=$page*$ppp+$i; $str_out.='</td><td>'; $str_out.='<a href="friedhof.php?op=view&type='.$_GET['type'].'&acctid='.$row['acctid'].'&limit='.$page.'">'.$row['name'].'</a>'; $str_out.='</td>'; addnav('','friedhof.php?op=view&type='.$_GET['type'].'&acctid='.$row['acctid'].'&limit='.$page); if($access_control->su_check(access_control::SU_RIGHT_EDITORUSER)) { $str_out.='<td><a href="friedhof.php?op=del_user&type='.$_GET['type'].'&acctid='.$row['acctid'].'">del</a></td>'; addnav('','friedhof.php?op=del_user&type='.$_GET['type'].'&acctid='.$row['acctid']); } $str_out.='</tr>'; } if($session['user']['exchangequest']==18) { addnav('`%Tote beschwören`0','exchangequest.php'); } } output($str_out.'</table>`c'); break; } //--------------- der Tempel case 'temple': //Zeremonientempel { output('`c`b`2Das Mausoleum`0`b`c `n`kEhrfurchtsvoll betrittst du das Mausoleum. Es ist im gotischen Spitzbogen-Stil gebaut. Durch die schmalen, bunt verglasten Fenster an den Seitenwänden fällt etwas Tageslicht in den Raum. Geradewegs führt ein Gang an Sitzbänken vorbei direkt zum Altar. `nAuf der linken Seite entdeckst du einen kleinen Stand, an dem Blumen verkauft werden.`n`n'); viewcommentary("friedhof_temple","Leise sprechen",25,"spricht leise"); if($session['user']['profession']==PROF_PRIEST || $session['user']['profession']==PROF_PRIEST_HEAD || $session['user']['profession']==PROF_WITCH || $session['user']['profession']==PROF_WITCH_HEAD || $access_control->su_check(access_control::SU_RIGHT_DEBUG)) { addnav('Priester-Raum','friedhof.php?op=priestroom'); } addnav ('A?Zum Altar','friedhof.php?op=alter'); addnav ('Blumen kaufen (100 Gold)','friedhof.php?op=buyflowers'); break; } case 'priestroom': //Priesterraum { output('`kVor dem Tod sind alle gleich. Also kommen auch hier Priester, Hexen und Schamanen aller Gesinnungen zusammen um Angehörigen ihrer Glaubensrichtung zur letzten Ruhestätte zu begleiten. `nHier in diesem kleinen Hinterzimmer können in Ruhe Vorbereitungen für die Zeremonie getroffen werden.`n'); viewcommentary('graveyard_priestroom'); addnav('Begräbnis-Ankündigung','friedhof.php?op=board1'); addnav('M?Zum Mausoleum','friedhof.php?op=temple'); break; } case 'board1': //Ankündigung der nächsten Begräbnisse { output('`kSchwarzes Brett für die nächste Begräbniszeremonie, der neueste Text wird am Altar angezeigt. `n`n`&Format: Name, (Zeilenumbruch), weitere Infos wie Datum der Zeremonie.`n'); board_view_form('Eintragen','`&Deine Planung (bitte nur eine):'); if($_GET['board_action'] == "add") { board_add('friedhof'); redirect('friedhof.php?op=board1'); } output('`n`n'); board_view('friedhof',2, '`^An der Tafel hängen diese Ankündigungen:', '`^Kein Begräbnis geplant.'); addnav('Priester-Raum','friedhof.php?op=priestroom'); addnav('M?Zum Mausoleum','friedhof.php?op=temple'); break; } case 'alter': //demnächst zu begrabende { $sql = 'SELECT accounts.name, DATEDIFF(NOW(),laston) AS data1 FROM accounts WHERE locked=0 AND DATEDIFF(NOW(),laston) <= '.getsetting('expireoldacct',50).' ORDER BY data1 DESC, dragonkills DESC LIMIT 1'; $result=db_query($sql); $row=db_fetch_assoc($result); $daysleft=getsetting('expireoldacct',50)-$row['data1']; $nomsg='`k'.$row['name'].'`k. Die Trauerfeier findet '.($daysleft>0?'in '.$daysleft.' Tagen':'heute').' im engsten Familienkreis statt.'; output('`kAuf dem Altar steht ein geöffneter Sarg. Darin befindet sich die sterbliche Hülle von '); board_view('friedhof',($access_control->su_check(access_control::SU_RIGHT_COMMENT))?2:1,'',$nomsg,false,false,false,false,1); addnav('M?Zum Mausoleum','friedhof.php?op=temple'); break; } case 'buyflowers': //1 Gefallen kaufen { output('`kGleich links neben dem Eingang befindet sich ein Stand mit Schnittblumen. Damit verdient sich der Totengräber ein kleines Zubrot.`n Diese Sträuße kannst du auf den Gräbern deiner liebsten Verblichenen verteilen und ihr Grab verschönern.`n'); if($session['user']['gold']>=100) { $session['user']['gold']-=100; $session['graveflowers']++; output('Also suchst du dir einen schönen Strauß aus und legst 100 Goldstücke in die Kasse.'); } else output('Leider hast du keine 100 Goldstücke dabei.'); addnav('M?Zum Mausoleum','friedhof.php?op=temple'); break; } //--------- Grab-Aktionen case 'viewgrave': //Grab näher betrachten { $sql='SELECT name,deathpower,loggedin,specialmisc,newstext,pvpflag FROM news LEFT JOIN accounts ON accountid=acctid WHERE acctid='.intval($_GET['acctid']).' AND newstext NOT LIKE "%erniedrigt%" ORDER BY newsid DESC LIMIT 1'; $row=db_fetch_assoc(db_query($sql)); output('`kDu betrachtest das Grab von '.$row['name'].'`k. Hier kannst du um einen lieben Mitbürger trauern. Blumen und Kränze kannst du im Tempel erwerben.`nOder willst du lieber das Grab plündern?`n`nDie Vögel zwitschern dir zu, warum '.$row['name'].'`k gestorben ist:`n`^'.$row['newstext'].'`n`kNatürlich können sich auch Vögel mal irren...'); // admin_output('`n`WSU: Gefallen: '.$row['deathpower'],false); if($session['graveflowers']>0) { addnav('Blumen ablegen','friedhof.php?op=flowers&type='.$_GET['type'].'&limit='.$page.'&acctid='.$_GET['acctid']); } addnav('Totenwache','friedhof.php?op=wake&type='.$_GET['type'].'&acctid='.$_GET['acctid']); addnav(':'); if($row['loggedin']==0 && $session['user']['playerfights']>0 && $session['user']['turns']>0 && $session['user']['gravefights']>=3 && $_GET['type']==1) { $atk=$row['deathpower']; if($row['specialmisc']=='tombraid.php' || $row['pvpflag']==PVP_IMMU) { $atk=1; } addnav('p?Grab plündern','friedhof.php?op=tombraid&atk='.$atk.'&acctid='.$_GET['acctid']); addnav(':'); } addnav('G?Weitere Gräber','friedhof.php?op=dead&type='.$_GET['type'].'&limit='.$page); $session['graveid']=$_GET['acctid']; break; } case 'flowers': //Blumen ablegen { $session['daily']['graveflowers']++; $session['graveflowers']--; $sql='SELECT acctid,name,sex,deathpower,marks FROM accounts WHERE acctid='.intval($_GET['acctid']); $row=db_fetch_assoc(db_query($sql)); output('`kDu legst eine Blume auf das Grab und trauerst eine Weile um '.$row['name'].'`k...`n'); if(($row['deathpower']<80 || ($row['deathpower']<100 && $row['marks']<CHOOSEN_FULL)) && ac_check($row) == false && e_rand(1,$session['daily']['graveflowers'])<5) { $row['deathpower']++; user_update( array ( 'deathpower'=>$row['deathpower'], ), $_GET['acctid'] ); debuglog('legte eine Blume auf das Grab von',$row['acctid']); if ($row['deathpower']==100 || ($row['deathpower']==80 && $row['marks']>=CHOOSEN_FULL)) { output('`$Ramius`k ist gerührt von deiner Liebe zu '.$row['name'].'`k und beschließt, '.($row['sex']?'ihr':'ihm').' noch eine Chance zu geben.`n'); } } addnav('Zum Grab','friedhof.php?op=viewgrave&type='.$_GET['type'].'&limit='.$_GET['limit'].'&acctid='.$_GET['acctid']); break; } case 'wake': //Totenwache { if ($session['graveid']) { output('`kDu überlegst dir, ob du nicht das Grab vor gemeinen Grabräubern schützen möchtest.`nDazu müsstest du dein Nachtlager hier aufschlagen und bist für jeden angreifbar.`nWillst du das?'); addnav('Logout','login.php?op=logout'); addnav('Zum Grab','friedhof.php?op=viewgrave&type='.$_GET['type'].'&limit='.$_GET['limit'].'&acctid='.$_GET['acctid']); } else //eigentlich unnötig, Login ist auf der News-Seite { output('`kDu beendest die Totenwache.'); } break; } case 'tombraid': //Grab plündern - 1. Kampf, 2. Totenwächter?, 3. was klauen { $step=$_GET['bg']; if($step==2) //prüfen ob einer Totenwache hält { if ($session['user']['pvpflag']==PVP_IMMU) { $session['user']['pvpflag']="1986-10-06 00:42:00"; output("`n`4`bDeine Immunität ist hiermit verfallen!`b`0`n"); } pvpwarning(true); $sql='SELECT name,sex,maxhitpoints,weapon,attack,defence FROM accounts WHERE loggedin=0 AND alive=1 AND restorepage like"%?op=wake&acctid='.$session['graveid'].'%" AND pvpflag !="5013-10-06 00:42:00" ORDER BY maxhitpoints DESC LIMIT 1'; $result=db_query($sql); if(db_num_rows($result)>0) { $row=db_fetch_assoc($result); output('`QDu beginnst gerade, die Schaufel in die lockere Graberde zu rammen, als du von '.$row['name'].'`Q aufgehalten wirst.'); $hps=e_rand($row['maxhitpoints']*0.9,$row['maxhitpoints']*1.1); $badguy = array('creaturename'=>$row['name'],'creaturelevel'=>$row['level'],'creatureweapon'=>$row['weapon'],'creatureattack'=>$row['attack'],'creaturedefense'=>$row['defence'],'creaturehealth'=>$hps, 'diddamage'=>0, 'pvp'=>1); $session['user']['badguy']=createstring($badguy); addnav('Kämpfe!','friedhof.php?op=fight'); } else { $step=3; } } if($step==3) //alle Gegner besiegt { $sql='SELECT alive,loggedin,name,pvpflag,dragonkills FROM accounts WHERE acctid='.$session['graveid']; $row=db_fetch_assoc(db_query($sql)); if($row['alive']==0 && $row['loggedin']==0) { output('`kDu schaust dich noch einmal um. Nein, weit und breit ist niemand zu sehen der dir bei deinem Vorhaben gefährlich werden könnte. '); if($session['user']['gravefights']>=10) { addnav('E?Gold und Edelsteine suchen','friedhof.php?op=gold'); } if($session['user']['gravefights']>=3) { addnav('Krimskram suchen','friedhof.php?op=items'); if($row['pvpflag']!=PVP_IMMU && $session['user']['dragonkills']>75) { $row_extra = user_get_aei('trophyhunter'); if($row_extra['trophyhunter']==0) //ja die 0 ist beabsichtigt { $who=rawurlencode($row['name'].'s Leichnam'); $dks=min(ceil($row['dragonkills']/5),25); addnav('Gammelfleisch abschneiden','trophy.php?op=look&who='.$who.'&dks='.$dks.'&where=-1&id='.$session['graveid']); } } } if($session['user']['gravefights']<3) { output('Doch irgendwie fühlst du dich total schlapp. Schade, so wird das nichts mit der Plünderei.'); unset($session['graveid']); } else { output('Na dann mal los.'); } } else { output('`kNachdem du eine halbe Ewigkeit in dem Grab gewühlt hast musst du feststellen: `$Es ist vollkommen leer...'); unset($session['graveid']); } } if(!$step) { if (ac_check($_GET['acctid'])) { $str_output .= '`$`bDas geht doch nicht!!`b Du kannst doch nicht deine eigenen Charaktere oder deine eigene Familie ausrauben!'; addnav('Zurück zum Friedhof','friedhof.php'); } else { output('`4Die Stadtwache wird auf dich aufmerksam als du so über den Friedhof schleichst.'); if ($session['user']['pvpflag']==PVP_IMMU) { output("`n`&Du hast PvP-Immunität gekauft. Diese verfällt, wenn du jetzt angreifst!`0`n`n"); } pvpwarning(); $session['graveid']=$_GET['acctid']; $hps=abs(max($session['user']['maxhitpoints']*1.1,$session['user']['hitpoints'])); $atk = $session['user']['attack']*1.2; $def = $session['user']['defence']*1.2; if($session['bufflist']['mount']['rounds']>5) { $atk*=1.2; $def*=1.2; } if($_GET['atk']<100) { $atk*=1.4; $def*=1.3; } $badguy = array('creaturename'=>'Stadtwache','creaturelevel'=>$session['user']['level'],'creatureweapon'=>'starker Holzknüppel','creatureattack'=>$atk,'creaturedefense'=>$def,'creaturehealth'=>$hps, 'diddamage'=>0); $session['user']['badguy']=createstring($badguy); addnav('Kämpfe!','friedhof.php?op=fight'); } } break; } case 'gold': //Gold/ES klauen { if($session['graveid']) { $sql='SELECT name,gold,gems FROM accounts WHERE acctid='.$session['graveid']; $row=db_fetch_assoc(db_query($sql)); $gold=min($row['gold'],666); $goldnew=$row['gold']-$gold; $gems=min($row['gems'],1); $gemsnew=$row['gems']-$gems; output('`kBeim Durchsuchen der Leiche von '.$row['name'].'`k findest du `^'.$gold.' Gold`k und `#'.$gems.' Edelsteine`k, du verlierst 10 Grabkämpfe.`n'); $session['user']['gold']+=$gold; $session['user']['gems']+=$gems; $session['user']['gravefights']-=10; user_update( array ( 'gold'=>$goldnew, 'gems'=>$gemsnew, 'specialmisc'=>'tombraid.php' ), $session['graveid'] ); systemmail($session['graveid'],'`$Grabraub!`0','`$'.$session['user']['name'].'`$ hat dein Grab geplündert und hat dir `^'.$gold.'`$ Gold und `#'.$gems.'`$ Edelsteine geklaut!'); addcrimes($session['user']['name'].'`$ plündert `^'.$gold.'`$ Gold und `#'.$gems.'`$ Edelsteine von einem Grab.'); debuglog('Grabraub: erbeutete '.$gold.' Gold und '.$gems.' Edelsteine',$session['graveid']); if($gems>0 && $session['user']['maxhitpoints']>$session['user']['level']*10 && e_rand(1,2)==2) { output('`4Die Herrin straft dich und nimmt dir einen permanenten Lebenspunkt!`n'); $session['user']['maxhitpoints']--; } unset ($session['graveid']); } else output('`kIn dem ganzen Durcheinander hast du leider vergessen welches Grab du plündern wolltest.'); break; } case 'items': //Items klauen { if($session['graveid']) { $sql='SELECT name FROM accounts WHERE acctid='.$session['graveid']; $row=db_fetch_assoc(db_query($sql)); $rowi=item_get('owner='.$session['graveid'].' AND deposit1=0 AND it.tpl_class IN (3,9,17,21,24,25,26) ORDER BY rand()',true,'i.id,i.name'); //tpl_class: 3-Beute, 9-Fluch, 16-Trophäe, 17-Tränke, 19-Rune, 21-Kleintiere, 24-Zutaten, 25-Nahrungsmittel, 26-Rohstoffe if(is_array($rowi)) { $item_new=array('owner' => $session['user']['acctid'], 'deposit1'=>0, 'deposit2'=>0); output('`kBeim Durchsuchen der Leiche von '.$row['name'].'`k findest du `^'.$rowi['name'].'`k. Du verlierst 3 Grabkämpfe.`n'); $session['user']['gravefights']-=3; if(item_set('id='.$rowi['id'],$item_new)) { systemmail($session['graveid'],'`$Grabraub!`0','`$'.$session['user']['name'].'`$ hat dein Grab geplündert und dir `^'.$rowi['name'].'`$ geklaut!'); addcrimes($session['user']['name'].'`$ plündert `^'.$rowi['name'].'`$ von einem Grab.'); debuglog('Grabraub: erbeutete '.$rowi['name'].'`0',$session['graveid']); user_update( array ( 'specialmisc'=>'tombraid.php' ), $session['graveid'] ); if($session['user']['maxhitpoints']>$session['user']['level']*10 && e_rand(1,2)==2) { output('`4Die Herrin straft dich und nimmt dir einen permanenten Lebenspunkt!`n'); $session['user']['maxhitpoints']--; } } else { output('`4Aber für '.$rowi['name'].'`4 ist einfach kein Platz mehr in deinem Beutel. Schaaade...'); } } else { output('`4Du findest nix!'); } unset ($session['graveid']); } else { output('`kIn dem ganzen Durcheinander hast du leider vergessen welches Grab du plündern wolltest.'); } break; } // --------------Ruhmeshalle-Aktionen case 'view': //Statue/Grabstein ansehen { $sql = 'SELECT v.*,r.colname FROM valhalla v LEFT JOIN races r ON (id=race) WHERE acctid='.$_GET['acctid']; $row = db_fetch_assoc(db_query($sql)); // Macht das Sinn? Bei Löschen eines Users werden alle seine Bilder entfernt (talion) //picture::replace_pic_tags($row['bio'],$row['acctid'],1); output('`tDu betrachtest '.($_GET['type']?'eine Statue, die einen '.$row['colname'].'`t darstellt,':'einen Grabstein').' näher. In goldenen Lettern steht eingraviert um wen es sich handelt:`0 `n`c`^'.$row['name'].'`n`^* '.getgamedate($row['birth']).'`n`^† '.getgamedate($row['death']).'`n`n'.($row['sex']?'Sie':'Er').' war ein ruhmreicher '.$row['colname'].'`n`^ mit '.$row['dragonkills'].' Heldentat' . ($row['dragonkills']>1?'en':'') . ' `0`c'.($row['bio']?'`n`n`tDu erinnerst dich, was die Leute erzählen, wie '.$row['name'].'`t war: `n`n`7'.$row['bio']:'').' `n`n`t Auf einer Extratafel ist Platz für ein paar Worte von den Hinterbliebenen. `n`n`7'); if($row['comments']) { $arr_comments=unserialize($row['comments']); foreach($arr_comments as $key=>$val){ $str_out.=$val; if($access_control->su_check(access_control::SU_RIGHT_COMMENT)) { $str_out.=' '.create_lnk('[del]','friedhof.php?op=del_memory&type='.$_GET['type'].'&acctid='.$_GET['acctid'].'&entry='.$key,true,false,'Diesen Eintrag wirklich löschen?').'`n'; } $str_out.='`n<hr>'; } output($str_out); } else { output('Es hat noch niemand einen Nachruf geschrieben, oder er wurde noch nicht in Stein gemeißelt.'); } addnav('Weitere Statuen','friedhof.php?op=valhalla&type='.$_GET['type'].'&limit='.$page); addnav('Nachruf schreiben','friedhof.php?op=memory&type='.$_GET['type'].'&acctid='.$row['acctid']); break; } case 'del_user': //User endgültig löschen { if($_GET['ack']=='yes') { $sql = 'DELETE FROM valhalla WHERE acctid='.$_GET['acctid']; db_query($sql); redirect('friedhof.php?op=valhalla&type='.$_GET['type']); } else { $sql = 'SELECT * FROM valhalla WHERE acctid='.$_GET['acctid']; $result = db_query($sql); $row = db_fetch_assoc($result); output('`kWillst du das Grab von '.$row['name'].'`$ wirklich zerstören?`n`n'); addnav('Grab zerstören?'); output('<a href="friedhof.php?op=del_user&acctid='.$_GET['acctid'].'&ack=yes">Ja</a>`n',true); addnav('Ja','friedhof.php?op=del_user&acctid='.$_GET['acctid'].'&ack=yes'); addnav('','friedhof.php?op=del_user&acctid='.$_GET['acctid'].'&ack=yes'); output('<a href="friedhof.php?op=valhalla&type='.$_GET['type'].'">Nein</a>',true); addnav('','friedhof.php?op=valhalla&type='.$_GET['type']); addnav('Nein','friedhof.php?op=valhalla&type='.$_GET['type']); } break; } case 'memory': //Nachruf schreiben { $sql = 'SELECT comments FROM valhalla WHERE acctid='.$_GET['acctid']; $result = db_query($sql); $row = db_fetch_assoc($result); $arr_comments=array(); if($row['comments']!='') { $arr_comments=unserialize($row['comments']); } if($_POST['text']) { $text=closetags($_POST['text'],'`c`i`b'); if(!strpos($text,'©')) { $text.="`n`n\n`7© ".$session['user']['name']; } $arr_comments[$session['user']['acctid']]=addslashes($text); $sql='UPDATE valhalla SET comments=\''.serialize($arr_comments).'\' WHERE acctid='.$_GET['acctid']; db_query($sql); } foreach($arr_comments as $val) { $str_out.=$val.'`n<hr>'; } output($str_out.'`n`2Hier kannst du einen Nachruf verfassen. Bitte zolle dem Verblichenen Respekt, die Friedhofsverwaltung wird Tafeln mit sinnlosen Schmierereien kostenpflichtig entfernen.`0'); rawoutput("<form action='friedhof.php?op=memory&type=".$_GET['type']."&acctid=".$_GET['acctid']."' method='POST'><textarea name='text' id='text' class='input' cols='50' rows='10'>".$arr_comments[$session['user']['acctid']]."</textarea><br><input type='submit' class='button' value='In Stein meißeln'></form>"); output(focus_form_element('text')); addnav('','friedhof.php?op=memory&type='.$_GET['type'].'&acctid='.$_GET['acctid']); addnav('Zurück zur Statue','friedhof.php?op=view&type='.$_GET['type'].'&acctid='.$_GET['acctid']); break; } case 'del_memory': //Nachruf löschen { $sql = 'SELECT comments FROM valhalla WHERE acctid='.$_GET['acctid']; $result = db_query($sql); $row = db_fetch_assoc($result); $arr_comments=unserialize($row['comments']); unset ($arr_comments[$_GET[entry]]); $sql='UPDATE valhalla SET comments=\''.serialize($arr_comments).'\' WHERE acctid='.$_GET['acctid']; db_query($sql); redirect('friedhof.php?op=view&type='.$_GET['type'].'&acctid='.$_GET['acctid']); break; } case 'fight': { $fight=true; include 'battle.php'; $battle=true; if ($victory) { if ($badguy['creaturename']=='Stadtwache') { output('`n`#Du hast die Stadtwache besiegt und kannst dich weiter dem Grab widmen!`nDu bekommst ein paar Erfahrungspunkte.'); $session['user']['experience'] += $session['user']['level']*10; $session['user']['turns']--; $session['user']['playerfights']--; addnav('Weiter','friedhof.php?op=tombraid&bg=2'); } else { output('`n`#'.$badguy['creaturename'].'`# kann das Grab nicht länger schützen!'); addnav('Weiter','friedhof.php?op=tombraid&bg=3'); } $badguy=array(); } else if ($defeat) { unset ($session['graveid']); if ($badguy['creaturename']=='Stadtwache') { $chance=e_rand(1,2); //Bonus für Diebe if (($session['user']['specialty']==3) && ($chance==1)) { output('`n`$Die Stadtwache hat dich besiegt. Doch als Dieb weist du dich zu erretten und stellst dich tot. Als die Wache geschockt einen Moment unaufmerksam wird rennst du schnell weg.'); $session['user']['hitpoints']=1; addnav('Weiter','village.php'); addnews('`%'.$session['user']['name'].'`3 wurde von der Stadtwache bei einer Grabschändung gestellt, konnte aber entkommen.'); } else { if (($session['user']['profession']!=21) && ($session['user']['profession']!=22)) { output('`n`$Die Stadtwache hat dich besiegt und nimmt dich fest. Du wirst wegen versuchter Grabschändung für 2 Tage nach Askoaboän gesteckt!'); $session['user']['hitpoints']=$session['user']['maxhitpoints']; $session['user']['imprisoned']=2; $session['user']['badguy']=""; addnav('Weiter','prison.php'); addnews('`%'.$session['user']['name'].'`3 wurde von der Stadtwache bei einer Grabschändung festgenommen und nach Askoaboän gesteckt.'); } else { output('`n`$Die Stadtwache hat dich besiegt. Durch deine richterliche Immunität bleibt dir Askoaboän erspart.'); addnews('`%Richter '.$session['user']['name'].'`3 wurde von der Stadtwache bei einer Grabschändung gefasst und entging dank der Immunität Askoaboän.'); addcrimes('`%Richter '.$session['user']['name'].'`3 wurde von der Stadtwache bei einer Grabschändung gefasst und entging dank der Immunität Askoaboän.'); $session['user']['hitpoints']=1; addnav('Weiter','village.php'); } } } else { output('`n`$'.$badguy['creaturename'].'`$ hat dich besiegt. Du liegst schwer verletzt am Boden!`nDu verlierst 3 Charmepunkte und fast alle Lebenspunkte.'); $session['user']['hitpoints'] = 1; $session['user']['charm'] -= 3; addnews('`%'.$session['user']['name'].'`3 stieß bei einer Grabschändung auf unerwartete Gegenwehr und verletzte sich schwer.'); addnav('Davonkriechen','village.php'); } } else { fightnav(false,true); } break; } //---------------Eingang default: { output('`c`b`2Der Friedhof`0`b`c `n`kDu gehst durch ein großes schmiedeeisernes Tor und betrittst den Platz der ewigen Ruhe. Am Ende des Hauptweges, welcher auf beiden Seiten von Gräberreihen flankiert wird, erblickst du einen prunkvollen Säulentempel mit dem Schriftzug: `0`c`^Den ruhmreichen Bürgern '.getsetting('townname','Atrahor').'s... Und auch dem Jungen, der am Ende stir... ähm... gestorben ist... Mehrfach...`0`c `k`nMitten auf dem Friedhof steht ein altertümliches Mausoleum, welches vor nicht allzu langer Zeit aufwändig restauriert wurde. Eine geflügelte Figur, deren Augen dir zu folgen scheinen, ziert die Dachspitze. Auf der Gedenktafel über der Tür ist zu lesen:`0 `c`$Ramius, Herr über den Tod`0`c`n`n'); viewcommentary("friedhof_main","Hinzufügen",25,"spricht leise"); addnav('Mausoleum betreten','friedhof.php?op=temple'); addnav('Ramius\' Gesellschaft'); addnav('T?Zu den Toten','friedhof.php?op=dead&type=1'); addnav('Friedhof der Fremden','friedhof.php?op=dead&type=0'); addnav('Ruhmeshalle'); addnav('Walhalla betreten','friedhof.php?op=valhalla&type=1'); // addnav('Folkvang betrachten','friedhof.php?op=valhalla&type=0'); //Vorbereitung für die Unterscheidung zwischen Walhalla und Folkvang } } if(!$fight) { addnav('Zurück'); if($_GET['op']) { addnav('H?Zum Hauptweg','friedhof.php'); } addnav('Zum Bahnhofsplatz','village.php'); } page_footer(); ?>
|