0) { addnav('Neu beginnen (1ES)',$str_filename.'?op=cheat&act=reset',false,false,false,false,'Achtung! Für 1 Edelstein Gebühr setzt du hiermit deinen Virgator-Level auf 1 und streicht dich aus der Ruhmeshalle. Du fängst also von vorne an. Willst du das wirklich?'); } } else { output(' `Q`n Als du dich dem Tor erneut näherst, verschließt es seine Pforten wieder. Vielleicht hast du heute schon zuviel Prügel eingesteckt...`n `7 '); } } /** Haben wir woanders addnav("Ruhmeshalle",$str_filename."?op=halle"); addnav("Zurück"); **/ addnav($str_backtext,$str_backlink); } break; case 'siegel': { output(' `c`b`@Virgator`0`b`c`n `n `7Du nimmst deine Waffe '.$session['user']['weapon'].' und schlägst mit aller Macht auf das Siegel...`n Funken spühren, das Tor '); if ($session['user']['dragonkills'] ".$row['name']." ".$row['virgator_level']." "; } $str_output .= " "; addnav('Virgator'); addnav('Zum Eingang',$str_filename.'?op=eingang'); } break; case 'cheat': { if($_GET['act']=='reset') { $arr_virgator['virgator_level']=0; $session['user']['gems']--; debuglog('hat Virgator-Level zurückgesetzt'); } $arr_virgator['virgator_level']++; user_set_aei($arr_virgator,$session['user']['acctid']); output('Dein Virgator-Level ist jetzt '.$arr_virgator['virgator_level']); addnav('Weiter'); addnav('Nächste Prüfung',$str_filename); addnav('Zurück'); addnav('Zum Eingang',$str_filename.'?op=eingang'); } break; default: { output("`n`7Dies ist die `@".$arr_virgator['virgator_level'].".`7 Prüfung.`0`n`n`n
",true); $show_nav=true; // Daten holen $sql = " SELECT * FROM `virgator_table` WHERE `level` = '".$arr_virgator['virgator_level']."' "; $result = db_query($sql); $row = db_fetch_assoc($result); $data = unserialize($row['data']); //Endbild erstellen wenn kein gültiger Datensatz if(!$data[0][0]['bild']) { $data=unserialize('a:9:{i:0;a:6:{i:0;a:4:{s:4:"xpos";i:0;s:4:"ypos";i:0;s:4:"bild";s:9:"g_o_l.gif";s:3:"nav";s:5:";o;s;";}i:1;a:4:{s:4:"xpos";i:48;s:4:"ypos";i:0;s:4:"bild";s:7:"g_o.gif";s:3:"nav";s:7:";o;s;w;";}i:2;a:4:{s:4:"xpos";i:96;s:4:"ypos";i:0;s:4:"bild";s:7:"g_o.gif";s:3:"nav";s:7:";o;s;w;";}i:3;a:4:{s:4:"xpos";i:144;s:4:"ypos";i:0;s:4:"bild";s:7:"g_o.gif";s:3:"nav";s:7:";o;s;w;";}i:4;a:4:{s:4:"xpos";i:192;s:4:"ypos";i:0;s:4:"bild";s:7:"g_o.gif";s:3:"nav";s:7:";o;s;w;";}i:5;a:4:{s:4:"xpos";i:240;s:4:"ypos";i:0;s:4:"bild";s:9:"g_o_r.gif";s:3:"nav";s:5:";s;w;";}}i:1;a:6:{i:0;a:4:{s:4:"xpos";i:0;s:4:"ypos";i:48;s:4:"bild";s:7:"g_l.gif";s:3:"nav";s:7:";n;o;s;";}i:1;a:4:{s:4:"xpos";i:48;s:4:"ypos";i:48;s:4:"bild";s:5:"g.gif";s:3:"nav";s:9:";n;o;s;w;";}i:2;a:4:{s:4:"xpos";i:96;s:4:"ypos";i:48;s:4:"bild";s:5:"g.gif";s:3:"nav";s:9:";n;o;s;w;";}i:3;a:4:{s:4:"xpos";i:144;s:4:"ypos";i:48;s:4:"bild";s:5:"g.gif";s:3:"nav";s:9:";n;o;s;w;";}i:4;a:4:{s:4:"xpos";i:192;s:4:"ypos";i:48;s:4:"bild";s:5:"g.gif";s:3:"nav";s:9:";n;o;s;w;";}i:5;a:4:{s:4:"xpos";i:240;s:4:"ypos";i:48;s:4:"bild";s:7:"g_r.gif";s:3:"nav";s:7:";n;s;w;";}}i:2;a:6:{i:0;a:4:{s:4:"xpos";i:0;s:4:"ypos";i:96;s:4:"bild";s:7:"g_l.gif";s:3:"nav";s:7:";n;o;s;";}i:1;a:4:{s:4:"xpos";i:48;s:4:"ypos";i:96;s:4:"bild";s:5:"g.gif";s:3:"nav";s:9:";n;o;s;w;";}i:2;a:4:{s:4:"xpos";i:96;s:4:"ypos";i:96;s:4:"bild";s:5:"s.gif";s:3:"nav";s:9:";n;o;s;w;";}i:3;a:4:{s:4:"xpos";i:144;s:4:"ypos";i:96;s:4:"bild";s:5:"g.gif";s:3:"nav";s:9:";n;o;s;w;";}i:4;a:4:{s:4:"xpos";i:192;s:4:"ypos";i:96;s:4:"bild";s:5:"g.gif";s:3:"nav";s:9:";n;o;s;w;";}i:5;a:4:{s:4:"xpos";i:240;s:4:"ypos";i:96;s:4:"bild";s:7:"g_r.gif";s:3:"nav";s:7:";n;s;w;";}}i:3;a:6:{i:0;a:4:{s:4:"xpos";i:0;s:4:"ypos";i:144;s:4:"bild";s:7:"g_l.gif";s:3:"nav";s:7:";n;o;s;";}i:1;a:4:{s:4:"xpos";i:48;s:4:"ypos";i:144;s:4:"bild";s:5:"g.gif";s:3:"nav";s:9:";n;o;s;w;";}i:2;a:4:{s:4:"xpos";i:96;s:4:"ypos";i:144;s:4:"bild";s:5:"g.gif";s:3:"nav";s:9:";n;o;s;w;";}i:3;a:4:{s:4:"xpos";i:144;s:4:"ypos";i:144;s:4:"bild";s:5:"g.gif";s:3:"nav";s:9:";n;o;s;w;";}i:4;a:4:{s:4:"xpos";i:192;s:4:"ypos";i:144;s:4:"bild";s:5:"g.gif";s:3:"nav";s:9:";n;o;s;w;";}i:5;a:4:{s:4:"xpos";i:240;s:4:"ypos";i:144;s:4:"bild";s:7:"g_r.gif";s:3:"nav";s:7:";n;s;w;";}}i:4;a:6:{i:0;a:4:{s:4:"xpos";i:0;s:4:"ypos";i:192;s:4:"bild";s:7:"g_l.gif";s:3:"nav";s:7:";n;o;s;";}i:1;a:4:{s:4:"xpos";i:48;s:4:"ypos";i:192;s:4:"bild";s:5:"g.gif";s:3:"nav";s:9:";n;o;s;w;";}i:2;a:4:{s:4:"xpos";i:96;s:4:"ypos";i:192;s:4:"bild";s:5:"g.gif";s:3:"nav";s:9:";n;o;s;w;";}i:3;a:4:{s:4:"xpos";i:144;s:4:"ypos";i:192;s:4:"bild";s:5:"g.gif";s:3:"nav";s:9:";n;o;s;w;";}i:4;a:4:{s:4:"xpos";i:192;s:4:"ypos";i:192;s:4:"bild";s:5:"g.gif";s:3:"nav";s:9:";n;o;s;w;";}i:5;a:4:{s:4:"xpos";i:240;s:4:"ypos";i:192;s:4:"bild";s:7:"g_r.gif";s:3:"nav";s:7:";n;s;w;";}}i:5;a:6:{i:0;a:4:{s:4:"xpos";i:0;s:4:"ypos";i:240;s:4:"bild";s:9:"g_u_l.gif";s:3:"nav";s:5:";n;o;";}i:1;a:4:{s:4:"xpos";i:48;s:4:"ypos";i:240;s:4:"bild";s:7:"g_u.gif";s:3:"nav";s:7:";n;o;w;";}i:2;a:4:{s:4:"xpos";i:96;s:4:"ypos";i:240;s:4:"bild";s:7:"g_u.gif";s:3:"nav";s:7:";n;o;w;";}i:3;a:4:{s:4:"xpos";i:144;s:4:"ypos";i:240;s:4:"bild";s:7:"g_u.gif";s:3:"nav";s:7:";n;o;w;";}i:4;a:4:{s:4:"xpos";i:192;s:4:"ypos";i:240;s:4:"bild";s:7:"g_u.gif";s:3:"nav";s:7:";n;o;w;";}i:5;a:4:{s:4:"xpos";i:240;s:4:"ypos";i:240;s:4:"bild";s:9:"g_u_r.gif";s:3:"nav";s:7:";n;w;s;";}}s:4:"exit";a:2:{s:1:"x";i:5;s:1:"y";i:6;}s:9:"opp_start";a:2:{s:1:"x";i:5;s:1:"y";i:5;}s:7:"p_start";a:2:{s:1:"x";i:0;s:1:"y";i:0;}}'); } // Sperren if(is_array($data['lock'])) { foreach ($data['lock'] as $key => $val) { $vonx = $val['vonx']; $vony = $val['vony']; $nachx = $val['nachx']; $nachy = $val['nachy']; if ($vony == $nachy) { // horizontale Sperre $ausgabe.='
'; } elseif ($vonx == $nachx) { // vertikale Sperre $ausgabe.='
'; } } } //Spieler- und Gegnerposition if ($_GET['x']=='' && $_GET['y']=='') { $_GET['x']=$data['p_start']['x']; $_GET['y']=$data['p_start']['y']; } if ($_GET['g1x']=='' && $_GET['g1y']=='') { $_GET['g1x']=$data['opp_start']['x']; $_GET['g1y']=$data['opp_start']['y']; } // Zieldaten $zx=$data['exit']['x']; $zy=$data['exit']['y']; if ($_GET['x']== $zx && $_GET['y']==$zy) { $gewonnen=true; $ausgabe2.='`@

Du hast die Prüfung bestanden

`7'; // schauen ob es eine Belohnung gibt // das solltest du anpassen! auf unserem Server gibt es besondere Items, die jedoch auf unserem Itemsystem basieren. //darum hier immer 100gold. if(($arr_virgator['virgator_level'] % 5) == 0) { switch ($arr_virgator['virgator_level']) { case 5: $session['user']['gold']+=100; $ausgabe2.='

Als Anerkennung deiner Leistung bekommst du 100 Gold.

'; break; case 10: $session['user']['gold']+=100; $ausgabe2.='

Als Anerkennung deiner Leistung bekommst du 100 Gold.

'; break; case 15: $session['user']['gold']+=100; $ausgabe2.='

Als Anerkennung deiner Leistung bekommst du 100 Gold.

'; break; case 20: $session['user']['gold']+=100; $ausgabe2.='

Als Anerkennung deiner Leistung bekommst du 100 Gold.

'; break; case 25: $session['user']['gems']++; $ausgabe2.='

Als Anerkennung deiner Leistung bekommst du einen Edelstein.

'; break; case 50: $session['user']['gems']+=2; $ausgabe2.='

Als Anerkennung deiner Leistung bekommst du ZWEI Edelsteine.

'; break; case 75: $session['user']['gems']+=3; $ausgabe2.='

Als Anerkennung deiner Leistung bekommst du DREI Edelsteine.

'; break; default: $session['user']['gold']+=100; $ausgabe2.='

Als Anerkennung deiner Leistung bekommst du 100 Gold.

'; break; } } $arr_virgator['virgator_level']++; user_set_aei($arr_virgator,$session['user']['acctid']); // nächstes Level addnav('Weiter'); addnav('Nächste Prüfung',$str_filename); addnav('Zurück'); addnav('Zum Eingang',$str_filename.'?op=eingang'); } // ########################################################### // gegner Positionieren //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // REGEL: Gegner läuft solange horizontal bis er auf höhe des Players ist. // aktueller Stand einzeichen if ($_GET['sperre']=='') { $_GET['sperre']=1; } // damit der Gegner beim Start nicht gleich losläuft $j=1; $ausgabe.='
'; // Schritte berechnen for ($i=0; $i<2; $i++) { $move_check=true; if ($_GET['x']!=$_GET['g1x']) { $check=$data[$_GET['g1y']][$_GET['g1x']]['nav']; // links oder rechts? if ($_GET['x']<$_GET['g1x']) { // Player westlich vom gegner $move=substr_count($check,";w"); // darf der Gegner nach westen? if ($move) { if ($_GET['sperre']==0) { // Gegner ist im Sand, wenn Sperre >0 $_GET['g1x']-=1; // ein Schritt nach Westen $move_check=false; if ($data[$_GET['g1y']][$_GET['g1x']]['bild']=='s.gif') { // Gengner ist in Sand getappt $i=2; $_GET['sperre']=4; } } } } else { // Player östlich vom Gegner $move=substr_count($check,";o"); // darf der Gegner nach Osten? if ($move) { if ($_GET['sperre']==0) { // Gegner ist im Sand, wenn Sperre >0 $_GET['g1x']+=1; // ein Schritt nach Osten $move_check=false; if ($data[$_GET['g1y']][$_GET['g1x']]['bild']=='s.gif') { // Gegner ist in Sand getappt $i=2; $_GET['sperre']=4; } } } } // Schritt vom Gegner einzeichen if (!$move_check) { $j++; $ausgabe.='
'; } } if ($_GET['y']!=$_GET['g1y'] && $move_check) { $check=$data[$_GET['g1y']][$_GET['g1x']]['nav']; // hoch oder runter? if ($_GET['y']<$_GET['g1y']) { // Player nördlich vom gegner $move=substr_count($check,";n"); // darf der Gegner nach Norden? if ($move) { if ($_GET['sperre']==0) { // Gegner ist im Sand, wenn Sperre >0 $_GET['g1y']-=1; // ein Schritt nach Norden if ($data[$_GET['g1y']][$_GET['g1x']]['bild']=='s.gif') { // Gengner ist in Sand getappt $i=2; $_GET['sperre']=4; } } } } else { // Player südlich vom Gegner $move=substr_count($check,";s"); // darf der Gegner nach Süden?? if ($move) { if ($_GET['sperre']==0) { // Gegner ist im Sand, wenn Sperre >0 $_GET['g1y']+=1; // ein Schritt nach Süden if ($data[$_GET['g1y']][$_GET['g1x']]['bild']=='s.gif') { // Gengner ist in Sand getappt $i=2; $_GET['sperre']=4; } } } } // Schritt vom Gegner einzeichen $move_check=false; $j++; $ausgabe.='
'; } if ($_GET['y']==$_GET['g1y'] && $_GET['x']==$_GET['g1x'] && $gewonnen!=true) { // Gegner hat Player gefangen if ($nicht_doppelt!=true) { $ausgabe2.="

Der Virgator hat dich erwischt!

"; $show_nav=false; $arr_virgator['virgator_count']++; user_set_aei($arr_virgator,$session['user']['acctid']); addnav("Zurück"); addnav("Zum Eingang",$str_filename."?op=eingang"); $nicht_doppelt=true; // Pfusch-- Prüfungszeit, was soll man sagen?!? } } } // ende for schleife // letzte Position immer einzeichen $ausgabe.='
'; // check wielange der Gegner noch im Sand ist if ($_GET['sperre']>0) { $_GET['sperre']-=1; } // schauen ob der Player im Sand , und somit tot ist! if ($data[$_GET['y']][$_GET['x']]['bild']=='s.gif') { $ausgabe2.="

Du bist im Sand gefangen!

"; $show_nav=false; addnav("Zurück"); addnav("Zum Eingang",$str_filename."?op=eingang"); } // Navs des Players bestimmen: if ($show_nav) { // player nicht gefangen, oder nicht im Sand! $allnav=explode(";",$data[$_GET['y']][$_GET['x']]['nav']); $int_count = count($allnav); for ($i=1; $i<$int_count-1; $i++) { switch ($allnav[$i]) { case 'n': $str_lnk = addnav("W? (W) Norden",$str_filename."?x=".($_GET['x'])."&y=".($_GET['y']-1)."&g1x=".$_GET['g1x']."&g1y=".$_GET['g1y']."&sperre=".$_GET['sperre']); $goto[$_GET[x].($_GET[y]-1)]=true; $quickkeys['arrowup'] = "window.location='".$str_lnk."'"; break; case 'o': $str_lnk = addnav("D? (D) Osten",$str_filename."?x=".($_GET['x']+1)."&y=".($_GET['y'])."&g1x=".$_GET['g1x']."&g1y=".$_GET['g1y']."&sperre=".$_GET['sperre']); $goto[($_GET[x]+1).$_GET[y]]=true; $quickkeys['arrowright'] = "window.location='".$str_lnk."'"; break; case 's': $str_lnk = addnav("S? (S) Süden",$str_filename."?x=".($_GET['x'])."&y=".($_GET['y']+1)."&g1x=".$_GET['g1x']."&g1y=".$_GET['g1y']."&sperre=".$_GET['sperre']); $goto[$_GET[x].($_GET[y]+1)]=true; $quickkeys['arrowdown'] = "window.location='".$str_lnk."'"; break; case 'w': $str_lnk = addnav("A? (A) Westen",$str_filename."?x=".($_GET['x']-1)."&y=".($_GET['y'])."&g1x=".$_GET['g1x']."&g1y=".$_GET['g1y']."&sperre=".$_GET['sperre']); $goto[($_GET[x]-1).$_GET[y]]=true; $quickkeys['arrowleft'] = "window.location='".$str_lnk."'"; break; } } if($access_control->su_check(access_control::SU_RIGHT_DEBUG)) { addnav('Cheaten',$str_filename.'?op=cheat'); addnav('Raus hier',$str_backlink); } } // Player Position einzeichen, wenn nicht im Ziel if ($_GET['x']!= $zx || $_GET['y']!=$zy) $ausgabe.='
'; // Ziel einzeichnen if ($zx==-1) { // ganz links $top_px = $data[$zy][$zx+1]['ypos']; $left_px = $data[$zy][$zx+1]['xpos'] -48; $z_index = 1; } elseif ($zx==6) { // ganz rechts $top_px = $data[$zy][$zx-1]['ypos']; $left_px = $data[$zy][$zx-1]['xpos'] +48; $z_index = 1; } elseif ($zy==-1) { // ganz oben $top_px = $data[$zy+1][$zx]['ypos'] -48; $left_px = $data[$zy+1][$zx]['xpos']; $z_index = 10; } elseif ($zy==6) { // ganz unten $top_px = $data[$zy-1][$zx]['ypos'] +48; $left_px = $data[$zy-1][$zx]['xpos']; $z_index = 10; } $ausgabe.='
'; // Ziel eingezeichnet // Karte ausgeben: for ($i=0; $i<6; $i++) //Wieso fangen die beiden Schleifen bei -1 an? Geändert auf 0 von Salator, Werbung dürfte nun nicht mehr im Bild sein. { for ($j=0; $j<6; $j++) { $ausgabe.='
'; if((($j==$_GET['x'] && ($i==$_GET['y']-1 || $i==$_GET['y']+1)) || ($i==$_GET['y'] && ($j==$_GET['x']-1 || $j==$_GET['x']+1))) && $goto[$j.$i] && $show_nav) { $ausgabe.=''; if ($j==$zx && $i==$zy) { $ausgabe.='
'; } else $ausgabe.='
'; addnav("",$str_filename.'?x='.$j.'&y='.$i.'&g1x='.$_GET[g1x].'&g1y='.$_GET[g1y].'&sperre='.$_GET[sperre]); } elseif($data[$i][$j]['bild']!='') $ausgabe.='
'; } } output($ausgabe,true); output("

",true); output($ausgabe2,true); } break; } page_footer(); ?>