From 6c982776ccfd5eed945bedc5abeab7cc13b4fdb0 Mon Sep 17 00:00:00 2001 From: hecht Date: Thu, 26 May 2011 19:53:28 +0000 Subject: [PATCH] --- ag/.buildpath | 5 + ag/.project | 22 + ag/.settings/org.eclipse.php.core.prefs | 3 + ag/abholen.php | 176 + ag/ag_popupchat.php | 173 + ag/aktiv.php | 69 + ag/anmeldung.php | 152 + ag/arena.php | 348 ++ ag/auktion.php | 398 ++ ag/auser.php | 73 + ag/c_kampf_anzeige.php | 60 + ag/char.php | 180 + ag/char_index.php | 86 + ag/char_overview.php | 203 + ag/char_profil.php | 592 +++ ag/char_profil2.php | 102 + ag/clan/add.php | 161 + ag/clan/c_kampf.php | 366 ++ ag/clan/c_kampf_anzeige.php | 60 + ag/clan/c_markt.php | 132 + ag/clan/c_ranglist.php | 104 + ag/clan/c_ticker.php | 26 + ag/clan/c_ware.php | 81 + ag/clan/clan_info.php | 102 + ag/clan/del.php | 28 + ag/clan/gfx/clan_info.htm | 46 + ag/clan/gfx/gfx_config.php | 20 + ag/clan/index.php | 88 + ag/clan/kampf/SSJ.php | 56 + ag/clan/kampf/atk_wert.php | 29 + ag/clan/kampf/ausdauer.php | 25 + ag/clan/kampf/hp.php | 20 + ag/clan/kampf/hp2.php | 47 + ag/clan/kampf/kaioken.php | 48 + ag/clan/kampf/kampf_rechnung.php | 115 + ag/clan/kampf/mp.php | 30 + ag/clan/kampf/mpv.php | 26 + ag/clan/kampf/tausch.php | 100 + ag/clan/new.php | 113 + ag/clan/post.php | 51 + ag/clan/profil.php | 193 + ag/clan/spende.php | 285 ++ ag/clan_kampf.php | 191 + ag/donate.html | 30 + ag/dragonballs.php | 221 + ag/dropdownmenu.php | 29 + ag/faq.php | 43 + ag/gfx/chat.htm | 34 + ag/gfx/clan_an.htm | 70 + ag/gfx/clan_for.htm | 100 + ag/gfx/clan_forder.htm | 4 + ag/gfx/clan_info.htm | 55 + ag/gfx/gfx_config.php | 37 + ag/gfx/grandline_option.htm | 70 + ag/gfx/in_liga.htm | 13 + ag/gfx/info.htm | 20 + ag/gfx/liga1.htm | 32 + ag/gfx/markt.htm | 167 + ag/gfx/markt/back_xx.jpg | Bin 0 -> 73073 bytes ag/gfx/markt/kaufen2.gif | Bin 0 -> 2167 bytes ag/gfx/markt/kaufen2_.gif | Bin 0 -> 2174 bytes ag/gfx/markt/line_end.gif | Bin 0 -> 362 bytes ag/gfx/markt/line_middl.gif | Bin 0 -> 141 bytes ag/gfx/markt/line_top.gif | Bin 0 -> 782 bytes ag/gfx/markt/push-min.gif | Bin 0 -> 149 bytes ag/gfx/markt/push-plus.gif | Bin 0 -> 152 bytes ag/gfx/markt/storage_end.jpg | Bin 0 -> 14714 bytes ag/gfx/markt/storage_line.jpg | Bin 0 -> 13191 bytes ag/gfx/markt/style.css | 37 + ag/gfx/markt/top_stor_xx.gif | Bin 0 -> 1225 bytes ag/gfx/markt/typ_1.jpg | Bin 0 -> 34948 bytes ag/gfx/markt_fehler.htm | 22 + ag/gfx/markt_inhalt.htm | 27 + ag/gfx/schnell_leiste.htm | 98 + ag/gfx/schnell_leiste2.htm | 78 + ag/gm/gm_seite.php | 2687 +++++++++++++ ag/gm/log.php | 42 + ag/h_turnier.php | 141 + ag/halloffame.php | 82 + ag/img.php | 18 + ag/impressum.php | 46 + ag/inclu/awards.inc.php | 11 + ag/inclu/char.php | 211 + ag/inclu/partner.inc.php | 11 + ag/inclu/toplists.inc.php | 17 + ag/inclu/user-controll.php | 168 + ag/include/abholcodes.inc.php | 24 + ag/include/arena.inc.php | 74 + ag/include/array.php | 100 + ag/include/auktion_functions.inc.php | 365 ++ ag/include/bann.inc.php | 60 + ag/include/char.inc.php | 286 ++ ag/include/char_profil.inc.php | 59 + ag/include/cheater.inc.php | 43 + ag/include/clanfights.inc.php | 749 ++++ ag/include/config.inc.php | 87 + ag/include/config/ads_example.inc.php | 36 + ag/include/config/awards_example.inc.php | 12 + ag/include/config/db_example.inc.php | 25 + ag/include/config/partner_example.inc.php | 16 + ag/include/config/server_example.inc.php | 23 + ag/include/config/settings_example.inc.php | 15 + ag/include/config/toplists_example.inc.php | 20 + ag/include/designfunctions.inc.php | 99 + ag/include/donate.inc.php | 54 + ag/include/erstellfunctions.inc.php | 215 + ag/include/exp.inc.php | 196 + ag/include/faq.inc.php | 146 + ag/include/fehlerausgabe.inc.php | 34 + ag/include/halloffame.inc.php | 75 + ag/include/img.inc.php | 117 + ag/include/java/Kopie von markt.js | 200 + ag/include/java/ag.js | 70 + ag/include/java/arena.js | 69 + ag/include/java/arena_skill.js | 106 + ag/include/java/char.js | 57 + ag/include/java/markt.js | 205 + ag/include/java/overlib.js | 1491 +++++++ ag/include/kampf/SSJ.php | 55 + ag/include/kampf/andere_technik.php | 90 + ag/include/kampf/atk_wert.php | 44 + ag/include/kampf/ausdauer.php | 29 + ag/include/kampf/copy.php | 57 + ag/include/kampf/fightclasses.inc.php | 136 + ag/include/kampf/frucht.php | 49 + ag/include/kampf/gift.php | 104 + ag/include/kampf/hp.php | 20 + ag/include/kampf/hp2.php | 47 + ag/include/kampf/hpmp.php | 37 + ag/include/kampf/kaioken.php | 46 + ag/include/kampf/kaioken2.php | 36 + ag/include/kampf/kampf_rechnung.php | 112 + ag/include/kampf/kampfchat.js | 114 + ag/include/kampf/lose.php | 53 + ag/include/kampf/lose2.php | 45 + ag/include/kampf/majin.php | 63 + ag/include/kampf/mp.php | 29 + ag/include/kampf/mpv.php | 25 + ag/include/kampf/runde.php | 51 + ag/include/kampf/schatten.php | 40 + ag/include/kampf/tausch.php | 124 + ag/include/kampf/tausch2.php | 59 + ag/include/kampf_anzeige.inc.php | 269 ++ ag/include/kampf_anzeige.php | 158 + ag/include/messagefunctions.inc.php | 142 + ag/include/mumble.inc.php | 20 + ag/include/online.inc.php | 15 + ag/include/parse.inc.php | 317 ++ ag/include/pollfunctions.inc.php | 101 + ag/include/races.inc.php | 190 + ag/include/schatz.inc.php | 342 ++ ag/include/schnell_start.inc.php | 128 + ag/include/semaphore.inc.php | 96 + ag/include/speed_config.inc.php | 9 + ag/include/user.inc.php | 71 + ag/index.php | 437 ++ ag/info.php | 221 + ag/info/agb.php | 175 + ag/info/agchat.php | 31 + ag/info/arena.php | 44 + ag/info/attacken.php | 490 +++ ag/info/items.php | 157 + ag/info/lern.php | 45 + ag/item.php | 294 ++ ag/java/adblock.js | 74 + ag/java/ag_chat.js | 66 + ag/java/arena.js | 85 + ag/java/arena_skill.js | 107 + ag/java/auktion.js | 43 + ag/java/banner_ad.js | 10 + ag/java/char.js | 57 + ag/java/markt.js | 205 + ag/java/new_clan.js | 68 + ag/java/new_markt.js | 71 + ag/java/prototype-1.6.0.2.js | 4221 ++++++++++++++++++++ ag/java/quest.js | 26 + ag/kampf2.php | 324 ++ ag/kampf4.php | 324 ++ ag/kampf_clan.php | 211 + ag/kampf_list.php | 755 ++++ ag/last_fight.php | 78 + ag/last_fight1.php | 71 + ag/last_fight2.php | 76 + ag/last_fight3.php | 70 + ag/lernpunkte.php | 199 + ag/liga1.php | 42 + ag/liga_kampf_anzeige.php | 137 + ag/login.php | 60 + ag/login2.php | 33 + ag/logout.php | 12 + ag/markt.php | 259 ++ ag/nachricht.php | 319 ++ ag/news.php | 152 + ag/online.php | 30 + ag/pictures/komment.jpg | Bin 0 -> 8198 bytes ag/pictures/news.jpg | Bin 0 -> 8371 bytes ag/pictures/news1.jpg | Bin 0 -> 8236 bytes ag/profil.php | 203 + ag/pw.php | 55 + ag/ranglist.php | 190 + ag/runde.php | 49 + ag/schatz.php | 200 + ag/schatz3.php | 72 + ag/schatz_suche.php | 14 + ag/sp_item.php | 253 ++ ag/support.php | 52 + ag/ticker.php | 27 + ag/training.php | 150 + ag/turnier.php | 184 + ag/turnier2.php | 176 + ag/turnier_auswahl.php | 42 + ag/umfrage.php | 177 + ag/wanted.php | 72 + ag/wanted_kampf_anzeige.php | 121 + 214 files changed, 30373 insertions(+) create mode 100644 ag/.buildpath create mode 100644 ag/.project create mode 100644 ag/.settings/org.eclipse.php.core.prefs create mode 100644 ag/abholen.php create mode 100644 ag/ag_popupchat.php create mode 100644 ag/aktiv.php create mode 100644 ag/anmeldung.php create mode 100644 ag/arena.php create mode 100644 ag/auktion.php create mode 100644 ag/auser.php create mode 100644 ag/c_kampf_anzeige.php create mode 100644 ag/char.php create mode 100644 ag/char_index.php create mode 100644 ag/char_overview.php create mode 100644 ag/char_profil.php create mode 100644 ag/char_profil2.php create mode 100644 ag/clan/add.php create mode 100644 ag/clan/c_kampf.php create mode 100644 ag/clan/c_kampf_anzeige.php create mode 100644 ag/clan/c_markt.php create mode 100644 ag/clan/c_ranglist.php create mode 100644 ag/clan/c_ticker.php create mode 100644 ag/clan/c_ware.php create mode 100644 ag/clan/clan_info.php create mode 100644 ag/clan/del.php create mode 100644 ag/clan/gfx/clan_info.htm create mode 100644 ag/clan/gfx/gfx_config.php create mode 100644 ag/clan/index.php create mode 100644 ag/clan/kampf/SSJ.php create mode 100644 ag/clan/kampf/atk_wert.php create mode 100644 ag/clan/kampf/ausdauer.php create mode 100644 ag/clan/kampf/hp.php create mode 100644 ag/clan/kampf/hp2.php create mode 100644 ag/clan/kampf/kaioken.php create mode 100644 ag/clan/kampf/kampf_rechnung.php create mode 100644 ag/clan/kampf/mp.php create mode 100644 ag/clan/kampf/mpv.php create mode 100644 ag/clan/kampf/tausch.php create mode 100644 ag/clan/new.php create mode 100644 ag/clan/post.php create mode 100644 ag/clan/profil.php create mode 100644 ag/clan/spende.php create mode 100644 ag/clan_kampf.php create mode 100644 ag/donate.html create mode 100644 ag/dragonballs.php create mode 100644 ag/dropdownmenu.php create mode 100644 ag/faq.php create mode 100644 ag/gfx/chat.htm create mode 100644 ag/gfx/clan_an.htm create mode 100644 ag/gfx/clan_for.htm create mode 100644 ag/gfx/clan_forder.htm create mode 100644 ag/gfx/clan_info.htm create mode 100644 ag/gfx/gfx_config.php create mode 100644 ag/gfx/grandline_option.htm create mode 100644 ag/gfx/in_liga.htm create mode 100644 ag/gfx/info.htm create mode 100644 ag/gfx/liga1.htm create mode 100644 ag/gfx/markt.htm create mode 100644 ag/gfx/markt/back_xx.jpg create mode 100644 ag/gfx/markt/kaufen2.gif create mode 100644 ag/gfx/markt/kaufen2_.gif create mode 100644 ag/gfx/markt/line_end.gif create mode 100644 ag/gfx/markt/line_middl.gif create mode 100644 ag/gfx/markt/line_top.gif create mode 100644 ag/gfx/markt/push-min.gif create mode 100644 ag/gfx/markt/push-plus.gif create mode 100644 ag/gfx/markt/storage_end.jpg create mode 100644 ag/gfx/markt/storage_line.jpg create mode 100644 ag/gfx/markt/style.css create mode 100644 ag/gfx/markt/top_stor_xx.gif create mode 100644 ag/gfx/markt/typ_1.jpg create mode 100644 ag/gfx/markt_fehler.htm create mode 100644 ag/gfx/markt_inhalt.htm create mode 100644 ag/gfx/schnell_leiste.htm create mode 100644 ag/gfx/schnell_leiste2.htm create mode 100644 ag/gm/gm_seite.php create mode 100644 ag/gm/log.php create mode 100644 ag/h_turnier.php create mode 100644 ag/halloffame.php create mode 100644 ag/img.php create mode 100644 ag/impressum.php create mode 100644 ag/inclu/awards.inc.php create mode 100644 ag/inclu/char.php create mode 100644 ag/inclu/partner.inc.php create mode 100644 ag/inclu/toplists.inc.php create mode 100644 ag/inclu/user-controll.php create mode 100644 ag/include/abholcodes.inc.php create mode 100644 ag/include/arena.inc.php create mode 100644 ag/include/array.php create mode 100644 ag/include/auktion_functions.inc.php create mode 100644 ag/include/bann.inc.php create mode 100644 ag/include/char.inc.php create mode 100644 ag/include/char_profil.inc.php create mode 100644 ag/include/cheater.inc.php create mode 100644 ag/include/clanfights.inc.php create mode 100644 ag/include/config.inc.php create mode 100644 ag/include/config/ads_example.inc.php create mode 100644 ag/include/config/awards_example.inc.php create mode 100644 ag/include/config/db_example.inc.php create mode 100644 ag/include/config/partner_example.inc.php create mode 100644 ag/include/config/server_example.inc.php create mode 100644 ag/include/config/settings_example.inc.php create mode 100644 ag/include/config/toplists_example.inc.php create mode 100644 ag/include/designfunctions.inc.php create mode 100644 ag/include/donate.inc.php create mode 100644 ag/include/erstellfunctions.inc.php create mode 100644 ag/include/exp.inc.php create mode 100644 ag/include/faq.inc.php create mode 100644 ag/include/fehlerausgabe.inc.php create mode 100644 ag/include/halloffame.inc.php create mode 100644 ag/include/img.inc.php create mode 100644 ag/include/java/Kopie von markt.js create mode 100644 ag/include/java/ag.js create mode 100644 ag/include/java/arena.js create mode 100644 ag/include/java/arena_skill.js create mode 100644 ag/include/java/char.js create mode 100644 ag/include/java/markt.js create mode 100644 ag/include/java/overlib.js create mode 100644 ag/include/kampf/SSJ.php create mode 100644 ag/include/kampf/andere_technik.php create mode 100644 ag/include/kampf/atk_wert.php create mode 100644 ag/include/kampf/ausdauer.php create mode 100644 ag/include/kampf/copy.php create mode 100644 ag/include/kampf/fightclasses.inc.php create mode 100644 ag/include/kampf/frucht.php create mode 100644 ag/include/kampf/gift.php create mode 100644 ag/include/kampf/hp.php create mode 100644 ag/include/kampf/hp2.php create mode 100644 ag/include/kampf/hpmp.php create mode 100644 ag/include/kampf/kaioken.php create mode 100644 ag/include/kampf/kaioken2.php create mode 100644 ag/include/kampf/kampf_rechnung.php create mode 100644 ag/include/kampf/kampfchat.js create mode 100644 ag/include/kampf/lose.php create mode 100644 ag/include/kampf/lose2.php create mode 100644 ag/include/kampf/majin.php create mode 100644 ag/include/kampf/mp.php create mode 100644 ag/include/kampf/mpv.php create mode 100644 ag/include/kampf/runde.php create mode 100644 ag/include/kampf/schatten.php create mode 100644 ag/include/kampf/tausch.php create mode 100644 ag/include/kampf/tausch2.php create mode 100644 ag/include/kampf_anzeige.inc.php create mode 100644 ag/include/kampf_anzeige.php create mode 100644 ag/include/messagefunctions.inc.php create mode 100644 ag/include/mumble.inc.php create mode 100644 ag/include/online.inc.php create mode 100644 ag/include/parse.inc.php create mode 100644 ag/include/pollfunctions.inc.php create mode 100644 ag/include/races.inc.php create mode 100644 ag/include/schatz.inc.php create mode 100644 ag/include/schnell_start.inc.php create mode 100644 ag/include/semaphore.inc.php create mode 100644 ag/include/speed_config.inc.php create mode 100644 ag/include/user.inc.php create mode 100644 ag/index.php create mode 100644 ag/info.php create mode 100644 ag/info/agb.php create mode 100644 ag/info/agchat.php create mode 100644 ag/info/arena.php create mode 100644 ag/info/attacken.php create mode 100644 ag/info/items.php create mode 100644 ag/info/lern.php create mode 100644 ag/item.php create mode 100644 ag/java/adblock.js create mode 100644 ag/java/ag_chat.js create mode 100644 ag/java/arena.js create mode 100644 ag/java/arena_skill.js create mode 100644 ag/java/auktion.js create mode 100644 ag/java/banner_ad.js create mode 100644 ag/java/char.js create mode 100644 ag/java/markt.js create mode 100644 ag/java/new_clan.js create mode 100644 ag/java/new_markt.js create mode 100644 ag/java/prototype-1.6.0.2.js create mode 100644 ag/java/quest.js create mode 100644 ag/kampf2.php create mode 100644 ag/kampf4.php create mode 100644 ag/kampf_clan.php create mode 100644 ag/kampf_list.php create mode 100644 ag/last_fight.php create mode 100644 ag/last_fight1.php create mode 100644 ag/last_fight2.php create mode 100644 ag/last_fight3.php create mode 100644 ag/lernpunkte.php create mode 100644 ag/liga1.php create mode 100644 ag/liga_kampf_anzeige.php create mode 100644 ag/login.php create mode 100644 ag/login2.php create mode 100644 ag/logout.php create mode 100644 ag/markt.php create mode 100644 ag/nachricht.php create mode 100644 ag/news.php create mode 100644 ag/online.php create mode 100644 ag/pictures/komment.jpg create mode 100644 ag/pictures/news.jpg create mode 100644 ag/pictures/news1.jpg create mode 100644 ag/profil.php create mode 100644 ag/pw.php create mode 100644 ag/ranglist.php create mode 100644 ag/runde.php create mode 100644 ag/schatz.php create mode 100644 ag/schatz3.php create mode 100644 ag/schatz_suche.php create mode 100644 ag/sp_item.php create mode 100644 ag/support.php create mode 100644 ag/ticker.php create mode 100644 ag/training.php create mode 100644 ag/turnier.php create mode 100644 ag/turnier2.php create mode 100644 ag/turnier_auswahl.php create mode 100644 ag/umfrage.php create mode 100644 ag/wanted.php create mode 100644 ag/wanted_kampf_anzeige.php diff --git a/ag/.buildpath b/ag/.buildpath new file mode 100644 index 0000000..8bcb4b5 --- /dev/null +++ b/ag/.buildpath @@ -0,0 +1,5 @@ + + + + + diff --git a/ag/.project b/ag/.project new file mode 100644 index 0000000..25f98a7 --- /dev/null +++ b/ag/.project @@ -0,0 +1,22 @@ + + + ag_v1.0 + + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.eclipse.dltk.core.scriptbuilder + + + + + + org.eclipse.php.core.PHPNature + + diff --git a/ag/.settings/org.eclipse.php.core.prefs b/ag/.settings/org.eclipse.php.core.prefs new file mode 100644 index 0000000..889b3ea --- /dev/null +++ b/ag/.settings/org.eclipse.php.core.prefs @@ -0,0 +1,3 @@ +#Thu May 26 20:40:01 CEST 2011 +eclipse.preferences.version=1 +include_path=0;/ag_v1.0 diff --git a/ag/abholen.php b/ag/abholen.php new file mode 100644 index 0000000..e56d8d7 --- /dev/null +++ b/ag/abholen.php @@ -0,0 +1,176 @@ +"; +?> + function showfight1(){ + var Info = window.open("./kampf4.php?","","status=no,hotkeys=no,Height=600,Width=820,scrollbars=yes"); + } +"; +?> +

Kampf
 
+ $kampf_a1[name] vs. $kampf_a2[name]"; +?> +

+anzeigen'; + } else{ +?> + + +
+"; +?> + function showfight(){ + + var Info = window.open("./clan_kampf.php?char_id=","","status=no,hotkeys=no,Height=600,Width=820,scrollbars=yes"); + + } +"; + +$kampf_a = mysql_fetch_array(mysql_query("SELECT c1.name AS c1name, c2.name, k.id, k.dauer FROM clan_kampf k LEFT JOIN chars c1 ON(k.char1=c1.id) LEFT JOIN chars c2 ON(k.char2=c2.id) WHERE k.db_satz='$char_id' LIMIT 1")); + +$zeit_in_sek = $kampf_a[dauer] - time(); +?> +

Clan Kampf
 
+ $kampf_a[c1name] vs. $kampf_a[name]
 
"; +?> +

+anzeigen'; + } else{ +?> + + +
+"; +?> + function showfight(){ + + var Info = window.open("./schatz3.php?","","status=no,hotkeys=no,Height=600,Width=820,scrollbars=yes"); + + } +"; +echo "

Schatz Suche
 
"; +?> +

+anzeigen'; + } else{ +?> + + +

+ diff --git a/ag/ag_popupchat.php b/ag/ag_popupchat.php new file mode 100644 index 0000000..08e1b9a --- /dev/null +++ b/ag/ag_popupchat.php @@ -0,0 +1,173 @@ + + + + + + + + + +

+
+ +
+ + + + \ No newline at end of file diff --git a/ag/aktiv.php b/ag/aktiv.php new file mode 100644 index 0000000..ab0f75f --- /dev/null +++ b/ag/aktiv.php @@ -0,0 +1,69 @@ +weiter'); + sendMessage('Die Animegame Crew', $user_ida_nach['id'], 'Herzlich Willkommen bei AG', 'Herzlich Willkommen beim Animegame,'."\n".' dem Spiel in dem die Welten von One Piece und Dragonball aufeinanderprallen.'."\n\n".'Zu Anfang sieht AnimeGame ziemlich kompliziert aus, deshalb liest Du dir am besten erstmal den Anfängerguide in unserem Wiki durch:'."\n".'[url=http://ag01.animegame.eu/mediawiki/index.php/Anfaengerguide][color=yellow]Anfängerguide[/color][/url]'."\n\n".'Wenn danach noch Fragen offen sind, findest Du bestimmt eine Antwort in der FAQ-Abteilung:'."\n".'[url=http://ag01.animegame.eu/mediawiki/index.php/FAQ][color=red]Häufig gestellte Fragen[/color][/url]'."\n\n".'Falls du danach immer noch Fragen haben solltest, kannst du diese auch gerne im Chat oder im Forum stellen. Die anderen Mitspieler werden dir bestimmt gerne weiterhelfen.'."\n\n".'Viel Spass'."\n".'Das Animegame Team'); + exit; +} +?> +
+ + +
+
+ + + + + + + + + + + + + + + + + +
+

Account Aktivieren

+

Nickname

 
+

Serial

 
 
+
+
\ No newline at end of file diff --git a/ag/anmeldung.php b/ag/anmeldung.php new file mode 100644 index 0000000..a792911 --- /dev/null +++ b/ag/anmeldung.php @@ -0,0 +1,152 @@ + + + + +'; + $user_a = mysql_fetch_assoc(mysql_query($sql)); + $sql = 'SELECT username,mail FROM user_activation WHERE username=\'' . $nick_name . '\' OR mail=\'' . $mail . '\''; + //echo $sql.'
'; + $user_b = mysql_fetch_assoc(mysql_query($sql)); + + if ($user_a != FALSE || $user_b != FALSE) { + if ($user_a['nickname'] == $nick_name || $user_b['username'] == $nick_name) { + displayErrorMessage(NULL, 'Den Nicknamen ' . $nick_name . ' gibt es schon!', displayHistoryBackLink()); + } else + if ($user_a['mail'] == $mail || $user_b['mail'] == $mail) { + displayErrorMessage(NULL, 'Die Emailadresse ' . $mail . ' ist schon vorhanden gibt es schon!', displayHistoryBackLink()); + } else { + displayErrorMessage(NULL, 'Unbekannter Fehler!', displayHistoryBackLink()); + } + exit; + } + + ####### ANGABE FEHLER + + if (!$nick_name OR !$pw_1 OR !$pw_2 OR !$mail) { + displayErrorMessage(NULL, 'Bitte geben sie alles ein', displayHistoryBackLink()); + exit; + } + + ######## Erfolgreich Angemeldet + $serial = time() * 40000; + $zeit = time(); + $serial_1 = number_format($serial, 0, '', '-'); + + $aktivierungslink = $GLOBALS['server_url_long'] . '/ag/index.php?as=aktiv&charm=1&nick_name=' . $nick_name . '&serial=' . $serial_1; + $inhalt = 'Zugangsdaten,\n\nSie lauten:\n\nUsername: ' . $nick_name . ' \n\nPasswort: ' . $pw_1 . '\n Aktivierungsnummer: ' . $serial_1 . ' \n\n Bitte geben sie die Aktivierungsnummer auf der Seite ein oder klicken sie folgenden Link\n\n' . $aktivierungslink . '\n\nViel Spass beim Spielen!'; + mail($mail, 'Animegame', 'Zugangsdaten,' . "\n\n" . ' Sie lauten: ' . "\n\n" . 'Username: ' . $nick_name . ' ' . "\n" . ' Passwort: ' . $pw_1 . ' ' . "\n\n" . ' Aktivierungsnummer: ' . $serial_1 . ' ' . "\n\n" . ' Bitte geben sie die Aktivierungsnummer innerhalb von 14 Tagen auf der Seite ein oder klicken sie auf folgenden Link' . "\n" . ' ' . $aktivierungslink . ' ' . "\n\n" . 'Viel Spass beim Spielen!', "From: " . "Vegeta" . "\nReply-To: " . $GLOBALS['email_webmaster'] . "\nX-Mailer: PHP/" . phpversion()); + + $pw_1 = md5($pw_1); + + mysql_query('INSERT INTO user_activation(username, code, passwort, mail, registerdate) values(\'' . $nick_name . '\', \'' . $serial_1 . '\', \'' . $pw_1 . '\', \'' . $mail . '\', now())'); + + displayErrorMessage(NULL, 'Erfolgreich angemeldet | Schauen sie in ihr Postfach', 'weiter'); + exit; +} +?> +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Anmeldung

+

Nickname

 (keine Sonderzeichen)
+

Passwort

 
+

Passwort (Wiederholung)

 
+

E-Mail

 
+

Regeln gelesen:

  Regeln lesen
+  
+
+
\ No newline at end of file diff --git a/ag/arena.php b/ag/arena.php new file mode 100644 index 0000000..5dcd1fa --- /dev/null +++ b/ag/arena.php @@ -0,0 +1,348 @@ + + + +
method="get"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + '.(round($arena['zustand']*100,2)).'%'; + } else{ + echo ''; + } + ?> + + + + Skill Points - Arena Sizer'; + } else{ + echo ' '; + } + ?> + + + + + + + + '; + } else{ + echo ''; + } + ?> + +
Stehplätze:
Sitzplätze:
Logenplätze:
Arena Level:
Umsatz heute:
Exp:
Zustand:100%
UpgradeSkill Points - Arena Sizer
KämpfenKampf list
+
+ +
method="get"> + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name:
Stehplätze: ( Kosten)
Sitzplätze: ( Kosten)
Logenplätze: ( Kosten)
+
+ $vermoegen){ + displayErrorMessage(NULL, 'Nicht genug Geld für den Umbau!', displayHistoryBackLink()); + } else{ + $sql = 'UPDATE arena set name = \''.$arena_name.'\', steh = '.$steh.', sitz = '.$sitz.', loge = '.$loge.' WHERE id = '.$arena['id']; +// echo $sql; + mysql_query($sql); + if(mysql_affected_rows() > 0){ + mysql_query('UPDATE user set geld = geld - '.$gesamtkosten.' where id = '.$user['id']); + displayErrorMessage(NULL, 'Umbau durchgeführt!', 'weiter'); + } else{ + displayErrorMessage(NULL, 'Umbau konnte nicht durchgeführt werden!', displayHistoryBackLink()); + } + + } + } else{ + $changelog = array(); + $abbreissen = array(); + $aufbauen = array(); + $gesamtkosten = 0; + if($arena['name'] != $arena_name){ + $arena_name = validateName($arena_name); + $changelog[] = 'Den Namen wirklich zu "'.$arena_name.'" ändern?'; + } + if($arena['steh'] > $steh){ + $abbreissen[] = ($arena['steh']-$steh).' Stehplätze'; + } else if($arena['steh'] < $steh){ + $aufbauen[] = ($steh-$arena['steh']).' Stehplätze'; + $gesamtkosten += ($steh-$arena['steh'])*12; + } + if($arena['sitz'] > $sitz){ + $abbreissen[] = ($arena['sitz']-$sitz).' Sitzplätze'; + } else if($arena['sitz'] < $sitz){ + $aufbauen[] = ($sitz-$arena['sitz']).' Sitzplätze'; + $gesamtkosten += ($sitz-$arena['sitz'])*180; + } + if($arena['loge'] > $loge){ + $abbreissen[] = ($arena['loge']-$loge).' Logenplätze'; + } else if($arena['loge'] < $loge){ + $aufbauen[] = ($loge-$arena['loge']).' Logenplätze'; + $gesamtkosten += ($loge-$arena['loge'])*21600; + } + + if(count($abbreissen) != 0){ + $changelog[] = join(', ',$abbreissen).' wirklich abreissen?'; + } + if($gesamtkosten > 0){ + $changelog[] = join(', ',$aufbauen).' wirklich für '.displayMoney($gesamtkosten).' ausbauen?'; + } + + if(count($changelog) != 0){ + echo join('
',$changelog).'
'; + echo 'ja | '.displayHistoryBackLink(); + } else{ + echo displayErrorMessage(NULL,'Nix zu tun!!', displayHistoryBackLink()); + } + } +} + +function displaySkillen($user, $arena, $charmax, $hausmeister, $luxus){ +if($charmax !== NULL || $hausmeister !== NULL || $luxus !== NULL){ + $cm = abs($user['char_max']-$charmax); + if($user['char_max'] + $cm > 7){ + displayErrorMessage(NULL, 'Nicht mehr als 7 Chars möglich!', displayHistoryBackLink()); + return; + } + $hm = abs($arena['hausmeister']-$hausmeister); + if($arena['hausmeister'] + $hm > 10){ + displayErrorMessage(NULL, 'Nicht mehr als 10 Finanzberater möglich!', displayHistoryBackLink()); + return; + } + $lu = abs($arena['luxus']-$luxus); + if($arena['luxus'] + $lu > 10){ + displayErrorMessage(NULL, 'Nicht mehr als 10 Punkte bei Luxus möglich!', displayHistoryBackLink()); + return; + } + + // echo $cm.' '.$hm.' '.$lu.'
'; + if($arena['skill'] < $cm + $hm + $lu){ + displayErrorMessage(NULL, 'Nicht genug Skill-Points!', displayHistoryBackLink()); + } else{ + $n_skill = $arena['skill'] - ($cm + $hm + $lu); + $sql = 'Update arena SET skill = '.$n_skill.', hausmeister = '.($arena['hausmeister']+$hm).', luxus = '.($arena['luxus']+$lu).' WHERE id = '.$arena['id']; + mysql_query($sql); + if($cm != 0){ + mysql_query('Update user SET char_max = '.($user['char_max']+$cm).' WHERE id = '.$user['id']); + } + displayErrorMessage(NULL, 'Die Skill-Points wurden erfolgreich verteilt!', 'weiter'); + } + return; +} +?> +
method="get"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skillpoints:
Maximale Chars:Max: 7Mehr Chars
Luxus:Max: 10Mehr Zuschauer
Finanzberater:Max: 10Erhöht Steuerfreibetrag, Senkt Steuersatz
+
+ $vermoegen){ + displayErrorMessage(NULL, 'Nicht genug Geld für die Renovierung!', displayHistoryBackLink()); + } else{ + mysql_query('Update user set geld = geld - '.$costs.' WHERE id = '.$user['id']); + mysql_query('Update arena set zustand = 1 WHERE id = '.$arena['id']); + displayErrorMessage(NULL, 'Renovierung durchgeführt!', displayHistoryBackLink()); + } +} + + +$arena = mysql_fetch_assoc(mysql_query('SELECT * FROM arena where besitzer = \''.$user_ida['id'].'\'')); +if(!$arena['name']) { + $sql = 'INSERT arena(besitzer, exp) values (\''.$user_ida['id'].'\', \'0,'.calculateRequiredExpArena(1).'\')'; + mysql_query($sql); + $arena = mysql_fetch_assoc(mysql_query('SELECT * FROM arena where besitzer = \''.$user_ida['id'].'\'')); +} + +$auktionensumme = mysql_fetch_assoc(mysql_query('SELECT SUM(aktuellesgebot) as summe FROM auktion WHERE bieter = '.$user_ida[id].' GROUP BY bieter')); +$auktionensumme = $auktionensumme['summe']; +$vermoegen = $user['geld'] - $auktionensumme; +$unterhalt = calculateUnterhaltsKosten($arena); + +if($action == 'miete'){ + // Zahle Miete + if($vermoegen < $unterhalt){ + displayErrorMessage(NULL, 'Du hast nicht genug Geld um die Unterhaltskosten zu bezahlen!', displayHistoryBackLink()); + } else{ + mysql_query('Update user set geld = geld - '.$unterhalt.' WHERE id = '.$user_ida['id']); + mysql_query('Update arena set mietlasten = 0, steuerlasten = 0 WHERE id = '.$arena['id']); + $arena = mysql_fetch_assoc(mysql_query('SELECT * FROM arena where besitzer = \''.$user_ida['id'].'\'')); + displayArena($arena); + } +} else if($action == 'ausbau1'){ + displayAusbau($arena); +} else if($action == 'ausbau2'){ + displayAusbau2($user, $arena, $arena_name, $steh, $sitz, $loge, $vermoegen, $confirm); +} else if($action == 'skill1'){ + displaySkillen($user, $arena, $charmax, $hausmeister, $luxus); +} else if($action == 'renovieren'){ + renovate($user, $arena, $vermoegen); +}else{ + displayArena($arena); +} + diff --git a/ag/auktion.php b/ag/auktion.php new file mode 100644 index 0000000..d82db61 --- /dev/null +++ b/ag/auktion.php @@ -0,0 +1,398 @@ +
'; + } else{ + echo 'Es ist beim Bieten ein Fehler aufgetreten: '.$errorMsg.'!

'; + } + } + $auktionsdaten = getEntryInformation($auktionsid); +?> +
+ + + '> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Item Auktion
Name
Höchstbietender?
Aktuelles Gebot
Startgebot
Anzahl
Durchschnittlicher Kaufpreis
Bieten
 
INFO: Es muss immer mindestens 2% mehr Geboten werden, als das akutelle Gebot.

Es ist verboten weit über dem Wert zu ersteigern! Dies wird als Cheatingverdacht behandelt und auch bestraft! Bsp. HP Trank II für 20.000
+
+ + if($id_db_mix != '' && !is_null($id_db_mix)){ + $errorMessage = insertItem($userid,$id_db_mix, $anzahl, $startgebot); + if($errorMessage == '' OR $errorMessage == NULL){ + echo '
Das Item konnte erfolgreich eingefügt werden.
'; + $id_db_mix = ''; + $anzahl = '1'; + $startgebot = '10'; + } + else{ + echo '
Das Item konnte nicht eingefügt werden: '.$errorMessage.'
'; + } + } + else{ + $anzahl = '1'; + $startgebot = '10'; + } + ?> +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Item versteigern!
Item + +
Mindestgebot
Anzahl
 
Da dieser Service nicht gratis ist, werden als Bearbeitungsgebühr 1% des Versteigerungspreises enthalten.
+
+ Muss nicht mehr +// $itemnamepart = preg_replace('#\'#','',$itemnamepart); + + $orderstring = '###LABEL###'; + ?> +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Auktions-MarktItem Online Stellen
Suchfeld einschränken + +
Auktionen pro Seite
Maximalgebot
Itemname
 
+ + + + + + + + + + +'."\n"; + echo "\t\t\t\t\t".''."\n"; + if($aktionentries[$index]['aktuellesgebot'] != NULL){ + echo "\t\t\t\t\t".''."\n"; + } else{ + echo "\t\t\t\t\t".''."\n"; + } + echo "\t\t\t\t\t".''."\n"; + echo "\t\t\t\t\t".''."\n"; + echo "\t\t\t\t\t".''."\n"; + echo "\t\t\t\t\t".''."\n"; + if($userid == $aktionentries[$index]['anbieter']){ + echo "\t\t\t\t\t".''."\n"; + } else{ + echo "\t\t\t\t\t".''."\n"; + } + echo "\t\t\t\t".''."\n"; + $index++; + } +?> +
+ + + + + + + + + + + + + Bieten +
'.displayItemLink($aktionentries[$index]['tablename'], $aktionentries[$index]['itemid'], $aktionentries[$index]['itemname']).''.displayMoney($aktionentries[$index]['aktuellesgebot']).''.displayMoney($aktionentries[$index]['startgebot']).''.displayUserLink($aktionentries[$index]['anbieter'],$aktionentries[$index]['anbietername']).''.displayUserLink($aktionentries[$index]['bieter'],$aktionentries[$index]['bietername']).''.displayCount($aktionentries[$index]['anzahl']).''.$aktionentries[$index]['deadline'].'zurückziehenmitbieten
+
+ 0){ + $anzahl = ceil(getAuktionTotalCount($kategorie,$itemnamepart,$maxpreis) / $entries); + $pagestring = '###LABEL###'; + echo displayPagelinks($pageNumber,$anzahl,$pagestring); + } +?> +
+ + + +
+ + + '> + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Item zurückziehen
Name
Höchstbietender?
Aktuelles Gebot
Startgebot
 
+ Auktionen, bei denen noch niemand geboten hat, können ohne zusätzliche Kosten zurückgezogen werden. Auktionen mit aktuellem Gebot kosten beim Zurückziehen 10% des aktuellen Gebots! +
+
+ diff --git a/ag/auser.php b/ag/auser.php new file mode 100644 index 0000000..38f568b --- /dev/null +++ b/ag/auser.php @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + +
+

Hier findest du alle User

+ + + '.chr($i).''; + } + ?>
Alle0-9
NicknameICQHomepage
$row[nickname]"; ?>$row[homepage]"; ?>
###LABEL###');?>
+ + + diff --git a/ag/c_kampf_anzeige.php b/ag/c_kampf_anzeige.php new file mode 100644 index 0000000..58f553e --- /dev/null +++ b/ag/c_kampf_anzeige.php @@ -0,0 +1,60 @@ +"; +while($kampf1 = mysql_fetch_array($kampfs1)) { + +$char_1 = mysql_Fetch_array(mysql_query("SELECT name, hp, mp, bild, besitzer, id FROM chars WHERE id='$kampf1[char1]' LIMIT 1")); +$char_2 = mysql_Fetch_array(mysql_query("SELECT name, hp, mp, bild, besitzer, id FROM chars WHERE id='$kampf1[char2]' LIMIT 1")); + +$spleoic = "clan"; + +$starke1 = explode(",", $kampf1[starke1]); +$starke2 = explode(",", $kampf1[starke2]); +$ver1 = explode(",", $kampf1[ver1]); +$ver2 = explode(",", $kampf1[ver2]); +$speed1 = explode(",", $kampf1[speed1]); +$speed2 = explode(",", $kampf1[speed2]); +$ausdauer1 = explode(",", $kampf1[ausdauer1]); +$ausdauer2 = explode(",", $kampf1[ausdauer2]); + +$schaden1 = explode(",", $kampf1[schaden1]); +$schaden2 = explode(",", $kampf1[schaden2]); +$attacke1 = explode(",", $kampf1[attacke1]); +$attacke2 = explode(",", $kampf1[attacke2]); + +$hp1 = explode(",", $kampf1[hp1]); +$hp2 = explode(",", $kampf1[hp2]); +$mp1 = explode(",", $kampf1[mp1]); +$mp2 = explode(",", $kampf1[mp2]); + +$a_hp1 = explode(",", $char_1[hp]); +$a_hp2 = explode(",", $char_2[hp]); +$a_mp1 = explode(",", $char_1[mp]); +$a_mp2 = explode(",", $char_2[mp]); +$runde = 1; + +include($_SERVER['DOCUMENT_ROOT'].'ag/include/kampf_anzeige.php'); +} +*/ +?> diff --git a/ag/char.php b/ag/char.php new file mode 100644 index 0000000..cf9c34c --- /dev/null +++ b/ag/char.php @@ -0,0 +1,180 @@ +, und Tags mehr) + * TODO: Alle "" Strings in '' Strings umwandeln + * TODO: Funktioneller Aufruf, damit exit-Tags verschwinden koennen und somit der Chat angezeigt werden kann!! + */ +include_once($_SERVER['DOCUMENT_ROOT'].'ag/include/config.inc.php'); +include_once($_SERVER['DOCUMENT_ROOT'].'ag/include/designfunctions.inc.php'); +include_once($_SERVER['DOCUMENT_ROOT'].'ag/include/fehlerausgabe.inc.php'); +include_once($_SERVER['DOCUMENT_ROOT'].'ag/include/erstellfunctions.inc.php'); +include_once($_SERVER['DOCUMENT_ROOT'].'ag/include/parse.inc.php'); + + +// GET-Section +// Kritisch (SQL-Injections) +$char_name = validateName($_GET['char_name']); +$char_1_type = validateString($_GET['char_1_Type']); +$char_bild = validateURL($_GET['char_bild']); + +// Unkritisch +$charm = $_GET['charm']; +$char_type = $_GET['char_type']; + +?> + +weiter'); + } +} + +//if($charm !== NULL) { + +function handleSecondPhase($type, $name){ +?> +
+ + + + + + + + + + + + + + + + + + +
Charakter erstellen (2/2)
Rasse: + + +
Charakter Bild (75x75): + +
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + +
Charakter Erstellen (1/2)
Charaktername + (Buchstaben) +
Type + +
+
+= 1 AND $user_daten['char_max'] == 7) { + $chars_max= 8; +} else { + $chars_max= $user_daten['char_max']; +} + +if ($anzahl_charactere < $chars_max) { + if($charm === NULL){ + handleFirstPhase($user_daten,$anzahl_charactere); + } else if($charm == 1){ + handleSecondPhase($char_type, $char_name); + } else if($charm == 2){ + handleErstelleCharRequest($user_ida, $char_1_type, $char_name, $char_bild); + } +} else { + echo 'Du hast bereits die maximal mögliche Menge an Characteren erstellt, die du erstellen kannst.
Nämlich '.$anzahl_charactere.' von '.$chars_max.' Charaktere.'; +} + + +?> diff --git a/ag/char_index.php b/ag/char_index.php new file mode 100644 index 0000000..85796a8 --- /dev/null +++ b/ag/char_index.php @@ -0,0 +1,86 @@ +, und Tags mehr) + * TODO: Alle "" Strings in '' Strings umwandeln + * TODO: Funktioneller Aufruf, damit exit-Tags verschwinden koennen und somit der Chat angezeigt werden kann!! + */ + +include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/config.inc.php'); +include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/char.inc.php'); +include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/fehlerausgabe.inc.php'); +include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/parse.inc.php'); + +// GET-Section +// Kritisch (SQL-Injections) +$char_id = validateUnsignedInteger($_GET['char_id'], null); + +// Unkritisch! +$charm = $_GET['charm']; +$as = $_GET['as']; + +if ($charm == 3) { + $char = getChar($char_id); + $result = deleteChar($user_ida['id'],$char_id); + if($result === true){ + displayErrorMessage(NULL, 'Der Char '.$char['name']. ' wurde gelöscht', 'weiter'); + } else{ + displayErrorMessage(NULL, $result, 'weiter'); + } + exit; +} +if ($as == "char_index") { + $as = "char_profil"; +} +?> + +
+ + + + + + + + + + +
Du hast noch keine Chars!
+ " width="75" height="75">
Charakter: $row[name] | Status: "; + } else { + echo "$row[name] | Status: "; + } + if ($row['status'] == 'Frei') { + echo "Frei |"; + echo 'Charakter löschen'; + } else { + echo "$row[status] |"; + echo 'Charakter löschen'; + } +?> + +
+
diff --git a/ag/char_overview.php b/ag/char_overview.php new file mode 100644 index 0000000..9d44668 --- /dev/null +++ b/ag/char_overview.php @@ -0,0 +1,203 @@ +, und Tags mehr) + * TODO: Alle "" Strings in '' Strings umwandeln + * TODO: Funktioneller Aufruf, damit exit-Tags verschwinden koennen und somit der Chat angezeigt werden kann!! + */ + + +include_once($_SERVER['DOCUMENT_ROOT'].'ag/include/config.inc.php'); +include_once($_SERVER['DOCUMENT_ROOT'].'ag/include/designfunctions.inc.php'); +include_once($_SERVER['DOCUMENT_ROOT'].'ag/include/fehlerausgabe.inc.php'); +include_once($_SERVER['DOCUMENT_ROOT'].'ag/include/char.inc.php'); + + + $chars = getCharsOfUser($user_ida['id']); + $char_zahl = 0; + foreach($chars as $my_charz){ +// $hp = explode(",", $my_charz[hp]); +// $mp = explode(",", $my_charz[mp]); +// +// $POWERLEVEL5 = $my_charz['starke']+$my_charz['verteidigung']+$my_charz['speed']+$my_charz['ausdauer']+$my_charz['glueck'] + $hp[1]/10 + $mp[1]/5; + $POWERLEVEL5 = $my_charz['starke']+$my_charz['verteidigung']+$my_charz['speed']+$my_charz['ausdauer']+$my_charz['glueck']; + if($my_charz['fusion']=="ja"){ + $fusi = "
Fusionsrasse: ".$my_charz['fusion_rasse']; + } + else + $fusi = ""; + if($my_charz['type']=="Onepiece"){ + $frucht = "
Teufelsfrucht: ".$my_charz['frucht']; + } + else + $frucht = ""; + $hptemp = explode(",", $my_charz['hp']); + $hpleft[$char_zahl] = $hptemp['0'] / $hptemp['1'] * 100; + $mptemp = explode(",", $my_charz['mp']); + $mpleft[$char_zahl] = $mptemp['0'] / $mptemp['1'] * 100; + $exptemp = explode(",", $my_charz['exp']); + $room = mysql_query('SELECT ci.name FROM clan_item ci inner join clan_ware cw on ci.id = cw.item_id WHERE cw.id='.$my_charz['clan_train']); + $clanroom=mysql_fetch_assoc($room); + + if($clanroom['name']=="") + $clanroom['name']="kein"; + + $temproom="
Trainingsraum: ".$clanroom['name'].""; + + $hp = "HP: ".$hptemp['0']." / ".$hptemp['1']; + if($my_charz['status'] == "Schatz Suche") + $statustemp = "Schatz%20Suche"; + else + $statustemp = $my_charz['status']; + + + if($my_charz['kampf_item'] != NULL && $my_charz['kampf_item'] != ',,,,'){ + // echo 'Problematic Entry = '.$chara_1['kampf_item'].'
'; + $char1_buffs = mysql_fetch_assoc(mysql_query('SELECT sum(i.hp) as hp, sum(i.mp) as mp, sum(i.starke) as starke, sum(i.verteidigung) as verteidigung, sum(i.speed) as speed FROM ware w LEFT JOIN item i ON(i.id=w.item_id) WHERE w.id IN (' . $my_charz['kampf_item'] . ')')); + } + $c_starke = $char1_buffs['starke']==0?$my_charz['starke']:($my_charz['starke']).' (+'.$char1_buffs['starke'].')'; + $c_verteidigung = $char1_buffs['verteidigung']==0?$my_charz['verteidigung']:($my_charz['verteidigung']).' (+'.$char1_buffs['verteidigung'].')'; + $c_speed = $char1_buffs['speed']==0?$my_charz['speed']:($my_charz['speed']).' (+'.$char1_buffs['speed'].')'; + $c_ausdauer = $char1_buffs['ausdauer']==0?$my_charz['ausdauer']:($my_charz['ausdauer']).' (+'.$char1_buffs['ausdauer'].')'; + $c_glueck = $char1_buffs['glueck']==0?$my_charz['glueck']:($my_charz['glueck']).' (+'.$char1_buffs['glueck'].')'; + + $mp = "MP: ".$mptemp['0']." / ".$mptemp['1']; + $exp = "Exp: ".$exptemp['0']." / ".$exptemp['1']; + if($my_charz['status'] == 'Frei' ){ + $temp = 'Status: '.$my_charz['status']; + } elseif($my_charz['status'] == 'Angemeldet' OR $my_charz['status'] == 'Kampf erstellt') { + $temp = 'Status: '.$my_charz['status']; + } elseif($my_charz['status'] == 'Kampf') { + $kampf_a = mysql_fetch_assoc(mysql_query("SELECT dauer FROM kampf WHERE db_satz='".$my_charz['id']."' order by id DESC LIMIT 1")); + $zeit_in_sek[$char_zahl] = $kampf_a['dauer'] - time(); + $temp = 'Status: '.$my_charz['status'].'
'; + } elseif($my_charz['status'] == 'Schatz Suche') { + $kampf_a = mysql_fetch_array(mysql_query('select Timestampdiff(Second,now(),dauer) as dauer from quests where charid = '.$my_charz['id'])); + $zeit_in_sek[$char_zahl] = $kampf_a['dauer']; + $temp = 'Status: '.$my_charz['status'].'
'; + } else { + } + $werte = "Stärke: ".$c_starke."
Verteidigung: ".$c_verteidigung."
Geschwindigkeit: ".$c_speed."
Ausdauer: ".$c_ausdauer."
Glück: ".$c_glueck; + $lp = "
Lernpunkte: ".$my_charz['lernpunkte'].""; + $tp = "Trainingspunkte: ".$my_charz['training_points']."".$temproom; + + //$temp = $statustemp.""; + $temp2 = "Level: ".$my_charz['level']."
Powerlevel: $POWERLEVEL5
Typ: ".$my_charz['type']."
Rasse: ".$my_charz['rasse'].$fusi.$frucht.$lp."
$tp

$hp
$mp
$exp

$werte"; + + $popup[$char_zahl] = $temp.'
'.''.$my_charz['name'].'
'.$temp2; + $status[$char_zahl]= $my_charz['status']; + + $char_zahl++; + } + $visiblechars = 8; + + for($i=$char_zahl;$i<$visiblechars;$i++){ + $CHARAKTER_NAME[$i] = "Kein Charakter"; + $CHARAKTER_VERWALTUNG[$i] = "none"; + $CHARAKTER_LERNPUNKTE[$i] = "none"; + $CHARAKTER_TRAINING[$i] = "none"; + $CHARAKTER_STATUS[$i] = "none"; + $CHARAKTER_SCHATZ[$i] = "none"; + } + +if(!$chars_bilds['0']) { $chars_bilds['0'] = "bilder/Char.gif"; } +if(!$chars_bilds['1']) { $chars_bilds['1'] = "bilder/Char.gif"; } +if(!$chars_bilds['2']) { $chars_bilds['2'] = "bilder/Char.gif"; } +if(!$chars_bilds['3']) { $chars_bilds['3'] = "bilder/Char.gif"; } +if(!$chars_bilds['4']) { $chars_bilds['4'] = "bilder/Char.gif"; } +if(!$chars_bilds['5']) { $chars_bilds['5'] = "bilder/Char.gif"; } +if(!$chars_bilds['6']) { $chars_bilds['6'] = "bilder/Char.gif"; } +if(!$chars_bilds['7']) { $chars_bilds['7'] = "bilder/Char.gif"; } + + +?> + + + + '; + echo ''; + + echo '
'; + if($hpleft[$i] > 1) + echo ''; + if($hpleft[$i] < 100) + echo ''; + echo '
'; + echo ''; + if($mpleft[$i] > 1) + echo ''; + if($mpleft[$i] < 100) + echo ''; + echo '
'; + + echo $popup[$i].''; + + if($i==3){ + echo '


'; + } + } + if ($status[$i] != 'Frei' AND $status[$i] != 'Angemeldet' AND $status[$i] != 'Kampf erstellt') { + ?> + + + + + +
\ No newline at end of file diff --git a/ag/char_profil.php b/ag/char_profil.php new file mode 100644 index 0000000..f48ae7b --- /dev/null +++ b/ag/char_profil.php @@ -0,0 +1,592 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +'; + $char1_buffs = mysql_fetch_assoc(mysql_query('SELECT sum(i.hp) as hp, sum(i.mp) as mp, sum(i.starke) as starke, sum(i.verteidigung) as verteidigung, sum(i.speed) as speed FROM ware w LEFT JOIN item i ON(i.id=w.item_id) WHERE w.id IN (' . $char_1['kampf_item'] . ')')); + } + + +?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Charakter: + +
+ Charakter 
+ Type 
+ Rasse 
+ Fusion Rasse 
+ Stärke 
+ Verteidigung 
+ Geschwindigkeit 
+ Ausdauer 
+ Glück 
+ HP  +
+   +
+ MP 
+ Level 
+ Training Points 
+ Exp  
+ Siege 
+ Niederlage 
+ Liga Siege 
+ Liga Niederlage 
+ Status 
+ Bild  '; ?>
+



Kampfeinstellungen

+ Runde + + + + + + + + + + + + + + + + + +   +
+ Aufgeben + + + + + + '; ?> +
+

Kampf Items

 Helm:  + +
 Rüstung:  + +
 Schild:  + +
 Schwert:  + +
 Schuhe:  + +

+
+ + + $kampf_copy) { + $fehler[0] = "Fehler die Technik vom type: Copy darf nur ".$kampf_copy." mal benutzt werden."; + $anz++; + } + if($kampf_kaioken2_n > $kampf_kaioken2) { + $fehler[1] = "Fehler die Technik vom type: Kaiaoken2 darf nur ".$kampf_kaioken2." mal benutzt werden."; + $anz++; + } + if($kampf_lose2_n > $kampf_lose2) { + $fehler[2] = "Fehler die Technik vom type: lose2 darf nur ".$kampf_lose2." mal benutzt werden."; + $anz++; + } + if($kampf_majin_n > $kampf_majin) { + $fehler[3] = "Fehler die Technik vom type: Majin darf nur ".$kampf_majin." mal benutzt werden."; + $anz++; + } + if($kampf_tausch2_n > $kampf_tausch2) { + $fehler[4] = "Fehler die Technik vom type: Tausch darf nur 3 mal benutzt werden."; + $anz++; + } + if($kampf_summon_n > $kampf_summon) { + $fehler[5] = "Fehler die Technik vom type: Summon darf nur ".$kampf_summon." mal benutzt werden."; + $anz++; + } + if($kampf_gift_n > $kampf_gift) { + $fehler[6] = "Fehler die Technik vom type: Gift darf nur ".$kampf_gift." mal benutzt werden."; + $anz++; + } + if($kampf_schatten_n > $kampf_schatten) { + $fehler[7] = "Fehler die Technik vom type: Schatten darf nur 2 mal benutzt werden."; + $anz++; + } + if($kampf_ssj_n AND $kampf_kaioken_n) { + $fehler[8] = "Fehler sie dürfen Techniken vom Type SSJ und Kaioken nicht zusammen nutzen."; + $anz++; + } + if($kampf_tausch_n > $kampf_tausch) { + $fehler[9] = "Fehler die Technik vom type: Kampf darf nur ".$kampf_tausch." mal benutzt werden."; + $anz++; + } + if($kampf_ssj_n > $kampf_ssj) { + $fehler[10] = "Fehler die Technik vom type: SSJ darf nur ".$kampf_ssj." mal benutzt werden."; + $anz++; + } + if($kampf_hp_n > $kampf_hp) { + $fehler[11] = "Fehler die Technik vom type: HP darf nur 2 mal benutzt werden."; + $anz++; + } + if($kampf_hpmp_n > $kampf_hpmp) { + $fehler[12] = "Fehler die Technik vom type: HPMP darf nur ".$kampf_hpmp." mal benutzt werden."; + $anz++; + } + if($kampf_sprit_n > $kampf_sprit) { + $fehler[13] = "Fehler die Technik vom type:Sprit darf nur ".$kampf_sprit." mal benutzt werden."; + $anz++; + } + if($kampf_sprit2_n > $kampf_sprit2) { + $fehler[14] = "Fehler die Technik vom type: Sprit2 darf nur ".$kampf_sprit2." mal benutzt werden."; + $anz++; + } + if($kampf_lose_n > $kampf_lose) { + $fehler[15] = "Fehler die Technik vom type: Lose darf nur ".$kampf_lose." mal benutzt werden."; + $anz++; + } + if($kampf_kaioken_n > $kampf_kaioken) { + $fehler[16] = "Fehler die Technik vom type: Kaiaoken darf nur ".$kampf_kaioken." mal benutzt werden."; + $anz++; + } + if($bild11 != $_POST['bild11']){ + $fehler[17] = 'Die URL für das Bild ist ungültig!'; + $anz++; + } + if($kampf_frucht_n > $kampf_frucht) { + $fehler[19] = 'Fehler die Technik vom type: frucht darf nur '.$kampf_frucht.' mal benutzt werden!'; + $anz++; + } + if($kampf_hp_n >= 1 AND $kampf_hpmp_n >= 1) { + $fehler[20] = 'Fehler die Technik vom type: HP darf nicht zusammen mit der Technik vom type: HPMP benutzt werden!'; + $anz++; + } + } + $x++; + } + //Schauen ob ein Fehler vorhanden ist + if ($anz == 0) { + + //In DB einf�gen + safe_query('UPDATE chars SET kampf_item=\''.$helm_e.','.$rustung_e.','.$schild_e.','.$schwert_e.','.$schuhe_e.'\', aufgeben=\''.$aufgeben.'\', rustung =\''.$rustung.'\', '. + 'attacken=\''.$attacke1[0].','.$attacke1[1].','.$attacke1[2].','.$attacke1[3].','.$attacke1[4].','.$attacke1[5].','.$attacke1[6].','.$attacke1[7].','.$attacke1[8].','.$attacke1[9].'\', '. + 'auswahl1=\''.$auswahl1_0.','.$auswahl1_1.','.$auswahl1_2.','.$auswahl1_3.','.$auswahl1_4.','.$auswahl1_5.','.$auswahl1_6.','.$auswahl1_7.','.$auswahl1_8.','.$auswahl1_9.'\', '. + 'auswahl2=\''.$auswahl2_0.','.$auswahl2_1.','.$auswahl2_2.','.$auswahl2_3.','.$auswahl2_4.','.$auswahl2_5.','.$auswahl2_6.','.$auswahl2_7.','.$auswahl2_8.','.$auswahl2_9.'\', '. + 'auswahl3=\''.$auswahl3_0.','.$auswahl3_1.','.$auswahl3_2.','.$auswahl3_3.','.$auswahl3_4.','.$auswahl3_5.','.$auswahl3_6.','.$auswahl3_7.','.$auswahl3_8.','.$auswahl3_9.'\', '. + 'attacken2=\''.$attacke2[0].','.$attacke2[1].','.$attacke2[2].','.$attacke2[3].','.$attacke2[4].','.$attacke2[5].','.$attacke2[6].','.$attacke2[7].','.$attacke2[8].','.$attacke2[9].'\', '. + 'bild=\''.$bild11.'\' WHERE id='.$char_1[id].' LIMIT 1'); + + echo 'Profil erfolgreich geändert!!
'; + echo '
weiter...
'; + //Alle gefundenen Fehler anzeigen + } else { $fehler2 = implode("
", $fehler); + echo '
'.$fehler2.'
'; + echo '
zurück
'; + } +} +if ($_POST['submit']==1) { eintragen($char_id,$name,$user_ida); } +elseif ($char_id) { stelledar($char_id,$user_ida,$name); } +else { echo 'Leider wurde die Seite nicht korrekt aufgerufen! Rufen Sie die Seite bitte korrekt auf'; } +?> \ No newline at end of file diff --git a/ag/char_profil2.php b/ag/char_profil2.php new file mode 100644 index 0000000..d9ad196 --- /dev/null +++ b/ag/char_profil2.php @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Kampfitems
Helm + +
Rüstung + +
Schild + +
Schwert + +
Schuhe + +
+
+
Kampfeinstellungen
Arenakämpfe + +
Schatzsuche + +
Liga + +
Turniere + +
+ Kampfeinstellungen editieren +
+
+
+ +
\ No newline at end of file diff --git a/ag/clan/add.php b/ag/clan/add.php new file mode 100644 index 0000000..de80f02 --- /dev/null +++ b/ag/clan/add.php @@ -0,0 +1,161 @@ +weiter...'); + exit; +} +?> + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $i) { + + $seiten .= ' '.$z.' '; + $z++; + $i++; +} +?> + + + + + +
+

Clan Beitreten

 

+

Clanname

+  
+

Clan Passwort

+   +
+

Clanname'; ?>

+

Leader"; ?>

+

Mitglieder

+

Geld"; ?>

+

Info

+

Beitreten

+

+

+

+

+

Info'; ?>

+

Beitreten'; ?>

 Seite +
+
diff --git a/ag/clan/c_kampf.php b/ag/clan/c_kampf.php new file mode 100644 index 0000000..40fde18 --- /dev/null +++ b/ag/clan/c_kampf.php @@ -0,0 +1,366 @@ + + + +'; + echo '

Bitte wähle einen Clan aus

'; + } else { + if (date("d.m.Y") == date("d.m.Y", $_POST['datum']) AND date("G") >= $_POST['zeitpunkt']) { + echo '
'; + echo '

Dieser Zeitpunkt ist bereits verstrichen. Bitte wähle einen Zeitpunkt der noch nicht verstrichen ist.

'; + } else { + $clanid = getClanOfUser($user_ida[id]); + $timestamp= strtotime(date("d.m.Y", $_POST['datum']))+$_POST['zeitpunkt']*3600; + if (termineBereitsBelegt($clanid,$_POST['clan'],$timestamp) == 1) { + echo '
'; + echo '

'.$errmsg.'

'; + echo '

Bitte wähle einen anderen Zeitpunkt!

'; + } else { + erstelleClanKampf($user_ida[id],$_POST['clan'],$timestamp,unserialize(stripslashes($_POST['chars'])),$_POST['numberoffighter'],$_POST['clanfighttyp']); + $clandaten= getClanInformation($_POST['clan']); + echo '

Anfrage, zwecks einen Clankampfes, an Clan "'.$clandaten['clanname'].'" erfolgreich gesendet!

'; + echo 'zurück zur Übersicht'; + } + } + } + } else { + echo '

Bitte führe das Skript zur Herausforderung an einen anderen Clan korrekt aus und versuche nicht es irgendwie zu umgehen!

'; + } + break; + case "del": + if (checkClanfight($_GET['kid']) == 1) { + if (clanfightFromOwnClan($_GET['kid'],$user_ida[id]) == 1) { + deleteClanFight($_GET['kid']); + } else { + echo $errmsg; + } + } else { + echo $errmsg; + } + break; + case "acc": + if (checkClanfight($_GET['kid']) == 1) { + if (clanfightToOwnClan($_GET['kid'],$user_ida[id]) == 1) { + displayClanUser($user_ida[id],getNumberOfFightersByClanfightID($_GET['kid']),'','accept'); + } else { + echo $errmsg; + } + } else { + echo $errmsg; + } + break; + case "acc2": + displayCharsOfClanUser($user_ida[id], $_POST['user'], $_POST['numberoffighter'],'','accept'); + break; + case "acc_fin": + acceptClanfight($_POST['kid'],$_POST['char']); + break; + case "dec": + if (checkClanfight($_GET['kid']) == 1) { + if (clanfightToOwnClan($_GET['kid'],$user_ida[id]) == 1) { + if (isset($_GET['true'])) { + declineClanfight($_GET['kid'],$_GET['true']); + } else { + declineClanfight($_GET['kid']); + } + } else { + echo $errmsg; + } + } else { + echo $errmsg; + } + break; + case "look": + if (checkClanfight($_GET['kid'],$_GET['id']) == 1) { + ?> + zurück zur Übersicht + + + + + '; + } + + $o=0; + $kaempfe_query= mysql_query('SELECT * FROM clan_fights WHERE clanfight_id='.$_GET['kid'].' AND runde='.$y.' ORDER BY id ASC'); + while ($kaempfe_array= mysql_fetch_assoc($kaempfe_query)) { + + if($o == 0) { + $mul = '#018B8B'; + $o++; + } else { + $mul = '#029393'; + $o--; + } + + $char_a= getChar2($kaempfe_array['char1']); + $char_b= getChar2($kaempfe_array['char2']); + if ($kaempfe_array['win'] == $kaempfe_array['char1']) { + $pkt_satz_a++; + } else { + $pkt_satz_b++; + } + + if ($kampf_daten['zeitpunkt']+$x*$duration_of_one_fight <= time()) { + echo ''; + } + $x++; + } + + if ($pkt_satz_a > $pkt_satz_b) { + $pkt_runde_a++; + } elseif ($pkt_satz_b > $pkt_satz_a) { + $pkt_runde_b++; + } + + $pkt_array[$y][pkt_satz_a]= $pkt_satz_a; + $pkt_array[$y][pkt_satz_b]= $pkt_satz_b; + $pkt_array[$y][pkt_runde_a]= $pkt_runde_a; + $pkt_array[$y][pkt_runde_b]= $pkt_runde_b; + + $pkt_satz_a= 0; + $pkt_satz_b= 0; + } + + ?> +
Clankampf
'; + echo '

Runde: '.$y.' '; + echo '

'; + + if (time()-$duration_of_one_fight < $kampf_daten['zeitpunkt']+$x*$duration_of_one_fight) { + echo $char_a['name'].' vs. '.$char_b['name'].'- : -'; + } else { + if ($kaempfe_array['char1'] == $kaempfe_array['win']) { + echo ''.$char_a['name'].' vs. '.$char_b['name'].''.$pkt_satz_a.' : '.$pkt_satz_b; + } else { + echo ''.$char_a['name'].' vs. '.$char_b['name'].''.$pkt_satz_a.' : '.$pkt_satz_b; + } + } + echo '
+

+ + + + + '.$y.''; + } + ?> + + + + $pkt_array[$y][pkt_satz_b]) { + echo ''; + } else { + echo ''; + } + } + ?> + + + + $pkt_array[$y][pkt_satz_a]) { + echo ''; + } else { + echo ''; + } + } + ?> + +
Runde:
Punkte :'.$pkt_array[$y][pkt_satz_a].''.$pkt_array[$y][pkt_satz_a].'
Punkte :'.$pkt_array[$y][pkt_satz_b].''.$pkt_array[$y][pkt_satz_b].'
+ '.$clan_a[clanname].' '.$pkt_array[count($pkt_array)][pkt_runde_a].' : '.$pkt_array[count($pkt_array)][pkt_runde_b].' '.$clan_b[clanname].'

'; + if ($pkt_array[count($pkt_array)][pkt_runde_a] > $pkt_array[count($pkt_array)][pkt_runde_b]) { + echo '

Gewinner: '.$clan_a[clanname].' - Verlierer: '.$clan_b[clanname].'

'; + } elseif ($pkt_array[count($pkt_array)][pkt_runde_b] > $pkt_array[count($pkt_array)][pkt_runde_a]) { + echo '

Gewinner: '.$clan_b[clanname].' - Verlierer: '.$clan_a[clanname].'

'; + } else { + echo '

Der Clankampf zwischen '.$clan_b[clanname].' und '.$clan_a[clanname].' endet Unentschieden.

'; + } + + if ($kampf_daten['score_set'] == 0) { + if ($pkt_array[count($pkt_array)][pkt_runde_a] > $pkt_array[count($pkt_array)][pkt_runde_b]) { + $clan_a_updaten= mysql_query('UPDATE clan SET siege=siege+1 WHERE id='.$kampf_daten['clan'].' LIMIT 1'); + $clan_b_updaten= mysql_query('UPDATE clan SET niederlagen=niederlagen+1 WHERE id='.$kampf_daten['gclan'].' LIMIT 1'); + } elseif ($pkt_array[count($pkt_array)][pkt_runde_b] > $pkt_array[count($pkt_array)][pkt_runde_a]) { + $clan_a_updaten= mysql_query('UPDATE clan SET niederlagen=niederlagen+1 WHERE id='.$kampf_daten['clan'].' LIMIT 1'); + $clan_b_updaten= mysql_query('UPDATE clan SET siege=siege+1 WHERE id='.$kampf_daten['gclan'].' LIMIT 1'); + } else { + $clan_a_updaten= mysql_query('UPDATE clan SET unentschieden=unentschieden+1 WHERE id='.$kampf_daten['clan'].' LIMIT 1'); + $clan_b_updaten= mysql_query('UPDATE clan SET unentschieden=unentschieden+1 WHERE id='.$kampf_daten['gclan'].' LIMIT 1'); + } + $score_set_updaten= mysql_query('UPDATE clan_fight_list SET score_set=1 WHERE id='.$_GET['kid'].' LIMIT 1'); + } + + } + } else { + echo $errmsg; + } + break; + case "create": + displayClanFightType($user_ida[id]); + break; + case "fights": + $clanid= getClanOfUser($user_ida[id]); + echo getActualClanFightInformation($clanid,$user_ida[id]); + break; + case "look_survival": + if (checkClanfight($_GET['kid'],$_GET['id']) == 1) { + ?> + zurück zur Übersicht + + + + + '; + } + $x++; + } + + ?> +
Clankampf
'; + + if (time()-$duration_of_one_fight < $kampf_daten['zeitpunkt']+$x*$duration_of_one_fight) { + echo $char_a['name'].' vs. '.$char_b['name'].'- : -'; + } else { + if ($kaempfe_array['char1'] == $kaempfe_array['win']) { + echo ''.$char_a['name'].' vs. '.$char_b['name'].''.$pkt_satz_a.' : '.$pkt_satz_b; + } else { + echo ''.$char_a['name'].' vs. '.$char_b['name'].''.$pkt_satz_a.' : '.$pkt_satz_b; + } + } + echo '
+

+ '.$clan_a[clanname].' '.$pkt_satz_a.' : '.$pkt_satz_b.' '.$clan_b[clanname].'

'; + if ($pkt_satz_a > $pkt_satz_b) { + echo '

Gewinner: '.$clan_a[clanname].' - Verlierer: '.$clan_b[clanname].'

'; + } elseif ($pkt_satz_b > $pkt_satz_a) { + echo '

Gewinner: '.$clan_b[clanname].' - Verlierer: '.$clan_a[clanname].'

'; + } + + if ($kampf_daten['score_set'] == 0) { + if ($pkt_satz_a > $pkt_satz_b) { + $clan_a_updaten= mysql_query('UPDATE clan SET siege=siege+1 WHERE id='.$kampf_daten['clan'].' LIMIT 1'); + $clan_b_updaten= mysql_query('UPDATE clan SET niederlagen=niederlagen+1 WHERE id='.$kampf_daten['gclan'].' LIMIT 1'); + } elseif ($pkt_satz_b > $pkt_satz_a) { + $clan_a_updaten= mysql_query('UPDATE clan SET niederlagen=niederlagen+1 WHERE id='.$kampf_daten['clan'].' LIMIT 1'); + $clan_b_updaten= mysql_query('UPDATE clan SET siege=siege+1 WHERE id='.$kampf_daten['gclan'].' LIMIT 1'); + } + $score_set_updaten= mysql_query('UPDATE clan_fight_list SET score_set=1 WHERE id='.$_GET['kid'].' LIMIT 1'); + } + + } + } else { + echo $errmsg; + } + break; + default: + checkIfChallengeTimedOut($user_ida[id]); + #checkIfClanFightsToExecute($user_ida[id]); + displayClanFights($user_ida[id]); + break; +} + +?> \ No newline at end of file diff --git a/ag/clan/c_kampf_anzeige.php b/ag/clan/c_kampf_anzeige.php new file mode 100644 index 0000000..cc6655f --- /dev/null +++ b/ag/clan/c_kampf_anzeige.php @@ -0,0 +1,60 @@ + + + diff --git a/ag/clan/c_markt.php b/ag/clan/c_markt.php new file mode 100644 index 0000000..fc26a6a --- /dev/null +++ b/ag/clan/c_markt.php @@ -0,0 +1,132 @@ + 
Geld: $user[geld] - $item_info[preis] = $new_geld"; + + displayErrorMessage(NULL,$fehler_m, 'weiter'); + exit; +} else if($charm == 5){ + $user = mysql_Fetch_array(mysql_query("SELECT leader, co_leader, geld, id FROM clan WHERE id='$user_ida[clan]'")); + + if($user['leader'] != $user_ida['id'] AND $user['co_leader'] != $user_ida['id']) { + displayErrorMessage(NULL,'Nur der Leader und der Co-Leader kann Clanitems abreissen!', displayHistoryBackLink()); + exit; + } + + mysql_query('Delete from clan_ware where clan = '.$user_ida['clan'].' and item_id = '.$item_id); + if(mysql_affected_rows() > 0){ + displayErrorMessage(NULL,'Abreissen erfolgreich!', 'weiter'); + } else{ + displayErrorMessage(NULL,'Abreissen ist fehlgeschlagen!', displayHistoryBackLink()); + + } + +} +if(!$charm) +{ + if(!$oder) + { + $oder = preis; + } + ?> + + + + +
+
+ + + + + + + + + + + + + + + + + + + + '; + } else{ + echo ''; + } + ?> + + + + + +
Clan Markt
ItemKaufpreisMiete*Nutzung**TP-VerbrauchInfoKaufen
+ +
* Miete wird täglich durch den Clan bezahlt und richtet sich nach der Charanzahl im Clan bei denen aktuell Clantraining eingestellt ist! (es wird mindestens für 12 Chars bezahlt) +
** Die Nutzungsgebühr wird durch den User pro Char bezahlt (allerdings nur wenn der Char dort trainiert und genug TP hat)
+ \ No newline at end of file diff --git a/ag/clan/c_ranglist.php b/ag/clan/c_ranglist.php new file mode 100644 index 0000000..f00811d --- /dev/null +++ b/ag/clan/c_ranglist.php @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + '.$wahl_x.''; + echo ''; + echo ''; + } else { + echo ''; + echo ''; + } + ?> + +'."\n"; + echo ''."\n"; + echo ''."\n"; + echo ''."\n"; + echo ''."\n"; + echo ''."\n"; + + if($wahl == "geld"){ + echo ''; + echo ''; + } else { + echo ''; + echo ''; + echo ''; + } + echo ''."\n"; + +?> + + +
+

+


+ + +     + +
+
+

+

#NameLeaderMemberSlots'.$wahl_z.''.$wahl_y.''.$wahl_x.' Aktuell'.$wahl_x.' ∑
'.$x.''.$row['clanname'].''.displayUserLink($row['leader'], $row['nickname']).''.$row['member'].''.$row['freeslots'].''.displayMoney($row[$wahl]).''.displayMoney($row['summe']).''.displayCount($row[strtolower($wahl_x)]).''.displayCount($row[strtolower($wahl_z)]).''.displayCount($row[strtolower($wahl_y)]).'
+ + diff --git a/ag/clan/c_ticker.php b/ag/clan/c_ticker.php new file mode 100644 index 0000000..5c8d00e --- /dev/null +++ b/ag/clan/c_ticker.php @@ -0,0 +1,26 @@ + +
+ + + + + + + + +'; + } +?> +
Clan Ticker
DatumNachricht
'.$tick['date'].''.$tick['text'].'
+
\ No newline at end of file diff --git a/ag/clan/c_ware.php b/ag/clan/c_ware.php new file mode 100644 index 0000000..2333e35 --- /dev/null +++ b/ag/clan/c_ware.php @@ -0,0 +1,81 @@ + + + + + +
+ + + + + + + + + + + + + + + + + +
+

Clan Items

+ Raum für + +
  
+ + + + diff --git a/ag/clan/clan_info.php b/ag/clan/clan_info.php new file mode 100644 index 0000000..f961d1e --- /dev/null +++ b/ag/clan/clan_info.php @@ -0,0 +1,102 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + '.$clan['homepage'].''; + } else{ + echo ''; + } + ?> + + + + + + + + + +
Info
Leader:
Co-Leader:
Clanzeichen:
Member ():',$member); ?>
Level:
Homepage:Keine
Info:
+
+ + Dies ist keine Zahl

'; +} else { + /* Pr�fen ob die �bergebene oder eingegebene ID in der Tabelle der Clans vorhanden ist */ + $clanvorhanden = mysql_num_rows(mysql_query('SELECT id FROM clan where id = '.$clan_id)); + /* Wenn keine Datensatz mit dieser ID vorhanden ist, ist die Variable $clanvorhanden 0 */ + if ($clanvorhanden == 0) { + echo '

Einen Clan mit dieser ID exisitert nicht!

'; + /* Wenn es einen Datensatz mit der ID in der Tabelle gibt, werden die Claninformationen angezeigt */ + } else { + displayClanProfile($clan_id); + } +} +?> \ No newline at end of file diff --git a/ag/clan/del.php b/ag/clan/del.php new file mode 100644 index 0000000..054123e --- /dev/null +++ b/ag/clan/del.php @@ -0,0 +1,28 @@ +Ja | '.displayHistoryBackLink()); +} +if($charm == 1) { + $dl = mysql_fetch_array(mysql_query("SELECT id FROM clan WHERE id='$user_ida[clan]' AND leader='$user_ida[id]' LIMIT 1")); + if($dl['id']) { + mysql_query("DELETE FROM clan WHERE id='$user_ida[clan]' AND leader='$user_ida[id]' LIMIT 1"); + mysql_query("DELETE FROM clan_ware WHERE clan='$dl[id]'"); + + mysql_query("UPDATE user SET clan=NULL WHERE clan='$user_ida[clan]' LIMIT 1"); + displayErrorMessage(NULL,'Clan erfolgreich gelöscht', 'weiter...'); + } +} \ No newline at end of file diff --git a/ag/clan/gfx/clan_info.htm b/ag/clan/gfx/clan_info.htm new file mode 100644 index 0000000..cb4f495 --- /dev/null +++ b/ag/clan/gfx/clan_info.htm @@ -0,0 +1,46 @@ + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

$CLANNAME Info

 Leader: $LEADER
 Co Leader. $COLEADER
 Clanzeichen: $CLANZEICHEN
 Member: $MIN_MEMBER / $MAX_MEMBER
 Level: $LEVEL
 Homepage: $HOMEPAGE
 Info: 
 
+
+
+ + \ No newline at end of file diff --git a/ag/clan/gfx/gfx_config.php b/ag/clan/gfx/gfx_config.php new file mode 100644 index 0000000..39e62b1 --- /dev/null +++ b/ag/clan/gfx/gfx_config.php @@ -0,0 +1,20 @@ + \ No newline at end of file diff --git a/ag/clan/index.php b/ag/clan/index.php new file mode 100644 index 0000000..bc9569a --- /dev/null +++ b/ag/clan/index.php @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + +

Clan löschen

+ +

+

Clan Mitglieder

+

Nickname

 kicken"; } ?>
+

Charakter

 
+

\ No newline at end of file diff --git a/ag/clan/kampf/SSJ.php b/ag/clan/kampf/SSJ.php new file mode 100644 index 0000000..a3c7b56 --- /dev/null +++ b/ag/clan/kampf/SSJ.php @@ -0,0 +1,56 @@ + \ No newline at end of file diff --git a/ag/clan/kampf/atk_wert.php b/ag/clan/kampf/atk_wert.php new file mode 100644 index 0000000..0bb8962 --- /dev/null +++ b/ag/clan/kampf/atk_wert.php @@ -0,0 +1,29 @@ + $speed_char2) { +if($speed_prz_1*90 >= $speed_char2) { $play1_ausweich=20; } +if($speed_prz_1*80 >= $speed_char2) { $play1_ausweich=41; } +if($speed_prz_1*70 >= $speed_char2) { $play1_ausweich=52; } +if($speed_prz_1*60 >= $speed_char2) { $play1_ausweich=63; } +if($speed_prz_1*50 >= $speed_char2) { $play1_ausweich=80; } +} else { +if($speed_prz_2*90 >= $speed_char1) { $play2_ausweich=20; } +if($speed_prz_2*80 >= $speed_char1) { $play2_ausweich=41; } +if($speed_prz_2*70 >= $speed_char1) { $play2_ausweich=52; } +if($speed_prz_2*60 >= $speed_char1) { $play2_ausweich=63; } +if($speed_prz_2*50 >= $speed_char1) { $play2_ausweich=80; } +} +$zufall_pl1=mt_rand(1,100); +$zufall_pl2=mt_rand(1,100); +?> \ No newline at end of file diff --git a/ag/clan/kampf/ausdauer.php b/ag/clan/kampf/ausdauer.php new file mode 100644 index 0000000..6e0f19f --- /dev/null +++ b/ag/clan/kampf/ausdauer.php @@ -0,0 +1,25 @@ + 0) { + ################### PLAYER 1 + + $k_starke[0] = round($k_starke[0] + (($k_ausdauer[0] / 20)) - ($k_starke[0] / 50)); + $k_speed[0] = round($k_speed[0] + ($k_ausdauer[0] / 10)); + $k_ver[0] = round($k_ver[0] + ($k_ausdauer[0] / 10)); + $k_ausdauer[0] = round($k_ausdauer[0] - ($k_ausdauer[0] / 20)); + + ################### PLAYER 2 + + $k_starke[1] = round($k_starke[1] + (($k_ausdauer[1] / 20)) - ($k_starke[1] / 50)); + $k_speed[1] = round($k_speed[1] + ($k_ausdauer[1] / 10)); + $k_ver[1] = round($k_ver[1] + ($k_ausdauer[1] / 10)); + $k_ausdauer[1] = round($k_ausdauer[1] - ($k_ausdauer[1] / 20)); + +} +?> \ No newline at end of file diff --git a/ag/clan/kampf/hp.php b/ag/clan/kampf/hp.php new file mode 100644 index 0000000..0d372f2 --- /dev/null +++ b/ag/clan/kampf/hp.php @@ -0,0 +1,20 @@ + 0) { +$k_hp[0] = $k_hp[0] - $technick1[hp]; +} + +####################KAMPF HP SPIELER 2 + +if($technick2['type'] == normal AND $technick2['hp'] > 0) { +$k_hp[1] = $k_hp[1] - $technick2['hp']; +} +?> \ No newline at end of file diff --git a/ag/clan/kampf/hp2.php b/ag/clan/kampf/hp2.php new file mode 100644 index 0000000..04d6961 --- /dev/null +++ b/ag/clan/kampf/hp2.php @@ -0,0 +1,47 @@ += $speeds_char2) { + if ($technick1['type'] == 'hp') { + $k_mp[0] = $k_mp[0] - $technick1['mp']; + if ($k_mp[0] < 0) { + $k_mp[0] = 0; + } else { + $k_hp[0] = $k_hp[0] + $technick1['hp']; + if ($k_hp1[1] < $k_hp[0]) { + $k_hp[0] = $k_hp1[1]; + } + + $schaden_2 = 'Keinen Schaden'; + $schaden_1 = '+ ' . $technick1['hp'] . ' HP'; + } + $aktion_AV1[$x] = 'nein'; + } +} else { + + ####################KAMPF HP SPIELER 2 + + if ($technick2['type'] == 'hp') { + $k_mp[1] = $k_mp[1] - $technick2['mp']; + if ($k_mp[1] < 0) { + $k_mp[1] = 0; + } else { + $k_hp[1] = $k_hp[1] + $technick2['hp']; + if ($k_hp2[1] < $k_hp[1]) { + $k_hp[1] = $k_hp2[1]; + } + + $schaden_1 = 'Keinen Schaden'; + $schaden_2 = '+ '.$technick2['hp'].' HP'; + } + $aktion_AV2[$x] = 'nein'; + } +} +?> \ No newline at end of file diff --git a/ag/clan/kampf/kaioken.php b/ag/clan/kampf/kaioken.php new file mode 100644 index 0000000..655b2e8 --- /dev/null +++ b/ag/clan/kampf/kaioken.php @@ -0,0 +1,48 @@ + \ No newline at end of file diff --git a/ag/clan/kampf/kampf_rechnung.php b/ag/clan/kampf/kampf_rechnung.php new file mode 100644 index 0000000..3150d16 --- /dev/null +++ b/ag/clan/kampf/kampf_rechnung.php @@ -0,0 +1,115 @@ + $play2_ausweich) { + if (!$aktion_AV1[$x]) { + $alt_hp = $k_hp[1]; + + $charsa1_def = $k_ver[1] + $technick2['verteidigung']; + $charsa1_4_def = ($k_ver[1] + $technick2['verteidigung']) / 1.1; + + if ($charsa1_def <= 2) { + $charsa1_def = 2; + } + if ($charsa1_4_def < 1) { + $charsa1_4_def = 1; + } + + $charsa1_def = mt_rand($charsa1_4_def, $charsa1_def); + + $charsa1_str = $k_starke[0] * 1.8 + $technick1['starke']; + $charsa1_4_str = ($k_starke[0] * 1.8 + $technick1['starke']) + 1; + + if ($charsa1_str <= 2) { + $charsa1_str = 2; + } + + if ($charsa1_4_str < 1) { + $charsa1_4_str = 1; + } + + $charsa1_str = mt_rand($charsa1_4_str, $charsa1_str); + + $k_hp[1] = round(($k_hp[1] + $charsa1_def - $charsa1_str +mt_rand(1, 20))); + $schaden_1 = $alt_hp - $k_hp[1]; + if ($alt_hp < $k_hp[1]) { + $k_hp[1] = $alt_hp; + $schaden_1 = 0; + } + + } +} else { + $schaden_1 = 'Keinen Schaden'; +} +if ($zufall_pl2 > $play1_ausweich) { + if (!$aktion_AV2[$x]) { + + $alt_hp = $k_hp[0]; + + $charsa2_def = $k_ver[0] + $technick1['verteidigung']; + $charsa2_4_def = ($k_ver[0] + $technick1['verteidigung']) / 1.1; + + if ($charsa2_def <= 2) { + $charsa2_def = 2; + } + if ($charsa2_4_def < 1) { + $charsa2_4_def = 1; + } + + $charsa2_def = mt_rand($charsa2_4_def, $charsa2_def); + $charsa2_str = $k_starke[1] * 1.8 + $technick2['starke']; + $charsa2_4_str = ($k_starke[1] * 1.8 + $technick2['starke']) + 1; + + if ($charsa1_str <= 2) { + $charsa1_str = 2; + } + if ($charsa2_4_str < 1) { + $charsa2_4_str = 1; + } + + $charsa2_str = mt_rand($charsa2_4_str, $charsa2_str); + + $k_hp[0] = round(($k_hp[0] + $charsa2_def - $charsa2_str +mt_rand(1, 20))); + $schaden_2 = $alt_hp - $k_hp[0]; + if ($alt_hp < $k_hp[0]) { + $k_hp[0] = $alt_hp; + $schaden_2 = 0; + } + } +} else { + $schaden_2 = "Keinen Schaden"; +} + +if (!$technick1['name']) { + $technick1['name'] = 'Normaler Kick'; +} +if (!$technick2['name']) { + $technick2['name'] = 'Normaler Kick'; +} + +if ($k_hp[0] < 0) { + $k_hp7[0] = 0; +} else { + $k_hp7[0] = $k_hp[0]; +} +if ($k_mp[0] < 0) { + $k_mp7[0] = 0; +} else { + $k_mp7[0] = $k_mp[0]; +} +if ($k_hp[1] < 0) { + $k_hp7[1] = 0; +} else { + $k_hp7[1] = $k_hp[1]; +} +if ($k_mp[1] < 0) { + $k_mp7[1] = 0; +} else { + $k_mp7[1] = $k_mp[1]; +} +?> \ No newline at end of file diff --git a/ag/clan/kampf/mp.php b/ag/clan/kampf/mp.php new file mode 100644 index 0000000..a748389 --- /dev/null +++ b/ag/clan/kampf/mp.php @@ -0,0 +1,30 @@ + 0) { + $k_mp[0] = $k_mp[0] - $technick1['mp']; + + if ($k_mp[0] < 0) { + $k_hp[0] = $k_hp[0] + ($k_mp[0] * 10); + $k_mp[0] = 0; + } +} +####################KAMPF MP SPIELER 2 + +if ($technick2['type'] == 'normal' AND $technick2['mp'] > 0) { + $k_mp[1] = $k_mp[1] - $technick2['mp']; + + if ($k_mp[1] < 0) { + $k_hp[1] = $k_hp[1] + ($k_mp[1] * 10); + $k_mp[1] = 0; + } +} +?> \ No newline at end of file diff --git a/ag/clan/kampf/mpv.php b/ag/clan/kampf/mpv.php new file mode 100644 index 0000000..517d3af --- /dev/null +++ b/ag/clan/kampf/mpv.php @@ -0,0 +1,26 @@ + \ No newline at end of file diff --git a/ag/clan/kampf/tausch.php b/ag/clan/kampf/tausch.php new file mode 100644 index 0000000..3133014 --- /dev/null +++ b/ag/clan/kampf/tausch.php @@ -0,0 +1,100 @@ += $technick1['mp']) { + if ($haloo1 > mt_rand(1, 100)) { + + $k_starke_alt[0] = $k_starke[0]; + $k_speed_alt[0] = $k_speed[0]; + $k_ver_alt[0] = $k_ver[0]; + $k_ausdauer_alt[0] = $k_ausdauer[0]; + $k_glueck_alt[0] = $k_glueck[0]; + $k_hp_alt[0] = $k_hp[0]; + + $k_starke_alt[1] = $k_starke[1]; + $k_speed_alt[1] = $k_speed[1]; + $k_ver_alt[1] = $k_ver[1]; + $k_ausdauer_alt[1] = $k_ausdauer[1]; + $k_glueck_alt[1] = $k_glueck[1]; + $k_hp_alt[1] = $k_hp[1]; + + $k_starke[0] = $k_starke_alt[1]; + $k_speed[0] = $k_speed_alt[1]; + $k_ver[0] = $k_ver_alt[1]; + $k_ausdauer[0] = $k_ausdauer_alt[1]; + $k_glueck[0] = $k_glueck_alt[1]; + $k_hp[0] = $k_hp_alt[1]; + + $k_starke[1] = $k_starke_alt[0]; + $k_speed[1] = $k_speed_alt[0]; + $k_ver[1] = $k_ver_alt[0]; + $k_ausdauer[1] = $k_ausdauer_alt[0]; + $k_glueck[1] = $k_glueck_alt[0]; + $k_hp[1] = $k_hp_alt[0]; + + } else { + $k_mp[0] = $k_mp[0] - $technick1['mp']; + $schaden_2 = 'Keinen Schaden'; + $schaden_1 = 'Körpertausch'; + } + } else { + $k_mp[0] = $k_mp[0] - $technick1['mp']; + $schaden_2 = 'Keinen Schaden'; + $schaden_1 = 'Körpertausch fehlgeschlagen'; + } + $aktion_AV1[$x] = 'nein'; +} + +################### Spieler 2 +if ($technick2['type'] == 'tausch') { + if ($k_mp[1] >= $technick2['mp']) { + if ($haloo1 > mt_rand(1, 100)) { + + $k_starke_alt[0] = $k_starke[0]; + $k_speed_alt[0] = $k_speed[0]; + $k_ver_alt[0] = $k_ver[0]; + $k_ausdauer_alt[0] = $k_ausdauer[0]; + $k_glueck_alt[0] = $k_glueck[0]; + $k_hp_alt[0] = $k_hp[0]; + + $k_starke_alt[1] = $k_starke[1]; + $k_speed_alt[1] = $k_speed[1]; + $k_ver_alt[1] = $k_ver[1]; + $k_ausdauer_alt[1] = $k_ausdauer[1]; + $k_glueck_alt[1] = $k_glueck[1]; + $k_hp_alt[1] = $k_hp[1]; + + $k_starke[0] = $k_starke_alt[1]; + $k_speed[0] = $k_speed_alt[1]; + $k_ver[0] = $k_ver_alt[1]; + $k_ausdauer[0] = $k_ausdauer_alt[1]; + $k_glueck[0] = $k_glueck_alt[1]; + $k_hp[0] = $k_hp_alt[1]; + + $k_starke[1] = $k_starke_alt[0]; + $k_speed[1] = $k_speed_alt[0]; + $k_ver[1] = $k_ver_alt[0]; + $k_ausdauer[1] = $k_ausdauer_alt[0]; + $k_glueck[1] = $k_glueck_alt[0]; + $k_hp[1] = $k_hp_alt[0]; + + } else { + $k_mp[1] = $k_mp[1] - $technick2['mp']; + $schaden_1 = 'Keinen Schaden'; + $schaden_2 = 'Körpertausch'; + } + } else { + $k_mp[1] = $k_mp[1] - $technick2['mp']; + $schaden_1 = 'Keinen Schaden'; + $schaden_2 = 'Körpertausch fehlgeschlagen'; + } + $aktion_AV2[$x] = 'nein'; +} \ No newline at end of file diff --git a/ag/clan/new.php b/ag/clan/new.php new file mode 100644 index 0000000..040a696 --- /dev/null +++ b/ag/clan/new.php @@ -0,0 +1,113 @@ +weiter...'); + exit; +} +?> + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Clan Gründen

+

Clanname

 
+

Clan Passwort

 
+

Clanzeichen vorn

 
+

Clanzeichen hinten

 
+

Clan Info

 
  
+
+ + + diff --git a/ag/clan/post.php b/ag/clan/post.php new file mode 100644 index 0000000..6f4a981 --- /dev/null +++ b/ag/clan/post.php @@ -0,0 +1,51 @@ +weiter...'); + exit; +} +?> +
+ + + + + + + + + + + + + +
+ Nachricht an Alle clan member
 
 
+
\ No newline at end of file diff --git a/ag/clan/profil.php b/ag/clan/profil.php new file mode 100644 index 0000000..f2545e4 --- /dev/null +++ b/ag/clan/profil.php @@ -0,0 +1,193 @@ +weiter...'); + exit; +} +?> + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Ihr Profil

+

Level

+  
+

Exp

+  
+

Clanname

+  
+

Passwort

+  
+

Homepage

+  
+

Banner (468 x 60)

+  
+

Clanzeichen vorn

+  
+

Clanzeichen hinten

+  
+

Leader

+   +
+

Co. Leader

+   +
+

Clan Info

 
+

+  
+
+ + + \ No newline at end of file diff --git a/ag/clan/spende.php b/ag/clan/spende.php new file mode 100644 index 0000000..39b6d0f --- /dev/null +++ b/ag/clan/spende.php @@ -0,0 +1,285 @@ +weiter...'); + exit; + } + displayErrorMessage(NULL,'

Willst du wirklich "'.$clan_geld.' ¥" an deinen Clan spenden ?

Ja | Nein

',''); + exit; +} elseif($charm == 2) { + +// Um Pufferueberlaeufe zu vermeiden, einfach die Laenge der Zeichenkette abfragen, ab der 8ten stelle also uerbe 99 Mio geht nicht aufeinmal! +if(strlen($clan_geld)>8) { + mysql_query("INSERT INTO cheater values('$user_ida[id]','Versuchte mehr als 99.999.999 aufeinmal zu Spenden! (Eingabe:".$clan_geld.")',now())"); + displayErrorMessage(NULL,'Es kann nicht mehr als 99.999.999 aufeinmal gespendet werden!', 'weiter...'); + exit; +} + +if($clan_geld <= 0) { + mysql_query("INSERT INTO cheater values('$user_ida[id]','Versuchte mehr weniger als 0 zu Spenden! (Eingabe:".$clan_geld.")',now())"); + displayErrorMessage(NULL,'Geld darf nicht unter 0 sein!', 'weiter...'); + exit; +} + +// Damit das minus nicht ausgenutzt wird!! +$auktionensumme = mysql_fetch_assoc(mysql_query('SELECT SUM(aktuellesgebot) as summe FROM auktion WHERE bieter = '.$user_ida[id].' GROUP BY bieter')); +$auktionensumme = $auktionensumme['summe']; + + +if($clan_geld+$auktionensumme>$user['geld']) { + displayErrorMessage(NULL,'Sie haben nicht genug Geld.', 'weiter...'); + exit; +} + +mysql_query("UPDATE clan SET geld=geld+'$clan_geld' WHERE id='$user_ida[clan]'"); +mysql_query('Update user SET geld=geld-'.$clan_geld.' WHERE id='.$user_ida['id']); +mysql_query('UPDATE user_clan SET spende = spende + '.$clan_geld.' WHERE clanid = '.$user_ida['clan'].' and userid = '.$user_ida['id']); + +if(mysql_affected_rows() == 0){ + mysql_query('INSERT INTO user_clan(spende,clanid,userid) values('.$clan_geld.','.$user_ida['clan'].','.$user_ida['id'].')'); +} +//mysql_query("UPDATE user SET geld=geld-'$_GET[clan_geld]', clan_geld=clan_geld+'$_GET[clan_geld]' WHERE id='$user_ida[id]'"); + +displayErrorMessage(NULL,'An Clan Erfolgreich Gespendet', 'weiter...'); +exit; +} +?> + + + + +'; +$qry = mysql_query($sql); +$clanraum = array(); +$clanraum_a = array(); +while($row = mysql_fetch_assoc($qry)){ + $clanraum[$row['id']] = $row; +// print_r($row); + $clanraum_a[] = $row; +} +$raumanzahl = count($clanraum_a); +//echo 'Raumanzahl = '.$raumanzahl.'
'; +$sql = 'SELECT chars.clan_train, count(chars.id) as anzahl from chars inner join user on chars.besitzer = user.id where user.clan = '.$user_ida['clan'].' and chars.clan_train != 0 group by chars.clan_train'; +//echo $sql.'
'; +$qry = mysql_query($sql); + +$clanrauminfo = array(); +while($row = mysql_fetch_assoc($qry)){ + $clanrauminfo[$row['clan_train']] = $row; +} + +//print_r($clanrauminfo); + +$sql = 'select clan_ware.id as clan_warenid, user.id as userid, count(chars.id) as anzahl, clan.id as clanid from clan inner join clan_ware on clan.id = clan_ware.clan inner join clan_item on clan_item.id = clan_ware.item_id inner join user on clan.id = user.clan left join chars on user.id = chars.besitzer and clan_ware.id = chars.clan_train where clan.id = '.$user_ida['clan'].' group by userid, clan_warenid order by userid, clan_warenid'; +//echo $sql.'
'; +$qry = mysql_query($sql); + +$user_raum = array(); +// Anzahl der Chars pro Raum pro User +while($row = mysql_fetch_assoc($qry)){ + $user_raum[$row['userid']][$row['clan_warenid']] = $row; +} + +//print_r($user_raum); + +$clans_spend = mysql_query('SELECT spende, nickname, user.id as userid FROM user left join user_clan on user.id = user_clan.userid and user.clan = user_clan.clanid WHERE user.clan = '.$user_ida['clan'].' ORDER BY spende DESC'); +$member = mysql_num_rows($clans_spend); + +$sql = 'select besitzer, round(sum(1/(1+exp(3-level/12)) * nutzung)) as nutzkosten from user inner join chars on chars.besitzer = user.id inner join clan_ware on chars.clan_train = clan_ware.id inner join clan_item on clan_ware.item_id = clan_item.id where user.clan = clan_ware.clan and user.clan = '.$user_ida['clan'].' group by besitzer order by besitzer'; +//echo $sql.'
'; +$qry = mysql_query($sql); + +$user_nutz = array(); +while($row = mysql_fetch_assoc($qry)){ + $user_nutz[$row['besitzer']] = $row; +} + +//print_r($user_nutz); + +$clan_kosten = 0; +$clan_untersch = 0; + +for($i=0;$i<$raumanzahl;$i++){ + $clan_kosten += $clanraum_a[$i]['miete']*max($mindestchar, $clanrauminfo[$clanraum_a[$i]['id']]['anzahl']); + if($clanrauminfo[$clanraum_a[$i]['id']]['anzahl'] < $mindestchar){ + $clan_untersch += ($mindestchar - $clanrauminfo[$clanraum_a[$i]['id']]['anzahl']) * $clanraum_a[$i]['miete']; + } +} + +//echo 'Unterschuss: '.$clan_untersch.'
'; +$cols = 4; + +?> + + + + + + + + + + '.$clanraum_a[$i]['name'].''; + } + ?> + + + + + + + + + + +'.$user_raum[$row['userid']][$clanraum_a[$i]['id']]['anzahl'].''; + $costs += $user_raum[$row['userid']][$clanraum_a[$i]['id']]['anzahl']*$clanraum_a[$i]['miete']; + } + if($clan_untersch != 0){ + echo ''; + } else{ + echo ''; + } +// $checksumme += $costs + ($clan_untersch/$member); +?> + + + + + + + + + + '.$mindestchar.' ('.$clanrauminfo[$clanraum_a[$i]['id']]['anzahl'].')'; + }else{ + echo ''; + } + } + ?> + + +
Spender Liste
MemberSpendenMietgebührenNutzungsgebühren

'.displayMoney($costs + ($clan_untersch/$member)).' (incl. '.displayMoney($clan_untersch/$member).')'.displayMoney($costs).'

Member'.$clanrauminfo[$clanraum_a[$i]['id']]['anzahl'].'
+

+ +
+ + + + + + + + + + + + + + + + + + +
Clan Geld Spenden ()
Dein Geld -
Clan Geld + + + + +
 
diff --git a/ag/clan_kampf.php b/ag/clan_kampf.php new file mode 100644 index 0000000..8af4be8 --- /dev/null +++ b/ag/clan_kampf.php @@ -0,0 +1,191 @@ + + + + time()) { + displayErrorMessage(NULL, 'Der Kampf ist noch nicht vorbei!', displayHistoryBackLink()); + exit; +} + +while ($pl < 3) { + $pl2 = $pl +1; + $kampf1 = mysql_Fetch_array(mysql_query("SELECT * FROM clan_kampf WHERE char1='$c_a1[$pl]' OR char2='$c_a1[$pl]' AND x_satz='$kampf9[x_satz]' LIMIT 1")); + $user = mysql_fetch_array(mysql_query("SELECT id, geld FROM user WHERE nickname='$name' LIMIT 1")); + + $char_1 = getChar($kampf1['char1']);mysql_Fetch_array(mysql_query("SELECT c.name, c.hp, c.mp, c.bild, c.id, u.clan FROM chars c LEFT JOIN user u ON(c.besitzer=u.id) WHERE c.id='$kampf1[char1]' LIMIT 1")); + $char_2 = getChar($kampf1['char1']);mysql_Fetch_array(mysql_query("SELECT c.name, c.hp, c.mp, c.bild, c.id, u.clan FROM chars c LEFT JOIN user u ON(c.besitzer=u.id) WHERE c.id='$kampf1[char2]' LIMIT 1")); + + $arena = mysql_Fetch_array(mysql_query("SELECT name, besitzer, history_besucher, history_geld FROM arena WHERE id='$kampf1[arena_name]' LIMIT 1")); + $my_charakter = mysql_fetch_array(mysql_Query("SELECT name, siege, niederlagen, liga_siege, liga_niederlagen, preis, dead_list, besitzer FROM chars WHERE id='$char_id' LIMIT 1")); + + $starke1 = explode(",", $kampf1[starke1]); + $starke2 = explode(",", $kampf1[starke2]); + $ver1 = explode(",", $kampf1[ver1]); + $ver2 = explode(",", $kampf1[ver2]); + $speed1 = explode(",", $kampf1[speed1]); + $speed2 = explode(",", $kampf1[speed2]); + $ausdauer1 = explode(",", $kampf1[ausdauer1]); + $ausdauer2 = explode(",", $kampf1[ausdauer2]); + + $schaden1 = explode(",", $kampf1[schaden1]); + $schaden2 = explode(",", $kampf1[schaden2]); + $attacke1 = explode(",", $kampf1[attacke1]); + $attacke2 = explode(",", $kampf1[attacke2]); + + $hp1 = explode(",", $kampf1[hp1]); + $hp2 = explode(",", $kampf1[hp2]); + $mp1 = explode(",", $kampf1[mp1]); + $mp2 = explode(",", $kampf1[mp2]); + + $a_hp1 = explode(",", $char_1[hp]); + $a_hp2 = explode(",", $char_2[hp]); + $a_mp1 = explode(",", $char_1[mp]); + $a_mp2 = explode(",", $char_2[mp]); + $runde = 1; + + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf_anzeige.php'); + + if ($kampf1[win] == "$char_1[name]") { + $clan1++; + } + if ($kampf1[win] == "$char_2[name]") { + $clan2++; + } + + if (!$kampf1[db_satz]) { + $pluto++; + } + + $runde = $runde -1; + + if ($kampf1[db_satz] == $char_id) { + $char_infos = mysql_fetch_Array(mysql_query("SELECT name, id, hp, mp, exp FROM chars WHERE id='$char_id' LIMIT 1")); + + $alt_exp = explode(",", $char_infos[exp]); + + if ($kampf1[char1] == $char_id) { + $new_exp = $alt_exp[0] + $kampf1[exp1]; + $new_geld = $user[geld] + $kampf1[geld1] + $ex_geld; + $new_hp = $hp1[$runde]; + $new_mp = $mp1[$runde]; + if ($new_hp < 1) { + $new_hp = 1; + } + if ($new_mp < 1) { + $new_mp = 1; + } + if ($new_hp > $hp1[1]) { + $new_hp = $hp1[1]; + } + if ($new_mp > $mp1[1]) { + $new_mp = $mp1[1]; + } + mysql_query("UPDATE chars SET status='Frei', mp='$new_mp,$a_mp1[1]', hp='$new_hp,$a_hp1[1]', exp='$new_exp,$alt_exp[1]' WHERE id='$char_id' LIMIT 1"); + } else { + + $new_exp = $alt_exp[0] + $kampf1[exp2]; + $new_geld = $user[geld] + $kampf1[geld2] + $ex_geld; + $new_hp = $hp2[$runde]; + $new_mp = $mp2[$runde]; + if ($new_hp < 1) { + $new_hp = 1; + } + if ($new_mp < 1) { + $new_mp = 1; + } + if ($new_hp > $hp2[1]) { + $new_hp = $hp2[1]; + } + if ($new_mp > $mp2[1]) { + $new_mp = $mp2[1]; + } + mysql_query("UPDATE chars SET status='Frei', mp='$new_mp,$a_mp2[1]', hp='$new_hp,$a_hp2[1]', exp='$new_exp,$alt_exp[1]' WHERE id='$char_id' LIMIT 1"); + } + + ###################################################CHARAKTER WIN + + if ($kampf1[win] == "$my_charakter[name]") { + $new_siege = $my_charakter[siege] + 1; + + mysql_query("UPDATE chars SET siege='$new_siege' WHERE id='$char_id'"); + } else { + + ###################################################CHARAKTER LOSE + $new_niederlage = $my_charakter[niederlage] + 1; + + mysql_query("UPDATE chars SET niederlage='$new_niederlage' WHERE id='$char_id'"); + } + + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/exp.php'); + + mysql_query("UPDATE user SET geld='$new_geld' WHERE id='$user[id]' LIMIT 1"); + mysql_query("UPDATE clan_kampf SET db_satz='' WHERE db_satz='$char_id'"); + + } + + $pl++; +} + +$clan_name1 = mysql_fetch_Array(mysql_query("SELECT clanname, siege, niederlagen, id FROM clan WHERE id='$char_1[clan]' LIMIT 1")); +$clan_name2 = mysql_fetch_Array(mysql_query("SELECT clanname, siege, niederlagen, id FROM clan WHERE id='$char_2[clan]' LIMIT 1")); + +if ($c_a1[0] == $kampf9[char1] OR $c_a1[1] == $kampf9[char1] OR $c_a1[2] == $kampf9[char1]) { + + if ($clan1 > $clan2) { + $new_siegea1 = $clan_name1[siege] + 1; + $clan_sieger = $clan_name1[clanname]; + if ($pluto == -1) { + mysql_Query("UPDATE clan SET siege='$new_siegea1' WHERE id='$clan_name1[id]' LIMIT 1"); + } + + } else { + $clan_sieger = $clan_name2[clanname]; + $new_niederlage1 = $clan_name1[niederlagen] + 1; + if ($pluto == -1) { + mysql_Query("UPDATE clan SET niederlagen='$new_niederlage1' WHERE id='$clan_name1[id]' LIMIT 1"); + } + } + +} else { + + if ($clan1 < $clan2) { + $new_siegea1 = $clan_name2[siege] + 1; + $clan_sieger = $clan_name2[clanname]; + if ($pluto == -1) { + mysql_Query("UPDATE clan SET siege='$new_siegea1' WHERE id='$clan_name2[id]' LIMIT 1"); + } + } else { + $clan_sieger = $clan_name1[clanname]; + $new_niederlage1 = $clan_name2[niederlagen] + 1; + if ($pluto == -1) { + mysql_Query("UPDATE clan SET niederlagen='$new_niederlage1' WHERE id='$clan_name2[id]' LIMIT 1"); + } + } +} +if ($pluto == 1) { + mysql_query("DELETE FROM clan_kampf WHERE x_satz='$user_ida[clan]'"); +} + +echo "

Clan Sieger: $clan_sieger"; +*/ +?> \ No newline at end of file diff --git a/ag/donate.html b/ag/donate.html new file mode 100644 index 0000000..0a1ce80 --- /dev/null +++ b/ag/donate.html @@ -0,0 +1,30 @@ + + + + + + + + + +
+ + + + + + + +
+
+ + + + +
+
+ AG unterstützen +
+
+ + \ No newline at end of file diff --git a/ag/dragonballs.php b/ag/dragonballs.php new file mode 100644 index 0000000..cd149c9 --- /dev/null +++ b/ag/dragonballs.php @@ -0,0 +1,221 @@ +weiter'); + } else{ + mysql_query('INSERT sp_ware SET item=11, user='.$user['id']); // 1 + mysql_query('INSERT sp_ware SET item=11, user='.$user['id']); // 2 + mysql_query('INSERT sp_ware SET item=11, user='.$user['id']); // 3 + mysql_query('INSERT sp_ware SET item=11, user='.$user['id']); // 4 + mysql_query('INSERT sp_ware SET item=11, user='.$user['id']); // 5 + mysql_query('INSERT sp_ware SET item=11, user='.$user['id']); // 6 + mysql_query('INSERT sp_ware SET item=11, user='.$user['id']); // 7 + } + semaphoreDown($ressource); + return; +} + + +function displayWuensche($user){ +$items = mysql_query('SELECT distinct(i1.id) FROM sp_ware i INNER JOIN sp_item i1 ON(i.item=i1.id) WHERE i.user='.$user['id']); + +?> + +

+ + + + + + + + + + + + + + + + +
Wünsch dir etwas
+ +
+
Name nur bei Erschaffung von Specialchars oder Änderung des Nutzernamens +
+
 
+
+ \ No newline at end of file diff --git a/ag/dropdownmenu.php b/ag/dropdownmenu.php new file mode 100644 index 0000000..4c11abb --- /dev/null +++ b/ag/dropdownmenu.php @@ -0,0 +1,29 @@ + + + + + +
\ No newline at end of file diff --git a/ag/faq.php b/ag/faq.php new file mode 100644 index 0000000..be9a5e4 --- /dev/null +++ b/ag/faq.php @@ -0,0 +1,43 @@ +<###ROW###>',''); +$content = getContext('','','',''); +?> + + + + + + + + + +
FAQ : Frequently Asked Questions (häufig gestellte Fragen) +
+ + +
+
+ + +
+
+ \ No newline at end of file diff --git a/ag/gfx/chat.htm b/ag/gfx/chat.htm new file mode 100644 index 0000000..41f79ef --- /dev/null +++ b/ag/gfx/chat.htm @@ -0,0 +1,34 @@ + + + + + + +
+ + + + + + + + + + +
+

Lädt Zeit (Lädt noch?)
  + +
+ Lädt... +
+ +
  + + + + +
+ + + + \ No newline at end of file diff --git a/ag/gfx/clan_an.htm b/ag/gfx/clan_an.htm new file mode 100644 index 0000000..3cd8102 --- /dev/null +++ b/ag/gfx/clan_an.htm @@ -0,0 +1,70 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Clan Kämpfer

+

Charakter 1

  + +
+

Charakter 2

 
+

Charakter 3

 
+

Charakter 4

 
+

Charakter 5

 
+

Charakter 6

 
  
     
+ + + + + + \ No newline at end of file diff --git a/ag/gfx/clan_for.htm b/ag/gfx/clan_for.htm new file mode 100644 index 0000000..f0a3cea --- /dev/null +++ b/ag/gfx/clan_for.htm @@ -0,0 +1,100 @@ + + + + + +
+ + + + + +$TABELLE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Clan Kämpfe

+

Charakter 1

  + +
+

Charakter 2

 
+

Charakter 3

 
+

Charakter 4

 
+

Charakter 5

 
+

Charakter 6

 
+

Clan herausfordern.

  +
+

 

+

in wievielen Tagen:

Zeit
  + + + + $std:00:00 Uhr + +

+ + + +

 
 
     
+ +

 

+ + + + \ No newline at end of file diff --git a/ag/gfx/clan_forder.htm b/ag/gfx/clan_forder.htm new file mode 100644 index 0000000..b2f623f --- /dev/null +++ b/ag/gfx/clan_forder.htm @@ -0,0 +1,4 @@ + + +

Herausforderung von $CLANNAME am $DATUM $NAMES $SPECIAL_NAME + \ No newline at end of file diff --git a/ag/gfx/clan_info.htm b/ag/gfx/clan_info.htm new file mode 100644 index 0000000..d9cf6de --- /dev/null +++ b/ag/gfx/clan_info.htm @@ -0,0 +1,55 @@ + + + +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

$CLANNAME Info

  + $BILD
 Leader: $LEADER
 Co Leader. $COLEADER
 Clanzeichen: $CLANZEICHEN
 Member: $MIN_MEMBER / $MAX_MEMBER
 Level: $LEVEL
 Homepage: $HOMEPAGE
 Info: 
  $back
+
+
+ + \ No newline at end of file diff --git a/ag/gfx/gfx_config.php b/ag/gfx/gfx_config.php new file mode 100644 index 0000000..e750610 --- /dev/null +++ b/ag/gfx/gfx_config.php @@ -0,0 +1,37 @@ + \ No newline at end of file diff --git a/ag/gfx/grandline_option.htm b/ag/gfx/grandline_option.htm new file mode 100644 index 0000000..4061192 --- /dev/null +++ b/ag/gfx/grandline_option.htm @@ -0,0 +1,70 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

 

+

$LOGO

+

Crew

+

$clan[clanname]

 Feld:  $MYFELD
 Reise:  + +
 Reise2: 
+

Extra Option

 Heilen  + + +
  
+ + + + + \ No newline at end of file diff --git a/ag/gfx/in_liga.htm b/ag/gfx/in_liga.htm new file mode 100644 index 0000000..4cf0e0f --- /dev/null +++ b/ag/gfx/in_liga.htm @@ -0,0 +1,13 @@ + + +

$x + +

$CHARAKTER + +

$WIN + +

$LOSE + +

 $PUNKTE + + diff --git a/ag/gfx/info.htm b/ag/gfx/info.htm new file mode 100644 index 0000000..915f9c7 --- /dev/null +++ b/ag/gfx/info.htm @@ -0,0 +1,20 @@ + + + + + + + + + + + + + +
+

$head

+

$text

+ + + + diff --git a/ag/gfx/liga1.htm b/ag/gfx/liga1.htm new file mode 100644 index 0000000..2afe536 --- /dev/null +++ b/ag/gfx/liga1.htm @@ -0,0 +1,32 @@ + + + + + + +

+ + + + + + + + + + + + + $IN_LIGA1 +
+

Liga 1

+

Platz

+

Charakter

+

Siege

+

Niederlagen

+

 Punkte

+
+ + + + \ No newline at end of file diff --git a/ag/gfx/markt.htm b/ag/gfx/markt.htm new file mode 100644 index 0000000..c0b2c1f --- /dev/null +++ b/ag/gfx/markt.htm @@ -0,0 +1,167 @@ + + +Animegame Markt! + + + + +
+ + + + + + +
+ + + +
+ + + + + + + +
+ + + + +
  + + $STORE_ITEMS + + +
+
+

 

+

+ +

+

 

+

 

+ +
+ + + + + + +
+ + + + + + + +
+ +Kontostand: $GELD + +
+ + + + + + + + + + + + + + + +
+ + + + +
+ + + + +
  + + + + + + + +
+ + + + + + + + +$ITEMS + + + + + + +
+ +Item: + +Type: + +Preise: + +Anzahl: + +Info: + +Stück: +
+ + + + + + + + + + + +Seite: $seiten +
+ + +
+ +
+
+
+
+ + diff --git a/ag/gfx/markt/back_xx.jpg b/ag/gfx/markt/back_xx.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1d773ea9e242203a88f487979a23b29f9193a591 GIT binary patch literal 73073 zcmeFacUV-(wm!U@3=$+N8Hoatqeu|RAd;h^qz0NCy2(KhK~O*tkswKO5Re=ML?nac zoCPGK)lYn$cAPhkJEp00J+Xa5X5|O!n|CKbgGltTsTG+wuoGk3@>7+F1bYQlo zb}mi;FE_WK2oH}4uK*nnzX+d@2p>0?3II@(Ab;qVgz|g-D7s0gztfPdQ%L~8fS~>+ zi}7t@*{6-r{D7XlkO*fh2<)Mds?S^Qpy12WDUSS4FRV2 z!5knbqkunvi-m=SjfIPijZ1hA=Nus^0WK~9=|y5n2VDWUmSzFiStvG?jUu0vEi{ zqxA{8QRH9Wi4JScrP^aGgm5GZarZQTBaOkHWD*S5=SpHDqWCXxPJuQ7KtO-TSws`!-8VGCm3Mu@+xFj;2?t+89`+o%f!rU01Ah z);^>e(C(RkwrcU&t(%FrvQ}}hzskFw(%&j|hwB8$R+VY~(EPzkFZ^Em9i|7$a`QH$ zhj}|bjhB3?KC7$WxpRBti>>%Imyu)47hk+tYdYR6<~CA#-@8ur z)}@O!g=%`0(R+Es*{4UA1L`L5$tynJq@HP(dTrudwd}B=S*J?BbEkTKyZP&*$;_bM zoEE#AOPn5eCgK;R%CKO~W1U6r*G_=?;}am`nBcfHONf4_f1$Jqr-TyHYcN{-abooZ zsEN2JmYnY-o1E&~X>yd*Ds>w-+j%0}K3`3XYvrIL6mTBA)3z)*1Hh4>R((xNh*;!?_}DvSYoX zHg)7n=Lz8VjXw7=v|S)LJ6F49?30315UO2|gxu!0!~+FvCW(`Nu&d&a3@z)Ke7l4& zdt+PEBkw$K=sque_I+(sf%7YeioN=s+> ztPi-->P?ou(Jr2^?9C+5T;F?78WdTM}{AQ3STsAp0eep@ItO3zCw6G2Jg z4W5uaf&dbGTQDljCIS0LDXh&cypxn33VDy+HsNtrS{xWTmYgDn2 zL)e51r3+&~!*Dx)EiGBVr*5YQd62cjrlxM27kX=3BVU{wCi~CS^YeUFw^M{Qy$g%R}r_%W(8Y^LzZoW(Pd{USzK}lJi<2J zR}KUYzeTwx#9Q|7NAGAT)a1+0aF@Kcik>l|Z!9derWvVKsA)P5sNFk9d(he}>XUh- zSi@84!F5QQkksseca=gQ#0|XzKW*ZR(nP1u9Ll%n&4}xXJ z&ruZ}qQy_W<)0tMECvSG@vb&vBz&&uKFmxji&v31BPDoWUd!0@T5r7Ei%ZAj&Uj7J zs@=DY6X0>%aYRu!NB8UnOtO%|Ub^trF@m+^)QppX&3A^a#t{mv;EP4kTx*{sP%zFq zEC0YK%t>-}4foP@01XdCfiaD>*Q-yo=0%inNIE^%yw%8}$#6!uyPpE9%hfLq9%FZR z$(>#*IIwKKocDMc1HPle6VONR(hR)i7g%*0-I5*eka*cg5}~f75|C~%b89rGh(EP(#kr-+xcjF`vfapWaVz z68C}cIpUoLk!87_N|OHw)12nIc^bw(y@NN%_f$BiVbI`3%CMY24dI*`z(^A1H0Aaw zS03OpGXrC+!8>TKf*0gBPI64_4-W4sUmv{xE+cTt;rN4dn&%!E1^|1|y#LD!bpaXu zmr*Cb5{E1s4GWn!fUGN6Z zQzsQ;OA|2kTgK`pa2_yp+RZdUFU8u<)*K9fE61{9=!${W+%(GFq%Cl-dCBg`CT3$;bqfN5}L zG?2Ngobtdho)H3WCkM5KIvT;DrXT~*bhC&4CXDl47|B7#DA<_Ofj|G(^+!cGT5HPa zYJx@m1}+l(KXa6w%%OkcU>I4$HI2;w#KSj%g6W{Ha0MrMP34=$c6Qdt46%M^|4A6z z!p_lM(i&#|J5mJSD=+^$8%&953NY_!GE< z-}ApA_ag#K0^G8*MPiK&x3gD4z@4B!cN`pRup|8w7uVPh4tA)2;-3SX*y10>PoKTZ z$btY|@C%XndP;wP&PYyaWEVy~l|xDZ*kRxe30o5QeF&0M0I+We@|}Q-pu2kJ;DT?5 zGY9v~!98S?FMn)Wy!xijIdAuwTHQZq_TQ`wj6E3JV6j>)H@OkC=t+u8nB4&1u zHb!u9n2nJ+l*`f{YA(w42lub_{XTSqZ%Xi;$@SwcjO@q%_t#k=e+%O?xX$4ETL}Cu z;j`X#2G`$0;BN_^^{z9x{uTm%OZcpJox%0D5cpfdXT9qTuD^xA-x5CSU1xCpEd>6S z@c*`V;rua=548m+?_I!I`jbz%x(ZTK_f*wYWEF18oGv)v%HM?9+M$3Oq-<>Aj_PtZ z=ydh;=`cTn8>FzoU0UE)C?gXmdu0t-%RF(fz^y zk0?SDdq;2|4n!4{<}(Fn;X&FTq^(`x_DDW*Ukiz`6_Q3l?r0%#1Qi77i%8o1JALI; z<~w~INt@c(f?J?akUHC&+L$8g48G+myg?baD1Ds({7m)4)X+~>=4Gg6BK$^q` zY6NcALPPGEVT40XEI^tYq;VZJ)xn)>Xrkc0BV6;JXycz~IJid%lm(>h?A=ax?a*B| zVWk6CDTL|dp)S@?IGjTjTwF17G^LZWv#~d_bpwF!bw;KFh>+OQfglU=Ton}L;N?W_ zMEm{vw~@aK{SUv$w*4-$sdn0C5VH0^cz-1RgJ<^&+{*{EW? z;4vnFYghgNP}=!ZeaMjg<)>8}7}SIl3FwdOe-!v3`LBte%Hu?q_X9gR>F=Ao=#ZeA zfSa}uj&x4Ql@>aVf9%Bn>x4h4^^+b~)S+fjN2o1Wls4GQV7BI9bK9E2PFI&;w*RVy z|Ch;r(g8_+@7EwfoO%q9+~Wk!cai|8tL*?9@i_qXP68MM`O$7Sv9-ZPMgY*Eo&VnN zK^lxdz5nTkg4{iZ;siV0I0#6oYtoq@9G$<5pdo+I0UU7gk^~?JXaEM_GQa`w0z$ww z;5r}!C;}>gCZGr01$TE^05*Ul-~xC8zCZx*7m)Kqe`Kwpz5QV zp*o^^qXwf!p}s=RL#;$@LhVJJLR~@KN5eoPMx#UHK)Z$}kEVrYg64qcjrIgB7A+I4 z6zv0AFWNNPSF~evJaj5_c61SR1$13>b95K<0Q4yIbo3JR2K0XPIrJS23=A?177QT_ zc?>-aOAHT;Cm8V<`55mox-n)jwlOg=$uZe6#V}PcjWFSu0hlqExtO(>J(zQtdsyeN zXt8*)WU=(IY_a^XqOh{DYOs2+=CKa3&to%Ti(so@n_|0Rhhe8;S7LW!&tV_p5aO`l zh~a4BSmOBNMC0V)G~kTkY@R!Jj{e-$b86>c=kA}2K38zA`P}rmeOw}3He4y(JGcnk zP}~gMceum2n|OG5%y`%F^zq<$p?Fz%^>`C_d-%loocId(ruaViarmY9J@{(`*aS=j zk_2}N+zFxxiU>LhR?cIeXFe}=-srsd`MC2H=LgSk6A}~h5ULQ`5I!NyCTt;GAi^YK zCXyjCCGsaqA*v^uAx0%;AeJIFA$~xdO58v^M}k4ZLZU!oN%ENFHOWVkucSnz{G{5X zuB36K)udBosASA!3S`z~VPu7517rsms4qxffL;i?kawZy!tO=Ni`OqgF9u)Czu15A zfSit8hTMugoV<*DoC1x4jY5sWg(88XfntS{gz_4t31u*4A>{}a3KbibI+X`i3ROGR zHZ={k9JM`l40S#A3Jn>}bs9^WNSYd&MOtE7aatH{ByBD25*;a>B%L)~G~EZfua~GU z$zMWTO1|{*(jh$yy%xP6eLnp-0}g{QgBe34!+VCWjI@l(jGl}+j3Z3gOu|eSOfQ(4 zn0A?2n01%~nah|LST3?Cu(-42u#8>CyDV|p;qt4?eXJO)!mL)T@vL2JC~N|37Hn~B zo$M&=g6uH%c=qlq=vS^@vAy!@${+_Wha`tHM-Im{CmH8WPCw2v&NVJZE`6?Wt|qQy zZUJsVl&1G|Bzsd>7dC0w!N0(QU50@WQ zpjI$Z$Wr*KD5U76_(2I*Nkb`C>C;WNn~patl~I%xm7gh(-D0|Bd#g+ZP*G5MrZTR| zqUxYprG}xVsurjAS)E7SQ@u%pSmT~Xw#JU;4b3pkQLW2b2(96 zrgXV#33DD+@@<@%WV+WP7G+qY$IKfgV9N8nDtodE+D16PBVyA*e=?^fR1#>a;XXc9* z5*ASwD=;ZoENtCU-ZIg0*Gk1I!|KFZ$2#8z%f`^A!j{O^%JzdDjh(Aqw>`Ukfc=z% zh{JP-uZ~KN=}r(Q1E+F03202UBQ7HzBBq_io#UMMT(n(^TnSxmUEAH*+=ATZ-DTa= zJkUH$Jl=a=^7Qqb_LB5U_J(*Hd%yQ#@bUMVyDxV?(-+6r%D2Oh+b_az>w(ULN`Gqq z`~EWz5MNMC&~dP7aO-34$5D@uo|rso4dDri4mk-m z3;h@-7?$u9(h2^v&q< z7{-{VF-Nf$vHfv3;__coy$pJ}8*dullW;vDFOfR&apFM|ENLiNF1hp-^Q)*7j1=dT z&#Bs}O=-euS?Lt%kJGLCHbnEau+H?RqW!x;&2~FFBtq z|8W6OfGAjcWB6vEP^s{Jk#JF7F;nr&65^8JQb?&=>DMxgvZ->t^6m=7iuaY*Dod(3 zt1{kRdK*_wS{+t{Q{!KAQtMv3{m%Z~N}YM#%=>%qN9%R#`#z|B_}HM-(A+57Sl=Ys zRNE}p{I*4;rJ_~1wX99Bt+ZXBy`)2+qvWID$I?!r&hoCSU6tLU-8DTDJ$1d(y^Vbe zeQo`>`nw0T28IUj3{DN14lN8@53i3nj~tHPA44At9zQ=GH9H;{!`)vdH5N!g`$fJ z0Z$A6arjvYJp2rrwEzYRc!2lEg^7iMj)skj10D-M2eL6x!Sa7Zf>EfLC|D3|0O#C! z00n{y9)CtfYJ`G;jevmr#tG4hFfL&d(*syMB$B)gq}XaV$cz~IE~q>BUNjD8l1hH_ zm6_iWhrF&^fMr@k&~H8Bm9(aljI5BH$z?5V9g4#DJ)bsAAHbjaLsN?CduLdM%{CEi zS4HF%6hULn+yZ9l?BeR?{xBf$QBZK?^QafmF|ny>=^2?>*~KNLW#tu>9~v5)np;}? z`UeJwhDT=SKF=>KE^Te^?C$L!fYnDH*G5A{M?*uyz(BVFRVDO(?)sv0M_^{tF)^$rce!Vd5#}A&`zGx!7{;H5!fLv2h#*_ue>A^EuI8t9N zC_-Dv|KX{^o2(R(sl~{1+t0rr+`cTQV|IsRgSiF8 zWL2~bFYdF6DC%3f2ghbtwvH?v{P}!!uf$~K?%mzB>cQ&6e8d;;<#CTQ#^1o>r0Wd9 zU+X|8-De2?B7!|<2>v31y=MsiB7%Kq2>v31{bvaNB7y^F2>v31gJ%f-B7$f3;4k_Q zXZGN)dSEAK_TaDf!83dCR}nn32Y(g8Gkfq?5j?X8e-*(qd+=8gJhKOX6~VLl!Cyu2 z%pUwz1kdcjUq$fD9{g1V&+NfpMexiX{8a?c?7?3}@XQ|kRRquM!Cyu2%pUwz1kdcj zUq$fD9{g1V&+NfpMexiX{8a?c?7?3}@XQ|kRRquM!Cyu2%pUwz1kdcjUq$f$r}p3w z`Xhiy0SD!AgbDy$WlRJ&$eZV+W+!DuMU-O0ER!#pXT(!nH8v)F-yC8bk`{;={^k0E z@Bv>mO)3QK#KGj>*h>EY!RGsu|Ar0u9l`?C2!#VcxO(-=xJQ;iv6kynmPJn1Tw2ck z><$&)#VBStQFe1+q!&JCM);PX_!bs@(#&fVtW4o0uIlZYYA{v4$L`(biEo3IyS0e5 ze`18FG-=fuZmla%`!7a#+G^Np@Mlj& zMkQQt)+L1R5-pZRNsB_hy_Kl%QK~4`SK$>x=VurU+z`X7hDh}qs9!6aGdJ!w+GV$< zUXB_%0VqWL5b3!olVTO&5%~-lQy*1>?q*siq`cEq8~m7$Bd2rwwrqHNq1>nES^g2O z&P(#y{b5Nbz}3Z|5jTIbNAi71RqkB-Lw!CG@d7>DLQP_|4_}mu>v{U;k5xZ^YiZ@e z04I=E?^+Alo@>?;t+8!fao>4nv?A(X;w_s<VZ4MT6K zphNe`$BrLl%x%$>LX>^?@mW@*gtM0Mvi zhk&fQ>vTj-8a-+Yr$6rQB~4v)`HPov`^7HO8D>*w_q9y-UZ_IURLy>a2wsqw;zaM< zx*!hX|C!#2vi9!o8u-uFz;>$q?;b7b zNC`)|Ag4x;&A^!^)u?**Q2ssF1n%HY^_KJ0*b{#zNSZSBdwaS6H` zh9t4x6Z8_PlCI&KW>cZi9N1x ztWx3ADYJ4cck#p7-zi-fJ?uqeGf&OPj*1O)vJs6kv7JkJ)Hxlq$d(br64G^*%_}A) zh(zRp)Do6NLD!ZG)nhjH%u6bnY(7RnSUWs=*Y@@Q;@DAl;ND>$qN;bcRu&3Qsxw=d(p@3lK!n`-`!(BD*Fk0^w+%X)uApXklfs2c_ZIO_gfXleu!Q#-$ z@ym=X(x+MtN)fOPK6UxFov+F?Veaduj51aiEE-cD9=+|H8+_}ga9&SxsC;1Pj=Nh~ znp|S$LfD%A3bUM$fmZ3)u(E;>=9ji?cb@E9#=2X)lkYIQfq2xft(c;j8{RwMBRt!h_z!`k@me?7uF*H0DQ_H)a!cg;Sk))KqYU)XDs1K(|C`XO zmfEr0D*z{hs$Hs{oh(1;YrdZ4oI@d31m{Z11my*W!1^@`sJo?gsTFM1YZ^n0jU25+ z)uin1-qlt!KR_a z1SaapT8K!L&Z@FCF~_Wh_T|>&_M`StfbB1z?V zjA@AGqp>PBw#hKXFwl5W+7z%j-=?E1rE-DiMt9$9VdjHJii++p+<=3(FB~OUz#&qN zIfUMeRSi%61PFbayOg+^P3L<8%ua%-jsDL^^IH$7Z;L_khol351CM?g?5$<#``F?Jx?(~f41$C@@W&R%JKlzVT*SX0C{|VF?g5@1J}n84 zYw}cH1*kqRe}*G&R@;nw0>ot<+I{j~+t+(GK6%M!GJHMmQ#?B2)-_0V*{Ua8cR}#u zU{>-wb(`uJWftNy5;eO99EA5OB7|pNCDIk;mIU$iSlW_}T_N`flU#CA_Y6F|xb)hM zI$Fv2W|_C4du;5pS&4YoV7S(`3`_XL#2BTA9lUYl=eMit*{eSoDceI{qhlr} zCSKPJS2}m`bI2!q(qQ>CTBS@llP(6N%TFSc?i)b~HQO@n&vsPR(73Iz#PZl<+O*m% zWHX=qo4K9-xA5cf2@m#UL7!&a$<~fWWz2`^sz zyxqTBnKf)M95l4Axb!l8Z*;3fi#bB1?86!kjCGkU*v!-;ud6KJ7zQ8XM0l6PI@(d%x%%F(GgQ zpt*?2DZu4yJ`2eX2VRgY-Yso;=Xra`YaDZTxzPE^HR1w$QZM3xt>>y!nO2O=t0OHA z;Y#`Ec!(nHKMZuW@VCvRm+I5dyFw(~&OKvejhxRK;J`rglic`h z1na;gA&JqwhJNOw;FRXBUBR97HdDvp%I&NV0mGDx?D?*n+aFc0g*@vWy$82>iy`M|XY<0pRVuv2 zczUeMx_!-jWjA4Ogwo?`|D6}<+44gKwJ@4q*gz# zX+d;UGUZEAJd`Syf!va=LaI2nZcMC>D$+{$uU9!frfGZq|c3REd(%G;gaeIw=E~dUga>T%^cXZNninple(>0=e@E_IU z53PtT?%pO!DB_5GXDBl0YR)psJ1`eVEqJRmu|?@-YY9v~Z(xT#JzPy$Et+^PfX=+V zfFhG!^268cW$H%uffxo2-SNKg=c|r6MOf#C)HMRSgM74Q88fNG*5lZ6?zlKu95x6trGsnYXbgo#46l7hKqpdg~NIIOf znC01<3_k&I%Wh$sueDNSsk42X?1#nQ%vZIuV7<|kW<%D|8a1j%^0-4aOYBNfVeYzz z+;op#ve5yrpIq~PSZA0_4SvuXM>K8vOCoXQThseb!mc0;w#ji?lhoZ~5*T!}?y|P$ z!FmddrP-ED?w5sL%_d6_a7NX*Vu^i8CJOvN_1#Ya`$gy=bzr%BC%oG>zBo>1qi^*U zxl8H$VXv^j^o;_HtOCj}Hn#053FnsdBA#ax4NCbS!cp^{>3ar&ufc33qSi|N;(a2C zcXHYS8?WF)@JGx?I@-#?q35>qTvv(aX75|)+ zW%giYBeJ}8FFQj1gZm6r(}Aht>8oqGDPJSx_FPW@QTS~%XEPg~Hn#S+nneV&uE)|d z*_ono-z47ION@Hl>n{7<$%cz=?>2fbtlmmnU0WN9lU~EGT1fVNRUMJoIbEmXJqoTqzK%nVDu!pSoO2CJFU#O6qy=c(`5;e z_|Cr2c>?Qcp|sZuo<0(7Jb>N3nvo&1TA5w%!t!vOBo+*(xti>6DV4F*hwhEW%MDSV z0D|4m4{qljYL{j5#w}%+Q3u@&SWL?fj=x2V`Ybo2({zFHu+`Bl!%ugH@1a?xLh_BV z4?T?fwQ5ntCxCfcmK$mt6-BMy3oYT}-uKm{rRd7hq@wok9yFIv4Q+^JF6t;!rzMOX z-gcZ8!f0=vqnvqfX}QutkrwDSRO1}}9RwW4I0^z;-ka!H@&+}GTe z(}Y8xqWGItQzt&Ht|;-Cfp*#6ZQE;!S@H?jj9hPsSp8V^L7}viz+RF0nSuB5(orZ| zAZ_5d`n$^Xw&|RA*_kj3MKP4ipOkQIh)IL(yWD9QRwQP{=>3@el)1+O%Z`aGbyma^ z=_Q8gQqRlN`H3g_VVwYXXstxJm&_z+??q-F-m#&UL8$j?4^X)4-gWaHq?A#M$WQ#> z8{Hr$sdS}>QqM$|<-XU#Q{jYSd6ZPp?%YM({k*q6Xy7oONFyX>3^#A3jx#8$BFNo5 z#%n8es17O8;}Lr>=uw6l;XYy=k1hb8XDGAEMst%4%2O|7ccYQEBr|vYe6Rn>)DsFC zG@lo()feb)$1wU$`!v#923+J9#gdq&V(&)FjZI{D8tV$nayZ}D{xPyZKuS%$N?=R6 zw?$2jT7($d_fgZ^rnBS$YKS`zil6^rF6oVA8sR0?oCYG<*L54xoW>6HQFHKwc-x4ded_2L$Qz!wnNTMk5u)p7{i!|Z4&kI9zors zd=3FA%3^%+N3+dX2W2!{?DGQ;JrAsRYs&r?&edNgftL?a!)iS=xb({0XDsK+@@8Ju z51RW_-FAjN8>_%I<5@fbf?E7W`&NcSS~Nm4UiNEhm`r751^D3vmp#$Y&{QI2j1ayK zqhcF)E-JzI&fDAdlbo^=zv^YTR2=`F43vz%uQbp3Ns~UwY2SO}O$w*^7&cFE?|--B)P~5V6R~oN}IonvGsmt!^3WlR(XZ(ZugSNitPNz`WN{!Sxg?SQXR~S#jnP( zISv{+#qR|Y?kJePD5~wMF23Htj-%<@aBRniItii`Mm2oG%(EvXek{rN^ zxb#J)h{bgqrR-$+3_R)4f@4l+{NZKlk_}?psf}Tp`;$Y~jY}hOy&P1UM4xyZT+B`3 z1H|UG*%c9CsJBP7o_jfoD_YAEdB!yb$5@GR%cvXbQTLf?`$l`+h$TGk*A1V~;Ll2T zSk%C>d*znUJ#?;^?!4&7hmLXy2}@d8FCEg92uch%mm_j`E@{32-r!)cK8$H-e282(6|!p@pN`Im*+da@)c%|!()Nb!U6x@M z9vK${p|Rb2KHW77pTbCu6{BN^Llv3TY|8fphhf|q&BC;8s^2nRHH}m^R2)hbR5^L} z_4OGKmb>I>xUSui5s=~+AksExFDlkOh*>G@SDVSULcL<`seDDPLcP0DOWJ{r(dt8H z(xRqnuG;&^ESV&U=OT{F6Q3rpX)yV=3~Kh;#pf6IT=pq9co;r@l{)ZVK!`uMeZN+i~-iaeVn`KwEXb;JPx%;fWBJTI%|&83O5yX(so z331B_b?qkr7fsSgALSR@UR)NdRZFoBg*WppJ@bxgeLW_-SFVM*m~dZ}FCwvhr`d5O z=$xxryqccw8*MfAM$Vx{Q34v&HqwOo&Y6(DelgjnO& zvzpcZgFj71{=2^h($j0cgRwBwD?Ow*#MIQ3P;Z+hIAI$Q=3u=NIzP&P^#Jd6!pD{N zG19|(4uh-FLbBJ@a34}@^1L=(FXY$gpo(l)pi7sY2t{S$Qgheb)Vps#ESbBvz1mdmDs=+Hu(hG}_%-%LDG^k&rL@y%~v% z8FHT{k$xu}@6icBkTJjM?St&oZ_)QqR+PbayZ(_=UG3nJ7&txGJrlNgEOY|6(cS|S z{OJ&+NFuF(76(+5gEE#WR3Qodc;?+~PTwn7QT;hc?!=V8@4}`b z>bRQ9TH4Wlny}e>=#d?B|UyLeyUl)MR#(mMkeVB2|9Bg5@c#D%*%*IaGgTBTG< z+2$=3vvt|5*8A;qow}Z{*)oJ)y?H~Kls{RRoRLtAgtlP^MYMT03ynv{e&EwR0u2o% zDgfJ1M$1BU2xq`I5Y?&LXu~7Rp_aTXeKIq9g>ybbRn_ao=rCECzYE+?st zqJnFimUiEEi>jn7S2-4AlGDQsKY1h?ui>|k_VinieOw+N?crE_E7&-dk>5I()yPMv zqxtOJ41?Ou5|YN!3n;gPE-aD>s%kzJUZkVy!a=!=p@L7EAvbE!GiK0Qd;Mu8>y7Js z!Q2{8Q5My)P#F!UC@5@p9J(H4jOQngdEB<2F2nC>F)cWZBY2vY|K7AL-9}`S{53S*up~u+xw*L3{3J4P~3PcY4;s^>n!V~ptG`tWcp2DuB0jseI0&W}S`a!S_Qlj>aF1qzcy)u*^Mogaa z(*!;`B#7Rp9qqY%DT1t*q;A!VfbEUSxp3F34?PEY|5D0gkmm6N3g|PC2MOBCS!2J ziGoiB*K>ESR2TI&y!Yy^9a;hS&)z-Qn3BWUzNaUW$zDkMyttU#gmuZ1 zG4_fVd+S!;V+PBwH+rjDjb%me#Nmr43|vk^DOq@j0-*J6V}dJA+8#&M;^cG3H(w5X zTTED4dh60M5k66M&lB;baiXa~^GbDo(5RN~w|9=^Z*xnm!diOko~82lU!2W|RVS4W zq3DyHMxT2Z5X7iF#hq+4cL%OlZt&Qhv8$|C(Z zQ6evEi=U2k@Um6yu%c69B<(xo@0Y_3Y)lXiBrwLv5GJ(Kz&YwLRV8m zZZ1@*WFQVpK2ozgwwhe9-}*fi{k}7<(^24Pg1}67)?V9Do%_8)!AaRI+V<$FQCgZx zlo#I4pFcOL8E?c@=FA2n2G@q1ZhH_!*L@OPZ!)^fmcN8#RTk8}IR z!>9P4H}c!&7W+#_lW?7#yZJt(R2=yV2saVj3@gg!O3TT9l@(AJoc=1bFjgiCCtEKy zBhyb)Jmyj?vjTm%N>>(|2R|L*4W909Aed0C`*1PwdEzyp;`Qz0;eERrLGfYk2K;+Y zb_oMHqt{fdXNn8GKC3tmDyT)IYROn}T#PML$A2_7Iig@#a{c1ygAJ6_V}lEwHYVrS zDZ0ouaM)Dljy(}go`^8TF9wsP2O3Fbc?bIj8*;@$HXQhKYvXM+8nEqtYOR~c?r)0i zhZQV$ZQ<_{V0@H;*RH0920WkldyXJC-gujxuBR!7^5k;M(NSPC{@aKSisH>z4Ym(( zE~|WYC3s5GlDu$h`6ibvBJiVV!0?cpr`i58XXGNy(mUv`e}iH2%J}%Bz5O9g$~H&! z#?L;S*O+RGw0KNXhYk-;ywYOXlmD%*UwYB!c!w`(-CUl%ORk80ywAg zc;Pq}G^WeEScj+-!{5HgZIL*jQy1^vJS32ORMOCbx@qKe{O(?&Eqqsuo8z zZ$zJM%}hLmC5XYS63fyPJ(k9=4Ca;1SXX*C9nY^pmzS#Fk18g5ieI3MyJhe(vPF9j zZ4B=gkNM@uLTp^|dvsDB9_hvXDXRU7y`9;6;mcpQ!-$@zIjQKwZ3^$TwawzQR~|Yg zTl!R(yKmL1njTg;_cbNFK8C0jzHxoYsjlJQ-10Egvi;?9g5TwosEhP4sfp`JeB500 zUnBIXuZ+lz_VAQnHw^w1k~}HjXtmkd_9`TNxnuv)aFxd!$2cJ;lTxzPyp|ck#?9C7 zO<|>t)6LUquDr#%PsaL|Lz}fs(nBINgJn%k4Q2XslSIf&aRovdI@A2*+xU&@o;uK& zr214LZ2xJ+xFUP(p%8kl^4AocS+WzKv>|^mvv%yK0j*P_g1HN2q~uJl@w9G=6^j7!w^uA>T#WzrCUK zbCgIe9v}Ve0^vk444V(dB=5QnQ()4xx=%og4(?Z`!?+JosUNZZirFX?3?)~|DT0pi zq;zl+{U=TUU9-wsQ`Mu&r4u00Z9HegX_m8oVS#zIx~1^o1Yqa5J22wmF&lW@=wtJW z!LCY`dqUBy^K8QoY;@nfG3QlkR`287WSjbkv>e^VM^HUeLB}E1;PJ#_;t!Eds+UJF zVnf9Z7tu`FMLJkV=SS3%3*9_Wxm$Re5p3N@+&ZcxjHc8$vQ~$4vhDjEYU>aW4G$M{ zU6&V)93ADEjC+R)1MzH^7u*kNs!Ej$D(-lq=I_vZYK{o-t&HWJpUTQMf7SYVG5Zq< zDQ;V|2Bl8vK_@nyX(ei{hC_pw$|FZS&xd?--6j4}_uh(PtxmAd(Pm{GU(rq^cFnj{ zLiLb=VR|Y0+siG+#WsQ$Erz^sy<9QVVscR%X@n-ievyl$n;Tjw(n69sDJ!Qfr>^CT z7UmAc#bTg_J=aq#$P}ZtX&bJk_IPY6J{uKUJ0sWfQk$J2v;$g7LzC|PcbZoJTvyA1;Ls|_T|e!3Isp-5#Wx+qi^n}U`$tNLuD*xv(r@lupOz>o z$%BZs&3~Bkots~*XS_F3^8yje9BmcAann-E(Be6QKc$l-iy~8fmrpwNc7zP_k21mx zl*bL$*Ar)Gy4G&RcTShp-uUuz$0h5qKBKIW;jpgAdDpT_bHMz~y0+oGg{az^*JB;Y z+o7$!ie~zc%mZA^)C(`PkZ62dm&c04$)b`!0SpIU1=&njRz#6U=1yT~WBBJ2%vws+ z^}}q(0w&sQaif&1rshUPPj;F78U<>8%V zzxy2;%iXUqwICz8qTk$ad6en=d5gyX_}5&9N*d}IHXv^#mWl9cN0DP-(-9|TAL?E$ z=qCKwJuoDA6z+{z%W#ZbpfZS~ef3m4;Pb9Tf;A>`Qe@`0-62Z`cnmt4OuQ;`x7M)b z@-joCQ0kwCh<=cw6q?b~Iss_G(NuJHDVx|K+f2YTGxkXXDHD{xyV&M(0JY{p znz|IfbORmZ$O)hyR+^IiWWV42;r-6}(gY9eO6O8Lj?yyOkv0>jLnntRUajamJD6e* za|0P3br?DBEoK#7%&lR+q)fHd&#ge!rA$%DTj(cvqd7M;DT{<|_Pl4$Yf-MpuV2*T@?~_{~Ve zp57viY0{wEj+j+pFYxnNZ`v=`#Ac@lzoMuV30h>!8i)F&$LjdGnra}TSYJUSu9AGi zq6_m*5*8I%2aT7|T$Utn?W2|P?bU%%hS?nr8^gI2_m>}?N?f8a;w)_5YLXFzx7dm; z%S2^1(enYXo*CQ;IkveNN~mmS@!+dq~=P4?!#hg7sM|F42n5{2Cp-7`f z0+SRqW5Eu?w}HZlZq4i@W0RWSM0KJ}Z+xObZH|L!ue9mNkXS>^<8wF2FIEc* z7(6a2e$xK>N~!J2WrKk51vb`WpU%|Yx4kwS&7VRT^1>GcI3)NKkG-@%vXqr^vSho| zD*38B9ja<_nsP~n3)HwVj#lLZ&$^r9>tOM8X*q31^M`Cb&Bv|`j~9%kR^5VbhPUm# z%NP;iw;)Xq^(MN^u!`Ay0{Fv;51le9eMaI;gsRJAM~AB{!yPHZoaf(AnnSMl^GCAZ zj{P{xy6#%3{kmC2Nm9NTGmGatJZ1K zdRQ|Fg*8_%ZQN{Vx7yyh8NizUjlEDSHcgj^ARgUe2misFXii(0T{)SYd!)U*xG7GT z*MqRm*H*jY3u7Lm_Rw9kFCXX1#6OP-Y?I&Ind&rUD~x$kBb(L!oU{V>q3JU%EzQ>X zC})=StsQta;f>cQVVwT*k14Y0@837XkFNfbgBU4d$57Xb4A54W!oZmFyCR8(9JWmC z=2j~XM=L~fF4eeK?R&Ltn$OCfyB78Sv$w`k#>$e{WPzZ8b(@M-;D=RQ&Vxik1)1A{ zqpON$4;}gBBe)|guVmg&m@^JF;BuONFZVuaa5JNGFzMUI?Rr)PE>U(zaWr*;5!jR1 zb!xTR=80D;HKA)>n}Y_`_v>tI>l&f6>QcnJ|=Xcz959dR-906QuVlGI&~FFG)q( zN*}-~{}50*=fM{s9mV9jq%q$_O*N`a@-?;K4NuSg*ujgN3+KW4nWiI+(Q1jFUZ~x- zron#l+<^Yq&q!Z%*c?R-dsg!mYi;S~wq7AeG_^-XMYt~saPw!jej=xqEJ}pKb#N%} z3oKU9>%jv_RjpK_r+c&`DhmS?OkZWi#wrF|2477erx0}4&y1yrrjGP8PGDiHUyyvW zYYeGdnni8Otl1qnol7f{yrxkbPR2m@Mm9nq`Vz*j?yUBs#68|P?<>eXT+9^v>gkG$ zdfDv!6Xa&hQdDy{(j+;&RBom0G<9)fE|iKd_ce%ChL#XrA?khX`Z~} z$nF|6;+DpaTn(NsN8P}je_v}SYgK)%c80bww0!^Ex<}TA@ZIf&n!`Y=Bfo|0+`Ags zmBve)A7d-8AZ~SyZxQ#&+>L z1;z2=F{Z~=4DbZRpaz0&&SM7-OJ9p=9mo$~@KD=vJkkmgl}fu?`}qWTytqB8rOvp1 zEAp8R!SMdk@fh6F-KwgF;V2?)!Jv8+J{13K{REh5(p(*=gPTpY8D}|8G8|U9y_S)k zPHtSSbdPvXpHJfg1X^YDH#t7B~4@t}v&r>bo2Q_he9o=SOE=<&#* zW1(VhjfnP$=GGj~p;>Uy%tNZy(1$Y^7au&-(jLUV^i}OK>`qzuqF36OdSXUMOzY(w zH{zZ3g$IW^J;#4?24?lgP_uk4kcplE51Y|WfIMVJYx>=aH+*UN(?zU`Rx3qwGRz-n^u_le}sKySXUsWWoBsMD5pssD4!*RvohNK>_j6ygMH7dO*NDG>3C2Hc9H2^cQpQix(U0xWiV#Jah_;q7mK^prf zSz85j=|!X7c0b~Gf~zUA{FHV_M+6^j9aYkTLytcADOuQv@OXNzW(a5LaR08m9bv!f zU_GSH<^m;DwaHbekG`hio9an8U`;cB$rwrfeqqw|4IVj(va4TUmQOJTyRJE3xr7|}mlzpz36-jM zL_gziVQYGZ;F(|i*M$CX=fjTm?2=?iKT^?TUR|55k1~Mpu zDU+_e<`NUrFDt0jr-`>?yc5ZS;fK@VU7aFZ*Kc^l5d2+gKh7e4PG_4w%*H2n|A0QH zR`@lIXNW?`iEX2Pf38V_TFTbhn%;w+uS zMgeTo=uN6hPSYT(TJ1UPUUoM8*;9p2`8;>U-2I-Tk5Q#a_h6EQ^IvHCeo3N)$6bq% zx5cxc?Bz#4kv}KRZer%P?eF7zdJ7bWPY!>~nZghSaS-2WF>1zq8 z5dFqt$57-wnNwO&O4TtfVr0%uUr;bDi*iviwBPq>m^`|_l$(j~3e}RbDbEB3Qu^i^M0@bTv1)+<}=N z+n=+$n$yPW z(Z?#YTia+>Cg*{@tv*A8KbRGl>CB>C$H$62R8WxF&5|s(W2T{IY9$j-NlW$#jui6*r<30h!s(se}xw&{24gjFP!ErlPJxEn}>ZjqDpXX59Lc znDm}&HWVimR{>Z=8`a1)G(b}E<@u1(qKdrI(&Exo;@!fbZhH0r(b|E72}~#6pNXaX z?&g@?H?_!{!YzMO;2ghogMSoTLCc|z{0A!z9R)w7Ykvm47I17cVzOMVfu#;`A`0j%jf-qk=0R!R;YXq)A$b^bczD8YQ{AyfUEoUMoh$Y3cbCi;_Rg0~ZyD?Qq zm2}BX^lU6!i;h+6hb!OZUY?M%d2`$$eWQLB%H~9I_O8AM;A!k$_+K?*Mcqah@N$4Q zw=Of|JZ&rO0(tam{`Uk(eCfC=`VLGY-k>Z;PKcjU@N>g0!(Vg4AbNEACq=_K)~mSX zDeOq_`-e!f5gcOkd9)W>CRaZ0T0U$=uH@~f-k& zw1lg+-;=ISY;%;Hn=I3;_dBVVf!_o#R z-H2p?hXe?nnF07F?DcSiw=7RV|m{yGf}#ds1&SYoA0@xRlb>}KdvH(sGEYm z6nI53m@jAaIU?_DlFNPnz`83HmnjJ$%L;L3je2cetAR`#Guaz04GVQ(v8N-_)8e2Vo_&w@JK0c$&O;@rLD3z&w;^WBCC?FHqw zgxSG17wJT0pyHLMe30c6JG|xY?)=cp@!+wgxlKYSYTWF;s-o_WMD)`c?7NK-zkV7k z!(8bQt!8>&!8s}pezEoRtG&}9twDvH7daq0|HJQ(T}^p0I0mB|U%%xxVyd(1(C!-U z!X7&`JwKwQuLylFg0AYe$G(yXse<(X{?MWi*yHwYPkB9|rYCJ83ncTvYjB^*ryV#T z)_p5qCn=3IVvi-SIC4O&z~W5-4tS{e2RG1DJbzDOfspb@HV%QDv^g6b6vKh;RS(F8 zL2G}P+J7cA^Sb-HsX~QO#FkN+zytbN0qv2Ri_BT}(LbJlis+GkU<{ir+WPRKnCQh955j6!69dt4mREt>Yl~xxg%g`ze~@k%2}4Q?Eo4*d z9c74>lgB~msSvQeRapc}Id>SlMbUkDRuJZ#-LkCjY!eMLzT$OCg|Dn<+Td~D0UM%7 zcWyT;ajLg7s~9o;HMFo{34!E>Qq7)OS`AJYKg5LuohOcT3TS2)EP z;guHp$58~=$*RX!$Uv%PsUC~cL)v@4ioW~ETjFxxll)Y?(jhjhhS(MUOAGq%hV*wp ztL9ELmL~uBOb_G8$~e;O0fN!82NC7T1(;uG0m!n1%<1)9tX~YSMWCuj#nwxjy+|rTJSq@a@ni#h967Y?d*FIaD?(;Lk3hb1{7Jjc(zL;O*)DShX%RT5E;gj909NdaATS^yn*u>Qk(W zOCpVwv8Cm(X+!We@VIF5m}HT>Wr9Vix{4LGD%h~u#GmDymMZ$UzF`C_rWciF$))=2 zB-#}Q8Uw7{&J_mt^q`RvTd<#*M0jMv{r{un>d*hAbbJhd2pYWoi-WHr&^Qo`JUtDX zv0!!djrn)cu!~W5jUDs82sDyd2;h`(byF=Y$R?-zzwVZ_~~Qsl|UEzb*n%9W*3=^XxZ0eRK&Q0@moq zbT4My7ax_HXW8yNpdakKu?&?a%t#N6#o_tLfOdz-_NFx2vu^_0I6bzT^|5x<;-B2l z_aB1be5=`vUJQqKz~z9NsUX}Z9vw9;wFPb)hc*A)LpYl`c}?Wu&z1pt3i*#+i=re& zdO3wzK9NzNR%(c0IY#4|+_c*6_1)~1LKV)O&NNY$LskFNx3kjoKS)4di0ZFF4}MDj z?K3guBDCGU{{U;*n09oZgj8u?5q>mrdKGL2;B{m;X*PERr!()O8;Njq=nO z3jye7BW_S3%XjJJKn9#H=7k1W|DPt#YH2;%+OlLqhL)t^ zE(?=lGA|TT8>8}`_2^mxC#~o|QN`N^%B4(fOFdu#Uzh8$KGU9r#~|lk@=`s1rW6N1 zo|L)o#>BG?FuQpWLG0%MKVo{VT~r*-_k(!&TBwkNs54!FSR1XTVE0G`967?L%7t^G`{alM|)5}oJVNY7eNA@!b+pB4nnW8vydMG4SgBASh`Xd+>hETQEIL!^)*aA z<9u~aR1W8$SYO7DF_)G_P|DAoD3oxuI!elFit@r3dbHWj0rbjwU@jjcP&}M)>K)6; zY7Vd(S%M>Z`8fU^*C;i|C&VLoUy5g+=^Zrkv~jwcUikQv>yXmp2a-Fm*q7`SWSlUU zFtfbI0cy+8XyV{Lxd+=unBFT^1IuV?%TPk6zzVUD?k`yKq?FTzl?+3-@y7@OOpkOzwD zc?%KEJf(_(R~ktr2e~uvb@Cc$I*hGPjsoIN%kr8|Ea4<4cAf8Bpe?Ap4MC3-)KgK+o-8DAJCQ3Y3>&#U>4Ia%2BR-1ohaA$W;I~QPbR8+Duqh`0S*_s92xra?*jOZO{vYCIz zy+eK)l#zZOz2r{%^5Kn6)#&kfTPuGNHUA@p8huPpdR@I=8f|#RFo>R96I{r6#hN?|km!IM51}r_=q((3b!e&s`<$c5bT`&iP(6 z>}`7zU=%kAOz4}6%(xswlj3^a-AOx*hC}iy1}y0YVH_0&Yb%{mMqSw#8w^$4zYh22 z^UzHpVFiQafK28@JOK7-qE2uq&Smah!wWh8!8^fAla~Z%s!n=((e?j(th*TFL!rZ* zmyNA0^@w#)*n-CVCKF_wgTFP(F!}Q8^wpp&J&!flqJMIhqAfhux}d^pdhYq^}<3y<{^Sf{V$*-;O6zlHFyXR9TQ7LSeLOwqa2gDx(`@QnDJjm)cK zt*=U|iUP0@g~T#t?}YhDSiei_)8s(o{&)wWg%#7eJ25*<_3q`e*p!icI=Gls4U~>H zK{KmxVgIotDaaZ-DVGJTBIxVi%K!C&=}PYHr02bV&Hgkl^!{Vz5X}Or;WG~OW{LNl zS7?X@P=`6`_GK$~5ObgeTz|=X3%?`p zK6UYdM<2huAN}H~(DG$`Kxf~l$4 z*__IIn>#56f2&L-f-99u=v@@}_#z3bJwGsz-dtA>%#${vBEzCW0}ie~3N;CfcxX8~ z+I(? zUWI$-<8I|7vdZikoZ#Q!Dk1FSj`B%&Ns8_fiBJL--qflw_w|xvaj6aEnO_}gM~y*K zf!jBY>W7Ca0Vk9#0a2ijqP{gR(UB9c4-=1ea(XLRzZK)&hc=a(m<=zyR!HyL9xK4R zl$`MAG3-||js2X$#*{l00m@zAqnIHc@W~NsYkL3D*I8_M4mg{K&=W)!j$2cWNhu{l zs)j8~9bWUfCyejOL=TNyO}-CL#a`8&twy@cW&bg6nD{eCpjerdr~QGkqP97@a%mL@ z!A6;|5=a)ri0Fmgc`?|>W{{_rR`r*}l9WE%+5o;${TxZmiyP!;tI_?MN718&DpuCY zYMj|b_)WC<ni&bwlKn%VF<;z{8yUW)@KR**O#5{ zb`T6&;Ovk^2tF$;A7fyRUPKZPWub^-P0&zDF$W2Wbuce`aS<9E0rhYf3uyLwalOLJ zH8lfhsUx~QjY}J4lQ@?1#h`LvDDG?DTX)!X5s~40N2%sQ?Ut{Obngz~?)RI0ak-By zqE+(;i80DH?VKT#QQ`8hw34YLVFZ`1DtWZS=Qc@;8b3&nxWz zXW-Ajafr~%Db9kZ;j`gtE7=5*i@LA{(@N9D6$5pXm7<+Yllf8P`7KiBY75aLl@jluuX@P|sV$zvh=ePiT zof{m+BNnZe_P4m4NA~J*V}a|VdBt*3*9zY#3tKeB2Mf{R1A#W-Zz2U;Z&D9o6@QSR zq^G@CW@7)0woo3t=rVCif(%M9>MJjK_UTJLstZcJtbSUf{rx`KZXVg zm||zLWOC}>N$MUZNcfe;4(%FrJyYZqx_rl;-ez}W?BWRHm_M7E+G1RRR;e`$aI97h zY;6~ULn%#^VpfSnqwDcBC$+w9C?-o*mwR%h%B}PfyC1MVrJ+>}qq{Rz4qxb_JfX}r zddi!dGv5omS|(42S3Pk_RbLpmc{koTxfh>}*VWf9`F@W()s1&%FKfBs=O@b~RjnPB z7cDbF9U9puJpi(6GiWBP50_A24&Ke=dFNROMUhXNyd^8MJgq`eyYNsX76!AlEnXT@p1MPeu}dN^|_>FB0S zcxn9POwsOB--YeB3{{QAq;EBuD(+Y+T?XZl#(E#2X$j(#a#BRcg- z)7cOv2PsXYO^pCAQ4qE)newDgr8XC}Vs&l~OgO5VWx3=f)f+}oz}4FMs(UuZ2cz+` z@QPN4!Vhg9G2`!SI_gM`t18agY-}x_?7jR~noKvnDz8@G#x_G%b#KbXXJF$g{5)bw z8N8R5?}lT;$))AOgx-?=4%^RiQwu|$)7q%OL>d>gw+~kSU63j(>e{${y--CzY_Wml zf#Z*t|2Drh>}%;kUJ644Lt&t_2mh)l1Gy{EMdnmKjtajoa?wKX*+@RFx8R>o#>JXILlc{I-Xo`vtgC*Hpj z32O=O_rBx{B%AgB_O?J^Bzfb#obR)auIb8T)}+{SHG||t;Yd3wMMq;c8M8u6mexB0 zL42yHtay$hDeHuxF2bAR21SfF)kL@{)`GF%HCZL6+0fMu8OPr_PJl)?RiK^E1w}RV7(%?0Q-N!C1R}h-Da7-S>Cp?}~u8^36-wTF2#E(%(VzwvTgof&WC?17BYO9TKCW*zJAGQb(`gqp+xnb_N z{2I{OHedesF|<24DnB++i1`erp+^PImrB&JGpvtwvYO86LC0CxYQA}^r9 zqbs@E%KEy1*zf<drO4k5PDZbfVcyuHpbyhYb_j?w=-uKmD`15 zC+qP>Dl-rFs8uDrv!uTHwfvVW`K-XKQUxo=KwNuM>cq}QZGb)thF3gmQ$fB#;c0RD zX+&Q@J?~QhmD0{BMV4xZh2C7lruiBY2vNlW}tI3@meL z#eE5*qOycvhvPp0FqEhf?skDfflKCvYOB2R;F6)g; zUZ4yi_aQp2m#ZKp7v$zH(-`U!lXs$@$N*OlA628gyszG%6<(Yk9Rw~db`-Ymjg__1 zA7X%`p9XtWc?-Pn$@kgZ-B+SobOkbCrl&HFo$v3HnZk6E2~MM`QoOTAM+-lwUX*@( zMdM@NEs>Tc`PmUi#x0UbUWaSAY>-N)MSgOsGyK^=A87#k^^KzN;-STf*zozn7P;r| z6ZXStO7uXa&EksX*#Ox|L8JWO^~c_hcUn>gO3@O1<`s~lFLgC9=}JnNE^eWL(5d+k zsw34ZMfi3cj|QLqAc5}V(xet-8=9xk?W&p&?Bny{&5v1~Mw*l!mxQkVmQVxdq#!4F zWADhZ;d62L(#T!3!!i1Gqg-uK26jS~AjbYq59nvjt3k#vHTCM6Yb(5|pA`kODALhE z;<35SVf&=AM2I(_i>*noHi6C{w^?2$qskDUGMT+;Y=Fe zY&7152AIq(VdiEY?>Bx4#K4?ryuT4j(|4@2dG&R4j$P+{xp@hTK7UARDXqI24dUuD zq|@NdqDH>~pO##~@9lr@Q0Wss(?L^_%B7vp<`!=2N+91#*yH?~VUAgmy}zDif^oCP z(pJGQCU5lz$piABRU&{%u&Vn`8=nua`L6C;dnyhx&pQR6bRSrsv@MST7;o&|IDv1<)&Dwr4i8vDPgvSL}%bu!P7K z6fjC|ZsP=Gy3^tpsrrVWKwZk-?myKpQBsRzdxf!L%g5v+cncPsgdS!x03`~C>U&bx z$1L2M8i?rBoK9@*Shre=Co5wV$!S8#0`+y2ysh(A=_B!r?3!?_mEOFi0zZd6;>dd+ zxuiX!4+x*7%~m=8;Jeb!HnkQ%!iH-^yM7V^iBfYN}Dli6R!MSI`Y;;AK2Q zyS~JPVa5C1U`G6K6dP?382Gi{F1*kUoV_(VG^yiXQ_W_*$)^>a+$t$^t+kk$x_L>CJ zlbnYWg?=y2iAAjuQ#8i?Q!Gs^wQnKJn`e*x0!73zEATEfuV# zY1KDjOl1Y+lApXn){@1IeCPS_KTPb)o$qgLfcjcpk`0pF**(q6O&i4*)_gLDn@&yo z&io)n)ko~(0w50358M2y4yFnZ#f^5Zx^n&6Iy1k^5^FkpvVe+FQT$cTPboTI&)y=7 z3dR8O(Ozlkt80mW5#I@P)D-6Y$o)x$`3w_?kNLSw2Q16&{mjL$*vaVO@43Ijr z@U?oNbc09U(Km3d;N-I|5$pNh1jx>rkmN&KVmhjs?FfChKh~L^Uh?53FR}gBB8@E# zrxmTgQdd$^`KpBN>cN%>jYF3UtACcSHHq7kA})y=9IB~qFih0});pP%q>fIKB}vmx ze%?u6iCk>uj z+|L$o(63pnRj&-03V!zoDHsoi{haTaHnuq$#q4D@CD-g1Cp`%#mB=Paj)S<&kCVrW$`X0D+&g~+Kpw4!Ke z^PG2$KM`Ds5UntBsV2@$5POj1Cr}8GamOp%=m7sA4+F_05R(BF4tj6aUE#cUwDU2U zKVhO1eL<<;3_0E>F}L})y#i+4UaXyx`F~KzD7M`^#P#rShE0f8kzH8Wxp@zVC+dH( zV3Eh5i~3D~QL!myjJ9b~{hh?!h>Xy)5}$OSp`@4M>fvQK%5SO5;!N8Fb4jXCDiIxV z59%E;akrlWs`e%-HDu|gK0E*fEhk6PCfgA~VQqgQCd#-ESCf&$`w12+UXAwq86V&hE`<_R>=3_WHZgCH)z z#;~U5Nd3nN#+YgI8{K0@Z)+nS4qzCj#Nsb`EUqc#NPOt%ifXH~RtxzD_d9iXEc%9F zT#BQMVb?PyE0+A#3fZcV6OlJGZNa5HN4%8FGimYlIOZ2v z;(2|~z~^5xs0Ty{^wnHet@pR0%bQ;uGz7;wOR=efyfF5XXH5A`05%1>4c7OLO6}Ii z6$_1>FFe*qJBycZCt_B*Fh4CBT(@RWHnrYkeSHZ10FQvF#6?b62yje*!#E(2Wg{UD z9Q3n{Jd(^ViBoU{3sW|=to~*H{L?c&c&b~HTR}qKAu?Wq^ck=$<>v=mSpY0Bozf%2 zB{OC-5%kqNN3L87ZL{oPWU3aOm!|&WJjD20Ms4UNcE6SfWP^FLcf+>YAPqZZWtu^Y zZB8(AA#ru3*mu0$i=pYF(>jTfU%WBZR(uTueaiK+n4l==72Ld&-OZloS{(x`g+=tR zFQQy_C>-wG$>(N|E=Y{@Jm(Hu-9ghkaR;WRB>WftD3mqO!X0NB(pQY~v9t1#a0L@@ zoe3X&P-yo@xkC91mhc%#YxOD`pU$+`zGuVF_gUtTFDtYR@)B)y^W+lcI={^lSR)b8ArDt0>bH)CcFo)9CxO#QR5>F? z`Gk~Ai@D2rAfV}z0)fs9{@*RYqNv)_ZWT=uUAyhlR4THvJH{|DRr#RqX-wS<#QP^(S(#8%gECx)jOWd-)H`x0 z>hbo~SA8w$YS>gpaR5&R=V}kQ2rshAf38HH$QD-5<3yR*0%&%FgL3|!*MCvin30pu zXUK0$^sYTD>$ZE~Nl*m}sAk^PZHMs@$J|UeFe`<@GCPQXamNzP_}H4($s)t7@|uSj zNVSPkAX{g1^B~y=wc+---QK+YZ9j)avZTxNYf8!W&j|Mq885;ym96$RH;Tn2d>*Ih z{oBL&M_dYkX)IgnT5hig!XqH_)U*C{_-Qjk0G~iLRyf#4_RV|EP9YOxdCcGz!b(7%1FB1Ri96l%+i`6dhBw?<8x#N5Yopk@YTQG54*}UYl zY?Pwb?qF|KWDkb*ny7>gcQ^BJb<5*vdk94-Lnh^M*tk%Qp3k6KjpfRJRmKGeWM!ua z2UKivdvBn{DZZeof8Yr|R0QSsKkhym%yu}%WP8C8aDGj#9$1Ld!IMl37Ps0Ao1~q2 zeTQB+=26+d;_)oY+?lClI}R9Xun%MSI=w49YyDkTFzEB;=gMtMGxAF|H0+|}$Iscz zzLn&={1X`;tqK=;TkhF&t_ZuQkE5bU$}f3?@eF7+VifiYzcCzPIR$inwzw|+%j)gFzg;STamo3Z(XDeT+r3~T*@rR9>I+t^8Kt&O^ zTXW@vqyl<*y2IF16@fuEvS`i;98|ghY`KQH=%%FyiEO!x>U*UPH!q3dpD`;LE=A%q zc5wW>G1I-EFX~#`)fot`1Pq#%<}~%YYrT3@t zV6{L!Ll}-?RVjT5ZG-kQiN7LOTC~pccAA)*!W24eJe$mrOyIKdWEzCUfiI!%IYVnyF0qCDw8NHs? z9OYv>pHZU6v|@N43!qBK_bRB$0q2F)W~Or__R3G zr2s?zqr=sTp#ob zN;FsKF`_vvtC_;89Le%>nz{J&8{T(}vNw!ROn1JPu6vN*f*j86XfH%^S`!9wM4y%^ zsO~H^JMf3=D9H{*DB5VNeQm0nim=?3s8%wizd;dpx&|OdkzSUqk|vJ%ur85~nyDHv zi@U8Y(MI) z)NcOJ+gCSd<)`2MI>0-mSDN)v2WbjlzNOKc{+Mde`k5*6 zDohjg%bxdi_V!*kT=YOS`M6yCblGTS@gd1lbAziRc(ILTu zl^Jm#%tQ!-CYG-ZP@J8Nzo$7n`&Lf>ELg-mQTa9k+9}x?n46Mqg6w|)NGW0B37%51 z8knYy^|;@EidsTZ0ocdT(vFIL)Y89{YjmK1v3_lSs;~g%Y7}d5Y7|(itIxLv+k+P% zgLgG&HGs-13PrbxovghQ+(&^`7}nWmMm`*LiP|s4Kp@1sx*14*LYD5VLNAad zg5YL$DxEwPWOKzu%G*WDyZuATynU-8_Wp%tABzn(~LQq|DfTSafu4Cnk6PT)`z zR~T$Jv%f#`2<)=+u!wmsU1}@v^I34?fQ^H-fHpCl50gOY)tg@{iE02%dX5zJZH1zC zheZ^+C$cPVOu9D|Op~)hFOnI;!X;Rq7j*`V%n}{9Gk@u`kV0YIstUVTl|li~k+Uc4 zNwKYEqaQYb22@7RyZ9Q+ZqKq;?jFw)#xE%dT}~Y5wa8~**4$^1pY47$Yh+NVTiLaT z8J)Bzc~+WupOCHcdbrOz=qcTJypEqQQ~H&rWKY_s`J60X1hU*Mh#HJgz~$BRlD*Db z?ei)%t@R#yA52a4?Ed@ED-329-YIN*R%xjO;M#br*ne-A{X6qwJ<}{j{Rn$AYU>c~ zEC!~;=ZTDOJ{LrtHNVaeL!}&Q>hj2AVV+C7+?|+6NrxCxDmw+1-9A9^m$)bx(ZbiV ziG}n1t?83lSb)4&2A=3krTH=X`rxv@h%f-SJ7f7J8*Ij~NM34JjyA8Q@j-A@b-LZu zGJZR#?EFw-=p=4M0AbDxJv>)x7VhFa_wt_UeKUXCaHi#S#3C9vGHjU_qHo{1JaKi5 zMY$mI-jHqvfY0$X-5*L;jRxt zN0d7A(yzd}JS#3$)kSq2q%HZ`Znl(lcMi4!oWK+;Civ%{z@5dSGoVi)3557#14$KyMWa z7jV9vaSzLCLvR$MJilrsplhCf?wTIgSIhzZMjzTgbDR#q?6y~pV!c2R@z34mAItW7 z|6#$)CpyQQ*lVD~HhYEFfUWXeMKtd9>=pLA)R*R9em!cifQrJ85R6sQxWL0%v^XUw zf&-WK!NQXRI<`Ys{=?(4wBRipLDapzeH%%WIq4SWe5%CY^a z_-3!!#y|QHi#d>4|Dbu^e9yg-CX6tRvZxi-&pn%SeIKCzh5r3aUUpu%2dx5SB0wVP z1ZtnZP|l?ZR8rFb;q%GV*N5SkmBtcNWTim#5;N@?fLuK`wu=mTd~con5YDc4hF1p& zLxX&=ueVy~E}V--d~@{ydMQs2{-2icjFM)XBe?~EPuGsVaC+zMP**8!ZYO}O>O0+i zh%rlAST43C*P)f>cc>%|KvZ>>SM-CgqKnh#j|!GYF(r$Fe1+mZmwO$%jj`J+z;p=N zPm0!r>ub*{Cu>IDbAYUDR$ih41mPYgSE0}_#f#4L#1(*wPHo{A>nlfqLlh5yNyHj_c|~?s({{_A?heyGIa+69UQ3ChoIt%1 zP)qU%J)ay-?nZ+#{Wza_;ir<2tXwc{scI;52q+@qR#qb0mnJ8+Oj7DnOft5XM_Mg5 zSy&pbJg+@U{*`F#?T=u*z~V@m@a!v-!-w@uUnr09cUF?bcFPNV3@SeED1SNelmtCx zbHTYCO@vQuJp}I$l05*u<`;sRiHAqd4b;@0LKyOe==;>mGe%i*4dG~Gk>Z&WOVgrE zh(9g_qlIfc{s)`*FaBe6)*sw;kKlo{>;7H%s}TRyDva2kPB%v`)rQ(4iq9rdPV{-q zTb!eyoNdHU?0eK*cksJ7ds=%!@&x6^m%ZT?bR2IRoTVAt8-GHhvbd*d*%D@~iogeC z`=3LQ=)Vw0SR(z(KF6ISkKkgukl1D{-ZTI4>sn5LG{&3t0nNV!g0L!P(@;OkEXLGO zB=gQvTM6aNw*ROH68cbodx7zaH}RoT2`3O4KA}A-#Q4DXWb+tzdIei=6dtsh9F&h; zk6Fqn@^zT)TpU=~^mN9kD5t>M5?WUDul$`#d8K_>Kf4oN1Tw(gu_Kx-O1VQw+AOMA z6@M4<7EeUN+gs5)+Ge0ixfR*udP)f9)I-5r|2o|z7Q0ez{Q4AT#iSVo1#&Ezk9V$KiH%3pjh)`L3iJvaGw zCrXbdfoYglP@3YTl9@tPQSwd{i?poqdVlYn=Rv$qg70Ti95_Qey2O7YH>M# z%cEty)eJ3^gr7eg8Y@piNi`c%{3!B0wTN?aRt2vjO&H%#&dF>2`XZLLDo<7yF|N6p zqC*kHnJFeF=yM75!R+WC>6wc?RM8k<1PrkBYXB6@#yr@$X7ZY8Bdr6rGJnd6aX+Pr6M9a&Tr$S(Lokwd7e3`O7M&obo$^io-NzXNR(ma&_`ogg*=P%i zVBq30Ta1Z?BWytj)mktspR?gcS=qijNUJZwfr`|gBua?A(1s(;xr+^Z%D?d=PdaU9 zg19d2wL7aPTA%3e<7F-X)T86tgNdD!Nlo+L*|tut?du3_H(~t&whe+;1;9g@RzK`V}-3eG1@zGI1Lap@zZ zg==@OwxpWYh0UNbldK@}y|anjS`uIT;UnTH?Sfb##>RSZS7lhveJpCAMc!>*>cL3QFNxbR>zr&ZeeAm^4~@m> zpC(Q_rlYW3|g-Tc(6E^`$%gI>tMsi+vuR0p&zKS|SXD+;nb#%5C_leU7Sl$lT6ND6{3; zYIgV%F$ac^Ar1#^l77McO|aB%5wZ|>wVbCMxGj5Kyv*stE;?q|h2GaKFAy~vtk z!tXTvbM9nYT2C-%wEb56w9R-Py8O2aJ;si)H9E4ZuhT$|#PgIh17@;(M6+H=2X<)OtYtckeUDh%PJR_~_74K|cX!i(-3U?xgyyXQ4VkGdJk@85{c zZ2DAnp!i9pCx0gI8$h7tJ|p`~^y29Prlxp*M4COyMeuBaQib+0f>I3;)b2g2hPZc4 z{C|*MopT~U&VPZ8f44nVqGkH3io*OvmqtEE^AMfrTHcdV=BW+^9U+@q!d;aUXR$r- zGv6s*{JkHSA{&if9*!j<&+^ggeyte9iN&nPv|m6IYR}GKrPV%)M!m8|83*5W9I9QH zbOs;i*tw_FEoH8>x?f*nik+u9oiP5g(7${csM zHO+1L1!p{tm`!mj4?(t3M{8RvixbTwGiu+4=NG`fcFZ`%Fa@`LOYo9ahlhGCDw6t# zBqht)@6TL6y>L*xeANkRtp(gLD)cDRVjvOgy%(CbS4AOtjl_aDDC4&dd7`~m19=gS zRxHIsjilFzNq+9{A2?;V_|dwH53NGu7CKDo>qOdkJ`ITzbX9X_gnpR3&cr7W!TkOc zgV-`Z3u8I@t9HK%%OYKCtgRC*GVF&=$+H|BNwkp^O~A7jyk{wU)5{Kf&g|E>A;Y%M z#B=i1bY4YHsD26Qi>$1mrf`iySZ5Ce_VOXM%iYqA zJPFjo;^m=pP?0=qX|syY(;?G>mT-(30(kQYN#O@Z4in0HJKZV#AF7_6c{qAIC5kLf zA@lj3Se6}&O=^)3iQaCi9wMFbp-&kdrllMesbPc%w9Mo`3k}!(=hUdE(Tj30M7HB6 zkYl+35@{jK7J=IJs_xDAU#!V+5iwC>{2%6L@F`E8K+dVrW@U7MrL{LlD4H)p-ZtoC3yy(0>78? z@gr|O4b}A2DkehvRFy_~>fvQjZ0--Zr3|@yS;HgJa$$lH;D4i3*S2X5a44x=sdMuv zcJP3T$;pK~ZvXBZG)OHN;R8Bo_!Q|DMwinK4M;H7PF_HHRm+~ZuqTk!{qN}k&Q;)- z*b;-e_7u-@vc$8x*cS3C7AVJ?@;ob_ZZ*0tI>b6y>LduCIIgi2K?|DXU3vxtTae|p zQCmmm>v5w1cRoJv&;6jSe#@CrC0_l4T9xA2+#`C{58!_C!`*A}B}4_Xk>3_$tq-7b z5sjK%I65cZnEJezxpnri8#gH4aw}hRf$zuP<>$h_e;)VSc(?3)3(_cu_PniROWEkn z&e+BbJ~-WVHkl?>Sa-W^;iEaJ5>9zzVnZ(zZ(i{PMan+!zSx&uXltk)@z-IC9d@%oBiliM-6TiyJvEi+;d(dQf6j@=p7R7r}} zvt-5_eTK7L?oV^*(BOi>yz}DY`D5rzzKF;+D;^-cSqN7dCB@z`3PCr6TcEXLD zmCSpQgL%ezU-lsEOl6A#SM{S>$4%K^X zGAs?L=&>lQOrS|D77AUtvp1;b8mJr2?6;x``CjK6`HY@XOZQn%d2SfOVqJ&)M|O4g zxrapc)*5e%cF~%*qYe)>8@A5O?B)lNkAzYwc_l{bmacPc`ia@E(gsx}WMx?aui_p1 z*4L6$L{#K=pNtzQqJXSw^$7eUTImP?qC zW3H@hc*2finn33)#&Js$qc>YRJUAp-ZH*$Vepa;)BdvruDk?RNYxhIjZJYtehAC{( zm%Nv{BWxZruK4&QLu}JVER?8<)>)mB7BE^Q-|fpW&?xbJ5P79D0M3F$X-9-IJDV_N zJ`Okk2{VcI18oQHmJ32SR$wd@;ZqOx<^4*T>!cqYG`4>}91(L_+0zxTd~4s@I@6vm z7^AQBO%eZ=Z>RmTSJh0zh*d{CdJu;;W6?Q>-~hJ*9NPeacsQbNpuH;N**h z(37=0DQsdhh^Q^jM)Ru6+;Np%m|J7pW?9f_uJM1hch*sHZCko0Ap{972~L6rcc&l( zcM7T~9D=(SP6!YrxF@)~1-AgfAwaOgEjWb+ck+sR`<%X~@4bEdb@%JhuSfsM9-A6f zd#|I*(nJ{0q2A%~8tTolt#q;lE6^f;y-SkS0 zbo1^7rY<8)j$(?@Ps-55EPf%Og0fUAOOHz>i4(P+a*?TW1{uC5OM6wZdAvK9^Zhd- zUH(%6Z>@B|hh@M41gF(gnUJMY^({c;EmiFz@nh)Odo8GV3ab? z?-dtDm|rkBL1zZ@rQw*7Y^LF;@TH+8x*mK7wlCxR_pKs zBIf6u${a5TB@t?}@CqJSf|}|?aaFgL3WW&~Zm*W&P&p&dPUtHVSwozrCRDXj4$quy z`8;y4iUMQv6V_?H;D80arN(pDUr2en>AdxH`qqHBZ|2O1wmA7=NKj_qq#OkJs+Q;5 z&(76{Le25f_5mmv;7|swsJAg%#{a$1i?lW_5R>nIAsF2Z_XLS|O5I5%-sm_yF z8$cr|+9*&NsX#@Fw3Ada10xhWCjDSMP3+CN^6K1))~+i7Z%nu9ez?_}b0S_W#rQ)r zPD?PB)#^@{Bnez}KaD)=BoXL!J*p~8YXZ$K?!sr1!49|UI+#~_dU3G~Y;efv;NySY zMIS~H>ROh;o-W9=*Bd=Q@$zR!TUWJ5r(%VvJt3}i)2HWW1Cq0*Ep&gLocj$|Nhmrt`MS<~({ zMUQO@P{PsRjC*NyW|4KD&vSbOqi(V$vnrv$D-vah5xgbE#xc1FJzhJ-^cd5Oq{*hQD%{|w1Vh|Cy& zb61h>+pz|}I_yQ1ihf7#ZOLrwMLjb{>n|3Edv9 zmHCjTZKdnQjV1rkU+&@N0c4^U)qIA0e6w`OpFb=y|#nts>O46!NC z>m1$G;f; zXd;W{7` zlflNwz--+qX@<|=1c639&ye2a|Mb=9=%ScmiC8bDl?ee7S|jJoFN$QfWTBMzu;l%s zuG(}y;T(GQ*^qflwhx{XChV0=qH2wT^@?cM;Rh&SR!d5zU>Ja^ljC!Mb>6UjZubjm zelEagpFAF>zJ9FJ%pX5&T8(eKW$74iAOCI5DjzZDutg(ZBKI@Kbrb7pP%g->Mu2Hv zWqLdiA3y9Sm!%1PUMPTsgglG{efF}aDph036i!*nBqJ4)9kDL2t#*EB9jFl$`7+@H zS{Y5;)jNLCeH0E<$nrZOzH|!Pmuw zbYTRBNY7|v@0Bjq72T;(JqX+c06lh(JraOuxm!R#@-dmbkkUC{%;lZV)n+? z*4As8nICARKu7#&s3S<&MhFL3RkMJoB!nWo9itszIyV^ubSP#oZcs1eRdlhNFM+3O zv2tv3&1)3tkiz0!$9rg%{=#MTVei_M z)XKTcFk(Cm4Pa3+GuPCKb>MtR^JsLyeN(A9a$zM`|5yTnJ2fmDY9|0;yf2MAGXt*S z?;yp`DPT6)B4np_UA`rkE@alsVO|kW5uGm=k>V8y(iEYJ_K$sSD^fsbN zl|dq36F=zDbTJl8Sw?-QDJ}jB354KSM3M{H{AK#aw5UDVB_x&FL8^j#G=i|a0NWag z*(NIL(ZJ*!`>}t_o{Qd2c;6A|$EM#-{B6tpmcD!v_KFH*m1!c6k_el|XTf#7IE;Uc}U#kDvei?QQG% zrs1eeT#oL#ow1lf+F*D6WEp+m>SwX8;#o|KWGrh;pnF!tG%nKFbc9iO=}W@#%bP39 zH=0H!brBHaZj`q^=xubZn)WI&3t4sNJqi>Nv)3|Zj>Hrh<1MB^AyPF>ONM(|)B+UM zAz4zPSPUJsCGpfr>kNTXlG^Qd)Df!_8a9>3v?mK?$vPdQ+bnx(gYL2J>3;gK-H6_K zK*Sd>F;_XvlrXPNYv&o2`s3SD?unMk#AwhEP)H5Oythru-*{%I~Vz-?HR?`-Sn76di}|`sWJ=0pBEQx2v4qSXPgXeQRhc zE#~xXt}P7sfd7>0<0UF6+>zR7;LiaQ2ALC7m_ERPL zOh@WqU}*Pw51W4q`k46+bDc7Urk>p#+JLMQ=sk|)p7S2e@>GX(XP2cL>q&? z)6$CS^7k#j{qBh+1U4MId!M3cY9Sy5-j+&*@s`Pa$IS)G8gTinitlh~W@Xxn*l6HK z^AoYjnOXPG7^)rd#`G)cE{PJ4^i_`%^|QH)Vkcz?Z+HuKsdilynq;2HMgUT)utYR! zR<{rZaZ?0(zwNtCl!a-lva6Jv<2i%w`Q{rr(dTB@5=B*-;pIK^q9VK)V{D`qC?DEa zRi@P*`J2j{FmrLxMNF5};)SSphG%+8o)HrTp^+tVfA>4Kg63p=o@%~xz z@F%(=J$Q9=9c=bW1?K1Ft5Q)*!3;m9Q=+Y@G@;GQ?CNAo=rPWed%IEm%sM%&ZyYv& z@7Gl=R{Ap_1A&3NuvQ=Qh%aLLTEfWm?W=z-KHBrJd*4;Ndsa2q; zA9k3ZW=V@q#_0;vv_uE)lu&>i3+>`4_x?tJOOVmgiYyAPrh=$TK#);`ieo((x2YXZ zEH(mTCB=5AJfD+OBK8teXuT483`S=VqgNM^?FV|Jk+amSg6RBw>kA|&>FNAO81hOj zN8v5$`S84P?dhAJ%g^FWND7DO z?|JJsrVTanBahNszmSn2=9ZC(%yrGq>a!y~ivKiA8(S>9XgH?8l#@`G58g-C`f=YD zIAad(d;Hn~73UO3G=7fCSgN7PyxvVRBsx_CzEfD~*ikvaT&qiVCEp|&t*9SJ(Ed2z zJ+-RpC+|axBa1}3Q`DO@e%froA5k#=OCd=F7=v=nwj?A!C!M8kVHVejsidYSW-X_C zWMa+2eS0qDB}0KR3bYcCS2AMLN5fT8wIh)yX;0oahz9en zY?fAKAMqC#Q?WZa&~BTXA2{$%H22=X-N^p_q=53Ds-nMvLg3Ikp*fHJp^0}h z?t>I2WC1Q}q`N4TYUqaabv<=0H9_N%iBnIKiDBb-d?8)ycqj!!35FwJk@GV_@{n`VVPXajYln0l`4^UCxT3~&y|YPOqJrKno`)y*^vXM`tnZYKL!@P_Ks>w1R|%rCRc3#NU1>r0A9 zP0|IeUgYCGEO>>6zZ}0b2ujdE!udp4uwgk0a8T_s+6VPyXZ+`b6apxOcWTm0QtoFZOp z|IBnGkGDRg+D|$m&8Cljf{(6MlJ4|~RIG#`2+))7!>PMJSxwj|l@cdh!TEpOil&DB zLJGOL7h>G=-BK$B`Mahhv}{bV@2kL6Rrsu~^cvB||0vKxZWB4qoi-{zVcqKy(g zx>t9NWk6M`n6*i7)4AP+tTsb+TgUo2`Xs_iB%V*aAEM2wCSHrwIP_TqopM;c)V4F_ z)m{bT3>RlQygXq*;J;H{27q!(U3;o6mmVstxw|)%>o&hjUK}Ptd?l>GPlR*7?*^)X!cSt zp^7*ZlBCZx@9vtX-9W1m)t5J5Mf3sM=>Xsg316fR1z7kZauqT0N1P<80A=NHiN;Fn;T|8(n{zutYGNiWBGXI5^%iQMqjYo6#jVa+g`D!UN5AUdcNj$ z3Yku{BLGUtPetuh#p5}NM{D|_yjJ45WjRR-82mJcsN3=v($lv-sO+_KgH^hE)s>#5 z*1*t}n%jgtl?2Zm(d#Wh=QvpkI~@^%ao!>YZax>C+hJSlv-vVPG24=1S5{hO66uL=6V$WC=?cYb>e345Lehop!!tXU!%1JNpuk|qhK30 zMfMA++DQ--qQ9HA&|32I!n36}IeTW#nYD@eP}rG@PQ-(J&-N*Ga=trfJUf^;*8B-+ zP3V({oePwb;aGM^^hrF!N(wBFNG35L0&#W4D`*w3xz?Uo;1YoYiQe^LNv3ZSdxvgU zZ7k*aY_n@viEu%Ivv7WXqDH5k$Rd+sI{c1K>0?py%ORT|?WQ3E_$(4LLVZ)}bsx0J zGM0Itk0XHZ{mhGcV!;k)=Pnm=bV>jLY~(;R5zEP{nWj`*J9Boez#hJ5IFPuCqORq| zD&4RZ&guyTR&3rQf?_3I7*A;>Ng6nhx$vD*OB%*IWYYBa#b{v62`k4_cs0UKOIh>k zP=XuGBklQVnNf{g(DDq;PP3?|F#^^bqK|Atd zaLn-z=!f@}N}^d^KC2<2ZtTOts=~IB2Pc&06Mt%yk#=4&=-!(-nrlSFvOST>Cr|h` zm&mAWH@0`U$;_|&gXe@Z#IV^N?UgDjol{b**PH41u&IU;`c@se0VXaSBKy?&k)9!H z3k!6)?A%2>YBHqwj~_gz;QfJqe7Tw{9C+g8Q&W%6NCysS&w37GG(^*rK}v;?TcCfL z)3ZJ#u)2A5P&#F9tGr=1yc2nFF;VS?O+bKZP;2}4sBGsKQeu!0AZDJVl!(u(;;Ofj z$)U}+fm7YKv=&UHJe~Q$tgluVEZ`DBH>a;ts>Tr1w?_W6)Eh+llqgdu5K2jy^X$vq z`;>_6cG|bd-7g+(FBh|ac#y+2845*`AP|@5)V?G-#Chutoolgf;m1}%M_3*jlzZy< z+VpQ%HQVDfJBz{9^Un$__R%b^t^oZX7dmZEH|!mT>I;To>f^wv$#G_BnpinTIBZT| z#%U}&pp3+CRe6$$TOQ=6?SV5lb`9uY?oFmuqvVGQ&|Bc?z!&W5~sZ5sRU z%R(NjscdenA00F=(WNMvh)*l;1IY_Z+p8On`3ci6F?^gwfJ9A*!oZiHMl|5m?p+E^y9UdrnzUn z5fvn}R-F>xNI)Q{Wy$IA54p+p341@RG@!-Y8fQ zn=iWxCG8Me`w32;7sdRVOiJ>_bSE7wCCV-*SWhAkudj+NZ+VPt;i~PgV$mNiI7wPk z&`7cDe+$W;GBY9q`F{9QC#uBHDMwqSj|K~3gsm!Lpk2zwONq(PD-JptE~{3BTb|bq z9N{zj@w-i-Nt6UnC*x>DV7y?URlY^ZO0v1Og(+0RRX5WhobWqhf%_ajHTyyAghn_UgzVUL+Y6MrvxUL_gM(x9RwWWMCJK_WUP&1^Hot z-}c#CYVWwqp(P)WPcv!IrdC1Mn>l46tD6k*edU~OOvoFV8qQW(<|-W(JM~??nv_l= zm51X=V((#-8e@%=n#Pl5j7nX6l>%(#nRm~Xn2-AlB%dYL;mVSXNlsjJauQu8$Kp@| z)T3Mu5UOjR;3n?t3bQ@i;0CjAD%cR4JwUU?4-j>tAg+5#86dfl`423^N?im##`GOyF_+y(>}W)+0u zDV;+vm&1D0#(P3|MNZW`)AtAUH|M0lUSa%u0It3e-luOaGk&`KLaM(yMvdL2h?wG? z`wrLyfBdGtT5RcxK{|*{SzebF4-7vO=Y;VVqT}f3C=kNpql05i3ej`78qtRH-y!NL zG4Ji4%Oi?WxccpenAT!tz#-X=@wPesyFoXF>%;$*A!|$oUj;Qr}qg?T~^~2?A8DIUMGxreo2^ zFpZh%!rf+H2?GkzXc)aB$9cQG@K+cigMZ1veZgqv=~f7)!y>h7f4a9{3)J>Fr9!ai|1fXehJsHT>#uGM?r0F(OT83)m!E95x3Ua=_lf3x?dbOd znEP%2BI3d`&+!_k<~N6PWX^Wwh_jGaGkZIA+&TFgTyKSI;55x`wJ@hc$WXTy95I6U^Fl7$uai$740xR86-S3kI$|V{V+qG^HFs37x)(Y-1??Y#Fbn8F4;s@^ZKLjEDmuQ0WzsHkyc}_Z z#!s14wQzeD@jp;Shj*jw6+cH_VTt=|)3Df+E3Nx8cy0*c`FzYm*fS~7p} zyPW&()0M&Dploi6!g4{-K637(m%43Q zO30p-<=H+m3b^51S-AqQwkgHY-ouS;Vpo?3P?C}?XpF=Rw zvuYJ_21T=WqQWRZputS(92g zW@?wf3+$Br6#)c#&HS{@vGo@>N4;^KrG%jPJXUj_dR4-4QXV^R4jrWj^8Vt46F}9H zTy?*GS}xlu0)tteH*Y?y#Jm^Jkb95~%k}38hB4u}M9|b0%T=_c>RGp)vCE$3OL%#g zE%>rPJk0rmjhCxPk`A>3x62ymbWrJLQrH5VK=y#8#^!4C1Ioo2ugGA4=!?QbGLMbC z;y1vQ;sW_(?k6NUu^z9r(Q5oTBczn$t>w-j%s*QoF^qYgyZwcv^ z%C>D=+@M{^&X4WEbGu~@-2UkKIS2}+he;gnp@Q=9aO_vLiAf_35?vu>1UUo&s>pg>C@1>`vtN!lXw7f|A_wAx)6$_h%Q98iepF7x{Hnygs44jdL zT8_g}eH}GNYhQHXMX^CaMIZ~KZI!0%SP8%r>_<>dSS1d9Y^NUu66M05MFn~KLkrgd zre@MQc6OL`(vUH7H?OEY&5M6-F!}AM1RQrJEPK3Px|B9p_*3E75X0-6 z7h@8qunOfSv!I+K_>28p!HM_YT3h|i{AOnh*u%vOde%ofd9LZ~YX|Zhj#@0OWG~vT zHlKy{uGK3qc9UvlriZz#R6=1Sw~Y`9tI)pnQaQ3-awSscBuSgV!pT9G&nKd7Yk+5Z z->KadM$5>z3@w9>#LRKO{_K@XY4$qyya^Z@v&a6PKiA0CF0W}(?RD_%eZkkwdVlpE zYX53C@le9)@O-nEFos1|9&Qn<;`N#+dl`%lj2`7E6_x5d4jsDBjCeu-^g=50j90<+ zSAQhD=>~k(cr}O@V)jZ_gV~4ftnqw^(A{y0#Wq(AYsRm3)1*JV_+l84wt z98=IH0$Qn4`ZuHYeHd^13w|kV&{mQs;WKC$FX?%r;1{cIl5`S$6V>xEe`zI5SubXM z!W6H6D%_3V(hJq;)qgC`D}53k+DviI`K5=^03--OzVH+tP-}wYHuum5@o`>KV3ny! zXQB;*Sr;=Sw|!Ich2TZzKa*XcCPBoe9=S=pTSAO0+akR_*bn6Wud3=L z7@@FJWJICk50k+C$o>S;f%6sNY=n5ae`-p+-+uhne&qhbdrjehI!5Od3FmQFgi4`c z-p4mMe{Sv>0Q+zr&y3IPVPtxC=tq>=D!FLwd2C7y`9>poD@Z6&DCAX>W`GKY5Z8ru zUWD>vmEo!ULEHrQL4~{s+06b^(SlqQDaq5gVK7)^f)~s!2UJ%F(hLJ6kDEothq`og1Go)aNpc|4m=De&V5kZ75#DQ@ zhd43Y+d@1T7y}HWJj6r)?-Az{|Yz;Pvozo-~ z36OeMQPk?nxhbqKb&(1dldU)NdTA+(pS%;4m&?oU*dtQx)LF?ZSzLULLX}!c*znh? ztsYdXYsc0+pL+0$`kg9l>N~>JlkZqx#=ZM}Xekp(EjSeZe5&Tcw>aG~y1HffNJ>FU zfsivWl2^6ybz$~96ojuQFT*iy-0{{B9t{fc6%hkvZmi0z9PL${ev;4Mg6i+wiLIbs zFWqZ}_2yELeb1xLo9}n76@PJfIx;av^eO!9kG{!uuK^bq@q%8Kc&}i~<$6AAhWJ8) zC#$b*!&{$br!whv4sb+)gD-;S@lmL;&c<(AxH(v|qfrr_Qb#9C^VdPFL(Nk!P%RJk zmxDy~SV`?EyLvQ?s<}Q<8l4cr5LkIPFdtuhzx&KK-Urv)+N-o4G%6(ZEuorM?|H)+ zD;^*OFhb})O9g*|@U)!%Kzz}ySv#L`zhP)<&6s!HKKY_rFb*LeRR3f)r3#Z*v4q@` zjWmi;W?DGsQG86z8(@Jyt%<69(Mb@BM8FUBS;jlN*y4t0-_SCEIMqgl6#LvQ)9=-v z--7aAUD*15;x=HAa7#l+xwI9zzq=P(JMmdU!f#I4zxu*^qPnRa)8)c54j2hZnh}5a zoD`Apiks2Z*GE4~q+^)6O^;KtwC2@!2h|E(-i@Y5Wf)EEVYR=@+Edw3IF|7C4%k#tx`YEf|C+XXORZ$%Nz;ed|}eleY?twnQ7()3Pb^ zXGr<{3khlEEx5OEtBKV!+{^Y;B)cH7`WbTKC4@33dv6**_qi!!g^1nRKGl@~YkrC8 zJb~9<2C76jBb0R2xw^5?2QuZl^#k8%^UX?&M$l@1d&=;}F%Jw6p?R8--;LLtHTLvG zDKCmG*oE)2F~SF%aNpuS*licbc)**vHTnPyrq9Lx+jHRWZXy1#zWV+J9}PASRRd0R z@>H_?EUoldaXF&>j1F9n$Y!ZjC{vr&-?{7QvIzATx(^6k_+%tn+!|aURx{3(&+#*v z1>Z^;*K~O7DtjIhp=fNgp?o_y+L2iSu1nl0XKPH9$@<~bMLZ88Z1NA1d%Kv%WD?PW2buI9q0lGQ~>3h+pd&N@X-t*^wW zgGlXl8LlJ4aBgK)&p{R=@x`ah+cbjte7<_D*orQbtZSPfuBv?hri^~fMT{o7WQ-8+ znj?irL4vAbIb10YD)sG;9tyaW;=ZEs+rHQL1n&7&TCUl)HS;g%ug`cP3&!*xE_{F$KX6<>f)_Z?7d~)Y^AW-m zm9SU(g~UC2dSI+HF}KPZYDK=mURReWhOE`-M*rl6f=E1L^r8S=ehROGTEc?`E<9cv zwO(^Wd(W7yC3 zlB=4Xo&mY;vwLZer-&)CM^U$wsmmA-7!M=FvSkDUHf~Ee5@>y*o$?4xi=L#QBP6|vyv^i4p*%QiSWfKr6Wl@m0oIxjIp#} zi!myee(RGwsgy6+M)-QE(nV7eQLsHOCXr$io9Lt(&hxcAOF!IaT~hy2UoJaklADv+ ztva5GyZZSPixL-bg+tToWyjd+q5HOGM=z#)2ywOcuD#}p>_>S_sO+0aLcAW%-aUp7 z0P3nFn{>Od3ALN_b~t5$XKV80(RpQJPH5{T1ZYH7|C&e`E}@n$W#nM zptO+Pd29XO*V+E#IqCcN&>(+Ul>YJO{MX(wk}{c=6~B#O(5pNM>mF)wZnkQ(HLAyQ zQlgiz2rr6c2{N#MpYS}GQ&hNLF;1xZbsRTca_<7|t1EE<1Os+Hh9ygaa>QCiKm2iL z8T@v*@s1Tb5Q>rdn3+NAi*N>iTE6GYW3ph*Xx&KT2SBh;C$9z>Sv}t#9l0x=X|k4l zT*VwqdA2!aJO#%cQ`un6@PjiPvCR>maJ{^6_^i)$gd(liv6;7Dfv1(Fh}x7HU%rC9 z`a0*xkP1sFL#L5bv(YQm5AnR#kL^_-Z{(ej!Vw1JjWDyHL*Cp}#}(HAVf(l9v)5ky z^IirejF#LB!gGW$L3y9rhAk&Nw(s)<-AeJ16=;zsN8=l35#FbS922Z#`5%K|xjF-6 z91$7#?8g+AMrOD*5ps}WnD^ac=s|sx`ad2fBNOkt_QExK1FEIHxcPQxuRq!vVJ~*A zZNCiF*t9r*t7Eqz_Qi2j4Yq9D)mt4r4;<}>h_t$lYDuvbE*mCtU1&@DqgTwxuMS5M zT;s@T8)CGd2NPpkZY6^WQ)?ke`&MI_+AkAXtUYg|j^xu`dy*S|&K~a>gw9W;Y-x}CosLYLqLSAnZ+KaItW&F&jIqBSA zF!@m&gC!!{pzusQr(=y#Fb0;oq!F`rilk$BzHspU1yEr2Dt! rX8%*h&ws|R{fnaIfA8hyKjX*#KlzNmNc8{r3I5sF{r_@;{hIkd=Bdrj literal 0 HcmV?d00001 diff --git a/ag/gfx/markt/kaufen2.gif b/ag/gfx/markt/kaufen2.gif new file mode 100644 index 0000000000000000000000000000000000000000..33965d2b06341c8140c925d1f3cb68172ceecf91 GIT binary patch literal 2167 zcmd6m={MVn0)~GPP10!)5)`o{u@xbStyM)3B1O?u)#x<1hFhv>(Q;^O-=Z3%wY4L5 zS|vekRkD)AQdCka=c?N~_snv}oteMlz8~Jt?{m)c`uh2tJQW!ZkbwUJf93G- zP+wnv^YhfAQh+u@8=Dy8?X2yHc$_KL+``Pv+|<+z=kDR=Ms{&@Cei$T>0tpLUZ-c;{3 z{EPDHoXq^BdwDn0?p<5j5HBi)Z`K40??>lXM+EZc*@Y=_*S=f(N%4MHzWPD7vL#*K zlq@PmSFbZd!vi-zPp^NPRDPUzyFK33U&n1N3yTO^SQXB$jJ%R|42jyqzYBT)VPa)- zd}&?!u(t4W$9o|uxBu=Qzv>(fHQ^_Z*IqRT3? zirMK89%h!5-$~C*jQQucvGJGBhn~&MO*!L!($o8lw~xCI)q_g&w85XSwX=?l{+48K zM{^Bo9D$*!JgzVYhO~;1@#@6|2psJ(mERy`9k+JjHo?YKDGw84(0(C6t1f0o5($Q? z*PcxN9Yzc4{$6s~bXSr#kI5_2ckpjw@O{*c%$zE$`~k1lJfs_p`ot>bHN+_?*>cro z#zV{XhAnrO{9=!e)ZIaCeB=Su{Y*JWZ};cVRe0n(MpzH|!SZNGd`6soCEk-%nAlq{ z9w2Tyv32c#z(J=C)a`+Ib1t^@m>65iJ9HQBJgAde z;nS7eENPx|Jg@KQS5{P(lQD_4Hkzi9F|Wg9fYo{ew#7yk2~0BD1Yti5PUZ>La%-eK z-y5=DxF7?Q1zkFEOd`Qii$R1U)W&%KE)feMz)uc(dYr#X6e`)0R)Z$ z;XKiXC2b`-7N}?zJvL7G4=Yumz62L*8Qo0K4r?zVl%l*~p!Ub0Xbq!DO$r6Jr3pRe zVzm5?eu!rGc13Vt8iW%PbLt^Zk*c@Da!W=)ZFIjJK+%r=&2W7MfVp5*;^HZIk`j_; z2D%jP2h_!(a`LNCKQl$ycr+u}7CFh!zpMJS-4tXoaCpMJIV7aWqD8US4#$Wr!5{CY zH!(p5$*T1p6xtRlw4peZEA6ZfKk98QLIBcE&QA3+dWH(-L)Z8e0~~yFhMaAI!m}l6 zNxaCcqrPx#*RUd$2(w0bWGYNZ4w*DJ$D$&eB5}dI=5FZz#R6U{1n;+_JUfKw(oEk*i^m3|v7c^{y8q2Ex9|V9m`;?}-Wt z!NZguB$NRGaiT&^x<5%iTaLbb01rIpDOImP5e4w_$F4HCk>sMSG2fJbEI@~dkf51y z1nPuYEGZ9FeUeBqPmT5T*1e2740gt`t1|lKzPq2j%|kSpDr3pL+#D@2+k1?y1E}=N z8w;_;C@_IY(|N)m0p^u(g2XbAop^w4tlE=UQj&?qyVQFGC|ql)*UuoKjUd@JuT{xE z5x{vY-M}nD=!Ba1mw)IbL6tP>cTe9rB!cGA|gsZ&4Q|*XD92 zB_}>>0JMXD*%L?Q5s#w|erqKN|BzFTYx~noMp%0d8J=Es^3X3uW^EftGwUO&P!l1@ zCQ|#XrPRvFQmEG1fKrbT0dB#?97i(5C{rG8Qx0{Kd1Mhv*0;4VIT|yOaP4IgI@CmL z^eZ8TSSZFET4|}C+*cOZ7~~?~=X*Z{si-5{WU5NWp!uy%sO7!@x+supFqMU&Hp}1a z>=zchs(_v1qBMgDHgLLy#@$^ngQb?N4aZsEJG?^uJr9bpc@#t!SUc9i&d*M$KN61> zX&}i)qKGD~Bt#kfwm_vyhINJoi;rz6K@y48f2>}2?bhP2^e`; z*^yfaFXJ#1^?Un4KAe4MUkU@#OV>jJkvSR?p*km(N?OcsTNC0n&+GzxW@cZxt4Q1B zlK6-d7lceb4@Reg(S#WYx{ZwG#Cf6J2s-Cf5G-*G*aj=mK02eKvs;$q_Q8W*fEZS4 zerTfVF=rrf-nyFcQl{rA9>s~>qZ+GnA7GOq5#H+!TF1?N<`{WsC7JX<4+L+>^ed{N f11T6WI8ZV7Xy|J*;eNY+EN#AKCD{}N0#5%AIpT`J literal 0 HcmV?d00001 diff --git a/ag/gfx/markt/kaufen2_.gif b/ag/gfx/markt/kaufen2_.gif new file mode 100644 index 0000000000000000000000000000000000000000..210997d100fdc60fb7299b333c1ed4f1360a69b4 GIT binary patch literal 2174 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 M&S~d+K!gAQJLzYaJ^%m! literal 0 HcmV?d00001 diff --git a/ag/gfx/markt/push-min.gif b/ag/gfx/markt/push-min.gif new file mode 100644 index 0000000000000000000000000000000000000000..beef38f337315369b3a5bb0fff5e2e1a114ce09c GIT binary patch literal 149 zcmZ?wbhEHbsDYlrVVzPA7LmIJ4^p1pQt@x;bNE-s)HSP6nq z{K>+|z`(_z0}=w6!NB4aaB?Nn-bpfvM-*omiKImGT+f)5v2EXiqCKw_Ik#wrxXt{t of6~DwWyQYZm;9z_-xO(4(^Sjarnc(p)I|>~RxI?=U}CTa0HQNFga7~l literal 0 HcmV?d00001 diff --git a/ag/gfx/markt/push-plus.gif b/ag/gfx/markt/push-plus.gif new file mode 100644 index 0000000000000000000000000000000000000000..15e2b6dee676286b3269a1b0ed371b73a742c809 GIT binary patch literal 152 zcmZ?wbhEHbsDYlrVVzPA7LmIJ4^p1pQt@x;bNE-s)HSP6nq z{K>+|z`(_z0}=w6!NB4gaB?Nn-bpfvM-*omiKImGT+f)5v2EXiqBSS0Jec-!O$}6Y qNI02ra-u*7%cdifU;3D{CbmW#by**jy(lVIQ>yQ|)T$OG25SHz%sD3j literal 0 HcmV?d00001 diff --git a/ag/gfx/markt/storage_end.jpg b/ag/gfx/markt/storage_end.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fdbd6b676ef8f025d30ad998c87c24f638929e67 GIT binary patch literal 14714 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 M4z;6x-fOt>e+>D89{>OV literal 0 HcmV?d00001 diff --git a/ag/gfx/markt/style.css b/ag/gfx/markt/style.css new file mode 100644 index 0000000..dc20ffe --- /dev/null +++ b/ag/gfx/markt/style.css @@ -0,0 +1,37 @@ + +font { +color: #DCE9D9; +font-family: Arial; +font-size: 11px; +} + +b { +font-weight: normal; +font-family: Arial; +font-size: 11px; +} + +h1, h1 a:link, h1 a:hover, h1 a:visited { +text-decoration: none; +font-size: 11px; +font-family: Arial; +color: #ffffff; +} + + +input, select, textarea +{ + font-size:11px; + font-family: Tahoma; + border: 1px solid #d3d3d3; + +} + +h2 input +{ +border: 0px; +} + +a:link {color: black; text-decoration: none; } +a:visited {color: black; text-decoration: none; } +a:hover {color: black; text-decoration: none; } \ No newline at end of file diff --git a/ag/gfx/markt/top_stor_xx.gif b/ag/gfx/markt/top_stor_xx.gif new file mode 100644 index 0000000000000000000000000000000000000000..498098f0939582005c71b5f5eff7da00ac882528 GIT binary patch literal 1225 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 + + + + + + + + + + + + + +
+

$fehler

+

$link

+ + + + \ No newline at end of file diff --git a/ag/gfx/markt_inhalt.htm b/ag/gfx/markt_inhalt.htm new file mode 100644 index 0000000..9281c82 --- /dev/null +++ b/ag/gfx/markt_inhalt.htm @@ -0,0 +1,27 @@ + + + + + +$ITEM + +$TYPE + + +$PREIS + +$ANZAHL + +
Info + + + + + + + + + + + + diff --git a/ag/gfx/schnell_leiste.htm b/ag/gfx/schnell_leiste.htm new file mode 100644 index 0000000..d532a2b --- /dev/null +++ b/ag/gfx/schnell_leiste.htm @@ -0,0 +1,98 @@ + + + + + + + + +
+ + + + +

Charakter + Schnellleiste (>>>>)

+
+ +
+ + + + + + + diff --git a/ag/gfx/schnell_leiste2.htm b/ag/gfx/schnell_leiste2.htm new file mode 100644 index 0000000..a9b2005 --- /dev/null +++ b/ag/gfx/schnell_leiste2.htm @@ -0,0 +1,78 @@ + + + + + + + +
+ + + + +
+

Charakter Schnellleiste (>>>>)

+
+ + \ No newline at end of file diff --git a/ag/gm/gm_seite.php b/ag/gm/gm_seite.php new file mode 100644 index 0000000..1df28f6 --- /dev/null +++ b/ag/gm/gm_seite.php @@ -0,0 +1,2687 @@ + +'; + mysql_query($sql); +} + + +function showActionLog(){ + $qry = mysql_query('Select g.time, u.nickname, g.ip, g.message from gm_actions as g inner join user as u on g.userid = u.id order by time desc LIMIT 100'); + while($row = mysql_fetch_assoc($qry)){ + echo $row['time'].' '.$row['nickname'].' ('.$row['ip'].'): '.$row['message'].'
'."\n"; + } + echo 'Zum Hauptmenu'; +} + +// Returns bool +function checkLoginData($userid, $password){ + if(checkSessionPasswort($userid, $password)){ + return true; + } else{ + logout(); + return false; + } +} + +function loginUser($user,$pass){ + if(checkLoginPassword($user,$pass)){ + $test = 'SELECT * from user where nickname = \''.$user.'\''; + $qry = mysql_query($test); + $result = mysql_fetch_assoc($qry); + if($result['gm'] == 'ja'){ + $_SESSION['user'] = $result['id']; + $_SESSION['username'] = $result['nickname']; + $_SESSION['password'] = $result['passwort']; + echo 'Zum Hauptmenu'; + } + return true; + } + echo displayHistoryBackLink(); + return false; +} + +function displayLogin(){ + ?> +
+ + + + + + + + + + +
+ +
+ +
+ +
+
+ '; + $colspan = ''; + if($view === NULL){ + echo 'Auf welche Art und Weise möchtest du dir die Avatare anzeigen lassen?'; + } else if($view == 'ByDate'){ + $colspan = ' colspan=9'; + echo 'Avatar nach Datum'; + if($date_from == NULL){ + $date_from = 'CURRENT_DATE'; + } else{ + $date_from = '\''.$date_from.'\''; + } + if($date_until == NULL){ + $date_until = 'CURRENT_TIMESTAMP'; + } else{ + $date_until = '\''.$date_until.'\''; + } + + echo '
Von:Bis:
'; + $test = 'SELECT name, nickname, bild FROM chars inner join user on chars.besitzer = user.id where bild != \'design/bilder/avatare/noavart.gif\' and bild != \'\' and bild_edit is not null and bild_edit between '.$date_from.' and '.$date_until.' group by besitzer, bild order by nickname'; +// echo $test.'
'; + $qry = mysql_query($test); + $actual = ''; + $i = 0; + while($result = mysql_fetch_assoc($qry)){ + if($actual == '' || $result['nickname'] != $actual){ + // Fuelle die Leeren Felder aus + for(;$i<8;$i++){ + echo ''; + } + echo ''; + $actual = $result['nickname']; + echo ''.$result['nickname'].''; + } + echo ''.$result['name'].'
'; + $i++; + } + echo ''; + + } else if($view == 'Random'){ + $colspan = ' colspan=5'; + $sql = 'SELECT name, nickname, bild FROM chars inner join user on chars.besitzer = user.id where besitzer > 2 and bild != \'design/bilder/avatare/noavart.gif\' and bild != \'\' group by bild order by rand() limit 20'; + $qry = mysql_query($sql); + echo 'Avatar Zufall'; + for($i=0;$i<4;$i++){ + echo ''; + for($t=0;$t<5;$t++){ + $tmp = mysql_fetch_assoc($qry); + if($tmp){ + echo ''.$tmp['name'].'
'; + } else { + echo ' '; + } + } + echo ''; + } + echo 'weiter'; + } else if($view == 'ByUser'){ + if($begin == NULL){$begin = 0;} + // Die Bilder werden so dargestellt, dass man meherere auf einer seite sehen kann. + // Dabei werden die Bilder jedoch gebündelt, dass keine doppelten urls angezeigt werden + + $colspan = ' colspan=9'; + echo 'Sortiert nach Nutzernamen'; + echo ''; + echo ''; + echo ''; + for($i=ord('A');$i<=ord('Z');$i++){ + if($i == ord($letter)){ + echo ''; + } else{ + echo ''; + } + } + echo '
Alle0-9'.$letter.''.chr($i).'
'; + + if($letter == 'Numeric'){ + $auser = mysql_query('SELECT distinct(user.nickname) FROM chars inner join user on chars.besitzer = user.id where SUBSTRING(nickname,1,1) < \'a\' and bild != \'design/bilder/avatare/noavart.gif\' and bild != \'\' group by user.id order by nickname ASC LIMIT '.($begin*10).', 10'); + $total = mysql_fetch_assoc(mysql_query('SELECT count(distinct(user.id)) as anzahl FROM chars inner join user on chars.besitzer = user.id where SUBSTRING(nickname,1,1) < \'a\' and bild != \'design/bilder/avatare/noavart.gif\' and bild != \'\'')); + } else if($letter == null){ + $auser = mysql_query('SELECT * FROM chars inner join user on chars.besitzer = user.id where bild != \'design/bilder/avatare/noavart.gif\' and bild != \'\' group by user.id order by nickname ASC LIMIT '.($begin*10).', 10'); + $total = mysql_fetch_assoc(mysql_query('SELECT count(distinct(user.id)) as anzahl FROM chars inner join user on chars.besitzer = user.id where bild != \'design/bilder/avatare/noavart.gif\' and bild != \'\'')); + } else{ + $auser = mysql_query('SELECT * FROM chars inner join user on chars.besitzer = user.id where nickname like \''.$letter.'%\' and bild != \'design/bilder/avatare/noavart.gif\' and bild != \'\' group by user.id order by nickname ASC LIMIT '.($begin*10).', 10'); + $total = mysql_fetch_assoc(mysql_query('SELECT count(distinct(user.id)) as anzahl FROM chars inner join user on chars.besitzer = user.id where nickname like \''.$letter.'%\' and bild != \'design/bilder/avatare/noavart.gif\' and bild != \'\'')); + } + $total = $total['anzahl']; + $users = array(); + while($row = mysql_fetch_assoc($auser)){ +// echo 'User: '.$row['id'].'
'; + $users[] = $row['id']; + } + + echo ''.displayPagelinksNew(10, $total, $begin, '###LABEL###').''; + $test = 'SELECT name, nickname, bild FROM chars inner join user on chars.besitzer = user.id where besitzer IN ('.join(',', $users).') and bild != \'design/bilder/avatare/noavart.gif\' and bild != \'\' group by besitzer, bild order by nickname'; + $qry = mysql_query($test); + $actual = ''; + $i = 0; + while($result = mysql_fetch_assoc($qry)){ + if($actual == '' || $result['nickname'] != $actual){ + // Fuelle die Leeren Felder aus + for(;$i<8;$i++){ + echo ''; + } + echo ''; + $actual = $result['nickname']; + echo ''; + } + echo ''; + $i++; + } + echo ''; + + } else if($view == 'SinglePic'){ + if($bildurl !== NULL && $sure == 'yes'){ + echo ''; + echo ''; + mysql_query('Update chars SET bild=\'\' where bild = \''.urldecode($bildurl).'\' '); + } else if($bildurl !== NULL){ + $colspan = ' colspan=2'; + $qry = mysql_query('SELECT name, nickname, bild FROM chars inner join user on chars.besitzer = user.id where bild=\''.urldecode($bildurl).'\''); + echo 'Wollen sie dieses Bild wirklich löschen?'; + echo ''; + echo ''; + while($row = mysql_fetch_assoc($qry)) { + echo ''; + } + echo ''; + return; + } + } + + echo 'Nach URL-Aktualisierungsdatum darstellen'; + echo 'Sortiert nach Nutzername darstellen'; + echo 'Zufallsanzeige'; + echo 'Zurueck zum Hauptmenu'; + echo '
'.$result['nickname'].''.$result['name'].'
Bild wurde zurückgesetztZurück
Betroffener UserBetroffener Char
'.$row['nickname'].''.$row['name'].'
janein
'; +} + +function displayOptions(){ + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Bilderschau +
+ FAQ bearbeiten +
+ Attacken bearbeiten +
+ Umfragen bearbeiten +
+ Items bearbeiten +
+ Clan-Räume bearbeiten +
+ Banns und andere unschöne Sachen +
+ Monster bearbeiten +
+ NPC bearbeiten +
+ Shakkys Shop Angebote bearbeiten +
+ News bearbeiten +
+ Multiuser und Cheater +
+ Log ansehen +
+ Log out +
+ + + + + + + + +
+ Leider ist diese Funktion noch nicht implementiert! +
+ Zum Hauptmenu'; ?> +
+ +
+ + + + + + + + + + + + + + + + + + + + +
+ Offene Umfragen + + +
+ Abgeschlossene Umfragen + + +
+ +
+ Erstelle neue Umfrage +
+ Zum Hauptmenu +
+
+ = 0){ + $result = mysql_fetch_assoc(mysql_query('SELECT * FROM poll WHERE pollid='.$pollid)); + $qry = mysql_query('SELECT * FROM poll_options WHERE pollid='.$pollid); + while($opts = mysql_fetch_assoc($qry)){ + $options[$opts[polloptionid]] = $opts[text]; + } + ?> +
+ + + + + + + + + + + + + + + + + + + + + + + +
Thema
Option
+ +
+ +
+ Zur Übersicht + Zum Hauptmenu +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + +
Thema
Option
+ +
+ +
+ Zur Übersicht + Zum Hauptmenu +
+
+ '; + } + } + displayPolls('display',NULL, NULL,NULL,NULL,NULL,$pollid); + } else{ + echo 'BUG!! Mal wieder!!'; + } +} + + +function displayItems($action, $task, $itemid, $itemtable, $searchstring, $s_itemtable,$page, $data){ + if(!is_numeric($page) || $page < 0){ $page = 0; } + + $error = false; + $colspan = 1; + echo '
'."\n"; + echo "\t".''."\n"; + echo "\t\t".''."\n"; + if($action == 'edit'){ + // Change or delte + echo "\t".''."\n"; + echo "\t".''."\n"; + if(is_null($itemid) || is_null($itemtable) ){ + echo "\t".''."\n"; + // Display overview + if($s_itemtable == 'item'){ + $sql = 'SELECT i.id, i.name, \'item\' as tablename FROM item i'; + } else if($s_itemtable == 'sp_item'){ + $sql = 'SELECT i.id, i.name, \'sp_item\' as tablename FROM sp_item i'; + } else if($s_itemtable == 'wochen_markt'){ + $sql = 'SELECT i.id, i.item AS name, \'wochen_markt\' as tablename FROM wochen_markt i'; + } else{ + $sql = 'SELECT i.id, i.name, \'item\' as tablename FROM item i' + . ' union' + . ' SELECT i.id, i.name, \'sp_item\' as tablename FROM sp_item i' + . ' union' + . ' SELECT i.id, i.item AS name, \'wochen_markt\' as tablename FROM wochen_markt i'; + } + $qry = mysql_query($sql.' LIMIT '.($page*20).', 20'); + // echo $sql.' LIMIT '.($page*30).', 30'; + $anzahlSeiten = ceil(mysql_num_rows(mysql_query($sql))/20); + $colspan = 3; + echo "\t\t\t".''."\n";; + $o_array = array('-Alle-', 'Markt Items', 'Schatzsuche Items', 'Auktionsitems'); + $o_tblarray = array('', 'item', 'sp_item', 'wochen_markt'); + echo "\t\t\t".''; + echo "\t\t\t".''."\n"; + + + while($row = mysql_fetch_assoc($qry)){ + echo "\t\t\t".''; + echo ''."\n"; + } + echo "\t\t\t".''."\n"; + + echo "\t\t\t".''; + } else if($task == 'change'){ + $d_array = array(); + echo "\t".''."\n"; + echo "\t".''."\n"; + echo "\t".''."\n"; + echo "\t".''."\n"; + $colspan = 2; + echo "\t\t\t".''."\n"; + if($itemtable == 'item'){ + $d_array = array('id','name','hp','mp','starke','verteidigung','speed','s_type','preis','anzahl','type','level','info'); + $desc_array = array('ID', 'Name', 'HP', 'MP', 'Bonus Stärke', 'Bonus Verteidigung', 'Bonus Geschwindigkeit', 'Art (Item, Helm, ..)', 'Preis im Markt', 'Anzahl', 'Rassen (ALL, Onepiece, Dragonball)', 'Level', 'Infotext'); + } else if($itemtable == 'sp_item'){ + $d_array = array('id','name','preis','wert','type','slot','info'); + $desc_array = array('ID', 'Name', 'Preis', 'Häufigkeit (je höher desto seltener)', '"Teufels Frucht" oder nicht', 'Slot (immer auf 0 setzen)', 'Infotext'); + } else if($itemtable == 'wochen_markt'){ + $d_array = array('id','item','starke','ver','speed','ausdauer','hp','mp','glueck','type','preis','anzahl','verteilung','aktiv','art','kategorie','info'); + $desc_array = array('ID', 'Name', 'Bonus Stärke', 'Bonus Verteidigung', 'Bonus Geschwindigkeit', 'Bonus Ausdauer', 'Bonus HP', 'Bonus MP', 'Bonus Glück', 'Typ ("Teufels Frucht")', 'Preis', 'Anzahl', 'Verteilung (0=Nicht wünschbar, Summe Verteilung sollte 100 ergeben!!)', 'Kann bei Geheimauktion auftreten', 'Art (normal, natur)', 'Kategorie (Logia, Zoan, ...)','Infotext' ); + } else{ + // Something went completely wrong!! + $error = true; + } + if(!$error){ + $sql = 'SELECT '.join(',', $d_array).' FROM '.$itemtable.' where id = '.$itemid; + $qry = mysql_query($sql); + $row = mysql_fetch_assoc($qry); + echo "\t\t".''."\n"; + for($i = 1;$i'."\n"; + } + + // Infotext + echo "\t\t\t".''."\n"; + echo "\t\t\t".''."\n"; + echo "\t\t\t".''."\n"; + } + } else if($task == 'delete'){ + echo "\t".''."\n"; + $colspan = 1; + echo "\t\t\t".''."\n"; + + if($itemtable == 'item'){ + $sql = 'SELECT i.id, i.name, \'item\' as tablename FROM item i WHERE id ='.$itemid; + } else if($itemtable == 'sp_item'){ + $sql = 'SELECT i.id, i.name, \'sp_item\' as tablename FROM sp_item i WHERE id ='.$itemid; + }else if($itemtable == 'wochen_markt'){ + $sql = 'SELECT i.id, i.item AS name, \'wochen_markt\' as tablename FROM wochen_markt i WHERE id ='.$itemid; + } else{ + // Something went completely wrong!! + $error = true; + } + if(!is_numeric($itemid)){ + $error = true; + } + + + if(!$error){ + $row = mysql_fetch_assoc(mysql_query($sql)); + echo "\t\t\t".''."\n"; + echo "\t\t\t".''."\n"; + } + } else if($task == 'dochange'){ + // d_array[0] muss name sein!! + if($itemtable == 'item'){ + $d_array = array('name','hp','mp','starke','verteidigung','speed','s_type','preis','anzahl','type','level','info'); + } else if($itemtable == 'sp_item'){ + $d_array = array('name','preis','wert','type','slot','info'); + } else if($itemtable == 'wochen_markt'){ + $d_array = array('item','starke','ver','speed','ausdauer','hp','mp','glueck','type','preis','anzahl','verteilung','aktiv','art','kategorie','info'); + } else{ + // Something went completely wrong!! + $error = true; + } + + if(!$error){ + $sql = 'UPDATE '.$itemtable.' SET '; + $row = mysql_fetch_assoc(mysql_query('Select '.$d_array[0].' from '.$itemtable.' WHERE id = '.$itemid)); + + $sql .= $d_array[0].' = \''.encodeNoHTMLWithBB($data[$d_array[0]]).'\''; + + for($i=1;$i'; + $u = mysql_query($sql); + if(mysql_affected_rows() == 0 || $u === FALSE){ + echo "\t\t\t".''; + } else{ + logaction('Ein Item wurde geändert (@'.$itemtable.', id = '.$itemid.','.encodeNoHTMLWithBB(join($data,',')).')'); + echo "\t\t\t".''; + mysql_query('UPDATE chars set frucht = \''.encodeNoHTMLWithBB($data[$d_array[0]]).'\' where frucht = \''.$row[$d_array[0]].'\''); + if($itemtable == 'wochen_markt'){ + $sql = 'Update sp_item set name = \''.encodeNoHTMLWithBB($data[$d_array[0]]).'\' where name = \''.$row[$d_array[0]].'\''; + echo $sql.'
'; + mysql_query($sql); + } else if($itemtable == 'sp_item'){ + $sql = 'Update wochen_markt set item = \''.encodeNoHTMLWithBB($data[$d_array[0]]).'\' where item = \''.$row[$d_array[0]].'\''; + echo $sql.'
'; + mysql_query($sql); + } + } + } + + displayItems($action, 'change', $itemid, $itemtable, $searchstring, $s_itemtable,$page, $data); + return; + } else if($task == 'dodelete'){ + if($itemtable == 'item'){ + $sql = 'SELECT i.id, i.name, \'item\' as tablename FROM item i WHERE id ='.$itemid; + $d_sql = 'DELETE FROM item WHERE id ='.$itemid; + $d_sql_2 = 'DELETE FROM ware WHERE item_id ='.$itemid; + } else if($itemtable == 'sp_item'){ + $sql = 'SELECT i.id, i.name, \'sp_item\' as tablename FROM sp_item i WHERE id ='.$itemid; + $d_sql = 'DELETE FROM sp_item WHERE id ='.$itemid; + $d_sql_2 = 'DELETE FROM sp_ware WHERE item ='.$itemid; + }else if($itemtable == 'wochen_markt'){ + $sql = 'SELECT i.id, i.item AS name, \'wochen_markt\' as tablename FROM wochen_markt i WHERE id ='.$itemid; + $d_sql = 'DELETE FROM wochen_markt WHERE id ='.$itemid; + $d_sql_2 = 'DELETE FROM wochen_ware WHERE item ='.$itemid; + } else{ + // Something went completely wrong!! + $error = true; + } + if(!$error){ + $row = mysql_fetch_assoc(mysql_query($sql)); + + if(mysql_query($d_sql) === FALSE || mysql_affected_rows() == 0){ + echo "\t\t\t".''; + } else if(mysql_query($d_sql_2) === FALSE){ + logaction('Ein Item wurde gelöscht (@'.$itemtable.', id = '.$itemid.','.$row['name'].')'); + echo "\t\t\t".''; + } else{ + logaction('Ein Item wurde gelöscht (@'.$itemtable.', id = '.$itemid.','.$row['name'].')'); + echo "\t\t\t".''; + } + + displayItems($action, null, null, null, $searchstring, $s_itemtable,$page,$data); + return; + } + } + echo "\t\t\t".''."\n"; + } else if($action == 'create'){ + echo "\t".''."\n"; + echo "\t".''."\n"; + + + if($task == 'docreate'){ + // Do the insert and open the edit-page :) + if($itemtable == 'item'){ + $d_array = array('name','hp','mp','starke','verteidigung','speed','s_type','preis','anzahl','type','level','info'); + } else if($itemtable == 'sp_item'){ + $d_array = array('name','preis','wert','type','slot','info'); + } else if($itemtable == 'wochen_markt'){ + $d_array = array('item','starke','ver','speed','ausdauer','hp','mp','glueck','type','preis','anzahl','verteilung','aktiv','art','kategorie','info'); + } else{ + // Something went completely wrong!! + $error = true; + } + + if(!$error){ + // We create an itemtable-wide unique id!! + $row = mysql_fetch_assoc(mysql_query('select max(max_id) + 1 as id from (select max(s.id) as max_id from sp_item s union select max(i.id) as max_id from item i union select max(w.id) as max_id from wochen_markt w) gno')); +// $row = mysql_fetch_assoc(mysql_query('SELECT max(id) +1 as id FROM '.$itemtable)); + $itemid = $row['id']; + + $sql = 'INSERT INTO '.$itemtable.' (id, '.join($d_array,', ').') values('.$itemid; + + for($i=0;$i'; + $u = mysql_query($sql); + if(mysql_affected_rows() == 0 || $u === FALSE){ + echo "\t\t\t".''; + displayItems($action, null, null, $itemtable, $searchstring, $s_itemtable,$page, $data); + } else{ + logaction('Ein Item wurde erstellt (@'.$itemtable.', id = '.$itemid.','.encodeNoHTMLWithBB(join($data,',')).')'); + echo "\t\t\t".''; + displayItems('edit', 'change', $itemid, $itemtable, $searchstring, $s_itemtable, $page, $data); + } + return; + } + } else { + $colspan = 2; + echo "\t\t\t".''."\n"; + if($itemtable == 'item'){ + $d_array = array('id','name','hp','mp','starke','verteidigung','speed','s_type','preis','anzahl','type','level','info'); + $desc_array = array('ID', 'Name', 'HP', 'MP', 'Bonus Stärke', 'Bonus Verteidigung', 'Bonus Geschwindigkeit', 'Art (Item, Helm, ..)', 'Preis im Markt', 'Anzahl', 'Rassen (ALL, Onepiece, Dragonball)', 'Level', 'Infotext'); + } else if($itemtable == 'sp_item'){ + $d_array = array('id','name','preis','wert','type','slot','info'); + $desc_array = array('ID', 'Name', 'Preis', 'Häufigkeit (je höher desto seltener)', '"Teufels Frucht" oder nicht', 'Slot (immer auf 0 setzen)', 'Infotext'); + } else if($itemtable == 'wochen_markt'){ + $d_array = array('id','item','starke','ver','speed','ausdauer','hp','mp','glueck','type','preis','anzahl','verteilung','aktiv','art','kategorie','info'); + $desc_array = array('ID', 'Name', 'Bonus Stärke', 'Bonus Verteidigung', 'Bonus Geschwindigkeit', 'Bonus Ausdauer', 'Bonus HP', 'Bonus MP', 'Bonus Glück', 'Typ ("Teufels Frucht")', 'Preis', 'Anzahl', 'Verteilung (0=Nicht wünschbar, Summe Verteilung sollte 100 ergeben!!)', 'Kann bei Geheimauktion auftreten', 'Art (normal, natur)', 'Kategorie (Logia, Zoan, ...)','Infotext' ); + } else{ + // Something went completely wrong!! + $o_array = array('Markt Items', 'Schatzsuche Items', 'Auktionsitems'); + $o_tblarray = array('item', 'sp_item', 'wochen_markt'); + echo "\t\t\t".''; + $error = true; + } + if(!$error){ + // Erstelle eine Maske (daran denken, dass die eingaben die schon gemacht wurden übernommen werden)! + echo "\t".''."\n"; + echo "\t\t".''."\n"; + for($i = 1;$i'."\n"; + } + + // Infotext + echo "\t\t\t".''."\n"; + echo "\t\t\t".''."\n"; + } + } + + // Create + echo "\t\t\t".''."\n"; + } else if($action == 'overview'){ + echo "\t".''."\n"; + + if($itemtable == 'sp_item'){ + $d_array = array('id','name','preis','wert','type','slot','info'); + $desc_array = array('ID', 'Name', 'Preis', 'Häufigkeit', 'Typ', 'Slot', 'Infotext'); + } else if($itemtable == 'wochen_markt'){ + $d_array = array('id','item','starke','ver','speed','ausdauer','hp','mp','glueck','type','preis','anzahl','verteilung','aktiv','art','kategorie','info'); + $desc_array = array('ID', 'Name', 'Bonus Stärke', 'Bonus Verteidigung', 'Bonus Geschwindigkeit', 'Bonus Ausdauer', 'Bonus HP', 'Bonus MP', 'Bonus Glück', 'Typ ("Teufels Frucht")', 'Preis', 'Anzahl', 'Verteilung (0=Nicht wünschbar, Summe Verteilung sollte 100 ergeben!!)', 'Kann bei Geheimauktion auftreten', 'Art (normal, natur)', 'Kategorie (Logia, Zoan, ...)','Infotext' ); + } else { + $itemtable = 'item'; + $d_array = array('id','name','hp','mp','starke','verteidigung','speed','s_type','preis','anzahl','type','level','info'); + $desc_array = array('ID', 'Name', 'HP', 'MP', 'Stärke', 'Verteidigung', 'Geschwindigkeit', 'Art', 'Preis', 'Anzahl', 'Rassen', 'Level', 'Infotext'); + } + + $colspan = count($d_array); + + echo "\t\t\t".''."\n"; + $o_array = array('Markt Items', 'Schatzsuche Items', 'Auktionsitems'); + $o_tblarray = array('item', 'sp_item', 'wochen_markt'); + echo "\t\t\t".''; + echo "\t\t\t".''."\n"; + + // We do not want to display the ID and the Info + echo "\t\t\t".''; + for($i=1;$i'.$desc_array[$i].''; + } + echo ''; + echo ''; + + + $sql = 'SELECT '.join($d_array,',').' FROM '.$itemtable; + $qry = mysql_query($sql); + while($row = mysql_fetch_assoc($qry)){ + echo "\t\t\t".''; + for($i=1;$i'.$row[$d_array[$i]].''; + } + echo ''; + echo ''; + } + echo "\t\t\t".''."\n"; + } else { + echo "\t\t\t".''."\n"; + echo "\t\t\t".''."\n"; + echo "\t\t\t".''."\n"; + } + echo "\t\t\t".''."\n"; + echo "\t\t".'

Bearbeiten

Suche eingrenzen:

'.$row['name'].'EditDelete

'.displayPagelinks($page, $anzahlSeiten , '###LABEL###').'

Editieren

'.$desc_array[0].''.$row[$d_array[0]].'
'.$desc_array[$i].'
'.$desc_array[$i].'
Zurück zur Übersicht

Löschen

Soll Item "'.$row['name'].'" wirklich gelöscht werden?
ja, nein, vielleicht
Fehler! Änderungen konnten nicht übernommen werden!
Änderungen wurden übernommen!
Item "'.$row['name'].'" konnte nicht gelöscht werden!
Item "'.$row['name'].'" wurde zwar gelöscht, bei der Warentabelle ist jedoch ein Fehler aufgetreten!
Item "'.$row['name'].'" wurde erfolgreich gelöscht!
Zum Itemsmenü
Fehler! Konnte Item nicht erstellen!
Item wurde erstellt!

Erstellen

'.$desc_array[0].''.$data[$d_array[0]].'
'.$desc_array[$i].'
'.$desc_array[$i].'
Zum Itemsmenü

Ãœbersicht


Aktion
'; + echo 'Edit, '; + echo 'Delete'; + echo '
Zum Itemsmenü
Ãœbersicht
Bearbeiten
Erstellen
Zum Hauptmenu
'."\n"; + echo '
'."\n"; + +} + +function displayBannOptions($action, $username,$opfer,$gamebann,$shoutbann,$forenbann,$anonid){ + + if($action == '' or $action == NULL){ + ?> +
+ + + + + + + + + + + + + + + + + + + + +
+ User auswählen +
+ Username + + +
+ Anonid (nur die Zahlen!) + + +
+ +
+ Zur Übersicht
+ Zum Hauptmenu +
+
+ + + + + + + + +
+ anon_ wurde im Chat gebannt! +
+ Zur Übersicht + Zum Hauptmenu +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Userstatus bearbeiten +
+ Username + + +
Account + Account sperren
+ Account entsperren
+
Shoutbox + Shoutbox mute
+ Shoutbox demute
+
Forum + Forenaccout sperren
+ Forenaccount entsperren
+
+ +
+ Zur Übersicht + Zum Hauptmenu +
+
+ + + + + + + + + +
+ Änderungen übernommen! +
+ Zur Übersicht + Zum Hauptmenu +
+ '."\n"; + echo "\t".''."\n"; + echo "\t".''."\n"; + if($action == 'edit'){ + $d_array = array('charakter', 'name', 'zeit_rec', 'lvlmin', 'lvlmax'); + $desc_array = array('ID', 'Name', 'Kampfdauer in Sekunden', 'Min-Level', 'Max-Level'); + + $sql = 'SELECT * FROM chars c inner join npc_item ni on ni.charakter = c.id inner join kampf_list kl on ni.charakter = kl.charakter WHERE c.id ='.$charid; + $qry = mysql_query($sql); + $row = mysql_fetch_assoc($qry); + $colspan = 2; + echo "\t".''."\n"; + + echo "\t\t".''."\n"; + for($i = 1;$i'."\n"; + } + + echo "\t".''."\n"; + } else if($action == 'create'){ + $colspan = 1; + echo "\t".''."\n";; + + echo "\t".''."\n"; + } else if($action == 'delete'){ + $colspan = 1; + + $sql = 'SELECT * FROM chars WHERE id = '.$charid; + $qry = mysql_query($sql); + $row = mysql_fetch_assoc($qry); + echo "\t".''."\n";; + if(is_null($task)){ + echo "\t".''."\n";; + echo "\t".''."\n"; + } else { + $sql = 'DELETE c,ni,kl,l FROM chars c inner join npc_item ni on ni.charakter = c.id inner join kampf_list kl on ni.charakter = kl.charakter inner join lernen l on l.besitzer = c.id where c.id = '.$charid; +// echo $sql.'
'; + $qry = mysql_query($sql); + if($qry === FALSE || mysql_affected_rows() <= 0){ + echo "\t".''."\n";; + } else { + echo "\t".''."\n";; + } + // SELECT * FROM chars c inner join npc_item ni on ni.charakter = c.id inner join kampf_list kl on ni.charakter = kl.charakter + } + echo "\t".''."\n"; + } else{ + $d_array = array('id', 'name', 'level'); + $desc_array = array('id', 'Name', 'Level'); + + $sql = 'SELECT '.join($d_array,',').' from chars where rasse = \'NPC\' ORDER BY level'; + $qry = mysql_query($sql.' LIMIT '.($page*20).', 20'); + $anzahlSeiten = ceil(mysql_num_rows(mysql_query($sql))/20); + $colspan = count($d_array); + echo "\t".''."\n";; + echo "\t".''."\n"; + for($i=1;$i'.$desc_array[$i].''."\n"; + } + echo "\t\t".''."\n"; + echo "\t".''."\n"; + + echo "\t".''."\n"; + + while($row = mysql_fetch_assoc($qry)){ + echo "\t".''."\n"; + for($i=1;$i'.$row[$d_array[$i]].''."\n"; + } + + echo "\t\t".''."\n"; + echo "\t".''."\n"; + + } + + echo "\t".''."\n"; + echo "\t".''."\n"; + } + echo "\t".''."\n"; + echo "\t".'

NPC bearbeiten

'.$desc_array[0].''.$row[$d_array[0]].'
'.$desc_array[$i].'
NPC Ãœbersicht

NPC erstellen

NPC Ãœbersicht

NPC löschen

Soll der NPC '.$row['name'].' wirklich gelöscht werden
ja, nein, vielleicht
Der NPC '.$row['name'].' konnte nicht gelöscht werden!
Der NPC '.$row['name'].' wurde gelöscht!
NPC Ãœbersicht

Ãœbersicht

Bearbeiten

'."\n"; + + // Echo the delete and the edit button :) + echo "\t\t\t".'Edit, '."\n"; + echo "\t\t\t".'Delete'."\n"; + + echo "\t\t".'
Create a new NPC

Zum Hauptmenu
'."\n"; + echo ''."\n"; + +} + + +function displayQuestNPC($action, $name, $starke, $speed, $verteidigung, $ausdauer, $hp, $mp, $level, $orte,$id, $anzahl, $confirm, $glueck){ + if($action != 'delete' && $action != 'change' && $action != 'create'){ + $sql = 'SELECT id , name FROM `quest_monster` order by name asc'; + $result = mysql_query($sql); + ?> + + + + + + + + + + + + + + + + + + +
+ Neues Monster erstellen!! +
NameAktion
ändernlöschen
+ Zum Hauptmenu +
+ '; + echo 'Löschen!!
'; + } else{ + $sql = 'DELETE FROM `quest_monster` where id = '.$id; + $result = mysql_query($sql); + logaction('Das Monster mit der ID '.$id.' wurde geloescht!!'); + echo 'Das Monster mit der ID '.$id.' wurde gelöscht
'; + } + ?> + Zur Übersicht
+ Zum Hauptmenu
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name:
Starke:
Speed:
Verteidigung:
Ausdauer:
Glück:
HP:
MP:
Anzahl:
Exp:
Level:
Orte:
'; + } else { + echo $orte_array[$i]['stadt'].':
'; + } + } + + ?>
+ +
+ Zur Übersicht
+ Zum Hauptmenu
+
+
+ "; + ?> + Zur Übersicht
+ Zum Hauptmenu
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name:
Starke:
Speed:
Verteidigung:
Ausdauer:
HP:
MP:
Anzahl:
Level:
Orte:
'; + } + + ?>
+ +
+ Zur Übersicht
+ Zum Hauptmenu
+
+
+ ',''); + if($action == 'confirm'){ + $header = urldecode($header); + $body = urldecode($body); + updateEntry($faqentry,$parent,$header,$body); + logaction('Faqeintrag '.$faqentry.' angepasst!'); + echo 'Änderungen gespeichert!'; + displayFaq('edit', $faqentry,$parent,$header,$body,null); + } else if($action == 'insert'){ + $header = urldecode($header); + $body = urldecode($body); + insertFaqEntry($parent, $header, $body); + logaction('Faqeintrag bei '.$parent.' hinzugefuegt!'); + echo 'Datensatz eingefügt!'; + displayFaq(null, null,null,null,null,null); + } else if($action == 'moveup'){ + moveUp($child); + logaction('Faqeintrag '.$child.' verschoben!'); + displayFaq('edit', $faqentry,null,null,null,null); + } else if($action == 'movedown'){ + moveDown($child); + logaction('Faqeintrag '.$child.' verschoben!'); + displayFaq('edit', $faqentry,null,null,null,null); + } else if($action == 'create'){ + ?> +
+ + + + + + + + + + + + + + + + + + + + + + + + +
FAQ Bearbeitung
+ Vaterknoten + + +
+ Titel + + +
+ Text + + +
+ +
+ Zur Übersicht
+ Zum Hauptmenu
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FAQ Bearbeitung
+ Vaterknoten + + +
+ Titel + + +
+ Text + + +
+ +
+hoch down
'; + } +?> +
+ Zur Übersicht
+ Zum Hauptmenu
+
+
+ +
+ + + + + + + + + + + + + + + +
FAQ Bearbeitung
+ +
+ +
+ Neuen Eintrag erstellen
+ Zum Hauptmenu
+
+
+ + + + + + + + + + + + + + + + + +
Attacken
+ Attacke erstellen +
+ Attacke editieren +
+ Attacke löschen +
+ Zum Hauptmenu
+
+ +
+ + + + + + + + + + + + + +
Attacke suchen
+ + + +
+ Zum Hauptmenu
+
+
+ +
+ + + '; }?> + + + + + + + + + + + +
Attacke auswählen
+ + + +
+ Zum Hauptmenu
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Attacke
+ ID: + + +
+ Name: + + '> +
+ Stärke: + + +
+ Verteidigung: + + +
+ Speed: + + +
+ HP: + + +
+ MP: + + +
+ Rassen: + + +
+ Level: + + +
+ Geld: + + +
+ Type: + + '> +
+ Info: + + '> +
+ Required Attacks: + + +
+ Required Level: + + +
+ Frucht: + + +
+ Runden: + + +
+ Maxlvl: + + '> +
+ +
+ Zum Hauptmenu
+
+
+ '; + mysql_query($sql); + logaction('Attacke '.$attackname.' wurde erstellt!'); + ?>Attacke sollte nun erstellt sein!!
Zum Hauptmenu
= 1){ + if($depth == 4){ + $sql = 'Delete from attacken where id = '.$attackid; +// echo 'Debugnachricht: '.$sql.'
'; + mysql_query($sql); + mysql_query('Delete from lernen where at_id = '.$attackid); + logaction('Attacke mit id = '.$attackid.' wurde geloescht!'); + + } else{ + for($i=0;$i<$depth;$i++){ + $wirklich .= 'wirklich '; + } + ?>Sind sie sich sicher?? ja
Zum Hauptmenu
'; + mysql_query($sql); + logaction('Attacke mit dem jetzigen Namen '.$attackname.' wurde editiert!'); + + ?>Zum Attackenmenü, Zum Hauptmenu
0){ + logaction('News '.$header.' wurde erstellt!'); + echo 'news erfolgreich erstellt!
'; + } else { + echo 'news erstellen fehlgeschlagen!
'; + } + } + } else if($action == 'edit' && $header !== NULL){ + $header = addslashes($header); + $value = urldecode($value); + $value = encodeNoHTMLWithBB($value); + $sql = 'UPDATE ff11_news set betreff = \''.$header.'\', text = \''.$value.'\' where id ='.$newsid; + echo $sql.'
'; + mysql_query($sql); + if(mysql_affected_rows() > 0){ + logaction('News '.$header.' wurde editiert!'); + echo 'news erfolgreich editiert!
'; + } else { + echo 'news editieren fehlgeschlagen!
'; + } + } + if($action == 'create' || ($action == 'edit' && $newsid !== NULL)){ + if($action == 'create'){ + $topic = 'Neuen Newseintrag erstellen'; + $buttonval = 'erstellen'; + } else{ + $topic = 'Newseintrag editieren'; + $row = mysql_fetch_assoc(mysql_query('Select * from ff11_news where id = '.$newsid)); + $header = debbcode($row['betreff']); + $value = debbcode($row['text']); + $buttonval = 'editieren'; + } + ?> +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ Überschrift: +
+ +
+ Text: +
+ +
+ +
+ Zum Hauptmenu +
+
+ + + + + + + + + + + + + + + + +
News bearbeiten (Auswahl)
+ +
+ Zum Newsmenu +
+ Zum Hauptmenu +
+ + + + + + + + + + + + + + +
News bearbeiten
+ Newseintrag erstellen +
+ Newseintrag editieren +
+ Zum Hauptmenu +
+ + + + + + + '; + } + ?> + + + + + + +
Clanräume bearbeiten
NameStärkeVerteidigungGlückAusdauerGeschwindigkeitKaufpreisMieteNutzungsgebührTPbearbeiten
'.$res['name'].''.$res['staerke'].''.$res['verteidigung'].''.$res['glueck'].''.$res['ausdauer'].''.$res['geschwindigkeit'].''.$res['preis'].''.$res['miete'].''.$res['nutzung'].''.$res['tp'].'edit | delete
+ Raum erstellen +
+ Zum Hauptmenu +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Clanräume
Name
Stärke
Verteidigung
Glück
Ausdauer
Geschwindigkeit
Kaufpreis
Miete
Nutzungsgebühr
Trainingspunkte
Info
+ Zur Übersicht +
+ Zum Hauptmenu +
+
+ + + + + + + + + + + + + + + + + +
+ Der Raum "" wurde gelöscht +
+ Den Raum "" wirklich löschen? Löschen bestätigen! +
+ Zur Übersicht +
+ Zum Hauptmenu +
+ +
+ + + + + + + + + + + + + + +
Multiuser und Cheater
Zugriffe
Denkwürdige Trades
+ Zum Hauptmenu +
+
+ +
+ + + + + + + + + + + + + + + + + + + +
Zugriffe
+ Von: + + Bis: + + +
+ + + = \''.$low.' 00:00:00\' and occured <= \''.$high.' 23:59:59\' group by u1i, u2i order by anzahl'); + while($row = mysql_fetch_assoc($cheater_qry)){ + echo ''; + } + ?> +
User1User2AnzahlAction
'.$row['u1n'].''.$row['u2n'].''.$row['anzahl'].'Nachweis | Verwarnen | Bannen
+
+ Multiuser und Cheatermenü +
+ Zum Hauptmenu +
+
+ + +
+ + + + + + + + + + + + + + + + + + + +
Trades die durch den Auto-Check gefallen sind
+ Von: + + Bis: + + +
+ + + = \''.$low.' 00:00:00\' and deadline <= \''.$high.' 23:59:59\''; + $cheater_qry = mysql_query($sql); + while($row = mysql_fetch_assoc($cheater_qry)){ + $name = $row['i_name']!=null?$row['i_name']:($row['w_name']!=null?$row['w_name']:$row['s_name']); + $cheatv = $row['cheatingverdacht']==0?'OK':'WARNUNG'; + echo ''; + } + ?> +
VerkäuferKäuferItemBetragAnzahlDatumAuto-CheckAction
'.$row['u1n'].''.$row['u2n'].''.$name.''.$row['betrag'].''.$row['anzahl'].''.$row['deadline'].''.$cheatv.'Nachweis | Rückgängig | OK | Verwarnen | Bannen
+
+ Multiuser und Cheatermenü +
+ Zum Hauptmenu +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Zugriffe
+ Von: + + Bis: + + +
+ + + = \''.$$low.' 0:00:00\' and occured <= \''.$high.' 23:59:59\' order by occured desc'; + $cheater_qry = mysql_query($sql); + while($row = mysql_fetch_assoc($cheater_qry)){ + echo ''; + } + ?> +
User1User2DatumArtAction
'.$row['u1n'].''.$row['u2n'].''.$row['occured'].''.$row['type'].'Verwarnen | Bannen
+
Trades
+ + + = \''.$low.' 00:00:00\' and deadline <= \''.$high.' 23:59:59\''; +// echo $sql.'
'; + $cheater_qry = mysql_query($sql); + while($row = mysql_fetch_assoc($cheater_qry)){ + $name = $row['i_name']!=null?$row['i_name']:($row['w_name']!=null?$row['w_name']:$row['s_name']); + $cheatv = $row['cheatingverdacht']==0?'OK':'WARNUNG'; + echo ''; + } + ?> +
VerkäuferKäuferItemBetragAnzahlDatumAuto-CheckAction
'.$row['u1n'].''.$row['u2n'].''.$name.''.$row['betrag'].''.$row['anzahl'].''.$row['deadline'].''.$cheatv.'
+
+ +
+ Multiuser und Cheatermenü +
+ Zum Hauptmenu +
+
+ weiter'); + mysql_query('INSERT INTO nachricht(betreff, von, datum, text, besitzer) values(\'Verwarnung\', \'AG-Team\', now(), \'Es kam zwischen den Accounts '.join(' und ',$users).' zu Überschneidungen, wir bitten euch dies zu unterlassen, da wir uns sonst gezwungen sehen diese Aktivitäten zu bestrafen!\', '.$user1.')'); + mysql_query('INSERT INTO nachricht(betreff, von, datum, text, besitzer) values(\'Verwarnung\', \'AG-Team\', now(), \'Es kam zwischen den Accounts '.join(' und ',$users).' zu Überschneidungen, wir bitten euch dies zu unterlassen, da wir uns sonst gezwungen sehen diese Aktivitäten zu bestrafen!\', '.$user2.')'); + logaction('Die User '.join(' und ',$users).' wurden verwarnt!'); + } else{ + $qry = mysql_query('select id, nickname from user where id in ('.$user1.', '.$user2.')'); + while($row = mysql_fetch_assoc($qry)){ + $users[] = $row['nickname']; + } + displayErrorMessage('Verwarnen', 'Sollen die User '.join(' und ',$users).' wirklich verwarnt werden?', 'weiter | '.displayHistoryBackLink()); + } + } else if($action == 'ban'){ + // Bannt zwei Accounts + if($verify == 1){ + $qry = mysql_query('select id, nickname from user where id in ('.$user1.', '.$user2.')'); + while($row = mysql_fetch_assoc($qry)){ + $users[] = $row['nickname']; + } + displayErrorMessage('Bann vollzogen!', 'Die User '.join(' und ',$users).' sind nun verwarnt!', 'weiter'); + mysql_query('INSERT INTO nachricht(betreff, von, datum, text, besitzer) values(\'Bann\', \'AG-Team\', now(), \'Es kam zwischen den Accounts '.join(' und ',$users).' zu Überschneidungen. Deswegen sahen wir uns gezwungen diese Aktivitäten zu bestrafen!\', '.$user1.')'); + mysql_query('INSERT INTO nachricht(betreff, von, datum, text, besitzer) values(\'Bann\', \'AG-Team\', now(), \'Es kam zwischen den Accounts '.join(' und ',$users).' zu Überschneidungen. Deswegen sahen wir uns gezwungen diese Aktivitäten zu bestrafen!\', '.$user2.')'); + mysql_query('Update user set bann = \'ja\' where id IN('.$user1.', '.$user2.')'); + logaction('Die User '.join(' und ',$users).' wurden gebannt!'); + } else{ + $qry = mysql_query('select id, nickname from user where id in ('.$user1.', '.$user2.')'); + while($row = mysql_fetch_assoc($qry)){ + $users[] = $row['nickname']; + } + displayErrorMessage('Bannen', 'Sollen die User '.join(' und ',$users).' wirklich gebannt werden?', 'weiter | '.displayHistoryBackLink()); + } + } else if($action == 'undo'){ + // Macht eine Auktion rückgängig + displayErrorMessage(NULL, 'not yet implemented', displayHistoryBackLink()); + } else if($action == 'markok'){ + if($verify == 1){ + $trade = mysql_fetch_assoc(mysql_query('SELECT u1.nickname as u1n, u1.id as u1i, u2.nickname u2n, u2.id u2i, at.anzahl, betrag, deadline, cheatingverdacht, it.name as i_name, si.name as s_name, wm.item as w_name, itemid, tablename FROM auktion_transaktionen at left join sp_item si on tablename = \'sp_ware\' and itemid = si.id left join item as it on tablename = \'ware\' and itemid = it.id left join wochen_markt as wm on tablename = \'wochen_ware\' and itemid = wm.id left join user as u1 on at.anbieter = u1.id left join user as u2 on at.bieter = u2.id where transaktionsid = '.$tradeid)); + displayErrorMessage('Trade validiert!', 'Der Handel zwischen '.$trade['u1n'].' und '.$trade['u2n'].' ist nun als \'Ok\' markiert!', 'weiter'); + logaction('Der Handel zwischen '.$trade['u1n'].' und '.$trade['u2n'].' wurde als \'Ok\' markiert (Tradeid = '.$tradeid.')!'); + mysql_query('Update auktion_transaktionen set cheatingverdacht = 0 where transaktionsid = '.$tradeid); + } else{ + $trade = mysql_fetch_assoc(mysql_query('SELECT u1.nickname as u1n, u1.id as u1i, u2.nickname u2n, u2.id u2i, at.anzahl, betrag, deadline, cheatingverdacht, it.name as i_name, si.name as s_name, wm.item as w_name, itemid, tablename FROM auktion_transaktionen at left join sp_item si on tablename = \'sp_ware\' and itemid = si.id left join item as it on tablename = \'ware\' and itemid = it.id left join wochen_markt as wm on tablename = \'wochen_ware\' and itemid = wm.id left join user as u1 on at.anbieter = u1.id left join user as u2 on at.bieter = u2.id where transaktionsid = '.$tradeid)); + displayErrorMessage('Trade validieren!', 'Sollen der Handel zwischen '.$trade['u1n'].' und '.$trade['u2n'].' als \'Ok\' markiert werden?', 'weiter | '.displayHistoryBackLink()); + } + } + // TODO: Action um IP-Sharing zu erlauben! -> tabelle (duerfen keine miesen trades und fights mehr machen) + // TODO: Erlaubte IP-Sharer muessen markiert werden + // TODO: Verwarnte und Gebannte User muessen markiert werden! +} + +function displayShop($action, $s_id, $info, $s_name, $s2_name, $s3_name, $s_typ, $preis, $frei, $anzahl){ + if($action == ''){ + $shop_qry = mysql_query('SELECT * FROM shop order by preis'); + ?> + + + + + + + + + + '; + } + ?> + + + +
Shop Angebote Ãœbersicht +
+ Angebot erstellen +
NameIDArtPreisFreischaltenAnzahlbearbeiten
'.$res['item'].''.$res['id'].''.$res['datensatz'].''.$res['preis'].''.$res['preis_req'].''.$res['mal'].' + edit|delete
+ Zum Hauptmenu +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Angebot +
Rezept ID
Name
Tpy + +
Bei SS Items + + +
Bei Markt Items + + +
Teufelsfrüchte + + +
Preis
Freischaltgrenze
Anzahl
Kommentar
+ Zur Übersicht +
+ Zum Hauptmenu +
+
+ + + + + + + + + + + + + + + + + +
+ Das Angebot für"" wurde gelöscht +
+ Das Angebot "" wirklich löschen? Löschen bestätigen! +
+ Zur Übersicht +
+ Zum Hauptmenu +
+ '; + displayLogin(); + } +} else{ + // Einloggen + displayLogin(); +} + +?> \ No newline at end of file diff --git a/ag/gm/log.php b/ag/gm/log.php new file mode 100644 index 0000000..0d55652 --- /dev/null +++ b/ag/gm/log.php @@ -0,0 +1,42 @@ +'.$resultstring; + } + return $resultstring; +} + +echo getChatMessages(); + +//$test = "Dies ist eine [b]beliebige[/b] Nachricht mit einem auktionslink [a]testlink.html[/a]"; +//echo decodeMessage($test).'
'; + +//$test = 'Test'; +//echo encodeMessage($test).'
'; + +?> + diff --git a/ag/h_turnier.php b/ag/h_turnier.php new file mode 100644 index 0000000..ed65055 --- /dev/null +++ b/ag/h_turnier.php @@ -0,0 +1,141 @@ +###LABEL###'; + +$expl = explode(",",$online_h['turnier']); +$exp2 = explode(",",$online_h['turnier_klein']); +$exp3 = explode(",",$online_h['turnier_gross']); +$exp4 = explode(',',$online_h['liga']); + +?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Halle der Helden aus Runde
Welt Turnier History
TurnierSiegerTrainier
Wochen Turnier History
TurnierSiegerTrainier
Anfänger Turnier History
TurnierSiegerTrainier
Liga History
SaisonSiegerTrainier
+ + +
+
diff --git a/ag/halloffame.php b/ag/halloffame.php new file mode 100644 index 0000000..5507791 --- /dev/null +++ b/ag/halloffame.php @@ -0,0 +1,82 @@ +###LABEL###'; + +if(!is_numeric($page) || $page < 1){ + $page = 0; +} else if($page > $maxpages){ + $page = $maxpages; +} + + +// Determine the importance of the Highscores (the less occurece, the more important) +$qry = mysql_query('Select count(*) as anzahl, art from highscore where runde = '.($maxpages-$page).' group by art order by anzahl,art asc'); +while($row = mysql_fetch_assoc($qry)){ + $events[] = $row; +} + +$qry = mysql_query('Select * from highscore where runde = '.($maxpages-$page).' order by art, datum'); + + +echo ''."\n"; +echo ''."\n"; +echo ' '."\n"; +echo ''."\n"; + +// Now generate the strings +while($row = mysql_fetch_assoc($qry)){ + if($old != $row['art']){ + $eventhighscore[$row['art']] .= ''."\n"; + $eventhighscore[$row['art']] .= ' '."\n"; + $eventhighscore[$row['art']] .= ''."\n"; + $eventhighscore[$row['art']] .= ''."\n"; + $eventhighscore[$row['art']] .= ' '."\n"; + $eventhighscore[$row['art']] .= ' '."\n"; + $eventhighscore[$row['art']] .= ' '."\n"; + $eventhighscore[$row['art']] .= ''."\n"; + $old = $row['art']; + } + + $eventhighscore[$row['art']] .= ''."\n"; + $eventhighscore[$row['art']] .= ' '."\n"; + if(!is_null($row['charid'])){ + $eventhighscore[$row['art']] .= ' '."\n"; + } else { + $eventhighscore[$row['art']] .= ' '."\n"; + } + if(!is_null($row['userid'])){ + $eventhighscore[$row['art']] .= ' '."\n"; + } else{ + $eventhighscore[$row['art']] .= ' '."\n"; + } + $eventhighscore[$row['art']] .= ''."\n"; +} + +// Now echo the stuff!! +for($i=0;$i'."\n"; +echo ' '."\n"; +echo ''."\n"; + +echo '
Halle der Helden aus Runde '.($maxpages - $page).'
'.$row['art'].'
DatumSiegerTrainer
'.$row['datum'].''.displayCharLink($row['charid'], $row['charname']).''.$row['charname'].''.displayUserLink($row['userid'], $row['username']).''.$row['username'].'
'."\n"; +echo ' '."\n"; +echo displayPagelinks($page, $maxpages, $url); +echo '
'."\n"; +echo '
'."\n"; diff --git a/ag/img.php b/ag/img.php new file mode 100644 index 0000000..2ee9196 --- /dev/null +++ b/ag/img.php @@ -0,0 +1,18 @@ + diff --git a/ag/impressum.php b/ag/impressum.php new file mode 100644 index 0000000..f6dde15 --- /dev/null +++ b/ag/impressum.php @@ -0,0 +1,46 @@ + + + + + + +
+ + + + + + + + +
Anschrift

+
+


+
+

+ Kontakt


+ Email:
+ Internet: +

 

Externe Links:
Der Inhaber übernimmt keine Haftung für externe Links.
+ + \ No newline at end of file diff --git a/ag/inclu/awards.inc.php b/ag/inclu/awards.inc.php new file mode 100644 index 0000000..d8260fa --- /dev/null +++ b/ag/inclu/awards.inc.php @@ -0,0 +1,11 @@ +'."\n", $awards); +?> \ No newline at end of file diff --git a/ag/inclu/char.php b/ag/inclu/char.php new file mode 100644 index 0000000..6969462 --- /dev/null +++ b/ag/inclu/char.php @@ -0,0 +1,211 @@ +Fusionsrasse: ".$my_charz['fusion_rasse']; + } else{ + $fusi = ""; + } + if($my_charz['type']=="Onepiece"){ + $frucht = "
Teufelsfrucht: ".str_replace('"','\\\'',$my_charz['frucht']); + } else{ + $frucht = ""; + } + $hptemp = explode(",", $my_charz['hp']); + $hpleft[$char_zahl] = $hptemp['0'] / $hptemp['1'] * 100; + $mptemp = explode(",", $my_charz['mp']); + $mpleft[$char_zahl] = $mptemp['0'] / $mptemp['1'] * 100; + $exptemp = explode(",", $my_charz['exp']); + $room = mysql_query('SELECT ci.name FROM clan_item ci inner join clan_ware cw on ci.id = cw.item_id WHERE cw.id='.$my_charz['clan_train']); + $clanroom=mysql_fetch_assoc($room); + + if($clanroom['name']=="") + $clanroom['name']="kein"; + + $temproom="
Trainingsraum: ".$clanroom['name'].""; + + $hp = "HP: ".$hptemp['0']." / ".$hptemp['1']; + if($my_charz['status'] == "Schatz Suche"){ + $statustemp = "Schatz%20Suche"; + } else{ + $statustemp = $my_charz['status']; + } + + if($my_charz['kampf_item'] != NULL && $my_charz['kampf_item'] != ',,,,'){ + // echo 'Problematic Entry = '.$chara_1['kampf_item'].'
'; + $char1_buffs = mysql_fetch_assoc(mysql_query('SELECT sum(i.hp) as hp, sum(i.mp) as mp, sum(i.starke) as starke, sum(i.verteidigung) as verteidigung, sum(i.speed) as speed FROM ware w LEFT JOIN item i ON(i.id=w.item_id) WHERE w.id IN (' . $my_charz['kampf_item'] . ')')); + } + $c_starke = $char1_buffs['starke']==0?$my_charz['starke']:($my_charz['starke']).' (+'.$char1_buffs['starke'].')'; + $c_verteidigung = $char1_buffs['verteidigung']==0?$my_charz['verteidigung']:($my_charz['verteidigung']).' (+'.$char1_buffs['verteidigung'].')'; + $c_speed = $char1_buffs['speed']==0?$my_charz['speed']:($my_charz['speed']).' (+'.$char1_buffs['speed'].')'; + $c_ausdauer = $char1_buffs['ausdauer']==0?$my_charz['ausdauer']:($my_charz['ausdauer']).' (+'.$char1_buffs['ausdauer'].')'; + $c_glueck = $char1_buffs['glueck']==0?$my_charz['glueck']:($my_charz['glueck']).' (+'.$char1_buffs['glueck'].')'; + + $mp = "MP: ".$mptemp['0']." / ".$mptemp['1']; + $exp = "Exp: ".$exptemp['0']." / ".$exptemp['1']; + if($my_charz['status'] == 'Frei' ){ + $temp = 'Status: '.$my_charz['status']; + $quicklink = "
Auf Schatzsuche schicken
Attacken einstellen"; + } else if($my_charz['status'] == 'Turnier' OR $my_charz['status'] == 'Kampf Erstellt'){ + $temp = 'Status: '.$my_charz['status']; + $quicklink = ''; + } else{ + $temp = "Status: ".$my_charz['status'].""; + $quicklink = ''; + } + $werte = "Stärke: ".$c_starke."
Verteidigung: ".$c_verteidigung."
Geschwindigkeit: ".$c_speed."
Ausdauer: ".$c_ausdauer."
Glück: ".$c_glueck; + $lp = "
Lernpunkte: ".$my_charz['lernpunkte'].""; + $tp = "Trainingspunkte: ".$my_charz['training_points']."".$temproom; + + //$temp = $statustemp.""; + $temp2 = "Level: ".$my_charz['level']."
Powerlevel: $POWERLEVEL5
Typ: ".$my_charz['type']."
Rasse: ".$my_charz['rasse'].$fusi.$frucht.$lp."
$tp

$hp
$mp
$exp

$werte"; + + $popup[$char_zahl] = ''; + $chars_bilds[] = $my_charz['bild']; + $chars_names[] = $my_charz['name']; + $char_zahl++; + } + $visiblechars = 8; + + for($i=$char_zahl;$i<$visiblechars;$i++){ + $CHARAKTER_NAME[$i] = "Kein Charakter"; + $CHARAKTER_VERWALTUNG[$i] = "none"; + $CHARAKTER_LERNPUNKTE[$i] = "none"; + $CHARAKTER_TRAINING[$i] = "none"; + $CHARAKTER_STATUS[$i] = "none"; + $CHARAKTER_SCHATZ[$i] = "none"; + } + +for($i=0;$i<$visiblechars;$i++){ + if($chars_bilds[$i] == null) { + $chars_bilds[$i] = 'design/bilder/avatare/Char.gif'; + } +} + +// Zeige einen vertikalen Werbebanner an +echo getHorizontalAdvertisement(); +?> + +
+
+ + + + '; + echo $popup[$i].$chars_names[$i].''; + } + } + ?> + + + +

'; + echo $popup[$i].''; + } + } + echo '

'; + for($i=0;$i<=3;$i++) + { + if($chars_bilds[$i]!='design/bilder/avatare/Char.gif') + { + echo ''; + } + } + echo ''; + for($i=0;$i<=3;$i++) + { + if($chars_bilds[$i]!='design/bilder/avatare/Char.gif') + { + echo ''; + } + } + +?> +
'; + if($hpleft[$i] > 1) + echo ''; + if($hpleft[$i] < 100) + echo ''; + echo '
'; + if($mpleft[$i] > 1) + echo ''; + if($mpleft[$i] < 100) + echo ''; + echo '
+


+ + + + '; + echo $popup[$i].$chars_names[$i].''; + } + } + ?> + + + '; + echo $popup[$i].''; + } + } + echo ''; + for($i=4;$i<=7;$i++) + { + if($chars_bilds[$i]!='design/bilder/avatare/Char.gif') + { + echo ''; + } + } + echo ''; + for($i=4;$i<=7;$i++) + { + if($chars_bilds[$i]!='design/bilder/avatare/Char.gif') + { + echo ''; + } + } + +?> + +
'; + if($hpleft[$i] > 1) + echo ''; + if($hpleft[$i] < 100) + echo ''; + echo '
'; + if($mpleft[$i] > 1) + echo ''; + if($mpleft[$i] < 100) + echo ''; + echo '
diff --git a/ag/inclu/partner.inc.php b/ag/inclu/partner.inc.php new file mode 100644 index 0000000..9afc7d2 --- /dev/null +++ b/ag/inclu/partner.inc.php @@ -0,0 +1,11 @@ +'."\n", $partner); +?> \ No newline at end of file diff --git a/ag/inclu/toplists.inc.php b/ag/inclu/toplists.inc.php new file mode 100644 index 0000000..8dc51d3 --- /dev/null +++ b/ag/inclu/toplists.inc.php @@ -0,0 +1,17 @@ + +
+ diff --git a/ag/inclu/user-controll.php b/ag/inclu/user-controll.php new file mode 100644 index 0000000..7c90c5b --- /dev/null +++ b/ag/inclu/user-controll.php @@ -0,0 +1,168 @@ + + +Charakter Erstellen

+ Charakter Verwaltung
+ Charakter Training
+ Meine Techniken
+ Lernpunkte
+ Schatz Suche
+ Arena
+ Meine Liga Kämpfe
+ Meine Wanted Kämpfe
+ "; + $charakter_009 = "Charakter Übersicht
".$charakter_009; + + + $training_009 = ""; + + $turnier_009 = 'Wochen Turnier Anmeldung
' . + 'Anfänger Turnier Anmeldung
' . + 'Turnier Angucken
'; + + if ($user_ida['clan'] == 0) { + $clan_009 = " + Clan Gründen
+ Clan Beitreten
"; + + } else { +?> + +Clan Nachricht
+ Clan Markt
+ Clan Item Nutzung
+ Clan Profil
+ Clan Ticker
+ Clan Mitglieder
+ Geld Spenden
+ Clan Kämpfe Anzeige
"; + } + + // Ist user der leader? + $chiefs = mysql_fetch_assoc(mysql_query('Select co_leader, leader from clan where id = '.$user_ida['clan'])); + if($chiefs['co_leader'] == $user_ida['id'] || $chiefs['leader'] == $user_ida['id']){ + $clan_009 .= 'Clan Kämpfe
'; + } + + $info_009 = " + Alle User
+ Alle Attacken
+ Top 50 User
+ Top 10 Clan
+ Top 10 wanted
+ Wer ist Online?
+ Liga 1
+ Halle der Helden
+ Letzten 20 Kämpfe
"; + + $auktionensumme = mysql_fetch_assoc(mysql_query('SELECT SUM(aktuellesgebot) as summe FROM auktion WHERE bieter = ' . $user_ida[id] . ' GROUP BY bieter')); + $auktionensumme = $auktionensumme[summe]; + + if ($auktionensumme == 0) { + $geldstring = $user_info_test2[geld]; + } else { + $geldstring = displayMoney($user_info_test['geld'] - $auktionensumme) . ' (' . $user_info_test2['geld'] . ')'; + } + $points = mysql_Fetch_array(mysql_Query("SELECT pkt FROM user WHERE nickname='$name' LIMIT 1")); + $points2[pkt] = number_format($points[pkt], 0, "", "."); + $points3 = $points2[pkt]; + + + if ($name == 'Pegasus') { + $status_009 .= "Status
"; + } + $status_009 .= "Geld: $geldstring
"; +// $status_009 .= "IP: $points3
"; + + + $status_009 .= 'Profil
'; + $status_009 .= 'User Ticker
'; + $status_009 .= 'User Postfach
'; + + $status_009 .= 'Meine Items
'; + $status_009 .= 'Markt
'; + $status_009 .= 'Auktions Markt
'; +// $status_009 .= 'Shakkys Abzockbar
'; + + $status_009 .= 'Logout
'; + +} else { + + $agc_009 = " + Anmeldung
+ Login
+ Account Aktivieren
+ Passwort Vergessen?
+ Login Probleme?
+ "; +} + $active = mysql_fetch_assoc(mysql_query('select count(*) as anzahl from user where online_zeit between TIMESTAMPADD(DAY, -7, now()) and now()')); + + $o_datum = preg_split('# #',$online_rekord_1_0['datum']); + $info_019 = " + FAQ
+ Anfängerguide
+ AG Unterstützen
+ Regeln lesen
+ Umfragen
+ Impressum
+ Angemeldet: $anmeldungen
" . + "Aktiv: $active[anzahl]
+ Online: $online_r
+ Online Rekord: $online_rekord_1_0[anzahl]
+ Am: $o_datum[0]
+ Um: $o_datum[1] Uhr
"; + +?> + diff --git a/ag/include/abholcodes.inc.php b/ag/include/abholcodes.inc.php new file mode 100644 index 0000000..8fea641 --- /dev/null +++ b/ag/include/abholcodes.inc.php @@ -0,0 +1,24 @@ + diff --git a/ag/include/arena.inc.php b/ag/include/arena.inc.php new file mode 100644 index 0000000..ad6ac20 --- /dev/null +++ b/ag/include/arena.inc.php @@ -0,0 +1,74 @@ +$arena[platz]) { +//$arena_besucher = $arena[platz]; +//} +// +//$arena_einkommen = $arena_besucher * $arena[preis]; + +function calculateArenaData($owner_id, $char_1, $char_2, $factor){ +// echo 'Berechne die Arena-Daten mit Faktor '.$factor; + $lf = 0.7; // Luxus Exponent + $kf_1 = 1/3; // Kampf Exponent a) + $kf_2 = $kf_1 * $kf_1; // Kampf Exponent b) + + $arena = mysql_fetch_assoc(mysql_query('SELECT * FROM arena WHERE besitzer = '.$owner_id)); + $wert_char1 = max(0.75,min(1.25,$char_1['siege']/($char_1['niederlagen'] + 0.01))) * getPowerLevelWithBuffs($char_1['id']); + $wert_char2 = max(0.75,min(1.25,$char_2['siege']/($char_2['niederlagen'] + 0.01))) * getPowerLevelWithBuffs($char_2['id']); + // Neue Kalkulation :) + $kampf_wert = (pow($wert_char1,$kf_1)+pow($wert_char1,$kf_2))*(pow($wert_char2,$kf_1)+pow($wert_char2,$kf_2)); + // Neue Kalkulation :) + $arena_wert = pow($arena['luxus'], $lf)+log($arena['level'],4)+0.5; + + $zuschauer = $kampf_wert*$arena_wert*$factor; + $z_loge = floor(0.01*$zuschauer); + $z_sitz = round(0.36*$zuschauer); + $z_steh = round($zuschauer - $z_loge - $z_sitz); // Damit auch ja keiner zu kurz kommt :D + $result['steh'] = $z_steh>$arena['steh']?$arena['steh']:$z_steh; + $result['sitz'] = $z_sitz>$arena['sitz']?$arena['sitz']:$z_sitz; + $result['loge'] = $z_loge>$arena['loge']?$arena['loge']:$z_loge; + $result['steh'] = round($result['steh']*$arena['zustand']); + $result['sitz'] = round($result['sitz']*$arena['zustand']); + $result['loge'] = round($result['loge']*$arena['zustand']); + $result['geld'] = $result['steh'] * 10 + $result['sitz'] * 60 + $result['loge'] * 3000; + $result['id'] = $arena['id']; + return $result; +} + +function calculateUnterhaltsKosten($arena){ + return $arena['steuerlasten']; +} + +function calculateRenovierungsKosten($arena){ + return (1-$arena['zustand'])*($arena['steh']*10+$arena['sitz']*150+$arena['loge']*18000); +} + +?> \ No newline at end of file diff --git a/ag/include/array.php b/ag/include/array.php new file mode 100644 index 0000000..f09fbad --- /dev/null +++ b/ag/include/array.php @@ -0,0 +1,100 @@ + \ No newline at end of file diff --git a/ag/include/auktion_functions.inc.php b/ag/include/auktion_functions.inc.php new file mode 100644 index 0000000..94c1301 --- /dev/null +++ b/ag/include/auktion_functions.inc.php @@ -0,0 +1,365 @@ +
'.$new_query.'

'; + return ''; // Leerer String, also kein Fehler! +} + +// Funktion erstellt die Optionen die Auswahl +// Returns items mit Anzahl die der User verkaufen kann +// @Return String-Array +function getItemOptions($userid,$preselected){ + $result = NULL; + $index = 0; + // Die etwas abgewandelten SQL-Querys aus dem Onlinemarkt (MEGA-QUERY) + $query = 'SELECT i.id, i.name, count(i.id) AS anzahl, \'ware\' as tablename FROM ware w INNER JOIN item i ON(i.id=w.item_id) WHERE w.user = '.$userid.' AND s_type = \'Trank\' GROUP BY i.id + union + SELECT i.id, i.name,count(i.id) AS anzahl, \'sp_ware\' as tablename FROM sp_ware w INNER JOIN sp_item i ON(i.id=w.item) WHERE w.user = '.$userid.' GROUP BY i.id + union + SELECT i.id, i.item AS name, count(i.id) AS anzahl, \'wochen_ware\' as tablename FROM wochen_ware w INNER JOIN wochen_markt i ON(i.id=w.item) WHERE w.user = '.$userid.' GROUP BY (i.id)'; + + $qry = mysql_query($query); + // Damit waeren alle noetigen Datenbankaufrufe erledigt! + while($row = mysql_fetch_assoc($qry)){ + if($row[id] == $preselected){ + $result[$index++] = ''; + } + else{ + $result[$index++] = ''; + } + } + return $result; +} + +//Liefert Zusatzinformationen zu einer Waren-Datenbank +// Returns Array mit DatenbankName, ItemDatenbankName, itemFeldName +// @Return Array +function getDatabaseAdditions($db){ + $returnValue = Array(3); + $returnValue[0] = $db; + if($db == 'ware'){$returnValue[1] = 'item';$returnValue[2]='item_id';$returnValue[3]='name';} + else if($db == 'sp_ware'){$returnValue[1] = 'sp_item';$returnValue[2]='item';$returnValue[3]='name';} + else if($db == 'wochen_ware'){$returnValue[1] = 'wochen_markt';$returnValue[2]='item';$returnValue[3]='item';} + return $returnValue; +} + +// Diese Funktion stellt ein item in den Basar +// Returns '' wenn alles ok, ansonsten eine Fehlerausgabe +// @Return String +function insertItem($userid,$id_db_mix, $anzahl, $startgebot){ + if(!is_numeric($startgebot) || floor($startgebot) <=0){ + return 'Es muss ein gültiges Gebot abgegeben werden.'; + } + $startgebot = floor($startgebot); + if(!is_numeric($anzahl) || floor($anzahl) <= 0){ + return 'Es muss eine gültige Anzahl angegeben werden.'; + } + $anzahl = floor($anzahl); + + preg_replace('#,#','',$id_db_mix); // Entferne die Gefaehrlichen \' !!! + + $mix_explode = explode(',',$id_db_mix); + $id = $mix_explode[0]; // ID des items + $db = getDatabaseAdditions($mix_explode[1]); // Datenbank die das Item speichert, mit samt den Zusatzinformationen abholen + + // Nun die Anzahl vergleichen + $test = 'SELECT count(i.id) AS anzahl FROM '.$db[0].' as w INNER JOIN '.$db[1].' as i ON(i.id=w.'.$db[2].') where w.user= '.$userid.' AND i.id = '.$id; + $result = mysql_fetch_assoc(mysql_query($test)); +// echo $test; + if($result['anzahl'] < $anzahl){ + return 'Nicht genug Items (Vorhanden:'.$result['anzahl'].', Eingetragen:'.$anzahl.')'; + } + $test = 'SELECT '.$db[3].' AS name FROM '.$db[1].' WHERE id ='.$id; + $itemname = mysql_fetch_assoc(mysql_query($test)); +// echo $test; + // Nun werden dem User die Items abgezogen und in die auktionstabelle eingefuegt. + $qry = mysql_query('DELETE FROM '.$db[0].' WHERE '.$db[2].'='.$id.' AND user='.$userid.' LIMIT '.$anzahl); + $anzahl2 = mysql_affected_rows(); + if($anzahl2 == 0){ + return 'Cheater!!'; + } else if($anzahl != $anzahl2){ + mysql_query('INSERT INTO auktion (itemid, itemname, tablename, anbieter, anzahl, deadline, startgebot, startdate) VALUES('.$id.',\''.$itemname['name'].'\',\''.$db[0].'\','.$userid.','.$anzahl2.',TIMESTAMPADD(Day,3,TIMESTAMPADD(Second,-second(now()),now())),'.$startgebot.',now())'); + } else{ + mysql_query('INSERT INTO auktion (itemid, itemname, tablename, anbieter, anzahl, deadline, startgebot, startdate) VALUES('.$id.',\''.$itemname['name'].'\',\''.$db[0].'\','.$userid.','.$anzahl.',TIMESTAMPADD(Day,3,TIMESTAMPADD(Second,-second(now()),now())),'.$startgebot.',now())'); + } + return ''; +} + + +// Diese Funktion erstellt die Auktionstabelle und die Transaktionentabelle +function createTables(){ + // Erstellen der Auktionstabelle + mysql_query('DROP TABLE auktion'); + mysql_query(' + CREATE TABLE `auktion` ( + `auktionsid` int(10) unsigned NOT NULL auto_increment, + `anbieter` int(10) unsigned NOT NULL, + `bieter` int(10) unsigned default NULL, + `itemid` int(10) unsigned NOT NULL, + `itemname` varchar(20) collate utf8_unicode_ci NOT NULL, + `tablename` varchar(15) collate utf8_unicode_ci NOT NULL, + `anzahl` int(10) unsigned NOT NULL, + `startgebot` decimal(10,0) unsigned NOT NULL, + `aktuellesgebot` decimal(10,0) unsigned default NULL, + `deadline` timestamp NULL default NULL, + `startdate` timestamp NULL default NULL, + `cheatingverdacht` int(10) unsigned NOT NULL, + PRIMARY KEY (`auktionsid`) + ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=0 ; + '); + + mysql_query('DROP TABLE auktion_transaktionen'); + mysql_query(' + CREATE TABLE `auktion_transaktionen` ( + `transaktionsid` int(10) unsigned NOT NULL auto_increment, + `anbieter` int(10) unsigned NOT NULL, + `bieter` int(10) unsigned NOT NULL, + `itemid` int(10) unsigned NOT NULL, + `tablename` varchar(15) collate utf8_unicode_ci NOT NULL, + `anzahl` int(10) unsigned NOT NULL, + `betrag` decimal(10,0) unsigned NOT NULL, + `deadline` timestamp NULL default NULL, + `cheatingverdacht` int(10) unsigned NOT NULL, + PRIMARY KEY (`transaktionsid`) + ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=0 ; + '); +} + +function getAuktionTotalCount($kategorie,$itemnamepart,$maxPrice){ + // vorbereiten der uebergabevariablen zu sicherheitszwecken + + $priceDelimiter = ''; + $kategorieDelimitier =''; + $stringDelimiter = ''; + + if($maxPrice > 0){ + $priceDelimiter = ' AND startgebot <= '.$maxPrice.' AND (aktuellesgebot IS NULL OR aktuellesgebot <= '.$maxPrice.') '; + } + if($kategorie == 'wochen_ware' OR $kategorie == 'ware' OR $kategorie == 'sp_ware'){ + $kategorieDelimitier = ' AND tablename = \''.$kategorie.'\' '; + } + if($itemnamepart != NULL && $itemnamepart != ''){ + $stringDelimiter = ' AND itemname LIKE \'%'.$itemnamepart.'%\' '; + } + $test = 'SELECT count(auktionsid) as anzahl FROM auktion WHERE 1 '.$kategorieDelimitier.$stringDelimiter.$priceDelimiter.' AND TIMESTAMPDIFF(Minute,now(),deadline) >= 0'; + $qry = mysql_query($test); + if(mysql_num_rows($qry) == 0){ + return 0; + } + $result = mysql_fetch_assoc($qry); + return $result['anzahl']; +} + +function getAuktionEntries($kategorie,$itemnamepart,$entriesPerSite,$pageNumber,$maxPrice,$order,$dir){ + // vorbereiten der uebergabevariablen zu sicherheitszwecken + $priceDelimiter = ''; + $kategorieDelimitier =''; + $stringDelimiter = ''; + $interval = ' LIMIT '.($entriesPerSite*$pageNumber).','.$entriesPerSite.' '; + $returnArray = NULL; + + if($maxPrice > 0){ + $priceDelimiter = ' AND startgebot <= '.$maxPrice.' AND (aktuellesgebot IS NULL OR aktuellesgebot <= '.$maxPrice.') '; + } + if($kategorie == 'wochen_ware' OR $kategorie == 'ware' OR $kategorie == 'sp_ware'){ + $kategorieDelimitier = ' AND tablename = \''.$kategorie.'\' '; + } + if($itemnamepart != NULL && $itemnamepart != ''){ + $stringDelimiter = ' AND itemname LIKE \'%'.$itemnamepart.'%\' '; + } + $index = 0; + $test = 'SELECT a.auktionsid, u.nickname AS anbietername, u2.nickname AS bietername, a.deadline, a.aktuellesgebot, a.startgebot, a.anzahl, a.itemname, a.bieter, a.anbieter, a.itemid, a.tablename FROM auktion AS a INNER JOIN user as u ON a.anbieter = u.id LEFT JOIN user as u2 ON a.bieter = u2.id WHERE 1 '.$kategorieDelimitier.$stringDelimiter.$priceDelimiter.' AND TIMESTAMPDIFF(Minute,now(),deadline) >= 0 ORDER BY '.$order.' '.$dir.' '.$interval; + $qry = mysql_query($test); + //echo '
'.$test.'
'; + while($result = mysql_fetch_assoc($qry)){ + $returnArray[$index++] = $result; + } + return $returnArray; +} + +function getEntryInformation($auktionsid){ + if(!is_numeric($auktionsid)){return;} + $qry = mysql_query('SELECT u.nickname AS anbietername, u2.nickname AS bietername, a.auktionsid,a.anbieter,a.bieter,a.itemid,a.itemname,a.tablename,a.anzahl,a.startgebot,a.aktuellesgebot,a.deadline,a.startdate,a.cheatingverdacht, TIMESTAMPDIFF(Minute,now(),deadline) AS zeitdifferenz FROM auktion AS a INNER JOIN user as u ON a.anbieter = u.id LEFT JOIN user as u2 ON a.bieter = u2.id WHERE auktionsid = '.$auktionsid); + if(mysql_num_rows($qry) == 0){ return NULL; } + return mysql_fetch_assoc($qry); +} + +function getKategorieOptions($preselect){ + $result = NULL; + $index = 0; + $converter['ware'] = 'Tränke'; + $converter['sp_ware'] = 'Items'; + $converter['wochen_ware'] = 'Teufelsfrüchte'; + + $total = 0; + $select = false; + $qry = mysql_query('SELECT tablename,count(tablename) as anzahl FROM auktion WHERE TIMESTAMPDIFF(Minute,now(),deadline) >= 0 GROUP BY tablename'); + while($row = mysql_fetch_assoc($qry)){ + if($preselect == $row['tablename']){ + $result[$index++] = ''; + $select = true; + } else{ + $result[$index++] = ''; + } + $total += $row['anzahl']; + } + if(!$select){ + $result[$index++] = ''; + } else{ + $result[$index++] = ''; + } + return $result; +} + +function zurueckziehen($userid, $auktionsid, $pay){ + // So das eigentliche abziehen + $auktionsdaten = getEntryInformation($auktionsid); + if($userid != $auktionsdaten['anbieter']){ + return 'Sie sind garnicht der Anbieter dieser Auktion!'; + } + if($pay == 'YES' && $auktionsdaten['aktuellesgebot'] == NULL){ + return 'Es wurde mitübergeben, dass geboten wurde, es ist aber nicht geboten worden!'; + } + else if($pay == 'NO' && $auktionsdaten['aktuellesgebot'] != NULL){ + return 'Es wurde zwischenzeitlich geboten! Zurückziehen nur mit Gebühr möglich!'; + } + $gebuehr = floor($auktionsdaten['aktuellesgebot'] * 0.1); + mysql_query('UPDATE user SET geld=geld-'.$gebuehr.' WHERE id='.$userid); + + mysql_query('DELETE FROM auktion WHERE auktionsid='.$auktionsid); + $anzahl2 = mysql_affected_rows(); + if($anzahl2 == 0){ + return 'CHEATER!!'; + } + $anzahl = $auktionsdaten['anzahl']; + $item_row_name = 'item'; + if($auktionsdaten['tablename'] == 'ware'){$item_row_name = 'item_id';} + while($anzahl-- > 0){ + $sql = 'INSERT INTO '.$auktionsdaten['tablename'].' ('.$item_row_name.', user) VALUES('.$auktionsdaten['itemid'].','.$userid.')'; + mysql_query($sql); +// echo '
'.$sql.'
'; + } + $sql = 'INSERT INTO nachricht(von, besitzer, betreff, text) VALUES (\'Auktionsmarkt\', '.$auktionsdaten['anbieter'].', \'Item zurückgezogen!\', \' Sie haben das Item '.$auktionsdaten['itemname'].' für eine Gebühr von '.$gebuehr.' zurückgezogen!\')'; + mysql_query($sql); +// echo '
'.$sql.'
'; + if($auktionsdaten['bieter'] != NULL){ + $sql = 'INSERT INTO nachricht(von, besitzer, betreff, text) VALUES (\'Auktionsmarkt\', '.$auktionsdaten['bieter'].', \'Item zurückgezogen!\', \' Das Item '.$auktionsdaten['itemname'].' wurde von '.$auktionsdaten['anbietername'].' zurückgezogen!\')'; + mysql_query($sql); +// echo '
'.$sql.'
'; + } +} + +function getAveragePrice($itemid, $tablename, $anzahl){ + $sql = 'SELECT avg(betrag) / avg(anzahl) AS average FROM auktion_transaktionen WHERE anbieter != 1 and itemid = '.$itemid.' and tablename = \''.$tablename.'\' and cheatingverdacht = 0 and TIMESTAMPADD(DAY,30,deadline) > CURRENT_TIMESTAMP'; + $qry = mysql_query($sql); + $row = mysql_fetch_assoc($qry); + return round($row['average']*$anzahl); +} + + + +?> diff --git a/ag/include/bann.inc.php b/ag/include/bann.inc.php new file mode 100644 index 0000000..15d9eff --- /dev/null +++ b/ag/include/bann.inc.php @@ -0,0 +1,60 @@ += 10 || $result2 >= 30 || $result3 >=4){ +// Anzahl eintraege in spamliste + setSpamblock($id); + } +} + +function setSpamblock($id){ + $anzahl = mysql_num_rows(mysql_query('SELECT * FROM spammer WHERE userid='.$id.' AND TIMESTAMPDIFF(Day,bann_until,now()) <=14')); + $zeit = pow(5,($anzahl+1)); + mysql_query('INSERT INTO spammer(userid, bann_until) values('.$id.',TIMESTAMPADD(Minute,'.$zeit.',now()))'); +} + +function releaseSpamblock($id){ + mysql_query('DELETE from spammer where userid='.$id.' and TIMESTAMPDIFF(Second,bann_until,now()) < 0'); +} + +function bannAccount($id){ + mysql_query('UPDATE user SET bann = \'ja\' WHERE id='.$id); +} + +function unbannAccount($id){ + mysql_query('UPDATE user SET bann = \'nein\' WHERE id='.$id); +} + +?> diff --git a/ag/include/char.inc.php b/ag/include/char.inc.php new file mode 100644 index 0000000..0c52d7a --- /dev/null +++ b/ag/include/char.inc.php @@ -0,0 +1,286 @@ + now()'; + $row = mysql_fetch_assoc(mysql_query($sql)); + if ($row['anzahl'] > 0) { + $GLOBALS['char_buffered_statuses'][$charid] = 'Turnier'; + return 'Turnier'; + } + $sql = 'SELECT count(*) as anzahl from quests where charid = ' . $charid; + $row = mysql_fetch_assoc(mysql_query($sql)); + if ($row['anzahl'] > 0) { + $GLOBALS['char_buffered_statuses'][$charid] = 'Schatz Suche'; + return 'Schatz Suche'; + } + $sql = 'SELECT count(*) as anzahl from kampf where db_satz = ' . $charid; + $row = mysql_fetch_assoc(mysql_query($sql)); + if ($row['anzahl'] > 0) { + $GLOBALS['char_buffered_statuses'][$charid] = 'Kampf'; + return 'Kampf'; + } + + $sql = 'SELECT count(*) as anzahl FROM kampf_list where charakter = ' . $charid; + $row = mysql_fetch_assoc(mysql_query($sql)); + if ($row['anzahl'] > 0) { + $GLOBALS['char_buffered_statuses'][$charid] = 'Kampf erstellt'; + return 'Kampf erstellt'; + } + $sql = 'SELECT count(*) as anzahl FROM turnier1 where charakter = ' . $charid; + $row = mysql_fetch_assoc(mysql_query($sql)); + if ($row['anzahl'] > 0) { + $GLOBALS['char_buffered_statuses'][$charid] = 'Angemeldet'; + return 'Angemeldet'; + } + $GLOBALS['char_buffered_statuses'][$charid] = 'Frei'; + return 'Frei'; +} + +/* + * Char generell! + */ + +// Initialisierung des Puffers +$GLOBALS['char_buffered_instances'] = array (); +$GLOBALS['chars_read_out_user'] = array (); + +// Uebergabe der Charid, und optional ob gepuffert werden darf +// returns: Char als Array +function getChar($charid, $buffer_enabled = true) { + // Fehlerkontrolle + if(!is_numeric($charid)){ + return null; + } + // Wenn Char nicht im Puffer ist, oder nicht gepuffert werden soll + if ($GLOBALS['char_buffered_instances'][$charid] == null || !$buffer_enabled) { + // Lese das Charfeld aus der Datenbank aus + $char = mysql_fetch_assoc(mysql_query('Select * from chars where id = '.$charid)); + if(!$char){return null;} + // Speichere in $char['stauts'] den aktuellen Status des Chars (buffer-Strategie ist hierbei die selbe) + $char['status'] = getStatus($char['id'],$buffer_enabled); + $char['bild'] = getPicture($char); + $GLOBALS['char_buffered_instances'][$charid] = &$char; // Speichern des Chars in den Puffer + } + // Gebe Char zurueck + return $GLOBALS['char_buffered_instances'][$charid]; +} + +function getChar2($charid) { + // Fehlerkontrolle + if(!is_numeric($charid)){ + return null; + } else { + $char = mysql_fetch_assoc(mysql_query('Select * from chars where id = '.$charid)); + if(!$char){return null;} + // Speichere in $char['stauts'] den aktuellen Status des Chars (buffer-Strategie ist hierbei die selbe) + $char['status'] = getStatus($char['id'],$buffer_enabled); + $char['bild'] = getPicture($char); + } + return $char; +} + +function getCharWithBuffs($charid, $buffer_enabled = true){ + $char = getChar($charid, $buffer_enabled); + if($char['kampf_item'] != NULL && $char['kampf_item'] != ',,,,'){ + $char_buffs = mysql_fetch_assoc(mysql_query('SELECT sum(i.hp) as hp, sum(i.mp) as mp, sum(i.starke) as starke, sum(i.verteidigung) as verteidigung, sum(i.speed) as speed FROM ware w LEFT JOIN item i ON(i.id=w.item_id) WHERE w.id IN (' . $char['kampf_item'] . ')')); + } + $char['starke'] += $char_buffs['starke']; + $char['verteidigung'] += $char_buffs['verteidigung']; + $char['speed'] += $char_buffs['speed']; + $char['ausdauer'] += $char_buffs['ausdauer']; + $char['glueck'] += $char_buffs['glueck']; + return $char; +} + +// Uebergabe der Userid (Nachteil ist, dass Puffer von getChar mit $charid nicht moeglich ist, weil information fehlt, ob alle Chars im Buffer sind + + +/* + * Liefert die Url zum Avatarbild (Falls Char keinen Avatar hat gibt es die + * noavatar.gif zurueck!) + * returns Url of Avatar-Picture + * */ +function getPicture($char){ + // Sichergehen, dass Char geladen wurde + if($char['bild'] == null || $char['bild'] == ''){ + return 'design/bilder/avatare/noavart.gif'; + } + return $char['bild']; +} + + +// returns Array von Char-Arrays +function getCharsOfUser($userid, $buffer_enabled = true) { + // Fehlerkontrolle + if(!is_numeric($userid)){ + return null; + } + + if ($GLOBALS['chars_read_out_user'][$userid] == null || !$buffer_enabled) { + $GLOBALS['chars_read_out_user'][$userid] = array(); + $qry = mysql_query('Select * from chars where besitzer = '.$userid.' order by id'); + while($char = mysql_fetch_assoc($qry)){ + // Speichere in $char['stauts'] den aktuellen Status des Chars (buffer-Strategie ist hierbei die selbe) + $char['status'] = getStatus($char['id'],$buffer_enabled); + $char['bild'] = getPicture($char); + // Speichere den Char in das Globale-Pufferfeld + $GLOBALS['char_buffered_instances'][$char['id']] = $char; + // Gebe dem User eine Referenz auf die globale chars-Variable + $GLOBALS['chars_read_out_user'][$userid][] = &$GLOBALS['char_buffered_instances'][$char['id']]; + } + } + return $GLOBALS['chars_read_out_user'][$userid]; // Gebe das globale Userfeld zurück. +} + +function deleteChar($userid, $charid){ + $char = getChar($charid); + if($char['besitzer'] != $userid){ + return 'Char gehoert nicht dir!'; + } else if($char['status'] != 'Frei'){ + return 'Char ist nicht Frei!'; + } + mysql_query('Delete from lernen where besitzer = '.$charid); + mysql_query('Delete from chars where id = '.$charid); + return true; +} + + +/* + * Funktionen die durch Puffern profitieren würden oder um einfach Code einzusparen und um flexibel zu bleiben + * + */ + +// Ermittelt den Besitzer +// Returns true = Ja, False = Nein, NULL = Error +function isUserOwnerOf($userid, $charid, $buffer_enabled = true){ + // Fehlerkontrolle + if(!is_numeric($userid) || !is_numeric($charid)){ + return null; + } + $char = getChar($charid, $buffer_enabled); + if($char == null){ + return null; + } + return $char['besitzer'] == $userid; +} + +// Funktion um das Powerlevel zu Berechnen (Kann ja durchaus sein, dass sich mal was dran ändert!) +// Returns Powerlevel als Integer, NULL = Error +function getPowerLevel($charid, $buffer_enabled = true){ + $char = getChar($charid, $buffer_enabled); + if($char == null){ + return null; + } + // Uncomment for hp/mp in PL + // $hp = explode(",", $char[hp]); + // $mp = explode(",", $char[mp]); + // return $char['starke']+$char['verteidigung']+$char['speed']+$char['ausdauer']+$char['glueck']+ $hp[1]/10 + $mp[1]/5; + return $char['starke']+$char['verteidigung']+$char['speed']+$char['ausdauer']+$char['glueck']; +} + +function getPowerLevelWithBuffs($charid, $buffer_enabled = true){ + $char = getChar($charid, $buffer_enabled); + if($char == null){ + return null; + } + if($char['kampf_item'] != NULL && $char['kampf_item'] != ',,,,'){ + $char_buffs = mysql_fetch_assoc(mysql_query('SELECT sum(i.hp) as hp, sum(i.mp) as mp, sum(i.starke) as starke, sum(i.verteidigung) as verteidigung, sum(i.speed) as speed FROM ware w LEFT JOIN item i ON(i.id=w.item_id) WHERE w.id IN (' . $char['kampf_item'] . ')')); + } + // Uncomment for hp/mp in PL + // $hp = explode(",", $char[hp]); + // $mp = explode(",", $char[mp]); + // return $char_buffs['starke']+$char_buffs['verteidigung']+$char_buffs['speed']+$char_buffs['ausdauer']+$char_buffs['glueck'] + $char_buffs['hp']/10 + $char_buffs['mp']/5 +$char['starke']+$char['verteidigung']+$char['speed']+$char['ausdauer']+$char['glueck'] + $hp[1]/10 + $mp[1]/5; + return $char_buffs['starke']+$char_buffs['verteidigung']+$char_buffs['speed']+$char_buffs['ausdauer']+$char_buffs['glueck']+$char['starke']+$char['verteidigung']+$char['speed']+$char['ausdauer']+$char['glueck']; +} + +/* + * Auslesen der Attacken, die der Char beherrscht + */ +function getCharAttacks($charid){ + +} + +// Auslesen der Kampfeinstellungen +function getChoosenAttacks($charid){ + +} + + +function getCharRaceId($charid){ + $char = getChar($charid); + $rassen_werte = array( + 'Mensch' => 1, ///0 + 'Saiyajin' => 2, ///1 + 'Dämon' => 3, ///2 + 'Mutant' => 4, ///3 + 'Cyborg' => 5, ///4 + 'Namekianer' => 6, ///5 + 'Pirat' => 7, ///6 + 'Shichibukai' => 8, ///7 + 'Kaioshin' => 9, ///8 + 'Schwertkämpfer' => 10,///9 + 'Grandline Maschine'=> 11,///10 + '01' => 12,///11 + 'Leaf Dorf' => 13,///12 + 'Sand Dorf' => 14,///13 + 'Sound Dorf' => 15///14 + ); + return $rassen_werte[$char['rasse']]; +} + +function getFusionRaceId($charid){ + $char = getChar($charid); + $rassen_werte = array( + 'Mensch' => 1, ///0 + 'Saiyajin' => 2, ///1 + 'Dämon' => 3, ///2 + 'Mutant' => 4, ///3 + 'Cyborg' => 5, ///4 + 'Namekianer' => 6, ///5 + 'Pirat' => 7, ///6 + 'Shichibukai' => 8, ///7 + 'Kaioshin' => 9, ///8 + 'Schwertkämpfer' => 10,///9 + 'Grandline Maschine'=> 11,///10 + '01' => 12,///11 + 'Leaf Dorf' => 13,///12 + 'Sand Dorf' => 14,///13 + 'Sound Dorf' => 15///14 + ); + return $rassen_werte[$char['fusion_rasse']]; + +} + +?> \ No newline at end of file diff --git a/ag/include/char_profil.inc.php b/ag/include/char_profil.inc.php new file mode 100644 index 0000000..56c52b4 --- /dev/null +++ b/ag/include/char_profil.inc.php @@ -0,0 +1,59 @@ +errorno='.mysql_errno() + .'
  • error='.mysql_error() + .'
  • query='.$query); + } + return $result; +} + + +//komplette row des chars auslesen und in einem array speichern +function chardaten($char_id,$name,&$char_1,&$hp1,&$mp1,&$exp,&$fehler) { + + $char_1 = getChar($char_id); + $hp1 = explode(',', $char_1[hp]); + $mp1 = explode(',', $char_1[mp]); + $exp = explode(',', $char_1[exp]); + $user = mysql_Fetch_array(mysql_query("SELECT id FROM user WHERE nickname='$name' LIMIT 1")); + if($char_1['besitzer'] != $user[0]) { + $fehler[0]= 'Dieser Char geh�rt nicht dir!'; + } + return array($char_1,$hp1,$mp1,$exp,$fehler); +} + +//hier werden die aktuell gew�hlten attcken der jeweiligen runden ausgelesen +function aktuelleauswahl($char_1,&$at11,&$at11_2,&$auswahl1,&$auswahl2,&$auswahl3) { + $at11 = explode(",", $char_1[attacken]); + $at11_2 = explode(",", $char_1[attacken2]); + $auswahl1 = explode(",", $char_1[auswahl1]); + $auswahl2 = explode(",", $char_1[auswahl2]); + $auswahl3 = explode(",", $char_1[auswahl3]); + return array($at11,$at11_2,$auswahl1,$auswahl2,$auswahl3); +} + + +//pr�ft, ob der char verf�gbar ist +function istcharfrei($char_id,$char_1,$anz,&$fehler) { + $anz=0; + if($char_1[status] != "Frei" AND $char_1[status] != "akademie") { + $fehler[18] = "Charakter ist zur Zeit nicht verfügbar!"; + $anz++; + } + return array($fehler); +} + +?> \ No newline at end of file diff --git a/ag/include/cheater.inc.php b/ag/include/cheater.inc.php new file mode 100644 index 0000000..164a544 --- /dev/null +++ b/ag/include/cheater.inc.php @@ -0,0 +1,43 @@ + 10'); + mysql_query('DELETE from bot_images WHERE TIMESTAMPDIFF(MINUTE, created, now()) > 10 '); + while($row = mysql_fetch_assoc($qry)){ + $sql = 'Insert into bot_image_failures(userid, inserted, valid, used) values('.$row['userid'].', \'!NOTHING!\', \''.$row['compressed_phrase'].'\', \''.$row['created'].'\')'; +// echo $sql.'
    '; + mysql_query($sql); + } +} + +?> \ No newline at end of file diff --git a/ag/include/clanfights.inc.php b/ag/include/clanfights.inc.php new file mode 100644 index 0000000..919f977 --- /dev/null +++ b/ag/include/clanfights.inc.php @@ -0,0 +1,749 @@ +'.$row['nickname'].''; + } + return $options; +} + +function getMemberCharacters($userid) { + $qry = mysql_query('SELECT * FROM chars where besitzer = '.$userid); + $options = ''; + while ($row = mysql_fetch_assoc($qry)) { + $options .= ''; + } + return $options; +} + +function getClans($clanid) { + $qry= mysql_query('SELECT clanname, id FROM clan WHERE id != '.$clanid.' ORDER BY clanname ASC'); + #$qry= mysql_query('SELECT clanname, id FROM clan ORDER BY clanname ASC'); + $options = ''; + while ($row = mysql_fetch_assoc($qry)) { + $options .= ''; + } + return $options; +} + +function displayClanFights($userid) { + $clanid = getClanOfUser($userid); + $claninfos= getClanInformation($clanid); + ?> + + + + + + + + + + + + + +
    Clan Kämpfe +
    + +
    Dein Clan hat bereits 3 Herausforderungen. Mehr sind nicht möglich. +
    Clan herausfordern +
    + +
    + + + + + + + + + +
    Kampftyp: + +
    + +
    +
    + +
    + + + + + + + + + + +
    Anzahl Kämpfer: + +
    + +
    +
    + +
    + '; + } elseif ($type == 'accept') { + echo ''; + echo ''; + } + ?> + + + + + + + + + + + + + + +
    User + +
    + +
    +
    +Es sind nicht genug Clanmitglieder ausgewählt worden für einen Clankampf!

    '; + $errmsg .= '

    Leider nur '.$anzahl_gewaehlt.' von '.count($wahluser).' Clanmitglieder ausgewählt!

    '; + break; + } + } + + foreach ($count_member_array as $key => $value) { + if ($value > 1 AND $key != -1) { + $errmsg .= '

    Du hast leider ein Clanmitglied mehrfach ausgewählt!

    '; + break; + } + } + + + $clanid = getClanOfUser($userid); + $optionen = getCharacterOptions($clanid); + + if (empty($errmsg)) { + ?> +
    + '; + echo ''; + echo ''; + } elseif ($type == 'accept') { + echo ''; + echo ''; + } + ?> + + + + + + + + + + +
    User + +
    + +
    +
    +
  • '; + echo $errmsg1; + echo $errmsg; + + } +} + +function displaySelectClanToFight($userid,$numberoffighter,$clanfighttyp) { + $clanid = getClanOfUser($userid); + /*for ($i=1;$i'; + echo '

    Folgende Charaktere sind nicht verfügbar:

    '; + echo '
      '; + for ($i=0;$i'.getNameOfChar($chars_mit_falschem_status[$i]).''; + } + echo '
    '; + exit; + }*/ + ?> +
    + + > + + + + + + + + + + + + + + + + + + + +
    Clan: + +
    Datum: + +
    Zeitpunkt: + +
    + +
    +
    + Willst du den Clankamp wirklich ablehnen?

    '; + echo '

    Ja | Nein

    '; + } else { + $clankampf_loeschen= mysql_query('DELETE FROM clan_fight_list WHERE id='.$clanfightid.' LIMIT 1'); + echo '

    Clankampf erfolgreich abgelehnt!

    '; + echo '

    zurück zur Übersicht

    '; + } +} + +function checkIfChallengeTimedOut($userid) { + $clanid= getClanOfUser($userid); + $qry = mysql_query('SELECT id, zeitpunkt, status FROM clan_fight_list WHERE clan='.$clanid.' OR gclan='.$clanid); + while($row = mysql_fetch_assoc($qry)){ + if ($row['zeitpunkt'] <= time() AND $row['status'] == 0) { + $status_updaten= mysql_query('UPDATE clan_fight_list SET status=3 WHERE id='.$row['id'].' LIMIT 1'); + } + } +} + +function termineBereitsBelegt($clanid,$gclanid,$timestamp) { + global $errmsg; + $clan_qry= mysql_num_rows(mysql_query('SELECT id FROM clan_fight_list WHERE clan = '.$clanid.' AND status != 3 AND zeitpunkt = '.$timestamp)); + $gclan_qry= mysql_num_rows(mysql_query('SELECT id FROM clan_fight_list WHERE gclan = '.$gclanid.' AND status != 3 AND zeitpunkt = '.$timestamp)); + if ($clan_qry AND $gclan_qry) { + $errmsg= 'Dein Clan und der herausgeforderte Clan haben zu diesem Zeitpunkt bereits einen Clankampf!'; + $err= 1; + } elseif ($clan_qry) { + $errmsg= 'Dein Clan hat zu diesem Zeitpunkt bereits einen Clankampf!'; + $err= 1; + } elseif ($gclan_qry) { + $errmsg= 'Der herausgeforderte Clan hat zu diesem Zeitpunkt bereits einen Clankampf!'; + $err= 1; + } else { + $err= 0; + } + return $err; +} + +function clanfightFromOwnClan($clanfightid,$userid='') { + $clanid= getClanOfUser($userid); + $clanfightcheck= mysql_fetch_assoc(mysql_query('SELECT clan from clan_fight_list WHERE id='.$clanfightid.' LIMIT 1')); + if ($clanfightcheck['clan'] == $clanid) { + return 1; + } else { + global $errmsg; + $errmsg= '

    Dieser Clankampf ist nicht von deinem Clan erstellt und kann somit nicht zurückgezogen werden!

    '; + return 0; + } +} + +function clanfightToOwnClan($clanfightid,$userid='') { + $clanid= getClanOfUser($userid); + $clanfightcheck= mysql_fetch_assoc(mysql_query('SELECT gclan from clan_fight_list WHERE id='.$clanfightid.' LIMIT 1')); + if ($clanfightcheck['gclan'] == $clanid) { + return 1; + } else { + global $errmsg; + $errmsg= '

    Die Herausforderung von diesem Clankampf ist nicht an deinem Clan gerichtet!

    '; + return 0; + } +} + +function checkClanfight($clanfightid,$type='') { + if (is_numeric($clanfightid)) { + $clanfightcheck= mysql_fetch_assoc(mysql_query('SELECT status FROM clan_fight_list WHERE id='.$clanfightid.' LIMIT 1')); + if ($clanfightcheck) { + if ($clanfightcheck['status'] == 2 AND ($type == 'look' OR $type == 'look_survival')) { + return 1; + } elseif ($clanfightcheck['status'] != 0) { + global $errmsg; + $errmsg= '

    Der Clankampf wurde bereits angenommen / abgelehnt!

    '; + return 0; + } else { + return 1; + } + } else { + global $errmsg; + $errmsg= '

    Diesen Clankampf gibt es nicht!

    '; + return 0; + } + } else { + global $errmsg; + $errmsg= '

    Die ID des Clankampfes ist kein numerischer Wert!

    '; + return 0; + } +} + +function getNumberOfFightersByClanfightID($clanfightid) { + $clankampf_informationen= mysql_fetch_assoc(mysql_query('SELECT numberoffighter FROM clan_fight_list WHERE id='.$clanfightid.' LIMIT 1')); + return $clankampf_informationen['numberoffighter']; +} + +function acceptClanfight($clanfightid,$chars) { + $chars= implode(",",$chars); + $status_pruefen= mysql_fetch_assoc(mysql_query('SELECT status FROM clan_fight_list WHERE id='.$clanfightid.' LIMIT 1')); + if ($status_pruefen['status'] == 0) { + $datensatz_updaten= mysql_query('UPDATE clan_fight_list SET gfighter="'.$chars.'", status=1 WHERE id='.$clanfightid) or die(mysql_error()); + echo '

    Der Clankampf wurde erfolgreich angenommen!

    '; + echo 'zurück zur Übersicht'; + } else { + echo '

    Dieser Clankampf kann nichtmehr angenommen werden. Er wurde bereits angenommen!

    '; + echo 'zurück zur Übersicht'; + } +} + +function deleteClanFight($clanfightid) { + $clankampf_loeschen= mysql_query('DELETE FROM clan_fight_list WHERE id='.$clanfightid.' LIMIT 1'); + echo '

    Herausforderung erfolgreich zurückgezogen!

    '; + echo 'zurück zur Übersicht'; +} + +function getClanOptions(){ + $sql = 'SELECT clanname, id FROM clan order by clanname'; + $qry = mysql_query($sql); + $options = ''; + while($row = mysql_fetch_assoc($qry)){ + $options .= ''; + } + return $options; +} + + +// Diese Funktion liefert alle Karaktaere des Clans mit der id $clanid. +// Sortiert werden die Eintraege nach Trainer und Charname +function getCharacterOptions($clanid){ + $sql = 'SELECT c.name, c.id, u.nickname FROM chars c LEFT JOIN user u ON (u.id=c.besitzer) WHERE u.clan='.$clanid.' ORDER BY u.nickname, c.name ASC'; + $qry = mysql_query($sql); + $options = ''; + while($row = mysql_fetch_assoc($qry)){ + $options .= ''; + } + return $options; +} + +function getActualClanChallengeInformation($clanid,$userid){ + $string = ''; + #$kaempfe = mysql_query('SELECT u.aktiv, u.besitzer, c.clanname, c2.clanname as clanname2, u.tick, u.id FROM clan_k_list u LEFT JOIN clan c ON(u.besitzer=c.id) LEFT JOIN clan c2 ON(u.an = c2.id )WHERE u.an='.$clanid.' OR u.besitzer='.$clanid.' ORDER BY tick ASC'); + $kaempfe_query= mysql_query('SELECT * FROM clan_fight_list WHERE (clan='.$clanid.' OR gclan='.$clanid.') AND status=0 ORDER BY zeitpunkt DESC'); + $informationen_eigener_clan= getClanInformation($clanid); + while($row = mysql_fetch_assoc($kaempfe_query)) { + if($row['clan'] == $clanid) { + $claninformationen= getClanInformation($row['gclan']); + if ($informationen_eigener_clan['leader'] == $userid OR $informationen_eigener_clan['co_leader'] == $userid) { + $string .= ''; + } else { + $string .= ''; + } + } else { + $claninformationen= getClanInformation($row['clan']); + if ($informationen_eigener_clan['leader'] == $userid OR $informationen_eigener_clan['co_leader'] == $userid) { + $string .= ''; + } else { + $string .= ''; + } + } + } + $string .= '
    Herausforderung an "'.$claninformationen['clanname'].'" am '.date("d.m.Y H:i:s",$row['zeitpunkt']).' (zurückziehen)
    Herausforderung an "'.$claninformationen['clanname'].'" am '.date("d.m.Y H:i:s",$row['zeitpunkt']).' (zurückziehen)
    Herausforderung von "'.$claninformationen['clanname'].'" am '.date("d.m.Y H:i:s",$row['zeitpunkt']).'(annehmen | ablehnen)
    Herausforderung von "'.$claninformationen['clanname'].'" am '.date("d.m.Y H:i:s",$row['zeitpunkt']).'(annehmen | ablehnen)
    '; + return $string; +} + +function getActualClanFightInformation($clanid,$userid){ + $string = ''; + #$kaempfe = mysql_query('SELECT u.aktiv, u.besitzer, c.clanname, c2.clanname as clanname2, u.tick, u.id FROM clan_k_list u LEFT JOIN clan c ON(u.besitzer=c.id) LEFT JOIN clan c2 ON(u.an = c2.id )WHERE u.an='.$clanid.' OR u.besitzer='.$clanid.' ORDER BY tick ASC'); + $kaempfe_query= mysql_query('SELECT * FROM clan_fight_list WHERE clan='.$clanid.' OR gclan='.$clanid.' ORDER BY zeitpunkt DESC'); + $informationen_eigener_clan= getClanInformation($clanid); + while($row = mysql_fetch_assoc($kaempfe_query)) { + if($row['clan'] == $clanid) { + $claninformationen= getClanInformation($row['gclan']); + if ($row['status'] == 1) { + $string .= ''; + } elseif ($row['status'] == 2) { + $string .= ''; + } + } else { + $claninformationen= getClanInformation($row['clan']); + if ($row['status'] == 1) { + $string .= ''; + } elseif ($row['status'] == 2) { + $string .= ''; + } + } + } + $string .= '
    Clankampf gegen "'.$claninformationen['clanname'].'" am '.date("d.m.Y H:i:s",$row['zeitpunkt']).'anschauen
    Clankampf gegen "'.$claninformationen['clanname'].'" am '.date("d.m.Y H:i:s",$row['zeitpunkt']).'anschauen
    Clankampf gegen "'.$claninformationen['clanname'].'" am '.date("d.m.Y H:i:s",$row['zeitpunkt']).'anschauen
    Clankampf gegen "'.$claninformationen['clanname'].'" am '.date("d.m.Y H:i:s",$row['zeitpunkt']).'anschauen
    '; + return $string; +} + +function getClanInformation($clanid){ + return mysql_fetch_array(mysql_query('SELECT clanname, leader, id, co_leader FROM clan WHERE id='.$clanid)); +} + +function getClanOfUser($userid){ + $sql = 'SELECT clan FROM user WHERE id = '.$userid; + $row = mysql_fetch_assoc(mysql_query($sql)); + return $row[clan]; +} + +function getStatusOfChar($charid) { + $sql= 'SELECT status FROM chars WHERE id='.$charid; + $row= mysql_fetch_assoc(mysql_query($sql)); + return $row[status]; +} + +function getNameOfChar($charid) { + $sql= 'SELECT status, name FROM chars WHERE id='.$charid; + $row= mysql_fetch_assoc(mysql_query($sql)); + return 'Char: '.$row[name].' - Status: '.$row[status]; +} + +function erstelleClanKampf($userid, $clanid, $time, $chars, $numberoffighter, $clanfighttyp) { + $chars= implode(",",$chars); + $own_clan = getClanOfUser($userid); + $claninfo = getClanInformation($own_clan); + $claninfo2 = getClanInformation($clanid); + + $anfrage_an_clan_bereits_vorhanden= mysql_num_rows(mysql_query('SELECT * FROM clan_fight_list WHERE clan='.$claninfo['id'].' AND gclan='.$claninfo2['id'].' AND zeitpunkt='.$time.' AND status=0')); + if ($anfrage_an_clan_bereits_vorhanden == 1) { + echo '
    '; + echo '

    Eine Anfrage für den '.date("d.m.Y H:i:s",$time).' an den Clan "'.$claninfo2['clanname'].'" wurde bereits gestellt!

    '; + exit; + } + + $anfrage_von_clan_bereits_vorhanden= mysql_num_rows(mysql_query('SELECT * FROM clan_fight_list WHERE clan='.$claninfo2['id'].' AND gclan='.$claninfo['id'].' AND zeitpunkt='.$time.' AND status=0')); + if ($anfrage_von_clan_bereits_vorhanden == 1) { + echo '
    '; + echo '

    Eine Herausforderung für den '.date("d.m.Y H:i:s",$time).' vom Clan "'.$claninfo2['clanname'].'" wurde bereits an deinen Clan gestellt!

    '; + exit; + } + + if($claninfo2 == null){ + return 'Der herauszufordernde Clan existiert nicht (mehr!'; + } + if($userid != $claninfo[leader] && $userid != $claninfo[co_leader]){ + return 'Nur der Leader, bzw. der Co-Leader kann Clan-kämpfe erstellen!'; + } + + $clankampfanfrage_eintragen = mysql_query("INSERT INTO clan_fight_list (id,clan,gclan,fighter,clanfighttyp,numberoffighter,zeitpunkt,status) VALUES ('','".$claninfo['id']."','".$claninfo2['id']."','".$chars."','".$clanfighttyp."','".$numberoffighter."','".$time."',0)"); + if(!$foo){ + return 'Error by sql: '.$sql.'
    '; + } +} + + +function loescheKampf($userid, $kampfid){ + if(!is_numeric($userid) || !is_numeric($kampfid)){ + return 'Fehler beim Übertragen der Daten aufgetreten!'; + } + $clanid = getClanOfUser($userid); + $claninfo = getClanInformation($clanid); + if($userid != $claninfo[leader] && $userid != $claninfo[co_leader]){ + return 'Nur der Leader, bzw. der Co-Leader kann das!'; + } + $pruef = mysql_num_rows(mysql_query('SELECT id FROM clan_k_list WHERE (besitzer='.$clanid.' OR an='.$clanid.') AND id='.$kampfid)); + if($pruef == 1){ + if(mysql_query('DELETE FROM clan_k_list WHERE id = '.$kampfid)){ + return ''; + } else{ + return 'Fehler beim löschen in der Datenbank'; + } + } +} + +function nehmeKampfAn($userid, $kampfid, $chars){ + if(!is_numeric($userid) || !is_numeric($kampfid) || !is_array($chars)){ + return 'Fehler beim &Uml;bertragen der Daten augetreten!'; + } + + $clanid = getClanOfUser($userid); + $claninfo = getClanInformation($clanid); + if($userid != $claninfo[leader] && $userid != $claninfo[co_leader]){ + return 'Nur der Leader, bzw. der Co-Leader kann das!'; + } + + $error = checkCharArray($clanid, $chars); + if($error != ''){ + return $error; + } + $sql = 'Update clan_k_list SET aktiv = 1, gcharakter1 = '.$chars[1].', gcharakter2 = '.$chars[2].', gcharakter3 = '.$chars[3].', gcharakter4 = '.$chars[4].', gcharakter5 = '.$chars[5].', gcharakter6 = '.$chars[6].' WHERE aktiv = 0 and id = '.$kampfid.' and an='.$clanid; + if(mysql_query($sql)){ + return ''; + } else{ + return 'Fehler beim einfuegen in der Datenbank'; + } +} + +function checkIfClanFightsToExecute($userid) { + $clanid= getClanOfUser($userid); + $qry = mysql_query('SELECT id, zeitpunkt, status FROM clan_fight_list WHERE clan='.$clanid.' OR gclan='.$clanid); + while($row = mysql_fetch_assoc($qry)){ + if ($row['zeitpunkt'] <= time() AND $row['status'] == 1) { + $status_updaten= mysql_query('UPDATE clan_fight_list SET status=2 WHERE id='.$row['id'].' LIMIT 1'); + clanFightExecute($row['id']); + } + } +} + +function starteClanFight($chara_1, $chara_2, $clanfight_id, $runde, $kampf){ + global $sieger, $verlierer; + include 'kampf_clan.php'; +} + +function clanFightExecute($id) { + $pkt_a_satz= 0; + $pkt_b_satz= 0; + $pkt_runde_a= 0; + $pkt_runde_b= 0; + $rundenzaehler= 1; + $kampfzaehler= 1; + + $clanfight_daten= mysql_fetch_assoc(mysql_query('SELECT fighter, gfighter, numberoffighter FROM clan_fight_list WHERE id='.$id.' LIMIT 1')); + $fighter_a_array= explode(",",$clanfight_daten['fighter']); + $fighter_b_array= explode(",",$clanfight_daten['gfighter']); + + for ($x=1;;$x++) { + + /*if ($rundenzaehler == 7) { + break; + }*/ + + $fighter_a= mt_rand(0, count($fighter_a_array)-1); + $fighter_b= mt_rand(0, count($fighter_b_array)-1); + + $char_a= getChar2($fighter_a_array[$fighter_a]); + $char_b= getChar2($fighter_b_array[$fighter_b]); + + starteClanFight($char_a, $char_b, $id, $rundenzaehler, $kampfzaehler); + + $kampfzaehler++; + + if ($fighter_a_array[$fighter_a] == $sieger) { + $pkt_a_satz++; + } else { + $pkt_b_satz++; + } + + unset($fighter_a_array[$fighter_a]); + unset($fighter_b_array[$fighter_b]); + sort($fighter_a_array); + sort($fighter_b_array); + + #if ($pkt_a_satz == 3 OR $pkt_b_satz == 3) { + if ($pkt_a_satz + $pkt_b_satz == $clanfight_daten['numberoffighter']) { + if ($pkt_a_satz > $pkt_b_satz) { + $pkt_runde_a++; + } elseif ($pkt_a_satz < $pkt_b_satz) { + $pkt_runde_b++; + } + + $fighter_a_array= explode(",",$clanfight_daten['fighter']); + $fighter_b_array= explode(",",$clanfight_daten['gfighter']); + + $rundenzaehler++; + $kampfzaehler= 1; + $pkt_a_satz= 0; + $pkt_b_satz= 0; + if ($pkt_runde_a + $pkt_runde_b == 6) { + break; + } + } + } +} + +### old function ### +/*function getActualClanFightInformation($clanid,$userid){ + $string = ''; + #$kaempfe = mysql_query('SELECT u.aktiv, u.besitzer, c.clanname, c2.clanname as clanname2, u.tick, u.id FROM clan_k_list u LEFT JOIN clan c ON(u.besitzer=c.id) LEFT JOIN clan c2 ON(u.an = c2.id )WHERE u.an='.$clanid.' OR u.besitzer='.$clanid.' ORDER BY tick ASC'); + $kaempfe_query= mysql_query('SELECT * FROM clan_fight_list WHERE clan='.$clanid.' OR gclan='.$clanid.' ORDER BY zeitpunkt DESC'); + $informationen_eigener_clan= getClanInformation($clanid); + while($row = mysql_fetch_assoc($kaempfe_query)){ + if($row['clan'] == $clanid) { + $claninformationen= getClanInformation($row['gclan']); + if($row['status'] == 0){ + if ($informationen_eigener_clan['leader'] == $userid OR $informationen_eigener_clan['co_leader'] == $userid) { + $string .= ''; + } else { + $string .= ''; + } + } elseif ($row['status'] == 1) { + $string .= ''; + } elseif ($row['status'] == 2) { + $string .= ''; + } + } else{ + $claninformationen= getClanInformation($row['clan']); + if($row['status'] == 0){ + if ($informationen_eigener_clan['leader'] == $userid OR $informationen_eigener_clan['co_leader'] == $userid) { + $string .= ''; + } else { + $string .= ''; + } + } elseif ($row['status'] == 1) { + $string .= ''; + } elseif ($row['status'] == 2) { + $string .= ''; + } + } + } + $string .= '
    Herausforderung an "'.$claninformationen['clanname'].'" am '.date("d.m.Y H:i:s",$row['zeitpunkt']).' (zurückziehen)
    Herausforderung an "'.$claninformationen['clanname'].'" am '.date("d.m.Y H:i:s",$row['zeitpunkt']).' (zurückziehen)
    Clankampf gegen "'.$claninformationen['clanname'].'" am '.date("d.m.Y H:i:s",$row['zeitpunkt']).'anschauen
    Clankampf gegen "'.$claninformationen['clanname'].'" am '.date("d.m.Y H:i:s",$row['zeitpunkt']).'anschauen
    Herausforderung von "'.$claninformationen['clanname'].'" am '.date("d.m.Y H:i:s",$row['zeitpunkt']).'(annehmen | ablehnen)
    Herausforderung von "'.$claninformationen['clanname'].'" am '.date("d.m.Y H:i:s",$row['zeitpunkt']).'(annehmen | ablehnen)
    Clankampf gegen "'.$claninformationen['clanname'].'" am '.date("d.m.Y H:i:s",$row['zeitpunkt']).'anschauen
    Clankampf gegen "'.$claninformationen['clanname'].'" am '.date("d.m.Y H:i:s",$row['zeitpunkt']).'anschauen
    '; + return $string; +}*/ + +?> diff --git a/ag/include/config.inc.php b/ag/include/config.inc.php new file mode 100644 index 0000000..bed83a5 --- /dev/null +++ b/ag/include/config.inc.php @@ -0,0 +1,87 @@ + + + "; + mysql_query("UPDATE clan_k_list SET anzeige='0' WHERE id='$clan_nachricht[id]' LIMIT 1"); +} + +/*if($user_ida[post]) { + $nachricht = mysql_fetch_assoc(mysql_query("SELECT count(id) as anzahl FROM nachricht WHERE aktiv='1' AND besitzer='$user_ida[id]' LIMIT 1")); + + if($nachricht['anzahl'] > 0) { + print ' '; + mysql_query("UPDATE nachricht SET aktiv='0' WHERE besitzer='$user_ida[id]'"); + } +} +*/ +?> \ No newline at end of file diff --git a/ag/include/config/ads_example.inc.php b/ag/include/config/ads_example.inc.php new file mode 100644 index 0000000..967fbcd --- /dev/null +++ b/ag/include/config/ads_example.inc.php @@ -0,0 +1,36 @@ + \ No newline at end of file diff --git a/ag/include/config/awards_example.inc.php b/ag/include/config/awards_example.inc.php new file mode 100644 index 0000000..133d3bc --- /dev/null +++ b/ag/include/config/awards_example.inc.php @@ -0,0 +1,12 @@ +LGPL'; + +?> \ No newline at end of file diff --git a/ag/include/config/db_example.inc.php b/ag/include/config/db_example.inc.php new file mode 100644 index 0000000..91d556f --- /dev/null +++ b/ag/include/config/db_example.inc.php @@ -0,0 +1,25 @@ + \ No newline at end of file diff --git a/ag/include/config/partner_example.inc.php b/ag/include/config/partner_example.inc.php new file mode 100644 index 0000000..1abf65e --- /dev/null +++ b/ag/include/config/partner_example.inc.php @@ -0,0 +1,16 @@ +Animedimension'; +$partner[] = 'Narutobattle'; +$partner[] = 'Narutogame'; +$partner[] = 'x-Fighters'; + + +?> \ No newline at end of file diff --git a/ag/include/config/server_example.inc.php b/ag/include/config/server_example.inc.php new file mode 100644 index 0000000..5aeba3f --- /dev/null +++ b/ag/include/config/server_example.inc.php @@ -0,0 +1,23 @@ + diff --git a/ag/include/config/settings_example.inc.php b/ag/include/config/settings_example.inc.php new file mode 100644 index 0000000..1abde3a --- /dev/null +++ b/ag/include/config/settings_example.inc.php @@ -0,0 +1,15 @@ + \ No newline at end of file diff --git a/ag/include/config/toplists_example.inc.php b/ag/include/config/toplists_example.inc.php new file mode 100644 index 0000000..70bcec3 --- /dev/null +++ b/ag/include/config/toplists_example.inc.php @@ -0,0 +1,20 @@ +'; +//$toplist[] = 'Animexx Topsites'; +//$toplist[] = ''; +//$toplist[] = ''; +$toplist[] = ''; +$toplist[] = 'Anime-Toplist.de'; +$toplist[] = 'ATalk - Anime / Manga Topliste'; +$toplist[] = 'AnimeTop.de - Toplist'; + + +?> \ No newline at end of file diff --git a/ag/include/designfunctions.inc.php b/ag/include/designfunctions.inc.php new file mode 100644 index 0000000..7e2165e --- /dev/null +++ b/ag/include/designfunctions.inc.php @@ -0,0 +1,99 @@ +'.$username.''; + } else{ + return ''.$clanpre.' '.$username.' '.$clansu.''; + } +} + +function displayClanLink($clanid, $clanname){ + return ''.$clanname.''; +} + +function displayHistoryBackLink(){ + return 'zurück'; +} + +function displayIndexBackLink(){ + return 'zurück'; +} + +function displayCharLink($charid, $charname, $img = NULL, $clanpre = NULL, $clansu = NUL){ + if($clanpre !== NULL && $clansu !== NULL){ + $charname = $clanpre.' '.$charname.' '.$clansu; + } + if($img === NULL){ + return ''.$charname.''; + } else{ + return ''.$charname.'
    '; + } +} + +function displayItemLink($tablename, $itemid, $itemname){ + if($itemname != 'Geheim!'){ + return ''.$itemname.''; + } + return $itemname; +} + +function displayAuktionsLink($kategorie,$itemnamepart,$itemname,$entriesPerSite,$pageNumber,$maxPrice){ + return 'Hier Klicken um Auktionen des Items '.$itemname.' anzeigen zu lassen!'; +} + +// Soll die alte displayPagelinks ersetzen +function displayPagelinksNew($entriesPerPage, $totalEntries, $aktualPage, $url){ + $maxPages = ceil($totalEntries/$entriesPerPage); + return displayPagelinks($aktualPage, $maxPages, $url); +} + +function displayPagelinks($aktualPage, $maxPages, $url){ + // Erstmal die link vorher/nachher + $vorher = 'vorherige Seite'; + $nachher = 'nächste Seite'; + $puffer = ''; + $search = array('/###PAGE###/','/###LABEL###/'); + + if(0 < $aktualPage){ + $vorher = ''.preg_replace($search,array($aktualPage-1,'vorherige Seite'),$url).''; + } + if($maxPages-1 > $aktualPage){ + $nachher = ''.preg_replace($search,array($aktualPage+1,'nächste Seite'),$url).''; + } + + $normalStep = 1; + $width=0; + if($maxPages > 50){ + $normalStep = 10; + $width = 5; + } else if($maxPages > 30){ + $normalStep = 5; + $width = 15; + } + $min = $aktualPage-$width+1; + $max = $aktualPage+$width+1; + for($i=1;$i<=$maxPages;$i++){ + if($i == 1 || $i%$normalStep == 0 || $i >= $min && $i <= $max){ + $puffer.=''.preg_replace($search,Array($i-1,$i),$url).''; + } + } + return ''.$vorher.$puffer.$nachher.'
    '; +} + +function displayMoney($value){ + return number_format($value,0,'','.').' ¥'; +} + +function displayCount($value){ + return number_format($value,0,'','.'); +} + +?> \ No newline at end of file diff --git a/ag/include/donate.inc.php b/ag/include/donate.inc.php new file mode 100644 index 0000000..a541b92 --- /dev/null +++ b/ag/include/donate.inc.php @@ -0,0 +1,54 @@ + 100){ + $other = 100; + $width = 0; + } + return '
     '.$row['saldo'].' €'.($kosten*12).' € 
    '; +} + +function getSpenden($databasename){ + $spendeline = ''; + $qry = mysql_query('Select * from '.$databasename.'.umsatz where kommentar like \'%Spende%\' order by datum'); + while($row = mysql_fetch_assoc($qry)){ + $spendeline .= ''; + } + $spendeline .= '
    '. $row['instanz'] . ''.$row['kommentar'].''.$row['betrag'].' '.$row['waehrung'].''.$row['datum'].'
    '; + return $spendeline; +} + +?> diff --git a/ag/include/erstellfunctions.inc.php b/ag/include/erstellfunctions.inc.php new file mode 100644 index 0000000..03b3fb9 --- /dev/null +++ b/ag/include/erstellfunctions.inc.php @@ -0,0 +1,215 @@ +Slots available: '.$slots_avail.'
    '; + + if($slots_used >= $user['char_max']){ + displayErrorMessage(NULL,'Alle Slots sind schon belegt!!',displayHistoryBackLink()); + return false; + } + // Slotüberprüfung beendet! + + $sql = 'Insert into chars(name, starke, verteidigung, speed, glueck, ausdauer, hp, mp, level, type, rasse, besitzer, char_type, training_points, lernpunkte, bild, exp) ' . + 'values(\''.$newname.'\',' . + ' '.$Starke.',' . + ' '.$Verteidigung.',' . + ' '.$Geschwindigkeit.',' . + ' '.$Gluck.',' . + ' '.$Ausdauer.',' . + ' \''.$HP.','.$HP.'\',' . + ' \''.$MP.','.$MP.'\',' . + ' 1,' . + ' \''.$type.'\',' . + ' \''.$specialcharname.'\',' . + ' '.$user['id'].',' . + ' \''.$c_type.'\',' . + ' '.$trainingspoints.',' . + ' 0, ' . + '\''.$picture.'\', '. + '\'0,'.calculateRequiredExpChars(1).'\'' . + ')'; +// echo $sql.'
    '; + $identifier = mysql_query($sql); + if($identifier == FALSE){ + if(mysql_fetch_assoc(mysql_query('Select * from chars where name = \''.$newname.'\''))){ + displayErrorMessage(NULL,'Name schon vorhanden!!',displayHistoryBackLink()); + } else{ + displayErrorMessage(NULL,'Erstellen fehlgeschlagen!!',displayHistoryBackLink()); + } + return false; // Hat nich geklappt + } + + $charsw_id = mysql_fetch_assoc(mysql_query('SELECT id FROM chars WHERE name=\''.$newname.'\'')); + + mysql_query('INSERT lernen SET at_id=1, aktiv=1, besitzer='.$charsw_id['id'].', name=\'Schlag\', dauer=0'); + mysql_query('INSERT lernen SET at_id=2, aktiv=1, besitzer='.$charsw_id['id'].', name=\'Kick\', dauer=0'); + mysql_query('INSERT lernen SET at_id=3, aktiv=1, besitzer='.$charsw_id['id'].', name=\'Block\', dauer=0'); + + return true; // Hat geklappt +} + +?> diff --git a/ag/include/exp.inc.php b/ag/include/exp.inc.php new file mode 100644 index 0000000..ea839ea --- /dev/null +++ b/ag/include/exp.inc.php @@ -0,0 +1,196 @@ +'; + mysql_query($sql); + } + + // Sooo und nun gehts darum ob wir neue Attacken lernen können + + // Ersma die ganzen Infos laden + $sql = 'SELECT * FROM lernen where besitzer = '.$char_id; + $qry = mysql_query($sql); + while($row = mysql_fetch_assoc($qry)){ + $lern[$row['at_id']] = $row; // Zum späteren Check ob die Reqs erfüllt sind + $atkid[] = $row['at_id']; // Zum ausschliessen der Attacken + } + + // Wir können jetzt schon die Attacken ausschließen, die wir schon können!! + if(count($atkid) > 0){ + $zusatz = ' AND id NOT IN('.join($atkid,',').')'; + } + + // Lernbare Attacken auswählen + if(!is_null($char['frucht'])){ + $sql = 'select * from attacken where (Frucht is NULL or Frucht = (Select id from wochen_markt where item = \''.$char['frucht'].'\')) and (rassen != \'\' and rassen != \'0\') and level <= '.$char['level'].$zusatz; + } else { + $sql = 'select * from attacken where (Frucht is NULL) and (rassen != \'\' and rassen != \'0\') and level <= '.$char['level'].$zusatz; + } + +// echo $sql.'
    '; + + $qry = mysql_query($sql); + + // Das geht leider nicht mit dieser Datenstruktur direkt auszuwählen + $raceid[] = getCharRaceId($char_id); + if(!is_null(getFusionRaceId($char_id))){ + $raceid[] = getFusionRaceId($char_id); + } + + // So und nun arbeite jede Attacke durch die nur im geringsten Lernbar sein könnte ... + while($row = mysql_fetch_assoc($qry)) { + // Erstmal checken ob es eine Fruchtattacke ist (durch die SQL-Anweisung werden alle nicht zutreffenden Früchte ausgeblockt) + $learnable = false; + if(!is_null($row['Frucht'])){ + // Ok es is ne Frucht-attacke :) Also können wir sie lernen :) + $learnable = true; + } else { + // Ok, dann müssen wir die Rasse checken :) + $races = preg_split('#,#', $row['rassen']); + for($i=0;$i'; + $learnable = false; + break; + } + } + } + + if($learnable){ + mysql_query('INSERT lernen SET name=\''.$row['name'].'\', at_id=\''.$row['id'].'\', besitzer=\''.$char_id.'\', aktiv=\'1\''); + echo ''; + } + } +} + +function addExpToChar($char_id, $n_exp){ + $char = getChar($char_id, false); // We really want the actual char!! + $char_exp = explode(',', $char['exp']); + $char_exp[0] += $n_exp; + $lvls = 0; + $tp = 0; + $lp = 0; + while($char_exp[0] >= $char_exp[1]){ + // Level UP!! + $lvls++; + $char['level']++; + + $char_exp[0] -= $char_exp[1]; + $char_exp[1] = calculateRequiredExpChars($char['level']); + $tp += calculateTrainingPoints($char['level']); + $lp += 10; + } + + if($lvls > 0){ // Ist Char um mindestens ein Level gestiegen? + echo ''; + $sql = 'Update chars set exp = \''.$char_exp[0].','.$char_exp[1].'\', lernpunkte = lernpunkte +'.$lp.', training_points = training_points + '.$tp.', level = level + '.$lvls.' where id = '.$char_id; + } else { + $sql = 'Update chars set exp = \''.$char_exp[0].','.$char_exp[1].'\' where id = '.$char_id; + } +// echo $sql.'
    '; + mysql_query($sql); + + $char = getChar($char_id, false); // We really want the actual char!! + if($char['level'] > 25) { + // remove this char out of the registration of the beginners tournament + mysql_query('Delete from turnier1 where art = \'klein\' and charakter = \''.$char_id.'\''); + } +} + +function addExpToArena($user_id, $n_exp){ + $sql = 'SELECT * from arena where besitzer = '.$user_id; + $qry = mysql_query($sql); + $arena = mysql_fetch_assoc($qry); + $arena_exp = explode(',', $arena['exp']); + $arena_exp[0] += $n_exp; + $lvls = 0; + while($arena_exp[0] >= $arena_exp[1]){ + // Level UP!! + $lvls++; + $arena['level']++; + + $arena_exp[0] -= $arena_exp[1]; + $arena_exp[1] = calculateRequiredExpArena($arena['level']); + } + if($lvls > 0){ +// mysql_query("UPDATE arena SET exp='$ne_exp1,$new_exp', level='$level1', skill='$skill_points' WHERE besitzer='$user_ida[id]' LIMIT 1"); + echo ''; + mysql_query('Update arena set exp=\''.$arena_exp[0].','.$arena_exp[1].'\', level='.$arena['level'].', skill=skill+'.$lvls.' WHERE besitzer='.$user_id); + } else{ + mysql_query('Update arena set exp=\''.$arena_exp[0].','.$arena_exp[1].'\' WHERE besitzer='.$user_id); + } +} + +?> \ No newline at end of file diff --git a/ag/include/faq.inc.php b/ag/include/faq.inc.php new file mode 100644 index 0000000..f3daf27 --- /dev/null +++ b/ag/include/faq.inc.php @@ -0,0 +1,146 @@ +  ',$values['node']['body']).$app2."\n"; + } + $keys = array_keys($values); + $i = 1; + foreach($keys as $key){ + if(is_numeric($key)){ + $string .= getContextRec($number.($i++).'.',$values[$key],$pre1, $pre2, $app1, $app2); + } + } + return $string; +} + +function getContext($pre1, $pre2, $app1, $app2){ + $val = getAllFaqEntries(); + $ret = getContextRec("",$val, $pre1, $pre2, $app1, $app2); + return $ret; +} + +function getEntry($faqentry){ + $sql = 'Select * from faq_entries WHERE id = '.$faqentry; + $qry = mysql_query($sql); + return mysql_fetch_assoc($qry); +} + +function updateEntry($faqentry, $parent,$header,$body){ + $parentpart = $parent!=null?'parent = '.$parent.',':''; + $sql = 'UPDATE faq_entries SET '.$parentpart.' header = \''.encodeNoHTMLWithBB($header).'\', body = \''.encodeNoHTMLWithBB($body).'\' WHERE id = '.$faqentry; + mysql_query($sql); +} + +function moveUp($faqentry){ + $entry = getEntry($faqentry); + $sql = 'Select * from faq_entries WHERE parent = '.$entry['parent'].' AND id < '.$entry['id'].' order by id desc LIMIT 1'; + $qry = mysql_query($sql); + $entry2 = mysql_fetch_assoc($qry); + if(!$entry2){ // Er ist schon der höchste + return; + } + $sql2 = 'Select * from faq_entries WHERE parent = '.$faqentry; + $qry2 = mysql_query($sql2); + while($row = mysql_fetch_assoc($qry2)){ + $ids[] = $row['id']; + } + mysql_query('UPDATE faq_entries SET header = \''.$entry2['header'].'\', body = \''.$entry2['body'].'\' where id = '.$entry['id']); + mysql_query('UPDATE faq_entries SET header = \''.$entry['header'].'\', body = \''.$entry['body'].'\' where id = '.$entry2['id']); + + mysql_query('Update faq_entries SET parent = '.$entry['id'].' where parent = '.$entry2['id']); + mysql_query('Update faq_entries SET parent = '.$entry2['id'].' where id IN ('.join($ids, ',').')'); +} + +function moveDown($faqentry){ + $entry = getEntry($faqentry); + $sql = 'Select * from faq_entries WHERE parent = '.$entry['parent'].' AND id > '.$entry['id'].' order by id asc LIMIT 1'; + $qry = mysql_query($sql); + $entry2 = mysql_fetch_assoc($qry); + if(!$entry2){ // Er ist schon der höchste + return; + } + $sql2 = 'Select * from faq_entries WHERE parent = '.$faqentry; + $qry2 = mysql_query($sql2); + while($row = mysql_fetch_assoc($qry2)){ + $ids[] = $row['id']; + } + mysql_query('UPDATE faq_entries SET header = \''.$entry2['header'].'\', body = \''.$entry2['body'].'\' where id = '.$entry['id']); + mysql_query('UPDATE faq_entries SET header = \''.$entry['header'].'\', body = \''.$entry['body'].'\' where id = '.$entry2['id']); + + mysql_query('Update faq_entries SET parent = '.$entry['id'].' where parent = '.$entry2['id']); + mysql_query('Update faq_entries SET parent = '.$entry2['id'].' where id IN ('.join($ids, ',').')'); +} + +function getChildren($faqentry){ + $sql = 'Select * from faq_entries where parent = '.$faqentry.' order by id asc'; + $qry = mysql_query($sql); + while($row = mysql_fetch_assoc($qry)){ + $ret[] = $row; + } + return $ret; +} + +?> \ No newline at end of file diff --git a/ag/include/fehlerausgabe.inc.php b/ag/include/fehlerausgabe.inc.php new file mode 100644 index 0000000..f138cbd --- /dev/null +++ b/ag/include/fehlerausgabe.inc.php @@ -0,0 +1,34 @@ + +
    + + + + + + + + + + + +
     
    +
    + \ No newline at end of file diff --git a/ag/include/halloffame.inc.php b/ag/include/halloffame.inc.php new file mode 100644 index 0000000..4af81a4 --- /dev/null +++ b/ag/include/halloffame.inc.php @@ -0,0 +1,75 @@ +'; + return false; + } + $columns = 'art, runde, datum, charname, username'; + $values = '\''.$title.'\','.$round.','.$date.',\''.$charname.'\',\''.$username.'\''; + + if(is_numeric($charid)){ + $columns .= ',charid'; + $values .= ','.$charid; + } + if(is_numeric($userid)){ + $columns .= ',userid'; + $values .= ','.$userid; + } + $sql = 'INSERT INTO highscore('.$columns.') values('.$values.')'; +// echo $sql.'
    '; + $qry = mysql_query($sql); + return mysql_affected_rows() > 0; +} + +function getHallOfFame($title, $userid) { + $row = mysql_fetch_assoc(mysql_query('Select max(id) as round from online')); + return getHallOfFameFull($row['round'],$title, $userid); +} + +function getHallOfFameFull($round = '', $title = '', $userid = '') { + $sql = 'select count(*) from highscore where runde='.$round.' and userid='.$userid; + $row = mysql_fetch_row($sql); + return $row[0]; +} + +?> \ No newline at end of file diff --git a/ag/include/img.inc.php b/ag/include/img.inc.php new file mode 100644 index 0000000..4b544ae --- /dev/null +++ b/ag/include/img.inc.php @@ -0,0 +1,117 @@ +'; + $row = mysql_fetch_assoc(mysql_query($sql)); + // ID not valid + if($row){ + // TIMEOUT! +// echo $row['compressed_phrase'].' '.$compr_phrase.'
    '; + if($row['delay'] > 5 || strtolower($row['compressed_phrase']) != strtolower($compr_phrase)){ + $sql = 'Insert into bot_image_failures(userid, inserted, valid, used) values('.$user['id'].', \''.$compr_phrase.'\', \''.$row['compressed_phrase'].'\', CURRENT_TIMESTAMP)'; +// echo $sql.'
    '; + mysql_query($sql); + $success = false; + } else{ + $success = true; + } + mysql_query('DELETE from bot_images WHERE id = \'' . $id . '\''); + } else{ + $success = false; + } + return $success; +} + +// Returns the ID of the image +function createImage($id, $user) { + $variants = array ('a','b','c','d','e','f','g','h','i','j','k','l','m','n','p','q','r','s','t','u','v','w','x','y','z', 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); + // Variable Länge + for ($i = 0, $n = mt_rand(4, 6); $i < $n; $i++) { + $char = $variants[mt_rand(0, count($variants)-1)]; + $string .= $char . ' '; + $comp_str .= $char; + } + for (; $i < 6; $i++) { + $string .= ' '; + } + mysql_query('DELETE from bot_images WHERE id = \'' . $id . '\''); + mysql_query('INSERT INTO bot_images(id, phrase, compressed_phrase, created, userid) values(\'' . $id . '\', \'' . $string . '\', \'' . $comp_str . '\', now(), '.$user['id'].')'); + + // Aufräumen (Code wurde ignoriert) + detectNonCodeEnterers(); +} + +function generateImageID(){ + return $id = md5((mt_rand() * time())); +} + +function displayImage($id, $user) { + if ($id !== NULL) { + createImage($id,$user); + $sql = 'SELECT * FROM bot_images WHERE id = \'' . $id . '\''; +// echo $sql.'
    '; + $row = mysql_fetch_assoc(mysql_query($sql)); + if($row){ + $string = $row['phrase']; + $variance = true; + } else{ + $variance = false; + $string = 'ERROR PLEASE RELOAD!'; + } + } else{ + $string = 'ERROR PLEASE RELOAD!'; + $variance = false; + } + + $font_size = 5; + $width = imagefontwidth($font_size) * strlen($string); + $height = imagefontheight($font_size) * 2; + $img = imagecreate($width, $height); + $bg = imagecolorallocate($img, 225, 225, 225); + $black = imagecolorallocate($img, 0, 0, 0); + $len = strlen($string); + for ($i = 0; $i < $len; $i++) { + $xpos = $i * imagefontwidth($font_size); + if($variance){ + $ypos = rand(0, imagefontheight($font_size)); + } else{ + $ypos = imagefontheight($font_size)/2; + } + imagechar($img, $font_size, $xpos, $ypos, $string, $black); + $string = substr($string, 1); + } + header("Content-Type: image/png"); + imagepng($img); + imagedestroy($img); +} +?> \ No newline at end of file diff --git a/ag/include/java/Kopie von markt.js b/ag/include/java/Kopie von markt.js new file mode 100644 index 0000000..fe43ea8 --- /dev/null +++ b/ag/include/java/Kopie von markt.js @@ -0,0 +1,200 @@ +/* + * + * @copyright (c) 2009 animegame.eu + * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence + * + */ + + +var DHTML = 0, DOM = 0, MS = 0, NS = 0, OP = 0; + +function DHTML_init() { + + if (window.opera) { + OP = 1; + } + if(document.getElementById) { + DHTML = 1; + DOM = 1; + } + if(document.all && !OP) { + DHTML = 1; + MS = 1; + } +if(document.layers && !OP) { + DHTML = 1; + NS = 1; + } +} + +function getElem(p1,p2,p3) { + var Elem; + if(DOM) { + if(p1.toLowerCase()=="id") { + if (typeof document.getElementById(p2) == "object") + Elem = document.getElementById(p2); + else Elem = void(0); + return(Elem); + } + else if(p1.toLowerCase()=="name") { + if (typeof document.getElementsByName(p2) == "object") + Elem = document.getElementsByName(p2)[p3]; + else Elem = void(0); + return(Elem); + } + else if(p1.toLowerCase()=="tagname") { + if (typeof document.getElementsByTagName(p2) == "object" || + (OP && typeof document.getElementsByTagName(p2) == "function")) + Elem = document.getElementsByTagName(p2)[p3]; + else Elem = void(0); + return(Elem); + } + else return void(0); + } + else if(MS) { + if(p1.toLowerCase()=="id") { + if (typeof document.all[p2] == "object") + Elem = document.all[p2]; + else Elem = void(0); + return(Elem); + } + else if(p1.toLowerCase()=="tagname") { + if (typeof document.all.tags(p2) == "object") + Elem = document.all.tags(p2)[p3]; + else Elem = void(0); + return(Elem); + } + else if(p1.toLowerCase()=="name") { + if (typeof document[p2] == "object") + Elem = document[p2]; + else Elem = void(0); + return(Elem); + } + else return void(0); + } + else if(NS) { + if(p1.toLowerCase()=="id" || p1.toLowerCase()=="name") { + if (typeof document[p2] == "object") + Elem = document[p2]; + else Elem = void(0); + return(Elem); + } + else if(p1.toLowerCase()=="index") { + if (typeof document.layers[p2] == "object") + Elem = document.layers[p2]; + else Elem = void(0); + return(Elem); + } + else return void(0); + } +} + +function getCont(p1,p2,p3) { + var Cont; + if(DOM && getElem(p1,p2,p3) && getElem(p1,p2,p3).firstChild) { + if(getElem(p1,p2,p3).firstChild.nodeType == 3) + Cont = getElem(p1,p2,p3).firstChild.nodeValue; + else + Cont = ""; + return(Cont); + } + else if(MS && getElem(p1,p2,p3)) { + Cont = getElem(p1,p2,p3).innerText; + return(Cont); + } + else return void(0); +} + +function getAttr(p1,p2,p3,p4) { + var Attr; + if((DOM || MS) && getElem(p1,p2,p3)) { + Attr = getElem(p1,p2,p3).getAttribute(p4); + return(Attr); + } + else if (NS && getElem(p1,p2)) { + if (typeof getElem(p1,p2)[p3] == "object") + Attr=getElem(p1,p2)[p3][p4] + else + Attr=getElem(p1,p2)[p4] + return Attr; + } + else return void(0); +} + +function setCont(p1,p2,p3,p4) { + if(DOM && getElem(p1,p2,p3) && getElem(p1,p2,p3).firstChild) + getElem(p1,p2,p3).firstChild.nodeValue = p4; + else if(MS && getElem(p1,p2,p3)) + getElem(p1,p2,p3).innerText = p4; + else if(NS && getElem(p1,p2,p3)) { + getElem(p1,p2,p3).document.open(); + getElem(p1,p2,p3).document.write(p4); + getElem(p1,p2,p3).document.close(); + } +} + +DHTML_init(); + + +function Menue() { + if(DOM) { + if(MS) + getElem("id","NavLinks",null).style.pixelTop = 200; + // getElem("id","Nav",null).style.top = document.body.scrollTop + window.event.clientY; + else + getElem("id","Nav",null).style.top = window.pageYOffset + window.event.clientY; + } + if(DOM || MS) { + if (!DOM) getElem("id","Nav",null).style.top = document.body.scrollTop + 50; + if (OP) getElem("id","NavLinks",null).style.pixelTop = NavLinksPos; + getElem("id","Nav",null).style.visibility = "visible"; + } + else if(NS) { + getElem("id","Nav",null).top = window.pageYOffset + 50; + getElem("id","Nav",null).visibility = "show"; + } + +} + +function noMenue() { + if(DOM || MS) + getElem("id","Nav",null).style.visibility = "hidden"; + if(NS) + getElem("id","Nav",null).visibility = "hide"; +} + +function handleMove(ev) { + if(!MS) { + Event = ev; + if(Event.screenX < 270) + Menue(); + else if(Event.screenX > 420) + noMenue(); + } +} + +function MShandleMove() { + if(MS) { + if(window.event.clientX < 270) + Menue(); + else if(window.event.clientX > 420) + noMenue(); + } +} + +function Event_init() { + if(DOM && !MS && !OP) { + getElem("tagname","body",0).addEventListener("mousemove", handleMove, true); + } + if(NS) { + document.captureEvents(Event.MOUSEMOVE); + document.onmousemove=handleMove; + } + if (DOM && OP) { + document.onmousemove=handleMove; + NavLinksPos=42; //Position des Bereiches NavLinks + getElem("id","NavLinks",null).style.pixelTop=NavLinksPos; + } + if (MS) getElem("tagname","body",0).onmousemove=MShandleMove; +} + diff --git a/ag/include/java/ag.js b/ag/include/java/ag.js new file mode 100644 index 0000000..fc4d706 --- /dev/null +++ b/ag/include/java/ag.js @@ -0,0 +1,70 @@ +/* + * + * @copyright (c) 2009 animegame.eu + * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence + * + + +Diese Datei soll alle eigenen Skripte umfassen, und das ausnahmslos. +Der Grund ist simpel. Es muss nur noch eine .js Seite im cache liegen und der Javascript +kann schneller starten. + +Not yet finished! + +*/ + +var busy; // Ein kleiner Timer + +function setBusy(value){ + busy = value; +} +function getBusy(){ + return busy; +} + + +// Indexseite +function zeigeKampflisteAn(){ + var Info = window.open("kampf_list.php","","status=no,hotkeys=no,Height=600,Width=820,scrollbars=yes"); +} + +function opera_befreien () { + document.links["befreien"].click(); +} + +// Schatzsuche + +// Darstellen des Textes fuer den Ort +function showText(stadt,reisende,monster,kosten,info,x1,x2,xa1,xa2) +{ + r_x1 = parseInt(x1); + r_xa1 = parseInt(xa1); + r_x2 = parseInt(x2); + r_xa2 = parseInt(xa2); + std = Math.round(Math.sqrt( (r_x1 - r_xa1) * (r_x1 - r_xa1) + (r_x2 - r_xa2) * (r_x2 - r_xa2))/35); + document.getElementById('Textbox').style.visibility='visible'; + document.getElementById('stadt').innerHTML = stadt; + document.getElementById('reisende').innerHTML = 'Reisende:'+reisende; + document.getElementById('monster').innerHTML = 'Monster:'+monster; + document.getElementById('kosten').innerHTML = 'Kosten:'+kosten; + document.getElementById('reisedauer').innerHTML = 'Std:'+std; + document.getElementById('info').innerHTML = info; + document.getElementById('input').innerHTML = ''; +} + +// Abholen +function zeigeKampfberichtAn(site, abholstring){ + var Info = window.open("./"+site+".php?"+abholstring+"", "", "status=no,hotkeys=no,Height=600,Width=820,scrollbars=yes"); +} + +function inkrementiereFeld(feldid, value){ + document.getElementById(feldid).value = parseInt(document.getElementById(feldid).value) + value; +} + +function dekrementiereFeld(feldid, value){ + document.getElementById(feldid).value -= value; +} + +function startePeriodischesInkrementieren(feldid, value){ + +} \ No newline at end of file diff --git a/ag/include/java/arena.js b/ag/include/java/arena.js new file mode 100644 index 0000000..624dfd1 --- /dev/null +++ b/ag/include/java/arena.js @@ -0,0 +1,69 @@ +/* + * + * @copyright (c) 2009 animegame.eu + * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence + * + */ + + + diff --git a/ag/include/java/arena_skill.js b/ag/include/java/arena_skill.js new file mode 100644 index 0000000..2efed87 --- /dev/null +++ b/ag/include/java/arena_skill.js @@ -0,0 +1,106 @@ +/* + * + * @copyright (c) 2009 animegame.eu + * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence + * + */ + + diff --git a/ag/include/java/char.js b/ag/include/java/char.js new file mode 100644 index 0000000..9fe7f5f --- /dev/null +++ b/ag/include/java/char.js @@ -0,0 +1,57 @@ +/* + * + * @copyright (c) 2009 animegame.eu + * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence + * + */ + + \ No newline at end of file diff --git a/ag/include/java/markt.js b/ag/include/java/markt.js new file mode 100644 index 0000000..f803e40 --- /dev/null +++ b/ag/include/java/markt.js @@ -0,0 +1,205 @@ +/* + * + * @copyright (c) 2009 animegame.eu + * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence + * + */ + + +var DHTML = 0, DOM = 0, MS = 0, NS = 0, OP = 0; + +function showText(textid) { +Textbox.style.visible=true; +} + +function DHTML_init() { + + if (window.opera) { + OP = 1; + } + if(document.getElementById) { + DHTML = 1; + DOM = 1; + } + if(document.all && !OP) { + DHTML = 1; + MS = 1; + } +if(document.layers && !OP) { + DHTML = 1; + NS = 1; + } +} + +function getElem(p1,p2,p3) { + var Elem; + if(DOM) { + if(p1.toLowerCase()=="id") { + if (typeof document.getElementById(p2) == "object") + Elem = document.getElementById(p2); + else Elem = void(0); + return(Elem); + } + else if(p1.toLowerCase()=="name") { + if (typeof document.getElementsByName(p2) == "object") + Elem = document.getElementsByName(p2)[p3]; + else Elem = void(0); + return(Elem); + } + else if(p1.toLowerCase()=="tagname") { + if (typeof document.getElementsByTagName(p2) == "object" || + (OP && typeof document.getElementsByTagName(p2) == "function")) + Elem = document.getElementsByTagName(p2)[p3]; + else Elem = void(0); + return(Elem); + } + else return void(0); + } + else if(MS) { + if(p1.toLowerCase()=="id") { + if (typeof document.all[p2] == "object") + Elem = document.all[p2]; + else Elem = void(0); + return(Elem); + } + else if(p1.toLowerCase()=="tagname") { + if (typeof document.all.tags(p2) == "object") + Elem = document.all.tags(p2)[p3]; + else Elem = void(0); + return(Elem); + } + else if(p1.toLowerCase()=="name") { + if (typeof document[p2] == "object") + Elem = document[p2]; + else Elem = void(0); + return(Elem); + } + else return void(0); + } + else if(NS) { + if(p1.toLowerCase()=="id" || p1.toLowerCase()=="name") { + if (typeof document[p2] == "object") + Elem = document[p2]; + else Elem = void(0); + return(Elem); + } + else if(p1.toLowerCase()=="index") { + if (typeof document.layers[p2] == "object") + Elem = document.layers[p2]; + else Elem = void(0); + return(Elem); + } + else return void(0); + } +} + +function getCont(p1,p2,p3) { + var Cont; + if(DOM && getElem(p1,p2,p3) && getElem(p1,p2,p3).firstChild) { + if(getElem(p1,p2,p3).firstChild.nodeType == 3) + Cont = getElem(p1,p2,p3).firstChild.nodeValue; + else + Cont = ""; + return(Cont); + } + else if(MS && getElem(p1,p2,p3)) { + Cont = getElem(p1,p2,p3).innerText; + return(Cont); + } + else return void(0); +} + +function getAttr(p1,p2,p3,p4) { + var Attr; + if((DOM || MS) && getElem(p1,p2,p3)) { + Attr = getElem(p1,p2,p3).getAttribute(p4); + return(Attr); + } + else if (NS && getElem(p1,p2)) { + if (typeof getElem(p1,p2)[p3] == "object") + Attr=getElem(p1,p2)[p3][p4] + else + Attr=getElem(p1,p2)[p4] + return Attr; + } + else return void(0); +} + +function setCont(p1,p2,p3,p4) { + if(DOM && getElem(p1,p2,p3) && getElem(p1,p2,p3).firstChild) + getElem(p1,p2,p3).firstChild.nodeValue = p4; + else if(MS && getElem(p1,p2,p3)) + getElem(p1,p2,p3).innerText = p4; + else if(NS && getElem(p1,p2,p3)) { + getElem(p1,p2,p3).document.open(); + getElem(p1,p2,p3).document.write(p4); + getElem(p1,p2,p3).document.close(); + } +} + +DHTML_init(); + + +function Menue() { + if(DOM) { + if(MS) +//getElem("id","Nav",null).style.top = window.event.clientY; +getElem("id","Nav",null).style.left = window.event.clientX; + else +getElem("id","Nav",null).style.top = window.event.clientY; + + } + if(DOM || MS) { + if (!DOM) getElem("id","Nav",null).style.top = document.body.scrollTop + 50; + if (OP) getElem("id","NavLinks",null).style.pixelTop = NavLinksPos; + getElem("id","Nav",null).style.visibility = "visible"; + } + else if(NS) { + getElem("id","Nav",null).top = window.pageYOffset + 50; + getElem("id","Nav",null).visibility = "show"; + } + +} + +function noMenue() { + if(DOM || MS) + getElem("id","Nav",null).style.visibility = "hidden"; + if(NS) + getElem("id","Nav",null).visibility = "hide"; +} +function handleMove(ev) { + if(!MS) { + Event = ev; + if(window.event.shiftKey) + Menue(); + else + noMenue(); + } +} + +function MShandleMove() { + if(MS) { + if(window.event.shiftKey) + Menue(); + else + noMenue(); + } + +} + + +function Event_init() { + if(DOM && !MS && !OP) { + getElem("tagname","body",0).addEventListener("mousemove", handleMove, true); + } + if(NS) { + document.captureEvents(Event.MOUSEMOVE); + document.onmousemove=handleMove; + } + if (DOM && OP) { + document.onmousemove=handleMove; + NavLinksPos=42; //Position des Bereiches NavLinks + getElem("id","NavLinks",null).style.pixelTop=NavLinksPos; + } + if (MS) getElem("tagname","body",0).onmousemove=MShandleMove; +} diff --git a/ag/include/java/overlib.js b/ag/include/java/overlib.js new file mode 100644 index 0000000..3f16b26 --- /dev/null +++ b/ag/include/java/overlib.js @@ -0,0 +1,1491 @@ +//\///// +//\ overLIB 4.21 - You may not remove or change this notice. +//\ Copyright Erik Bosrup 1998-2004. All rights reserved. +//\ +//\ Contributors are listed on the homepage. +//\ This file might be old, always check for the latest version at: +//\ http://www.bosrup.com/web/overlib/ +//\ +//\ Please read the license agreement (available through the link above) +//\ before using overLIB. Direct any licensing questions to erik@bosrup.com. +//\ +//\ Do not sell this as your own work or remove this copyright notice. +//\ For full details on copying or changing this script please read the +//\ license agreement at the link above. Please give credit on sites that +//\ use overLIB and submit changes of the script so other people can use +//\ them as well. +// $Revision: 1.119 $ $Date: 2005/07/02 23:41:44 $ +//\///// +//\mini + +//////// +// PRE-INIT +// Ignore these lines, configuration is below. +//////// +var olLoaded = 0;var pmStart = 10000000; var pmUpper = 10001000; var pmCount = pmStart+1; var pmt=''; var pms = new Array(); var olInfo = new Info('4.21', 1); +var FREPLACE = 0; var FBEFORE = 1; var FAFTER = 2; var FALTERNATE = 3; var FCHAIN=4; +var olHideForm=0; // parameter for hiding SELECT and ActiveX elements in IE5.5+ +var olHautoFlag = 0; // flags for over-riding VAUTO and HAUTO if corresponding +var olVautoFlag = 0; // positioning commands are used on the command line +var hookPts = new Array(), postParse = new Array(), cmdLine = new Array(), runTime = new Array(); +// for plugins +registerCommands('donothing,inarray,caparray,sticky,background,noclose,caption,left,right,center,offsetx,offsety,fgcolor,bgcolor,textcolor,capcolor,closecolor,width,border,cellpad,status,autostatus,autostatuscap,height,closetext,snapx,snapy,fixx,fixy,relx,rely,fgbackground,bgbackground,padx,pady,fullhtml,above,below,capicon,textfont,captionfont,closefont,textsize,captionsize,closesize,timeout,function,delay,hauto,vauto,closeclick,wrap,followmouse,mouseoff,closetitle,cssoff,compatmode,cssclass,fgclass,bgclass,textfontclass,captionfontclass,closefontclass'); + +//////// +// DEFAULT CONFIGURATION +// Settings you want everywhere are set here. All of this can also be +// changed on your html page or through an overLIB call. +//////// +if (typeof ol_fgcolor=='undefined') var ol_fgcolor="#CCCCFF"; +if (typeof ol_bgcolor=='undefined') var ol_bgcolor="#333399"; +if (typeof ol_textcolor=='undefined') var ol_textcolor="#000000"; +if (typeof ol_capcolor=='undefined') var ol_capcolor="#FFFFFF"; +if (typeof ol_closecolor=='undefined') var ol_closecolor="#9999FF"; +if (typeof ol_textfont=='undefined') var ol_textfont="Verdana,Arial,Helvetica"; +if (typeof ol_captionfont=='undefined') var ol_captionfont="Verdana,Arial,Helvetica"; +if (typeof ol_closefont=='undefined') var ol_closefont="Verdana,Arial,Helvetica"; +if (typeof ol_textsize=='undefined') var ol_textsize="1"; +if (typeof ol_captionsize=='undefined') var ol_captionsize="1"; +if (typeof ol_closesize=='undefined') var ol_closesize="1"; +if (typeof ol_width=='undefined') var ol_width="200"; +if (typeof ol_border=='undefined') var ol_border="1"; +if (typeof ol_cellpad=='undefined') var ol_cellpad=2; +if (typeof ol_offsetx=='undefined') var ol_offsetx=0; +if (typeof ol_offsety=='undefined') var ol_offsety=0; +if (typeof ol_text=='undefined') var ol_text="Default Text"; +if (typeof ol_cap=='undefined') var ol_cap=""; +if (typeof ol_sticky=='undefined') var ol_sticky=1; +if (typeof ol_background=='undefined') var ol_background=""; +if (typeof ol_close=='undefined') var ol_close="Close"; +if (typeof ol_hpos=='undefined') var ol_hpos=RIGHT; +if (typeof ol_status=='undefined') var ol_status=""; +if (typeof ol_autostatus=='undefined') var ol_autostatus=0; +if (typeof ol_height=='undefined') var ol_height=-1; +if (typeof ol_snapx=='undefined') var ol_snapx=0; +if (typeof ol_snapy=='undefined') var ol_snapy=0; +if (typeof ol_fixx=='undefined') var ol_fixx=-1; +if (typeof ol_fixy=='undefined') var ol_fixy=-1; +if (typeof ol_relx=='undefined') var ol_relx=null; +if (typeof ol_rely=='undefined') var ol_rely=null; +if (typeof ol_fgbackground=='undefined') var ol_fgbackground=""; +if (typeof ol_bgbackground=='undefined') var ol_bgbackground=""; +if (typeof ol_padxl=='undefined') var ol_padxl=1; +if (typeof ol_padxr=='undefined') var ol_padxr=1; +if (typeof ol_padyt=='undefined') var ol_padyt=1; +if (typeof ol_padyb=='undefined') var ol_padyb=1; +if (typeof ol_fullhtml=='undefined') var ol_fullhtml=1; +if (typeof ol_vpos=='undefined') var ol_vpos=BELOW; +if (typeof ol_aboveheight=='undefined') var ol_aboveheight=1; +if (typeof ol_capicon=='undefined') var ol_capicon=""; +if (typeof ol_frame=='undefined') var ol_frame=self; +if (typeof ol_timeout=='undefined') var ol_timeout=0; +if (typeof ol_function=='undefined') var ol_function=null; +if (typeof ol_delay=='undefined') var ol_delay=0; +if (typeof ol_hauto=='undefined') var ol_hauto=0; +if (typeof ol_vauto=='undefined') var ol_vauto=0; +if (typeof ol_closeclick=='undefined') var ol_closeclick=1; +if (typeof ol_wrap=='undefined') var ol_wrap=0; +if (typeof ol_followmouse=='undefined') var ol_followmouse=1; +if (typeof ol_mouseoff=='undefined') var ol_mouseoff=0; +if (typeof ol_closetitle=='undefined') var ol_closetitle='Close'; +if (typeof ol_compatmode=='undefined') var ol_compatmode=0; +if (typeof ol_css=='undefined') var ol_css=CSSOFF; +if (typeof ol_fgclass=='undefined') var ol_fgclass=""; +if (typeof ol_bgclass=='undefined') var ol_bgclass=""; +if (typeof ol_textfontclass=='undefined') var ol_textfontclass=""; +if (typeof ol_captionfontclass=='undefined') var ol_captionfontclass=""; +if (typeof ol_closefontclass=='undefined') var ol_closefontclass=""; + +//////// +// ARRAY CONFIGURATION +//////// + +// You can use these arrays to store popup text here instead of in the html. +if (typeof ol_texts=='undefined') var ol_texts = new Array("Text 0", "Text 1"); +if (typeof ol_caps=='undefined') var ol_caps = new Array("Caption 0", "Caption 1"); + +//////// +// END OF CONFIGURATION +// Don't change anything below this line, all configuration is above. +//////// + + + + + +//////// +// INIT +//////// +// Runtime variables init. Don't change for config! +var o3_text=""; +var o3_cap=""; +var o3_sticky=0; +var o3_background=""; +var o3_close="Close"; +var o3_hpos=RIGHT; +var o3_offsetx=2; +var o3_offsety=2; +var o3_fgcolor=""; +var o3_bgcolor=""; +var o3_textcolor=""; +var o3_capcolor=""; +var o3_closecolor=""; +var o3_width=100; +var o3_border=1; +var o3_cellpad=2; +var o3_status=""; +var o3_autostatus=0; +var o3_height=-1; +var o3_snapx=0; +var o3_snapy=0; +var o3_fixx=-1; +var o3_fixy=-1; +var o3_relx=null; +var o3_rely=null; +var o3_fgbackground=""; +var o3_bgbackground=""; +var o3_padxl=0; +var o3_padxr=0; +var o3_padyt=0; +var o3_padyb=0; +var o3_fullhtml=0; +var o3_vpos=BELOW; +var o3_aboveheight=0; +var o3_capicon=""; +var o3_textfont="Verdana,Arial,Helvetica"; +var o3_captionfont="Verdana,Arial,Helvetica"; +var o3_closefont="Verdana,Arial,Helvetica"; +var o3_textsize="1"; +var o3_captionsize="1"; +var o3_closesize="1"; +var o3_frame=self; +var o3_timeout=0; +var o3_timerid=0; +var o3_allowmove=0; +var o3_function=null; +var o3_delay=0; +var o3_delayid=0; +var o3_hauto=0; +var o3_vauto=0; +var o3_closeclick=0; +var o3_wrap=0; +var o3_followmouse=1; +var o3_mouseoff=0; +var o3_closetitle=''; +var o3_compatmode=0; +var o3_css=CSSOFF; +var o3_fgclass=""; +var o3_bgclass=""; +var o3_textfontclass=""; +var o3_captionfontclass=""; +var o3_closefontclass=""; + +// Display state variables +var o3_x = 0; +var o3_y = 0; +var o3_showingsticky = 0; +var o3_removecounter = 0; + +// Our layer +var over_= null; +var fnRef, hoveringSwitch = false; +var olHideDelay; + +// Decide browser version +var isMac = (navigator.userAgent.indexOf("Mac") != -1); +var olOp = (navigator.userAgent.toLowerCase().indexOf('opera') > -1 && document.createTextNode); // Opera 7 +var olNs4 = (navigator.appName=='Netscape' && parseInt(navigator.appVersion) == 4); +var olNs6 = (document.getElementById) ? true : false; +var olKq = (olNs6 && /konqueror/i.test(navigator.userAgent)); +var olIe4 = (document.all) ? true : false; +var olIe5 = false; +var olIe55 = false; // Added additional variable to identify IE5.5+ +var docRoot = 'document.body'; + +// Resize fix for NS4.x to keep track of layer +if (olNs4) { + var oW = window.innerWidth; + var oH = window.innerHeight; + window.onresize = function() { if (oW != window.innerWidth || oH != window.innerHeight) location.reload(); } +} + +// Microsoft Stupidity Check(tm). +if (olIe4) { + var agent = navigator.userAgent; + if (/MSIE/.test(agent)) { + var versNum = parseFloat(agent.match(/MSIE[ ](\d\.\d+)\.*/i)[1]); + if (versNum >= 5){ + olIe5=true; + olIe55=(versNum>=5.5&&!olOp) ? true : false; + if (olNs6) olNs6=false; + } + } + if (olNs6) olIe4 = false; +} + +// Check for compatability mode. +if (document.compatMode && document.compatMode == 'CSS1Compat') { + docRoot= ((olIe4 && !olOp) ? 'document.documentElement' : docRoot); +} + +// Add window onload handlers to indicate when all modules have been loaded +// For Netscape 6+ and Mozilla, uses addEventListener method on the window object +// For IE it uses the attachEvent method of the window object and for Netscape 4.x +// it sets the window.onload handler to the OLonload_handler function for Bubbling +if(window.addEventListener) window.addEventListener("load",OLonLoad_handler,false); +else if (window.attachEvent) window.attachEvent("onload",OLonLoad_handler); + +var capExtent; + +//////// +// PUBLIC FUNCTIONS +//////// + +// overlib(arg0,...,argN) +// Loads parameters into global runtime variables. +function overlib() { + if (!olLoaded || isExclusive(overlib.arguments)) return true; + if (olCheckMouseCapture) olMouseCapture(); + if (over_) { + over_ = (typeof over_.id != 'string') ? o3_frame.document.all['overDiv'] : over_; + cClick(); + } + + // Load defaults to runtime. + olHideDelay=0; + o3_text=ol_text; + o3_cap=ol_cap; + o3_sticky=ol_sticky; + o3_background=ol_background; + o3_close=ol_close; + o3_hpos=ol_hpos; + o3_offsetx=ol_offsetx; + o3_offsety=ol_offsety; + o3_fgcolor=ol_fgcolor; + o3_bgcolor=ol_bgcolor; + o3_textcolor=ol_textcolor; + o3_capcolor=ol_capcolor; + o3_closecolor=ol_closecolor; + o3_width=ol_width; + o3_border=ol_border; + o3_cellpad=ol_cellpad; + o3_status=ol_status; + o3_autostatus=ol_autostatus; + o3_height=ol_height; + o3_snapx=ol_snapx; + o3_snapy=ol_snapy; + o3_fixx=ol_fixx; + o3_fixy=ol_fixy; + o3_relx=ol_relx; + o3_rely=ol_rely; + o3_fgbackground=ol_fgbackground; + o3_bgbackground=ol_bgbackground; + o3_padxl=ol_padxl; + o3_padxr=ol_padxr; + o3_padyt=ol_padyt; + o3_padyb=ol_padyb; + o3_fullhtml=ol_fullhtml; + o3_vpos=ol_vpos; + o3_aboveheight=ol_aboveheight; + o3_capicon=ol_capicon; + o3_textfont=ol_textfont; + o3_captionfont=ol_captionfont; + o3_closefont=ol_closefont; + o3_textsize=ol_textsize; + o3_captionsize=ol_captionsize; + o3_closesize=ol_closesize; + o3_timeout=ol_timeout; + o3_function=ol_function; + o3_delay=ol_delay; + o3_hauto=ol_hauto; + o3_vauto=ol_vauto; + o3_closeclick=ol_closeclick; + o3_wrap=ol_wrap; + o3_followmouse=ol_followmouse; + o3_mouseoff=ol_mouseoff; + o3_closetitle=ol_closetitle; + o3_css=ol_css; + o3_compatmode=ol_compatmode; + o3_fgclass=ol_fgclass; + o3_bgclass=ol_bgclass; + o3_textfontclass=ol_textfontclass; + o3_captionfontclass=ol_captionfontclass; + o3_closefontclass=ol_closefontclass; + + setRunTimeVariables(); + + fnRef = ''; + + // Special for frame support, over must be reset... + o3_frame = ol_frame; + + if(!(over_=createDivContainer())) return false; + + parseTokens('o3_', overlib.arguments); + if (!postParseChecks()) return false; + + if (o3_delay == 0) { + return runHook("olMain", FREPLACE); + } else { + o3_delayid = setTimeout("runHook('olMain', FREPLACE)", o3_delay); + return false; + } +} + +// Clears popups if appropriate +function nd(time) { + if (olLoaded && !isExclusive()) { + hideDelay(time); // delay popup close if time specified + + if (o3_removecounter >= 1) { o3_showingsticky = 0 }; + + if (o3_showingsticky == 0) { + o3_allowmove = 0; + if (over_ != null && o3_timerid == 0) runHook("hideObject", FREPLACE, over_); + } else { + o3_removecounter++; + } + } + + return true; +} + +// The Close onMouseOver function for stickies +function cClick() { + if (olLoaded) { + runHook("hideObject", FREPLACE, over_); + o3_showingsticky = 0; + } + return false; +} + +// Method for setting page specific defaults. +function overlib_pagedefaults() { + parseTokens('ol_', overlib_pagedefaults.arguments); +} + + +//////// +// OVERLIB MAIN FUNCTION +//////// + +// This function decides what it is we want to display and how we want it done. +function olMain() { + var layerhtml, styleType; + runHook("olMain", FBEFORE); + + if (o3_background!="" || o3_fullhtml) { + // Use background instead of box. + layerhtml = runHook('ol_content_background', FALTERNATE, o3_css, o3_text, o3_background, o3_fullhtml); + } else { + // They want a popup box. + styleType = (pms[o3_css-1-pmStart] == "cssoff" || pms[o3_css-1-pmStart] == "cssclass"); + + // Prepare popup background + if (o3_fgbackground != "") o3_fgbackground = "background=\""+o3_fgbackground+"\""; + if (o3_bgbackground != "") o3_bgbackground = (styleType ? "background=\""+o3_bgbackground+"\"" : o3_bgbackground); + + // Prepare popup colors + if (o3_fgcolor != "") o3_fgcolor = (styleType ? "bgcolor=\""+o3_fgcolor+"\"" : o3_fgcolor); + if (o3_bgcolor != "") o3_bgcolor = (styleType ? "bgcolor=\""+o3_bgcolor+"\"" : o3_bgcolor); + + // Prepare popup height + if (o3_height > 0) o3_height = (styleType ? "height=\""+o3_height+"\"" : o3_height); + else o3_height = ""; + + // Decide which kinda box. + if (o3_cap=="") { + // Plain + layerhtml = runHook('ol_content_simple', FALTERNATE, o3_css, o3_text); + } else { + // With caption + if (o3_sticky) { + // Show close text + layerhtml = runHook('ol_content_caption', FALTERNATE, o3_css, o3_text, o3_cap, o3_close); + } else { + // No close text + layerhtml = runHook('ol_content_caption', FALTERNATE, o3_css, o3_text, o3_cap, ""); + } + } + } + + // We want it to stick! + if (o3_sticky) { + if (o3_timerid > 0) { + clearTimeout(o3_timerid); + o3_timerid = 0; + } + o3_showingsticky = 1; + o3_removecounter = 0; + } + + // Created a separate routine to generate the popup to make it easier + // to implement a plugin capability + if (!runHook("createPopup", FREPLACE, layerhtml)) return false; + + // Prepare status bar + if (o3_autostatus > 0) { + o3_status = o3_text; + if (o3_autostatus > 1) o3_status = o3_cap; + } + + // When placing the layer the first time, even stickies may be moved. + o3_allowmove = 0; + + // Initiate a timer for timeout + if (o3_timeout > 0) { + if (o3_timerid > 0) clearTimeout(o3_timerid); + o3_timerid = setTimeout("cClick()", o3_timeout); + } + + // Show layer + runHook("disp", FREPLACE, o3_status); + runHook("olMain", FAFTER); + + return (olOp && event && event.type == 'mouseover' && !o3_status) ? '' : (o3_status != ''); +} + +//////// +// LAYER GENERATION FUNCTIONS +//////// +// These functions just handle popup content with tags that should adhere to the W3C standards specification. + +// Makes simple table without caption +function ol_content_simple(text) { + var cpIsMultiple = /,/.test(o3_cellpad); + var txt = '
    ' : ((!olNs4&&cpIsMultiple) ? ' style="'+setCellPadStr(o3_cellpad)+'">' : '>'))+(o3_textfontclass ? '' : wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass ? '' : wrapStr(1,o3_textsize))+'
    '; + + set_background(""); + return txt; +} + +// Makes table with caption and optional close link +function ol_content_caption(text,title,close) { + var nameId, txt, cpIsMultiple = /,/.test(o3_cellpad); + var closing, closeevent; + + closing = ""; + closeevent = "onmouseover"; + if (o3_closeclick == 1) closeevent = (o3_closetitle ? "title='" + o3_closetitle +"'" : "") + " onclick"; + if (o3_capicon != "") { + nameId = ' hspace = \"5\"'+' align = \"middle\" alt = \"\"'; + if (typeof o3_dragimg != 'undefined' && o3_dragimg) nameId =' hspace=\"5\"'+' name=\"'+o3_dragimg+'\" id=\"'+o3_dragimg+'\" align=\"middle\" alt=\"Drag Enabled\" title=\"Drag Enabled\"'; + o3_capicon = ''; + } + + if (close != "") + closing = ''+(o3_closefontclass ? '' : wrapStr(0,o3_closesize,'close'))+close+(o3_closefontclass ? '' : wrapStr(1,o3_closesize,'close'))+''; + txt = '
    ' : '>')+(o3_captionfontclass ? '' : ''+wrapStr(0,o3_captionsize,'caption'))+o3_capicon+title+(o3_captionfontclass ? '' : wrapStr(1,o3_captionsize)+'')+''+closing+'
    ' :((!olNs4&&cpIsMultiple) ? ' style="'+setCellPadStr(o3_cellpad)+'">' : '>'))+(o3_textfontclass ? '' : wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass ? '' : wrapStr(1,o3_textsize)) + '
    '; + + set_background(""); + return txt; +} + +// Sets the background picture,padding and lots more. :) +function ol_content_background(text,picture,hasfullhtml) { + if (hasfullhtml) { + txt=text; + } else { + txt='
    '+(o3_textfontclass ? '' : wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass ? '' : wrapStr(1,o3_textsize))+'
    '; + } + + set_background(picture); + return txt; +} + +// Loads a picture into the div. +function set_background(pic) { + if (pic == "") { + if (olNs4) { + over_.background.src = null; + } else if (over_.style) { + over_.style.backgroundImage = "none"; + } + } else { + if (olNs4) { + over_.background.src = pic; + } else if (over_.style) { + over_.style.width=o3_width + 'px'; + over_.style.backgroundImage = "url("+pic+")"; + } + } +} + +//////// +// HANDLING FUNCTIONS +//////// +var olShowId=-1; + +// Displays the popup +function disp(statustext) { + runHook("disp", FBEFORE); + + if (o3_allowmove == 0) { + runHook("placeLayer", FREPLACE); + (olNs6&&olShowId<0) ? olShowId=setTimeout("runHook('showObject', FREPLACE, over_)", 1) : runHook("showObject", FREPLACE, over_); + o3_allowmove = (o3_sticky || o3_followmouse==0) ? 0 : 1; + } + + runHook("disp", FAFTER); + + if (statustext != "") self.status = statustext; +} + +// Creates the actual popup structure +function createPopup(lyrContent){ + runHook("createPopup", FBEFORE); + + if (o3_wrap) { + var wd,ww,theObj = (olNs4 ? over_ : over_.style); + theObj.top = theObj.left = ((olIe4&&!olOp) ? 0 : -10000) + (!olNs4 ? 'px' : 0); + layerWrite(lyrContent); + wd = (olNs4 ? over_.clip.width : over_.offsetWidth); + if (wd > (ww=windowWidth())) { + lyrContent=lyrContent.replace(/\ /g, ' '); + o3_width=ww; + o3_wrap=0; + } + } + + layerWrite(lyrContent); + + // Have to set o3_width for placeLayer() routine if o3_wrap is turned on + if (o3_wrap) o3_width=(olNs4 ? over_.clip.width : over_.offsetWidth); + + runHook("createPopup", FAFTER, lyrContent); + + return true; +} + +// Decides where we want the popup. +function placeLayer() { + var placeX, placeY, widthFix = 50; + + // HORIZONTAL PLACEMENT, re-arranged to work in Safari + if (o3_frame.innerWidth) widthFix=18; + iwidth = windowWidth(); + + // Horizontal scroll offset + winoffset=(olIe4) ? eval('o3_frame.'+docRoot+'.scrollLeft') : o3_frame.pageXOffset; + + placeX = runHook('horizontalPlacement',FCHAIN,iwidth,winoffset,widthFix); + + // VERTICAL PLACEMENT, re-arranged to work in Safari + if (o3_frame.innerHeight) { + iheight=o3_frame.innerHeight; + } else if (eval('o3_frame.'+docRoot)&&eval("typeof o3_frame."+docRoot+".clientHeight=='number'")&&eval('o3_frame.'+docRoot+'.clientHeight')) { + iheight=eval('o3_frame.'+docRoot+'.clientHeight'); + } + + // Vertical scroll offset + scrolloffset=(olIe4) ? eval('o3_frame.'+docRoot+'.scrollTop') : o3_frame.pageYOffset; + placeY = runHook('verticalPlacement',FCHAIN,iheight,scrolloffset); + + // Actually move the object. + repositionTo(over_, placeX, placeY); +} + +// Moves the layer +function olMouseMove(e) { + var e = (e) ? e : event; + + if (e.pageX) { + o3_x = e.pageX; + o3_y = e.pageY; + } else if (e.clientX) { + o3_x = eval('e.clientX+o3_frame.'+docRoot+'.scrollLeft'); + o3_y = eval('e.clientY+o3_frame.'+docRoot+'.scrollTop'); + } + + if (o3_allowmove == 1) runHook("placeLayer", FREPLACE); + + // MouseOut handler + if (hoveringSwitch && !olNs4 && runHook("cursorOff", FREPLACE)) { + (olHideDelay ? hideDelay(olHideDelay) : cClick()); + hoveringSwitch = !hoveringSwitch; + } +} + +// Fake function for 3.0 users. +function no_overlib() { return ver3fix; } + +// Capture the mouse and chain other scripts. +function olMouseCapture() { + capExtent = document; + var fN, str = '', l, k, f, wMv, sS, mseHandler = olMouseMove; + var re = /function[ ]*(\w*)\(/; + + wMv = (!olIe4 && window.onmousemove); + if (document.onmousemove || wMv) { + if (wMv) capExtent = window; + f = capExtent.onmousemove.toString(); + fN = f.match(re); + if (fN == null) { + str = f+'(e); '; + } else if (fN[1] == 'anonymous' || fN[1] == 'olMouseMove' || (wMv && fN[1] == 'onmousemove')) { + if (!olOp && wMv) { + l = f.indexOf('{')+1; + k = f.lastIndexOf('}'); + sS = f.substring(l,k); + if ((l = sS.indexOf('(')) != -1) { + sS = sS.substring(0,l).replace(/^\s+/,'').replace(/\s+$/,''); + if (eval("typeof " + sS + " == 'undefined'")) window.onmousemove = null; + else str = sS + '(e);'; + } + } + if (!str) { + olCheckMouseCapture = false; + return; + } + } else { + if (fN[1]) str = fN[1]+'(e); '; + else { + l = f.indexOf('{')+1; + k = f.lastIndexOf('}'); + str = f.substring(l,k) + '\n'; + } + } + str += 'olMouseMove(e); '; + mseHandler = new Function('e', str); + } + + capExtent.onmousemove = mseHandler; + if (olNs4) capExtent.captureEvents(Event.MOUSEMOVE); +} + +//////// +// PARSING FUNCTIONS +//////// + +// Does the actual command parsing. +function parseTokens(pf, ar) { + // What the next argument is expected to be. + var v, i, mode=-1, par = (pf != 'ol_'); + var fnMark = (par && !ar.length ? 1 : 0); + + for (i = 0; i < ar.length; i++) { + if (mode < 0) { + // Arg is maintext,unless its a number between pmStart and pmUpper + // then its a command. + if (typeof ar[i] == 'number' && ar[i] > pmStart && ar[i] < pmUpper) { + fnMark = (par ? 1 : 0); + i--; // backup one so that the next block can parse it + } else { + switch(pf) { + case 'ol_': + ol_text = ar[i].toString(); + break; + default: + o3_text=ar[i].toString(); + } + } + mode = 0; + } else { + // Note: NS4 doesn't like switch cases with vars. + if (ar[i] >= pmCount || ar[i]==DONOTHING) { continue; } + if (ar[i]==INARRAY) { fnMark = 0; eval(pf+'text=ol_texts['+ar[++i]+'].toString()'); continue; } + if (ar[i]==CAPARRAY) { eval(pf+'cap=ol_caps['+ar[++i]+'].toString()'); continue; } + if (ar[i]==STICKY) { if (pf!='ol_') eval(pf+'sticky=1'); continue; } + if (ar[i]==BACKGROUND) { eval(pf+'background="'+ar[++i]+'"'); continue; } + if (ar[i]==NOCLOSE) { if (pf!='ol_') opt_NOCLOSE(); continue; } + if (ar[i]==CAPTION) { eval(pf+"cap='"+escSglQuote(ar[++i])+"'"); continue; } + if (ar[i]==CENTER || ar[i]==LEFT || ar[i]==RIGHT) { eval(pf+'hpos='+ar[i]); if(pf!='ol_') olHautoFlag=1; continue; } + if (ar[i]==OFFSETX) { eval(pf+'offsetx='+ar[++i]); continue; } + if (ar[i]==OFFSETY) { eval(pf+'offsety='+ar[++i]); continue; } + if (ar[i]==FGCOLOR) { eval(pf+'fgcolor="'+ar[++i]+'"'); continue; } + if (ar[i]==BGCOLOR) { eval(pf+'bgcolor="'+ar[++i]+'"'); continue; } + if (ar[i]==TEXTCOLOR) { eval(pf+'textcolor="'+ar[++i]+'"'); continue; } + if (ar[i]==CAPCOLOR) { eval(pf+'capcolor="'+ar[++i]+'"'); continue; } + if (ar[i]==CLOSECOLOR) { eval(pf+'closecolor="'+ar[++i]+'"'); continue; } + if (ar[i]==WIDTH) { eval(pf+'width='+ar[++i]); continue; } + if (ar[i]==BORDER) { eval(pf+'border='+ar[++i]); continue; } + if (ar[i]==CELLPAD) { i=opt_MULTIPLEARGS(++i,ar,(pf+'cellpad')); continue; } + if (ar[i]==STATUS) { eval(pf+"status='"+escSglQuote(ar[++i])+"'"); continue; } + if (ar[i]==AUTOSTATUS) { eval(pf +'autostatus=('+pf+'autostatus == 1) ? 0 : 1'); continue; } + if (ar[i]==AUTOSTATUSCAP) { eval(pf +'autostatus=('+pf+'autostatus == 2) ? 0 : 2'); continue; } + if (ar[i]==HEIGHT) { eval(pf+'height='+pf+'aboveheight='+ar[++i]); continue; } // Same param again. + if (ar[i]==CLOSETEXT) { eval(pf+"close='"+escSglQuote(ar[++i])+"'"); continue; } + if (ar[i]==SNAPX) { eval(pf+'snapx='+ar[++i]); continue; } + if (ar[i]==SNAPY) { eval(pf+'snapy='+ar[++i]); continue; } + if (ar[i]==FIXX) { eval(pf+'fixx='+ar[++i]); continue; } + if (ar[i]==FIXY) { eval(pf+'fixy='+ar[++i]); continue; } + if (ar[i]==RELX) { eval(pf+'relx='+ar[++i]); continue; } + if (ar[i]==RELY) { eval(pf+'rely='+ar[++i]); continue; } + if (ar[i]==FGBACKGROUND) { eval(pf+'fgbackground="'+ar[++i]+'"'); continue; } + if (ar[i]==BGBACKGROUND) { eval(pf+'bgbackground="'+ar[++i]+'"'); continue; } + if (ar[i]==PADX) { eval(pf+'padxl='+ar[++i]); eval(pf+'padxr='+ar[++i]); continue; } + if (ar[i]==PADY) { eval(pf+'padyt='+ar[++i]); eval(pf+'padyb='+ar[++i]); continue; } + if (ar[i]==FULLHTML) { if (pf!='ol_') eval(pf+'fullhtml=1'); continue; } + if (ar[i]==BELOW || ar[i]==ABOVE) { eval(pf+'vpos='+ar[i]); if (pf!='ol_') olVautoFlag=1; continue; } + if (ar[i]==CAPICON) { eval(pf+'capicon="'+ar[++i]+'"'); continue; } + if (ar[i]==TEXTFONT) { eval(pf+"textfont='"+escSglQuote(ar[++i])+"'"); continue; } + if (ar[i]==CAPTIONFONT) { eval(pf+"captionfont='"+escSglQuote(ar[++i])+"'"); continue; } + if (ar[i]==CLOSEFONT) { eval(pf+"closefont='"+escSglQuote(ar[++i])+"'"); continue; } + if (ar[i]==TEXTSIZE) { eval(pf+'textsize="'+ar[++i]+'"'); continue; } + if (ar[i]==CAPTIONSIZE) { eval(pf+'captionsize="'+ar[++i]+'"'); continue; } + if (ar[i]==CLOSESIZE) { eval(pf+'closesize="'+ar[++i]+'"'); continue; } + if (ar[i]==TIMEOUT) { eval(pf+'timeout='+ar[++i]); continue; } + if (ar[i]==FUNCTION) { if (pf=='ol_') { if (typeof ar[i+1]!='number') { v=ar[++i]; ol_function=(typeof v=='function' ? v : null); }} else {fnMark = 0; v = null; if (typeof ar[i+1]!='number') v = ar[++i]; opt_FUNCTION(v); } continue; } + if (ar[i]==DELAY) { eval(pf+'delay='+ar[++i]); continue; } + if (ar[i]==HAUTO) { eval(pf+'hauto=('+pf+'hauto == 0) ? 1 : 0'); continue; } + if (ar[i]==VAUTO) { eval(pf+'vauto=('+pf+'vauto == 0) ? 1 : 0'); continue; } + if (ar[i]==CLOSECLICK) { eval(pf +'closeclick=('+pf+'closeclick == 0) ? 1 : 0'); continue; } + if (ar[i]==WRAP) { eval(pf +'wrap=('+pf+'wrap == 0) ? 1 : 0'); continue; } + if (ar[i]==FOLLOWMOUSE) { eval(pf +'followmouse=('+pf+'followmouse == 1) ? 0 : 1'); continue; } + if (ar[i]==MOUSEOFF) { eval(pf +'mouseoff=('+pf+'mouseoff==0) ? 1 : 0'); v=ar[i+1]; if (pf != 'ol_' && eval(pf+'mouseoff') && typeof v == 'number' && (v < pmStart || v > pmUpper)) olHideDelay=ar[++i]; continue; } + if (ar[i]==CLOSETITLE) { eval(pf+"closetitle='"+escSglQuote(ar[++i])+"'"); continue; } + if (ar[i]==CSSOFF||ar[i]==CSSCLASS) { eval(pf+'css='+ar[i]); continue; } + if (ar[i]==COMPATMODE) { eval(pf+'compatmode=('+pf+'compatmode==0) ? 1 : 0'); continue; } + if (ar[i]==FGCLASS) { eval(pf+'fgclass="'+ar[++i]+'"'); continue; } + if (ar[i]==BGCLASS) { eval(pf+'bgclass="'+ar[++i]+'"'); continue; } + if (ar[i]==TEXTFONTCLASS) { eval(pf+'textfontclass="'+ar[++i]+'"'); continue; } + if (ar[i]==CAPTIONFONTCLASS) { eval(pf+'captionfontclass="'+ar[++i]+'"'); continue; } + if (ar[i]==CLOSEFONTCLASS) { eval(pf+'closefontclass="'+ar[++i]+'"'); continue; } + i = parseCmdLine(pf, i, ar); + } + } + + if (fnMark && o3_function) o3_text = o3_function(); + + if ((pf == 'o3_') && o3_wrap) { + o3_width = 0; + + var tReg=/<.*\n*>/ig; + if (!tReg.test(o3_text)) o3_text = o3_text.replace(/[ ]+/g, ' '); + if (!tReg.test(o3_cap))o3_cap = o3_cap.replace(/[ ]+/g, ' '); + } + if ((pf == 'o3_') && o3_sticky) { + if (!o3_close && (o3_frame != ol_frame)) o3_close = ol_close; + if (o3_mouseoff && (o3_frame == ol_frame)) opt_NOCLOSE(' '); + } +} + + +//////// +// LAYER FUNCTIONS +//////// + +// Writes to a layer +function layerWrite(txt) { + txt += "\n"; + if (olNs4) { + var lyr = o3_frame.document.layers['overDiv'].document + lyr.write(txt) + lyr.close() + } else if (typeof over_.innerHTML != 'undefined') { + if (olIe5 && isMac) over_.innerHTML = ''; + over_.innerHTML = txt; + } else { + range = o3_frame.document.createRange(); + range.setStartAfter(over_); + domfrag = range.createContextualFragment(txt); + + while (over_.hasChildNodes()) { + over_.removeChild(over_.lastChild); + } + + over_.appendChild(domfrag); + } +} + +// Make an object visible +function showObject(obj) { + runHook("showObject", FBEFORE); + + var theObj=(olNs4 ? obj : obj.style); + theObj.visibility = 'visible'; + + runHook("showObject", FAFTER); +} + +// Hides an object +function hideObject(obj) { + runHook("hideObject", FBEFORE); + + var theObj=(olNs4 ? obj : obj.style); + if (olNs6 && olShowId>0) { clearTimeout(olShowId); olShowId=0; } + theObj.visibility = 'hidden'; + theObj.top = theObj.left = ((olIe4&&!olOp) ? 0 : -10000) + (!olNs4 ? 'px' : 0); + + if (o3_timerid > 0) clearTimeout(o3_timerid); + if (o3_delayid > 0) clearTimeout(o3_delayid); + + o3_timerid = 0; + o3_delayid = 0; + self.status = ""; + + if (obj.onmouseout||obj.onmouseover) { + if (olNs4) obj.releaseEvents(Event.MOUSEOUT || Event.MOUSEOVER); + obj.onmouseout = obj.onmouseover = null; + } + + runHook("hideObject", FAFTER); +} + +// Move a layer +function repositionTo(obj, xL, yL) { + var theObj=(olNs4 ? obj : obj.style); + theObj.left = xL + (!olNs4 ? 'px' : 0); + theObj.top = yL + (!olNs4 ? 'px' : 0); +} + +// Check position of cursor relative to overDiv DIVision; mouseOut function +function cursorOff() { + var left = parseInt(over_.style.left); + var top = parseInt(over_.style.top); + var right = left + (over_.offsetWidth >= parseInt(o3_width) ? over_.offsetWidth : parseInt(o3_width)); + var bottom = top + (over_.offsetHeight >= o3_aboveheight ? over_.offsetHeight : o3_aboveheight); + + if (o3_x < left || o3_x > right || o3_y < top || o3_y > bottom) return true; + + return false; +} + + +//////// +// COMMAND FUNCTIONS +//////// + +// Calls callme or the default function. +function opt_FUNCTION(callme) { + o3_text = (callme ? (typeof callme=='string' ? (/.+\(.*\)/.test(callme) ? eval(callme) : callme) : callme()) : (o3_function ? o3_function() : 'No Function')); + + return 0; +} + +// Handle hovering +function opt_NOCLOSE(unused) { + if (!unused) o3_close = ""; + + if (olNs4) { + over_.captureEvents(Event.MOUSEOUT || Event.MOUSEOVER); + over_.onmouseover = function () { if (o3_timerid > 0) { clearTimeout(o3_timerid); o3_timerid = 0; } } + over_.onmouseout = function (e) { if (olHideDelay) hideDelay(olHideDelay); else cClick(e); } + } else { + over_.onmouseover = function () {hoveringSwitch = true; if (o3_timerid > 0) { clearTimeout(o3_timerid); o3_timerid =0; } } + } + + return 0; +} + +// Function to scan command line arguments for multiples +function opt_MULTIPLEARGS(i, args, parameter) { + var k=i, re, pV, str=''; + + for(k=i; kpmStart) break; + str += args[k] + ','; + } + if (str) str = str.substring(0,--str.length); + + k--; // reduce by one so the for loop this is in works correctly + pV=(olNs4 && /cellpad/i.test(parameter)) ? str.split(',')[0] : str; + eval(parameter + '="' + pV + '"'); + + return k; +} + +// Remove   in texts when done. +function nbspCleanup() { + if (o3_wrap) { + o3_text = o3_text.replace(/\ /g, ' '); + o3_cap = o3_cap.replace(/\ /g, ' '); + } +} + +// Escape embedded single quotes in text strings +function escSglQuote(str) { + return str.toString().replace(/'/g,"\\'"); +} + +// Onload handler for window onload event +function OLonLoad_handler(e) { + var re = /\w+\(.*\)[;\s]+/g, olre = /overlib\(|nd\(|cClick\(/, fn, l, i; + + if(!olLoaded) olLoaded=1; + + // Remove it for Gecko based browsers + if(window.removeEventListener && e.eventPhase == 3) window.removeEventListener("load",OLonLoad_handler,false); + else if(window.detachEvent) { // and for IE and Opera 4.x but execute calls to overlib, nd, or cClick() + window.detachEvent("onload",OLonLoad_handler); + var fN = document.body.getAttribute('onload'); + if (fN) { + fN=fN.toString().match(re); + if (fN && fN.length) { + for (i=0; i' : '') : '
    '; + else { + fontStr='o3_'+whichString+'font'; + fontColor='o3_'+((whichString=='caption')? 'cap' : whichString)+'color'; + return (hasDims&&!olNs4) ? (isClose ? '' : '
    ') : ''; + } +} + +// Quotes Multi word font names; needed for CSS Standards adherence in font-family +function quoteMultiNameFonts(theFont) { + var v, pM=theFont.split(','); + for (var i=0; i 0) clearTimeout(o3_timerid); + + o3_timerid=setTimeout("cClick()",(o3_timeout=time)); + } +} + +// Was originally in the placeLayer() routine; separated out for future ease +function horizontalPlacement(browserWidth, horizontalScrollAmount, widthFix) { + var placeX, iwidth=browserWidth, winoffset=horizontalScrollAmount; + var parsedWidth = parseInt(o3_width); + + if (o3_fixx > -1 || o3_relx != null) { + // Fixed position + placeX=(o3_relx != null ? ( o3_relx < 0 ? winoffset +o3_relx+ iwidth - parsedWidth - widthFix : winoffset+o3_relx) : o3_fixx); + } else { + // If HAUTO, decide what to use. + if (o3_hauto == 1) { + if ((o3_x - winoffset) > (iwidth / 2)) { + o3_hpos = LEFT; + } else { + o3_hpos = RIGHT; + } + } + + // From mouse + if (o3_hpos == CENTER) { // Center + placeX = o3_x+o3_offsetx-(parsedWidth/2); + + if (placeX < winoffset) placeX = winoffset; + } + + if (o3_hpos == RIGHT) { // Right + placeX = o3_x+o3_offsetx; + + if ((placeX+parsedWidth) > (winoffset+iwidth - widthFix)) { + placeX = iwidth+winoffset - parsedWidth - widthFix; + if (placeX < 0) placeX = 0; + } + } + if (o3_hpos == LEFT) { // Left + placeX = o3_x-o3_offsetx-parsedWidth; + if (placeX < winoffset) placeX = winoffset; + } + + // Snapping! + if (o3_snapx > 1) { + var snapping = placeX % o3_snapx; + + if (o3_hpos == LEFT) { + placeX = placeX - (o3_snapx+snapping); + } else { + // CENTER and RIGHT + placeX = placeX+(o3_snapx - snapping); + } + + if (placeX < winoffset) placeX = winoffset; + } + } + + return placeX; +} + +// was originally in the placeLayer() routine; separated out for future ease +function verticalPlacement(browserHeight,verticalScrollAmount) { + var placeY, iheight=browserHeight, scrolloffset=verticalScrollAmount; + var parsedHeight=(o3_aboveheight ? parseInt(o3_aboveheight) : (olNs4 ? over_.clip.height : over_.offsetHeight)); + + if (o3_fixy > -1 || o3_rely != null) { + // Fixed position + placeY=(o3_rely != null ? (o3_rely < 0 ? scrolloffset+o3_rely+iheight - parsedHeight : scrolloffset+o3_rely) : o3_fixy); + } else { + // If VAUTO, decide what to use. + if (o3_vauto == 1) { + if ((o3_y - scrolloffset) > (iheight / 2) && o3_vpos == BELOW && (o3_y + parsedHeight + o3_offsety - (scrolloffset + iheight) > 0)) { + o3_vpos = ABOVE; + } else if (o3_vpos == ABOVE && (o3_y - (parsedHeight + o3_offsety) - scrolloffset < 0)) { + o3_vpos = BELOW; + } + } + + // From mouse + if (o3_vpos == ABOVE) { + if (o3_aboveheight == 0) o3_aboveheight = parsedHeight; + + placeY = o3_y - (o3_aboveheight+o3_offsety); + if (placeY < scrolloffset) placeY = scrolloffset; + } else { + // BELOW + placeY = o3_y+o3_offsety; + } + + // Snapping! + if (o3_snapy > 1) { + var snapping = placeY % o3_snapy; + + if (o3_aboveheight > 0 && o3_vpos == ABOVE) { + placeY = placeY - (o3_snapy+snapping); + } else { + placeY = placeY+(o3_snapy - snapping); + } + + if (placeY < scrolloffset) placeY = scrolloffset; + } + } + + return placeY; +} + +// checks positioning flags +function checkPositionFlags() { + if (olHautoFlag) olHautoFlag = o3_hauto=0; + if (olVautoFlag) olVautoFlag = o3_vauto=0; + return true; +} + +// get Browser window width +function windowWidth() { + var w; + if (o3_frame.innerWidth) w=o3_frame.innerWidth; + else if (eval('o3_frame.'+docRoot)&&eval("typeof o3_frame."+docRoot+".clientWidth=='number'")&&eval('o3_frame.'+docRoot+'.clientWidth')) + w=eval('o3_frame.'+docRoot+'.clientWidth'); + return w; +} + +// create the div container for popup content if it doesn't exist +function createDivContainer(id,frm,zValue) { + id = (id || 'overDiv'), frm = (frm || o3_frame), zValue = (zValue || 1000); + var objRef, divContainer = layerReference(id); + + if (divContainer == null) { + if (olNs4) { + divContainer = frm.document.layers[id] = new Layer(window.innerWidth, frm); + objRef = divContainer; + } else { + var body = (olIe4 ? frm.document.all.tags('BODY')[0] : frm.document.getElementsByTagName("BODY")[0]); + if (olIe4&&!document.getElementById) { + body.insertAdjacentHTML("beforeEnd",'
    '); + divContainer=layerReference(id); + } else { + divContainer = frm.document.createElement("DIV"); + divContainer.id = id; + body.appendChild(divContainer); + } + objRef = divContainer.style; + } + + objRef.position = 'absolute'; + objRef.visibility = 'hidden'; + objRef.zIndex = zValue; + if (olIe4&&!olOp) objRef.left = objRef.top = '0px'; + else objRef.left = objRef.top = -10000 + (!olNs4 ? 'px' : 0); + } + + return divContainer; +} + +// get reference to a layer with ID=id +function layerReference(id) { + return (olNs4 ? o3_frame.document.layers[id] : (document.all ? o3_frame.document.all[id] : o3_frame.document.getElementById(id))); +} +//////// +// UTILITY FUNCTIONS +//////// + +// Checks if something is a function. +function isFunction(fnRef) { + var rtn = true; + + if (typeof fnRef == 'object') { + for (var i = 0; i < fnRef.length; i++) { + if (typeof fnRef[i]=='function') continue; + rtn = false; + break; + } + } else if (typeof fnRef != 'function') { + rtn = false; + } + + return rtn; +} + +// Converts an array into an argument string for use in eval. +function argToString(array, strtInd, argName) { + var jS = strtInd, aS = '', ar = array; + argName=(argName ? argName : 'ar'); + + if (ar.length > jS) { + for (var k = jS; k < ar.length; k++) aS += argName+'['+k+'], '; + aS = aS.substring(0, aS.length-2); + } + + return aS; +} + +// Places a hook in the correct position in a hook point. +function reOrder(hookPt, fnRef, order) { + var newPt = new Array(), match, i, j; + + if (!order || typeof order == 'undefined' || typeof order == 'number') return hookPt; + + if (typeof order=='function') { + if (typeof fnRef=='object') { + newPt = newPt.concat(fnRef); + } else { + newPt[newPt.length++]=fnRef; + } + + for (i = 0; i < hookPt.length; i++) { + match = false; + if (typeof fnRef == 'function' && hookPt[i] == fnRef) { + continue; + } else { + for(j = 0; j < fnRef.length; j++) if (hookPt[i] == fnRef[j]) { + match = true; + break; + } + } + if (!match) newPt[newPt.length++] = hookPt[i]; + } + + newPt[newPt.length++] = order; + + } else if (typeof order == 'object') { + if (typeof fnRef == 'object') { + newPt = newPt.concat(fnRef); + } else { + newPt[newPt.length++] = fnRef; + } + + for (j = 0; j < hookPt.length; j++) { + match = false; + if (typeof fnRef == 'function' && hookPt[j] == fnRef) { + continue; + } else { + for (i = 0; i < fnRef.length; i++) if (hookPt[j] == fnRef[i]) { + match = true; + break; + } + } + if (!match) newPt[newPt.length++]=hookPt[j]; + } + + for (i = 0; i < newPt.length; i++) hookPt[i] = newPt[i]; + newPt.length = 0; + + for (j = 0; j < hookPt.length; j++) { + match = false; + for (i = 0; i < order.length; i++) { + if (hookPt[j] == order[i]) { + match = true; + break; + } + } + if (!match) newPt[newPt.length++] = hookPt[j]; + } + newPt = newPt.concat(order); + } + + hookPt = newPt; + + return hookPt; +} + +//////// +// PLUGIN ACTIVATION FUNCTIONS +//////// + +// Runs plugin functions to set runtime variables. +function setRunTimeVariables(){ + if (typeof runTime != 'undefined' && runTime.length) { + for (var k = 0; k < runTime.length; k++) { + runTime[k](); + } + } +} + +// Runs plugin functions to parse commands. +function parseCmdLine(pf, i, args) { + if (typeof cmdLine != 'undefined' && cmdLine.length) { + for (var k = 0; k < cmdLine.length; k++) { + var j = cmdLine[k](pf, i, args); + if (j >- 1) { + i = j; + break; + } + } + } + + return i; +} + +// Runs plugin functions to do things after parse. +function postParseChecks(pf,args){ + if (typeof postParse != 'undefined' && postParse.length) { + for (var k = 0; k < postParse.length; k++) { + if (postParse[k](pf,args)) continue; + return false; // end now since have an error + } + } + return true; +} + + +//////// +// PLUGIN REGISTRATION FUNCTIONS +//////// + +// Registers commands and creates constants. +function registerCommands(cmdStr) { + if (typeof cmdStr!='string') return; + + var pM = cmdStr.split(','); + pms = pms.concat(pM); + + for (var i = 0; i< pM.length; i++) { + eval(pM[i].toUpperCase()+'='+pmCount++); + } +} + +// Registers no-parameter commands +function registerNoParameterCommands(cmdStr) { + if (!cmdStr && typeof cmdStr != 'string') return; + pmt=(!pmt) ? cmdStr : pmt + ',' + cmdStr; +} + +// Register a function to hook at a certain point. +function registerHook(fnHookTo, fnRef, hookType, optPm) { + var hookPt, last = typeof optPm; + + if (fnHookTo == 'plgIn'||fnHookTo == 'postParse') return; + if (typeof hookPts[fnHookTo] == 'undefined') hookPts[fnHookTo] = new FunctionReference(); + + hookPt = hookPts[fnHookTo]; + + if (hookType != null) { + if (hookType == FREPLACE) { + hookPt.ovload = fnRef; // replace normal overlib routine + if (fnHookTo.indexOf('ol_content_') > -1) hookPt.alt[pms[CSSOFF-1-pmStart]]=fnRef; + + } else if (hookType == FBEFORE || hookType == FAFTER) { + var hookPt=(hookType == 1 ? hookPt.before : hookPt.after); + + if (typeof fnRef == 'object') { + hookPt = hookPt.concat(fnRef); + } else { + hookPt[hookPt.length++] = fnRef; + } + + if (optPm) hookPt = reOrder(hookPt, fnRef, optPm); + + } else if (hookType == FALTERNATE) { + if (last=='number') hookPt.alt[pms[optPm-1-pmStart]] = fnRef; + } else if (hookType == FCHAIN) { + hookPt = hookPt.chain; + if (typeof fnRef=='object') hookPt=hookPt.concat(fnRef); // add other functions + else hookPt[hookPt.length++]=fnRef; + } + + return; + } +} + +// Register a function that will set runtime variables. +function registerRunTimeFunction(fn) { + if (isFunction(fn)) { + if (typeof fn == 'object') { + runTime = runTime.concat(fn); + } else { + runTime[runTime.length++] = fn; + } + } +} + +// Register a function that will handle command parsing. +function registerCmdLineFunction(fn){ + if (isFunction(fn)) { + if (typeof fn == 'object') { + cmdLine = cmdLine.concat(fn); + } else { + cmdLine[cmdLine.length++] = fn; + } + } +} + +// Register a function that does things after command parsing. +function registerPostParseFunction(fn){ + if (isFunction(fn)) { + if (typeof fn == 'object') { + postParse = postParse.concat(fn); + } else { + postParse[postParse.length++] = fn; + } + } +} + +//////// +// PLUGIN REGISTRATION FUNCTIONS +//////// + +// Runs any hooks registered. +function runHook(fnHookTo, hookType) { + var l = hookPts[fnHookTo], k, rtnVal = null, optPm, arS, ar = runHook.arguments; + + if (hookType == FREPLACE) { + arS = argToString(ar, 2); + + if (typeof l == 'undefined' || !(l = l.ovload)) rtnVal = eval(fnHookTo+'('+arS+')'); + else rtnVal = eval('l('+arS+')'); + + } else if (hookType == FBEFORE || hookType == FAFTER) { + if (typeof l != 'undefined') { + l=(hookType == 1 ? l.before : l.after); + + if (l.length) { + arS = argToString(ar, 2); + for (var k = 0; k < l.length; k++) eval('l[k]('+arS+')'); + } + } + } else if (hookType == FALTERNATE) { + optPm = ar[2]; + arS = argToString(ar, 3); + + if (typeof l == 'undefined' || (l = l.alt[pms[optPm-1-pmStart]]) == 'undefined') { + rtnVal = eval(fnHookTo+'('+arS+')'); + } else { + rtnVal = eval('l('+arS+')'); + } + } else if (hookType == FCHAIN) { + arS=argToString(ar,2); + l=l.chain; + + for (k=l.length; k > 0; k--) if((rtnVal=eval('l[k-1]('+arS+')'))!=void(0)) break; + } + + return rtnVal; +} + +//////// +// OBJECT CONSTRUCTORS +//////// + +// Object for handling hooks. +function FunctionReference() { + this.ovload = null; + this.before = new Array(); + this.after = new Array(); + this.alt = new Array(); + this.chain = new Array(); +} + +// Object for simple access to the overLIB version used. +// Examples: simpleversion:351 major:3 minor:5 revision:1 +function Info(version, prerelease) { + this.version = version; + this.prerelease = prerelease; + + this.simpleversion = Math.round(this.version*100); + this.major = parseInt(this.simpleversion / 100); + this.minor = parseInt(this.simpleversion / 10) - this.major * 10; + this.revision = parseInt(this.simpleversion) - this.major * 100 - this.minor * 10; + this.meets = meets; +} + +// checks for Core Version required +function meets(reqdVersion) { + return (!reqdVersion) ? false : this.simpleversion >= Math.round(100*parseFloat(reqdVersion)); +} + + +//////// +// STANDARD REGISTRATIONS +//////// +registerHook("ol_content_simple", ol_content_simple, FALTERNATE, CSSOFF); +registerHook("ol_content_caption", ol_content_caption, FALTERNATE, CSSOFF); +registerHook("ol_content_background", ol_content_background, FALTERNATE, CSSOFF); +registerHook("ol_content_simple", ol_content_simple, FALTERNATE, CSSCLASS); +registerHook("ol_content_caption", ol_content_caption, FALTERNATE, CSSCLASS); +registerHook("ol_content_background", ol_content_background, FALTERNATE, CSSCLASS); +registerPostParseFunction(checkPositionFlags); +registerHook("hideObject", nbspCleanup, FAFTER); +registerHook("horizontalPlacement", horizontalPlacement, FCHAIN); +registerHook("verticalPlacement", verticalPlacement, FCHAIN); +if (olNs4||(olIe5&&isMac)||olKq) olLoaded=1; +registerNoParameterCommands('sticky,autostatus,autostatuscap,fullhtml,hauto,vauto,closeclick,wrap,followmouse,mouseoff,compatmode'); +/////// +// ESTABLISH MOUSECAPTURING +/////// + +// Capture events, alt. diffuses the overlib function. +var olCheckMouseCapture=true; +if ((olNs4 || olNs6 || olIe4)) { + olMouseCapture(); +} else { + overlib = no_overlib; + nd = no_overlib; + ver3fix = true; +} diff --git a/ag/include/kampf/SSJ.php b/ag/include/kampf/SSJ.php new file mode 100644 index 0000000..9c1925e --- /dev/null +++ b/ag/include/kampf/SSJ.php @@ -0,0 +1,55 @@ + \ No newline at end of file diff --git a/ag/include/kampf/andere_technik.php b/ag/include/kampf/andere_technik.php new file mode 100644 index 0000000..6e96517 --- /dev/null +++ b/ag/include/kampf/andere_technik.php @@ -0,0 +1,90 @@ + $wert_select1_3) { + $new_tech1 = 0; + } else { + $new_tech1 = 1; + } + } + + if($k_select1_2[$x] == 2) { + if($wert_select1 < $wert_select1_3) { + $new_tech1 = 0; + } else { + $new_tech1 = 1; + } + } + +if($new_tech1 == 1) { +$technick1 = mysql_fetch_array(mysql_query("SELECT at_id, aktiv FROM lernen WHERE id='$k_attacke1_2[$x]' LIMIT 10")); +$prozent_technik1 = (20*$technick1[aktiv])-20; +$technick1 = mysql_fetch_array(mysql_query("SELECT * FROM attacken WHERE id='$technick1[at_id]' LIMIT 10")); +} + +} + + +///////////// Technik spieler 2 +if($k_attacke2_2[$x]) { + if($k_select2_1[$x] == 1) { $wert_select2 = $k_hp[1]; $k_auswahl2 = $k_hp2[1]; } + elseif($k_select2_1[$x] == 2) { $wert_select2 = $k_mp[1]; $k_auswahl2 = $k_mp2[1]; } + elseif($k_select2_1[$x] == 3) { $wert_select2 = $k_starke[1]+$k_ver[1]+$k_speed[1]+$k_ausdauer[1]+$k_glueck[1]; $k_auswahl2 = $wert_select2; + } + + if($k_select2_3[$x] == 1) { $wert_select2_3 = $k_hp[0]; } + elseif($k_select2_3[$x] == 2) { $wert_select2_3 = $k_mp[0]; } + elseif($k_select2_3[$x] == 3) { $wert_select2_3 = $k_starke[0]+$k_ver[0]+$k_speed[0]+$k_ausdauer[0]+$k_glueck[0]; } + elseif($k_select2_3[$x] == 5) { $wert_select2_3 = ($k_auswahl2/100) * 5; } ////////5% + elseif($k_select2_3[$x] == 10) { $wert_select2_3 = ($k_auswahl2/100) * 10; } ////////10% + elseif($k_select2_3[$x] == 20) { $wert_select2_3 = ($k_auswahl2/100) * 20; } ////////20% + elseif($k_select2_3[$x] == 50) { $wert_select2_3 = ($k_auswahl2/100) * 50; ////////50% + } + if($k_select2_2[$x] == 1) { + if($wert_select2 > $wert_select2_3) { + $new_tech2 = 0; + } else { + $new_tech2 = 1; + } + } + + if($k_select2_2[$x] == 2) { + if($wert_select2 < $wert_select2_3) { + $new_tech2 = 0; + } else { + $new_tech2 = 1; + } + } + +if($new_tech2 == 1) { +$technick2 = mysql_fetch_array(mysql_query("SELECT at_id, aktiv FROM lernen WHERE id='$k_attacke2_2[$x]' LIMIT 10")); +$prozent_technik2 = (20*$technick2[aktiv])-20; +$technick2 = mysql_fetch_array(mysql_query("SELECT * FROM attacken WHERE id='$technick2[at_id]' LIMIT 10")); +} + +} + +?> \ No newline at end of file diff --git a/ag/include/kampf/atk_wert.php b/ag/include/kampf/atk_wert.php new file mode 100644 index 0000000..07c6d42 --- /dev/null +++ b/ag/include/kampf/atk_wert.php @@ -0,0 +1,44 @@ +DEBUG (NICHT ALS BUG MELDEN!!): Speed Char1 '.$speed_char1.', Glueck Char1 = '.$k_glueck[0].', Att-Luck Char1 '.$lucka1.', Par-Luck Char1 '.$luckp1.'
    '; +//echo '
    DEBUG (NICHT ALS BUG MELDEN!!): ATTACK Char1 '.$zufall_pl1.', PARADE Char1 '.$play1_ausweich.'

    '; +//echo '
    DEBUG (NICHT ALS BUG MELDEN!!): Speed Char2 '.$speed_char2.', Glueck Char2 = '.$k_glueck[1].', Att-Luck Char2 '.$lucka2.', Par-Luck Char1 '.$luckp2.'
    '; +//echo '
    DEBUG (NICHT ALS BUG MELDEN!!): ATTACK Char2 '.$zufall_pl2.', PARADE Char2 '.$play2_ausweich.'

    '; + +?> diff --git a/ag/include/kampf/ausdauer.php b/ag/include/kampf/ausdauer.php new file mode 100644 index 0000000..1217715 --- /dev/null +++ b/ag/include/kampf/ausdauer.php @@ -0,0 +1,29 @@ + 0) { +################### PLAYER 1 + + +$k_starke[0] = round($k_starke[0] + (($k_ausdauer[0] / 20))-($k_starke[0]/50)); +$k_speed[0] = round($k_speed[0] + ($k_ausdauer[0] / 10)); +$k_ver[0] = round($k_ver[0] + ($k_ausdauer[0] / 10)); +$k_ausdauer[0] = round($k_ausdauer[0] - ($k_ausdauer[0] /20)); + +################### PLAYER 2 + + +$k_starke[1] = round($k_starke[1] + (($k_ausdauer[1] / 20))-($k_starke[1]/50)); +$k_speed[1] = round($k_speed[1] + ($k_ausdauer[1] / 10)); +$k_ver[1] = round($k_ver[1] + ($k_ausdauer[1] / 10)); +$k_ausdauer[1] = round($k_ausdauer[1] - ($k_ausdauer[1] /20)); + +} + +?> \ No newline at end of file diff --git a/ag/include/kampf/copy.php b/ag/include/kampf/copy.php new file mode 100644 index 0000000..57b223b --- /dev/null +++ b/ag/include/kampf/copy.php @@ -0,0 +1,57 @@ += 0) { + + if ($technick1[starke] == 1) { /////Staerke wird kopiert + $k_starke[0] = $k_starke[0] + $k_starke[1]; + } + if ($technick1[speed] == 1) { /////Staerke wird kopiert + $k_speed[0] = $k_speed[0] + $k_speed[1]; + } + if ($technick1[verteidigung] == 1) { /////Staerke wird kopiert + $k_ver[0] = $k_ver[0] + $k_ver[1]; + } + $schaden_1 = "Power Kopiern!"; + } else { + $schaden_1 = "Kopiern Fehlgeschlagen"; + $k_mp[0] = 0; + } + + $aktion_AV1[$x] = "nein"; +} + +################### Spieler 2 + +if ($technick2[type] == copy) { + $k_mp[1] = $k_mp[1] - $technick2[mp]; + + if ($k_mp[1] >= 0) { + + if ($technick2[starke] == 1) { /////Staerke wird kopiert + $k_starke[1] = $k_starke[0] + $k_starke[1]; + } + if ($technick2[speed] == 1) { /////Staerke wird kopiert + $k_speed[1] = $k_speed[0] + $k_speed[1]; + } + if ($technick2[verteidigung] == 1) { /////Staerke wird kopiert + $k_ver[1] = $k_ver[0] + $k_ver[1]; + } + $schaden_2 = "Power Kopiern!"; + } else { + $schaden_2 = "Kopiern Fehlgeschlagen"; + $k_mp[1] = 0; + } + + $aktion_AV2[$x] = "nein"; +} \ No newline at end of file diff --git a/ag/include/kampf/fightclasses.inc.php b/ag/include/kampf/fightclasses.inc.php new file mode 100644 index 0000000..e440666 --- /dev/null +++ b/ag/include/kampf/fightclasses.inc.php @@ -0,0 +1,136 @@ +speed = $char['speed']; + $this->verteidigung = $char['verteidigung']; + $this->starke = $char['starke']; + $this->ausdauer = $char['ausdauer']; + $this->glueck = $char['glueck']; + $this->aufgeben = $char['aufgeben']; + $this->charid = $char['id']; + + if($buffs == true){ // Ruestungen erlaubt??? + $char_buffs = mysql_fetch_assoc(mysql_query('SELECT sum(i.hp) as hp, sum(i.mp) as mp, sum(i.starke) as starke, sum(i.verteidigung) as verteidigung, sum(i.speed) as speed FROM ware w LEFT JOIN item i ON(i.id=w.item_id) WHERE w.id IN ('.$char['kampf_item'].')')); + $this->starke += $char_buffs['starke']; + $k_speed[0] = $char['speed'] + $char_buffs['speed']; + $this->verteidigung += $char_buffs['verteidigung']; + $k_hp1[0] += $char_buffs['hp']; + $k_hp1[1] += $char_buffs['hp']; + $k_mp1[0] += $char_buffs['mp']; + $k_mp1[1] += $char_buffs['mp']; + } + + $this->attackenhandler = new Attackenauswahl($char); + } +} + +class Monster extends Kaempfer{ + + function __construct($monster){ + if(is_numeric($monster)){ + $qry = mysql_query('SELECT * FROM quest_monster WHERE id = '.$monster); + $monster = mysql_fetch_assoc($qry); + } else if(!is_array($monster)){ + // Fehler + return; + } + // Zuweisung + } +} + + +class Attacke{ + function __construct($attacke){ + if(is_numeric($attacke)){ + $qry = mysql_query('SELECT * FROM attacken WHERE id = '.$attacke); + } else if(!is_array($attacke)){ + // Fehler!! + return; + } + // Zuweisung + } +} + +class Attackenauswahl{ + private $attacke1; + private $altervatives; + private $attacke2; + function __construct($char){ + if(is_numeric($char)){ // ID, wenn keine Abfrage vorhanden + $char = mysql_fetch_assoc(mysql_query('Select attacken, attacken2, auswahl1, auswahl2, auswahl3 from chars where id = '.$char)); + } else if(!is_array($char)){ // Wenn es weder ID noch Array ist + return; // breche ab, dann kann nichts mit angefangen werden + } + $this->attacke1 = preg_split('#,#',$char['attacken']); + $this->attacke2 = preg_split('#,#',$char['attacken2']); + $this->altervatives[0] = preg_split('#,#', $char['auswahl1']); + $this->altervatives[1] = preg_split('#,#', $char['auswahl2']); + $this->altervatives[2] = preg_split('#,#', $char['auswahl3']); + + // Zwischenschritt ANFANG + // Nun ein Zwischenschritt weil in den Feldern attacken und attacken2 + $qry = mysql_query('Select at_id, id from lernen where id IN ('.$char['attacken'].','.$char['attacken2'].')'); + while($row = mysql_fetch_assoc($qry)){ + $transition[$row['id']] = $row['at_id']; + } + for($i=0;$iattacke1);$i++){ + $this->attacke1[$i] = $transition[$this->attacke1[$i]]; + $this->attacke2[$i] = $transition[$this->attacke2[$i]]; + } + unset($transition); + // Zwischenschritt ENDE!!! + + // Lade die Attacken aus der DB und schreibe sie direkt in den Array + $qry = mysql_query('Select * from attacken where id IN ('.join(',',$this->attacke1).','.join(',',$this->attacke2).')'); + while($row = mysql_fetch_assoc($qry)){ + $temp_att[$row['id']] = $row; + } + for($i=0;$iattacke1);$i++){ + $this->attacke1[$i] = $temp_att[$this->attacke1[$i]]; + $this->attacke2[$i] = $temp_att[$this->attacke2[$i]]; + } + // Die Kaempfer sind Kampfbereit!! + } + function getAttackValuesOfRound($round){ + $returnarray['attacke1'] = $this->attacke1[$round]; + $returnarray['attacke2'] = $this->attacke2[$round]; + $returnarray['auswahl1'] = $this->altervatives[0][$round]; + $returnarray['auswahl2'] = $this->altervatives[1][$round]; + $returnarray['auswahl3'] = $this->altervatives[2][$round]; + return $returnarray; + } +} +?> diff --git a/ag/include/kampf/frucht.php b/ag/include/kampf/frucht.php new file mode 100644 index 0000000..901b5dc --- /dev/null +++ b/ag/include/kampf/frucht.php @@ -0,0 +1,49 @@ + \ No newline at end of file diff --git a/ag/include/kampf/gift.php b/ag/include/kampf/gift.php new file mode 100644 index 0000000..5b3b7bb --- /dev/null +++ b/ag/include/kampf/gift.php @@ -0,0 +1,104 @@ + $x) { + $technick1_old = mysql_fetch_array(mysql_query("SELECT * FROM attacken WHERE id='$attacken_old_id1' LIMIT 1")); + + $k_starke[1] = $k_starke[1] - $technick1_old[starke]; + $k_speed[1] = $k_speed[1] - $technick1_old[speed]; + $k_ver[1] = $k_ver[1] - $technick1_old[verteidigung]; + $k_hp[1] = $k_hp[1] - $technick1_old[hp]; + + } else { + $runden_gif1 = ""; + $runden_gif_technik1 = ""; + } + +} + + +if($technick1[type] == "gift") { + +$k_mp[0] = $k_mp[0] - $technick1[mp]; +if($k_mp[0] < 0) { +$schaden_2 = "Keinen Schaden"; +$schaden_1 = "Schädigen fehlgeschlagen"; +$aktion_AV1[$x] = "nein"; +$k_mp[0] = 0; +} else { + +$schaden_1 = "Schädigen"; + +$runden_gif1 = $x+$technick1[runden]; +$attacken_old_id1 = $technick1[id]; +$runden_gif_technik1 = $x; + +$k_starke[1] = $k_starke[1] - $technick1[starke]; +$k_speed[1] = $k_speed[1] - $technick1[speed]; +$k_ver[1] = $k_ver[1] - $technick1[verteidigung]; +$k_hp[1] = $k_hp[1] - $technick1[hp]; + +$aktion_AV1[$x] = "nein"; +}} + +####################GIFT SPIELER 2 + +if($runden_gif2) { + + if($runden_gif2 > $x) { + $technick2_old = mysql_fetch_array(mysql_query("SELECT * FROM attacken WHERE id='$attacken_old_id2' LIMIT 1")); + + $k_starke[0] = $k_starke[0] - $technick2_old[starke]; + $k_speed[0] = $k_speed[0] - $technick2_old[speed]; + $k_ver[0] = $k_ver[0] - $technick2_old[verteidigung]; + $k_hp[0] = $k_hp[0] - $technick2_old[hp]; + } else { + $runden_gif2 = ""; + $runden_gif_technik2 = ""; + } + +} + + +if($technick2[type] == "gift") { + +$k_mp[1] = $k_mp[1] - $technick2[mp]; + +if($k_mp[1] < 0) { +$schaden_1 = "Keinen Schaden"; +$schaden_2 = "Schädigen fehlgeschlagen"; +$aktion_AV2[$x] = "nein"; +$k_mp[1] = 0; +} else { + + +$schaden_2 = "Schädigen"; +$attacken_old_id2 = $technick2[id]; +$runden_gif2 = $x+$technick2[runden]; +$runden_gif_technik2 = $x; + +$k_starke[0] = $k_starke[0] - $technick2[starke]; +$k_speed[0] = $k_speed[0] - $technick2[speed]; +$k_ver[0] = $k_ver[0] - $technick2[verteidigung]; +$k_hp[0] = $k_hp[0] - $technick2[hp]; + +$aktion_AV2[$x] = "nein"; +}} + + + + + + + + +?> \ No newline at end of file diff --git a/ag/include/kampf/hp.php b/ag/include/kampf/hp.php new file mode 100644 index 0000000..7d477eb --- /dev/null +++ b/ag/include/kampf/hp.php @@ -0,0 +1,20 @@ + 0) { +$k_hp[0] = $k_hp[0] - $technick1[hp]; +} + +####################KAMPF HP SPIELER 2 + +if($technick2[type] == normal AND $technick2[hp] > 0) { +$k_hp[1] = $k_hp[1] - $technick2[hp]; +} +?> \ No newline at end of file diff --git a/ag/include/kampf/hp2.php b/ag/include/kampf/hp2.php new file mode 100644 index 0000000..37e0101 --- /dev/null +++ b/ag/include/kampf/hp2.php @@ -0,0 +1,47 @@ + \ No newline at end of file diff --git a/ag/include/kampf/hpmp.php b/ag/include/kampf/hpmp.php new file mode 100644 index 0000000..c98e5cc --- /dev/null +++ b/ag/include/kampf/hpmp.php @@ -0,0 +1,37 @@ + diff --git a/ag/include/kampf/kaioken.php b/ag/include/kampf/kaioken.php new file mode 100644 index 0000000..571eeb2 --- /dev/null +++ b/ag/include/kampf/kaioken.php @@ -0,0 +1,46 @@ + \ No newline at end of file diff --git a/ag/include/kampf/kaioken2.php b/ag/include/kampf/kaioken2.php new file mode 100644 index 0000000..2517c42 --- /dev/null +++ b/ag/include/kampf/kaioken2.php @@ -0,0 +1,36 @@ + \ No newline at end of file diff --git a/ag/include/kampf/kampf_rechnung.php b/ag/include/kampf/kampf_rechnung.php new file mode 100644 index 0000000..8fdbceb --- /dev/null +++ b/ag/include/kampf/kampf_rechnung.php @@ -0,0 +1,112 @@ + $play2_ausweich) { + $alt_hp = $k_hp[1]; + $charsa1_def = $k_ver[1]+$technick2[verteidigung]; + $charsa1_4_def = ($k_ver[1]+$technick2[verteidigung]) / 1.1; + + if($charsa1_def <= 2) { + $charsa1_def = 2; + } + if($charsa1_4_def < 1) { + $charsa1_4_def = 1; + } + $charsa1_def = mt_rand($charsa1_4_def,$charsa1_def); + $charsa1_str = $k_starke[0]*1.2+$technick1[starke]; + $charsa1_4_str = ($k_starke[0]*1.2+$technick1[starke])+1; + if($charsa1_str <= 2) { + $charsa1_str = 2; + } + if($charsa1_4_str < 1) { + $charsa1_4_str = 1; + } + $charsa1_str = mt_rand($charsa1_4_str,$charsa1_str); + $k_hp[1] = round(($k_hp[1] + $charsa1_def - $charsa1_str + mt_rand(1,20))); + $schaden_1 = $alt_hp - $k_hp[1]; + if($alt_hp < $k_hp[1]) { + $k_hp[1] = $alt_hp; + $schaden_1 = 0; + } + } else { + $schaden_1 = "Keinen Schaden"; + } +} + +if(!$aktion_AV2[$x]) { +if($zufall_pl2 > $play1_ausweich) { + + +$alt_hp = $k_hp[0]; + +$charsa2_def = $k_ver[0]+$technick1[verteidigung]; +$charsa2_4_def = ($k_ver[0]+$technick1[verteidigung]) / 1.1; + +if($charsa2_def <= 2) { + $charsa2_def = 2; + } +if($charsa2_4_def < 1) { + $charsa2_4_def = 1; + } + +$charsa2_def = mt_rand($charsa2_4_def,$charsa2_def); +$charsa2_str = $k_starke[1]*1.2+$technick2[starke]; +$charsa2_4_str = ($k_starke[1] *1.2 +$technick2[starke]) +1; + +if($charsa1_str <= 2) { + $charsa1_str = 2; + } +if($charsa2_4_str < 1) { + $charsa2_4_str = 1; + } + +$charsa2_str = mt_rand($charsa2_4_str,$charsa2_str); + +$k_hp[0] = round(($k_hp[0] + $charsa2_def - $charsa2_str + mt_rand(1,20))); +$schaden_2 = $alt_hp - $k_hp[0]; + +if($alt_hp < $k_hp[0]) { + $k_hp[0] = $alt_hp; $schaden_2 = 0; + } +} else { +$schaden_2 = "Keinen Schaden"; +} +} + +if(!$technick1[name]) { + $technick1[name] = "Normaler Kick"; + } +if(!$technick2[name]) { + $technick2[name] = "Normaler Kick"; + } + + + +if($k_hp[0]<0) { + $k_hp7[0] = 0; + } else { + $k_hp7[0] = $k_hp[0]; + } +if($k_mp[0]<0) { + $k_mp7[0] = 0; + } else { + $k_mp7[0] = $k_mp[0]; + } +if($k_hp[1]<0) { + $k_hp7[1] = 0; + } else { + $k_hp7[1] = $k_hp[1]; + } +if($k_mp[1]<0) { + $k_mp7[1] = 0; + } else { + $k_mp7[1] = $k_mp[1]; + } +?> \ No newline at end of file diff --git a/ag/include/kampf/kampfchat.js b/ag/include/kampf/kampfchat.js new file mode 100644 index 0000000..bfc350a --- /dev/null +++ b/ag/include/kampf/kampfchat.js @@ -0,0 +1,114 @@ +/* + * + * @copyright (c) 2009 animegame.eu + * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence + * + */ +// Quelle: http://www.devblog.de +// "Shoutbox als AJAX-Anwendung" +// Code darf frei verwendet werden + +// globale Instanz von XMLHttpRequest +var xmlHttp = false; +var char_id1 = 0; +var char_id2 = 0; +var warte_zeit = 0; + +v=new Date(); + +// XMLHttpRequest-Instanz erstellen +// ... f�r Internet Explorer + +try { + xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); +} catch(e) { + try { + xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); + } catch(e) { + xmlHttp = false; + } +} +// ... f�r Mozilla, Opera und Safari +if (!xmlHttp && typeof XMLHttpRequest != 'undefined') { + xmlHttp = new XMLHttpRequest(); +} + + + + + + function char(char_id_1, char_id_2, wartezeit) { + char_id1 = char_id_1; + char_id2 = char_id_2; + warte_zeit = wartezeit; + + loadData(); + + setInterval("loadData()",3000); + setInterval("abholen()",1000); + + } + + + function abholen() { + + n=new Date(); + s=warte_zeit-Math.round((n.getTime()-v.getTime())/1000.); + m=0; + h=0; + if(s<0){ + document.getElementById("timer").innerHTML="Angucken"; + } else { + + if(s>59){ + m=Math.floor(s/60); + s=s-m*60 + } + + if(m>59){ + h=Math.floor(m/60); + m=m-h*60 + } + + if(s<10){ + s='0'+s + } + + if(m<10){ + m='0'+m + } + + document.getElementById("timer").innerHTML="Zeit:"+h+':'+m+':'+s + } + } + + +function loadData() +{ + + if (xmlHttp) { + // xmlHttp.open('GET', 'kampf/chat.php?action=load&char_id1='+char_id1+'&char_id2='+char_id2, true); + xmlHttp.open('GET', 'kampf/chat.php?action=load&char_id1=4&char_id2=3', true); + xmlHttp.onreadystatechange = function () { + if (xmlHttp.readyState == 4) { ////4 f�r fertig + document.getElementById("text_inhalt").innerHTML = xmlHttp.responseText; + } + }; + + xmlHttp.send('char_id1'+char_id1+'&char_id2'+char_id2); + } +} + +function saveData() +{ + +if (xmlHttp) { + xmlHttp.open('POST', 'kampf/chat.php?action=save'); + xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); + xmlHttp.send('text='+document.kampfchat.textfeld.value+'&charakter='+document.kampfchat.char.value+'&besitzer='+document.kampfchat.user.value); +} + +// Message-Eingabefelder leeren und Focus setzen +document.kampfchat.textfeld.value = ''; +document.kampfchat.textfeld.focus(); +} diff --git a/ag/include/kampf/lose.php b/ag/include/kampf/lose.php new file mode 100644 index 0000000..f82d1f5 --- /dev/null +++ b/ag/include/kampf/lose.php @@ -0,0 +1,53 @@ + \ No newline at end of file diff --git a/ag/include/kampf/lose2.php b/ag/include/kampf/lose2.php new file mode 100644 index 0000000..06e9082 --- /dev/null +++ b/ag/include/kampf/lose2.php @@ -0,0 +1,45 @@ += mt_rand(1,100)) { +$schaden_1 = "Schwächen"; +$k_mp[1] = ($k_mp2[1] / 100) * 20; +} else { +$schaden_1 = "Schwächen fehlgeschlagen"; +} +} +$aktion_AV1[$x] = "nein"; +} +####################KAIOKEN-LOSE SPIELER 2 + +if($technick2[type] == "lose2") { +$k_mp[1] = $k_mp[1] - $technick2[mp]; +if($k_mp[1] < 0) { +$schaden_2 = "Schwächen fehlgeschlagen"; +$k_mp[1] = 0; +} else { + +if($technick2[starke] >= mt_rand(1,100)) { +$schaden_2 = "Schwächen"; +$k_mp[0] = ($k_mp1[1] / 100) * 20; +} else { +$schaden_2 = "Schwächen fehlgeschlagen"; + +} +} +$aktion_AV2[$x] = "nein"; +} +?> diff --git a/ag/include/kampf/majin.php b/ag/include/kampf/majin.php new file mode 100644 index 0000000..2356635 --- /dev/null +++ b/ag/include/kampf/majin.php @@ -0,0 +1,63 @@ + \ No newline at end of file diff --git a/ag/include/kampf/mp.php b/ag/include/kampf/mp.php new file mode 100644 index 0000000..e3ee1d5 --- /dev/null +++ b/ag/include/kampf/mp.php @@ -0,0 +1,29 @@ + 0) { +$k_mp[0] = $k_mp[0] - $technick1[mp]; + +if($k_mp[0] < 0) { +$k_hp[0] = $k_hp[0] + ($k_mp[0] * 10); +$k_mp[0] = 0; +} +} +####################KAMPF MP SPIELER 2 + +if($technick2[type] == normal AND $technick2[mp] > 0) { +$k_mp[1] = $k_mp[1] - $technick2[mp]; + +if($k_mp[1] < 0) { +$k_hp[1] = $k_hp[1] + ($k_mp[1] * 10); +$k_mp[1] = 0; +} +} +?> \ No newline at end of file diff --git a/ag/include/kampf/mpv.php b/ag/include/kampf/mpv.php new file mode 100644 index 0000000..3fff435 --- /dev/null +++ b/ag/include/kampf/mpv.php @@ -0,0 +1,25 @@ + \ No newline at end of file diff --git a/ag/include/kampf/runde.php b/ag/include/kampf/runde.php new file mode 100644 index 0000000..121c95d --- /dev/null +++ b/ag/include/kampf/runde.php @@ -0,0 +1,51 @@ + \ No newline at end of file diff --git a/ag/include/kampf/schatten.php b/ag/include/kampf/schatten.php new file mode 100644 index 0000000..b64c9da --- /dev/null +++ b/ag/include/kampf/schatten.php @@ -0,0 +1,40 @@ + \ No newline at end of file diff --git a/ag/include/kampf/tausch.php b/ag/include/kampf/tausch.php new file mode 100644 index 0000000..24462d7 --- /dev/null +++ b/ag/include/kampf/tausch.php @@ -0,0 +1,124 @@ + ($ktuser_luck*1.75)) { + $chance = 25; + } + return $chance; + } + +} + +################### Spieler 1 +$chance = getKTChance($k_glueck[0], $k_glueck[1]); +$random = mt_rand(0,100); + +if ($technick1['type'] == tausch) { + if ($k_mp[0] >= $technick1['mp']) { + if($random <= $chance) { //Trefferchance abhängig vom ausgewürfeltem Glück + if ($kampf_info['rasse'] != "NPC") { ///BEI NPCS WIRD KOERPER TAUSCH GEBLOCKT + $k_starke_alt[0] = $k_starke[0]; + $k_speed_alt[0] = $k_speed[0]; + $k_ver_alt[0] = $k_ver[0]; + $k_ausdauer_alt[0] = $k_ausdauer[0]; + $k_hp_alt[0] = $k_hp[0]; + + $k_starke_alt[1] = $k_starke[1]; + $k_speed_alt[1] = $k_speed[1]; + $k_ver_alt[1] = $k_ver[1]; + $k_ausdauer_alt[1] = $k_ausdauer[1]; + $k_hp_alt[1] = $k_hp[1]; + + $k_starke[0] = $k_starke_alt[1]; + $k_speed[0] = $k_speed_alt[1]; + $k_ver[0] = $k_ver_alt[1]; + $k_ausdauer[0] = $k_ausdauer_alt[1]; + $k_hp[0] = $k_hp_alt[1]; + + $k_starke[1] = $k_starke_alt[0]; + $k_speed[1] = $k_speed_alt[0]; + $k_ver[1] = $k_ver_alt[0]; + $k_ausdauer[1] = $k_ausdauer_alt[0]; + $k_hp[1] = $k_hp_alt[0]; + + $k_mp[0] = $k_mp[0] - $technick1['mp']; + $schaden_1 = "Körpertausch"; + } + } else { + $k_mp[0] = $k_mp[0] - $technick1['mp']; + if ($k_mp[0] < 0) { + $k_mp[0] = 0; + } + $schaden_1 = "Körpertausch fehlgeschlagen"; + } + } + else { + $schaden_1 = "Körpertausch fehlgeschlagen"; + } + $aktion_AV1[$x] = "nein"; +} + +################### Spieler 2 +$chance = getKTChance($k_glueck[1], $k_glueck[0]); +$random = mt_rand(0,100); + +if ($technick2['type'] == tausch) { + if ($k_mp[1] >= $technick2['mp']) { + if($random <= $chance) { //Trefferchance abhängig vom ausgewürfeltem Glück + + $k_starke_alt[0] = $k_starke[0]; + $k_speed_alt[0] = $k_speed[0]; + $k_ver_alt[0] = $k_ver[0]; + $k_ausdauer_alt[0] = $k_ausdauer[0]; + $k_hp_alt[0] = $k_hp[0]; + + $k_starke_alt[1] = $k_starke[1]; + $k_speed_alt[1] = $k_speed[1]; + $k_ver_alt[1] = $k_ver[1]; + $k_ausdauer_alt[1] = $k_ausdauer[1]; + $k_hp_alt[1] = $k_hp[1]; + + $k_starke[0] = $k_starke_alt[1]; + $k_speed[0] = $k_speed_alt[1]; + $k_ver[0] = $k_ver_alt[1]; + $k_ausdauer[0] = $k_ausdauer_alt[1]; + $k_hp[0] = $k_hp_alt[1]; + + $k_starke[1] = $k_starke_alt[0]; + $k_speed[1] = $k_speed_alt[0]; + $k_ver[1] = $k_ver_alt[0]; + $k_ausdauer[1] = $k_ausdauer_alt[0]; + $k_hp[1] = $k_hp_alt[0]; + + $k_mp[1] = $k_mp[1] - $technick2['mp']; + $schaden_2 = "Körpertausch"; + } else { + $k_mp[1] = $k_mp[1] - $technick2['mp']; + if ($k_mp[1] < 0) { + $k_mp[1] = 0; + } + $schaden_1 = "Körpertausch fehlgeschlagen"; + } + } + else { + $schaden_2 = "Körpertausch fehlgeschlagen"; + } + $aktion_AV2[$x] = "nein"; + +} + +?> \ No newline at end of file diff --git a/ag/include/kampf/tausch2.php b/ag/include/kampf/tausch2.php new file mode 100644 index 0000000..9ec6616 --- /dev/null +++ b/ag/include/kampf/tausch2.php @@ -0,0 +1,59 @@ += 0) { + $prozent_technik1 = 0; + $technick1 = mysql_fetch_array(mysql_query("SELECT * FROM attacken WHERE id='$technick2[id]' LIMIT 10")); + $technick1[speed] = $technick1[speed] + (($technick1[speed] / 100) * $prozent_technik1); + $technick1[verteidigung] = $technick1[verteidigung] + (($technick1[verteidigung] / 100) * $prozent_technik1); + $technick1[starke] = $technick1[starke] + (($technick1[starke] / 100) * $prozent_technik1); + $speeds_char1 = ($k_speed[0] + $technick1[speed]); + $speeds_char1_4 = ($k_speed[0] + $technick1[speed]) / 1.5; + if ($speeds_char1_4 < 1) { + $speeds_char1_4 = 1; + } + $speeds_char1 = mt_rand($speeds_char1_4, $speeds_char1); + + } else { + $k_mp[0] = 0; + $schaden_1 = "Techniktausch Fehlgeschlagen"; + $aktion_AV1[$x] = "nein"; + } + +} + +################### Spieler 2 + +if ($technick2[type] == "tausch2") { + $k_mp[1] = $k_mp[1] - $technick2[mp]; + if ($k_mp[1] >= 0) { + + $prozent_technik2 = 0; + $technick2 = mysql_fetch_array(mysql_query("SELECT * FROM attacken WHERE id='$technick1[id]' LIMIT 10")); + + $technick2[speed] = $technick2[speed] + (($technick2[speed] / 100) * $prozent_technik2); + $technick2[verteidigung] = $technick2[verteidigung] + (($technick2[verteidigung] / 100) * $prozent_technik2); + $technick2[starke] = $technick2[starke] + (($technick2[starke] / 100) * $prozent_technik2); + $speeds_char2 = ($k_speed[1] + $technick2[speed]); + $speeds_char2_4 = ($k_speed[1] + $technick2[speed]) / 1.5; + if ($speeds_char2_4 < 1) { + $speeds_char2_4 = 1; + } + $speeds_char2 = mt_rand($speeds_char2_4, $speeds_char2); + + } else { + $k_mp[1] = 0; + $schaden_2 = "Techniktausch Fehlgeschlagen"; + $aktion_AV2[$x] = "nein"; + } + +} \ No newline at end of file diff --git a/ag/include/kampf_anzeige.inc.php b/ag/include/kampf_anzeige.inc.php new file mode 100644 index 0000000..a92f320 --- /dev/null +++ b/ag/include/kampf_anzeige.inc.php @@ -0,0 +1,269 @@ + + + + + + +
    + + + Name: + +
    + HP: + +
    + MP: + +
    + Stärke: + +
    + Verteidigung: + +
    + Geschwindigkeit: + +
    + Glück + +
    + Ausdauer: + +
    + + + + + + +
    + Technik: + +

    + Schaden: + +
    + Technik: + +

    + Schaden: + +
    +
    '; + +if($sieger == $char1_name){ + $char1_status = 'Sieger'; + $char2_status = 'Verlierer'; +} else{ + $char1_status = 'Verlierer'; + $char2_status = 'Sieger'; +} +echo '' . + ''. + ''. + ''. + '' . + ''; + +echo '' . + '' . + '' . + '' . + ''. + ''; + +echo ''. + ''. + ''. + ''. + '' . + ''; + +echo ''. + ''. + ''. + ''. + '' . + ''; + + +echo '
    '.$char1_status.''.$char1_name.''.$char2_status.''.$char2_name.'
    Exp +'.$exp_char1.'Exp +'.$exp_char2.'
    Geld +'.$money_char1.'Geld +'.$money_char2.'
    Arena Exp +'.$arena_exp1.'Arena Exp +'.$arena_exp2.'
    '; +} + +function displayFinalResult($items, $exp, $money, $final_result){ +echo '
    ' . + ''; +echo ''; +if($final_result == 'lost') { + echo ''; +} + +echo '' . + '' . + ''. + ''; +echo '' . + '' . + ''. + ''; +echo '' . + '' . + ''; +echo '
    Zusammenfassung
    Ihr müsst euch selbst eingestehen, dass diese Monster zu stark waren. Der Zweifel der euch plagt verringert eure Erfahrung und Diebe den Betrag in eurem Geldbeutel.
    Exp +'.$exp.'
    Geld +'.$money.'
    Items'; + // Letze Eintrag von Items ist false!! + if(!$items[0]){ + echo ' '; + } else{ + for($i=0;$items[$i];$i++){ + echo $items[$i]['name'].'
    '; + } + } +echo'
    ' . + '
    '; +} + +function displaySchatzSuche($char){ + include_once($_SERVER['DOCUMENT_ROOT'].'ag/include/schatz.inc.php'); + // Erstmal die Schatzsuche-stammdaten laden! + $sql = 'Select * from quests where charid ='.$char['id'].' and dauer < now()'; + $quest = mysql_fetch_assoc(mysql_query($sql)); +// echo $sql.'
    '; + if(!$quest){ + return 'Schatzsuche noch nicht beendet!!'; + } + + // Uberschreibe die Char-Daten mit den Daten aus der Datenbank + $char['starke'] = $quest['st']; + $char['verteidigung'] = $quest['ver']; + $char['speed'] = $quest['sp']; + $char['glueck'] = $quest['gl']; + $char['ausdauer'] = $quest['aus']; + $char['hp_max'] = $quest['hp']; + $char['mp_max'] = $quest['mp']; + + // Erstmal die Seite starten + echo ''; + // Einfach mal ne dicke Ueberschrift + $ort = mysql_fetch_assoc(mysql_query('select * from quest_ort where id = '.$quest['ortid'])); + echo ''; + + // Hole die Ergebnisse die auch in die Datenbank eingetragen werden muessen! + $row = mysql_fetch_assoc(mysql_query('Select sum(exp) as exp, sum(geld) as geld, count(*) as anzahl from quest_fights where charid = '.$char['id'])); + + // Ermittle den Endzustand des Chars + $end_qf = mysql_fetch_assoc(mysql_query('select max(fightnr) as mf from quest_fights where charid = '.$char['id'])); + $end_qr = mysql_fetch_assoc(mysql_query('select max(roundnr) as mr from quest_rounds where fightnr = '.$end_qf['mf'].' and charid = '.$char['id'])); + $last_round = mysql_fetch_assoc(mysql_query('Select * from quest_rounds where roundnr = '.$end_qr['mr'].' and fightnr = '.$end_qf['mf'].' and charid = '.$char['id'])); + $last_fight = mysql_fetch_assoc(mysql_query('Select * from quest_fights where fightnr = '.$end_qf['mf'].' and charid = '.$char['id'])); + + // Ermittle die Reqs des Chars! + $sql = 'SELECT c_attack as a_name, count(*) as anzahl FROM quest_rounds q where roundnr > 0 and charid = '.$char['id'].' group by c_attack'; +// echo $sql.'
    '; + $reqs = mysql_query($sql); + + while($row_r = mysql_fetch_assoc($reqs)){ + $c_attacken[] = $row_r; +// print_r($c_attacken); +// echo '
    '; + } + + if($last_fight['sieger'] == $char['id']){ + $final_result = 'won'; + // Nur wer gewinnt bekommt was! + $items = getSchatzItems($row['anzahl']); + } else{ + $final_result = 'lost'; + $lose_rate = mt_rand(25,60)/100; + $row['exp'] = round($row['exp'] * $lose_rate); + $row['geld'] = round($row['geld'] * $lose_rate); + for($i = 0;$i< count($row_r); $i++){ + $c_attacken[$i]['anzahl'] = floor($c_attacken[$i]['anzahl'] * $lose_rate); + } + } + + + // Zeige als erstes die Zusammenfassung an! + displayFinalResult($items, $row['exp'], $row['geld'], $final_result); + + + // Lade nun die Fights runter + $sql = 'Select * from quest_fights where charid = '.$char['id']; + $qry = mysql_query($sql); + while($fight = mysql_fetch_assoc($qry)){ + displaySchatzSucheFight($quest, $char, $fight); + } + + submitCharChanges($char['id'], $items, $row['exp'], $row['geld'], $quest['ortid'], array($last_round['c_hp']) , array($last_round['c_mp']), $c_attacken); + echo '
    Schatzsuche in '.$ort['stadt'].'
    '; + return null; +} + +function displaySchatzSucheFight($quest, $char, $fight){ + // Lade das Monster aus der Datenbank + $sql = 'select * from quest_monster where id = '.$fight['monsterid']; + $monster = mysql_fetch_assoc(mysql_query($sql)); + + if($monster['bild'] == null || $monster['bild'] == ''){ + $monster['bild'] = 'design/bilder/avatare/noavart.gif'; + } + + // Platziere den Table-Header + echo ''.$char['name'].' Vs '.$monster['name'].''; + $sql = 'Select * from quest_rounds where charid = '.$char['id']. ' and fightnr = '.$fight['fightnr']; +// echo $sql.'
    '; + $qry = mysql_query($sql); + while($round = mysql_fetch_assoc($qry)){ + displaySchatzSucheFightRound($char, $monster, $fight, $round); + } + displaySummary($char['name'], $monster['name'], $fight['sieger']==$char['id']?$char['name']:$monster['name'], $fight['exp'], 0, $fight['geld'], 0); + // Und dann halt immer noch etwas platz nach unten lassen + + echo ' '; +} + +function displaySchatzSucheFightRound($char, $monster, $fight, $round){ + // Rundennummer: + if($round['roundnr'] == 0){ + $runde = 'Start:'; + } else{ + $runde = 'Runde: '.$round['roundnr']; + } + echo ''.$runde.''; + + // Bild + Avantarinfo | Attacken + Schaden | Bild + Avantarinfo + // In einer Reihe allerdings + echo ''; + displayCharTable($char['bild'], $char['name'], $round['c_st'], $round['c_ver'], $round['c_sp'], $round['c_aus'], $round['c_gl'], $round['c_hp'], $char['hp_max'], $round['c_mp'], $char['mp_max'] ); + echo ''; + if($round['roundnr'] != 0){ + displayAttacks($round['c_attack'], $round['c_dmg'], $round['m_attack'], $round['m_dmg']); + } else{ + echo ' '; + } + echo ''; + displayCharTable($monster['bild'], $monster['name'], $round['m_st'], $round['m_ver'], $round['m_sp'], $round['m_aus'], $round['m_gl'], $round['m_hp'], $monster['hp'], $round['m_mp'], $monster['mp'] ); + echo ''; +} + +?> \ No newline at end of file diff --git a/ag/include/kampf_anzeige.php b/ag/include/kampf_anzeige.php new file mode 100644 index 0000000..3d19688 --- /dev/null +++ b/ag/include/kampf_anzeige.php @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Vs
    Start:
    + +   + +
    Runde:
    + + + + + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Exp +Exp +
    Geld +Geld +
    Arena +Arena +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + +
    Zuschauer
    Stehplätze
    Sitzplätze
    Logenplätze
    +
    + +
    + + \ No newline at end of file diff --git a/ag/include/messagefunctions.inc.php b/ag/include/messagefunctions.inc.php new file mode 100644 index 0000000..ac8265e --- /dev/null +++ b/ag/include/messagefunctions.inc.php @@ -0,0 +1,142 @@ +'; + mysql_query($sql); +} + +function colorize($text){ + $sum = md5($text); + return ''.$text.''; +} + + + +// Der Text MUSS schon vorher überprüft werden! +function sendChatMessage($user,$text){ +// $text = urldecode($text); +// echo $text.'
    '; + // So nun erstmal sehen ob der user eine spamstrafe besitzt!! + if(isSpammer($user['id'])){ + return; + } + + $text = encodeNoHTMLWithBB($text); + + // Nun pruefen, ob der User ein spammer ist + becomeSpammer($user['id'],$user['nickname'],$text); + + // Faerbe den Spieler nur ein wenn Werbung auf Hardcore steht + if($user['ads'] == 1){ + if($user['gm'] == 'ja'){ + $nick = ''.encodeNoHTMLNoBB($user['nickname']).''; + } else if($user['gm'] == 'et'){ + $nick = ''.encodeNoHTMLNoBB($user['nickname']).''; + } else if($user['gm'] == 'ka'){ + $nick = ''.encodeNoHTMLNoBB($user['nickname']).''; + } else { + $nick = ''.encodeNoHTMLNoBB($user['nickname']).''; + } + } else { + $nick = encodeNoHTMLNoBB($user['nickname']); + } + + if($text != '' && !is_null($text)){ + mysql_query('INSERT ag_chat SET nachricht=\''.$text.'\', user=\''.$nick.'\''); + } +} + +function getChatMessages($userid, $messageid = 0, $limit = 25){ + if(!is_numeric($messageid)){ + $messageid = 0; + } + $row = mysql_fetch_row(mysql_query('Select max(id) from ag_chat')); + $maxid = $row[0]; + $minid = $maxid - $limit; + if($messageid > $minid){ + $minid = $messageid; + } + + $result = mysql_query('SELECT *, Minute(zeit) as m, Hour(zeit) as h FROM ag_chat WHERE id > '.$minid.' ORDER BY ID ASC LIMIT '.$limit); + while ($row = mysql_fetch_assoc($result)) { + $h = $row['h']; + if($h < 10){ $h = '0'.$h;} + $m = $row['m']; + if($m < 10){ $m = '0'.$m;} + $resultstring .= '
    '.$h.':'.$m.' '.$row['user'].': '.$row['nachricht'].'
    '; + } + if(isSpammer($userid)){ + $resultstring.= '
    SPAM-BLOCKIERUNG!!
    '; + } + return $maxid.';'.$resultstring; +} + +// + offset in Minuten +function insertUserTickerMessage($userid, $message, $offset = 0){ + if($offset == 0){ + $timestamp = 'now()'; + } else{ + $timestamp = '\''.date('Y-m-d H:i:s', time() + $offset * 60).'\''; + } + for($msgid = 0; $msgid < 100000; $msgid += mt_rand(1,1000)){ + $sql = 'INSERT INTO user_ticker(userid, date, msgid, text) values('.$userid.', '.$timestamp.', '.$msgid.', \''.$message.'\')'; + mysql_query($sql); + if(mysql_affected_rows() == 1){ +// echo 'MYSQL success: '.$sql; + return; + } + } +// echo 'MYSQL-Error: '.$sql; +} + +function insertClanTickerMessage($clanid, $message, $offset = 0){ + if($offset == 0){ + $timestamp = 'now()'; + } else{ + $timestamp = '\''.date('Y-m-d H:i:s', time() + $offset * 60).'\''; + } + for($msgid = 0; $msgid < 100000; $msgid += mt_rand(1,1000)){ + $sql = 'INSERT INTO clan_ticker(clanid, date, msgid, text) values('.$clanid.', now(), '.$msgid.', \''.$message.'\')'; + mysql_query($sql); + if(mysql_affected_rows() == 1){ +// echo 'MYSQL success: '.$sql; + return; + } + } +// echo 'MYSQL-Error: '.$sql; +} + +//$test = "Dies ist eine [b]beliebige[/b] Nachricht mit einem auktionslink [a]testlink.html[/a]"; +//echo decodeMessage($test).'
    '; + +//$test = 'Test'; +//echo encodeMessage($test).'
    '; + +?> \ No newline at end of file diff --git a/ag/include/mumble.inc.php b/ag/include/mumble.inc.php new file mode 100644 index 0000000..7432cf1 --- /dev/null +++ b/ag/include/mumble.inc.php @@ -0,0 +1,20 @@ + \ No newline at end of file diff --git a/ag/include/online.inc.php b/ag/include/online.inc.php new file mode 100644 index 0000000..0ab7e16 --- /dev/null +++ b/ag/include/online.inc.php @@ -0,0 +1,15 @@ + diff --git a/ag/include/parse.inc.php b/ag/include/parse.inc.php new file mode 100644 index 0000000..1b1f5cf --- /dev/null +++ b/ag/include/parse.inc.php @@ -0,0 +1,317 @@ + 'a','p' => 'b','s' => 'c','t' => 'd','i' => 'e','w' => 'f','k' => 'g','n' => 'h','u' => 'i','v' => 'j','g' => 'k','c' => 'l','l' => 'm','r' => 'n','y' => 'o','b' => 'p','x' => 'q','h' => 'r','m' => 's','d' => 't','o' => 'u','f' => 'v','z' => 'w','q' => 'x','a' => 'y','j' => 'z', + 'E' => 'A','P' => 'B','S' => 'C','T' => 'D','I' => 'E','W' => 'F','K' => 'G','N' => 'H','U' => 'I','V' => 'J','G' => 'K','C' => 'L','L' => 'M','R' => 'N','Y' => 'O','B' => 'P','X' => 'Q','H' => 'R','M' => 'S','D' => 'T','O' => 'U','F' => 'V','Z' => 'W','Q' => 'X','A' => 'Y','J' => 'Z', + 'ü' => 'ia', 'Ãœ' => 'Ia', 'ö' => 'ua', 'Ö' => 'Ua', 'ä' => 'ya', 'Ä' => 'Ya', 'ß' => 'cc' + ); + $in_html = 0; + $in_bb_brackets = 0; + for($i=0;$i 0){ + $in_bb_brackets--; + } + break; + case '>': + if($in_html > 0){ + $in_html--; + } + break; + } + $result .= $str; + } + } + return '[text='.$msg.']'.$result.'[/text]'; +} + +function decodeNoHTMLNoBBAlBhed($msg){ +// Al Bhed: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z +// Deutsch: E P S T I W K N U V G C L R Y B X H M D O F Z Q A J + + $albhed = array ( 'a' => 'e', 'b' => 'p', 'c' => 's', 'd' => 't', 'e' => 'i', 'f' => 'w', 'g' => 'k', 'h' => 'n', 'i' => 'u', 'j' => 'v', 'k' => 'g', 'l' => 'c', 'm' => 'l', 'n' => 'r', 'o' => 'y', 'p' => 'b', 'q' => 'x', 'r' => 'h', 's' => 'm', 't' => 'd', 'u' => 'o', 'v' => 'f', 'w' => 'z', 'x' => 'q', 'y' => 'a', 'z' => 'j', + 'A' => 'E', 'B' => 'P', 'C' => 'S', 'D' => 'T', 'E' => 'I', 'F' => 'W', 'G' => 'K', 'H' => 'N', 'I' => 'U', 'J' => 'V', 'K' => 'G', 'L' => 'C', 'M' => 'L', 'N' => 'R', 'O' => 'y', 'p' => 'B', 'Q' => 'X', 'R' => 'H', 'S' => 'M', 'T' => 'D', 'U' => 'O', 'V' => 'F', 'W' => 'Z', 'X' => 'Q', 'Y' => 'A', 'Z' => 'J', +); + $in_html = 0; + $in_bb_brackets = 0; + for($i=0;$i 0){ + $in_bb_brackets--; + } + break; + case '>': + if($in_html > 0){ + $in_html--; + } + break; + } + $result .= $str; + } + } + return $result; +} + +function encodeNoHTMLWithBB($msg){ + // Erstma das albhed-Tag, da dieses sehr speziell ist! + $msg = preg_replace_callback('#\[albhed](.*?)\[/albhed]#', 'encodeNoHTMLnoBBAlBhed',$msg); + $convert = bbcode(encodeNoHTMLNoBB($msg)); + return $convert; +} + +function encodeNoHTMLNoBB($msg){ + return addslashes(trim(preg_replace(array('//'),array('<','>'),$msg))); +} + +function encodeImageUrl($url){ + // Das muster nachdem die Bilderlinks bearbeitet werden + $search = array('#.*[ ]([a-z]+?://){1}(.*?)#','#<#','#>#') ; + $replace = array('\1\2','<','≶') ; + $url = preg_replace($search,$replace,$url); + return $url; +} + +function decode($msg){ +// Falls mal irgendwas schnell eingefuegt werden muss + $search = array('#:\)#', + '#:D#', + '#:d#', + '#:o#', + '#:O#', + '#:P#', + '#:p#', + '#;P#', + '#;p#', + '#;\)#', + '#:\(#', + '#:\'\(#', + '#:\$#', + '#\(h\)#', + '#\(H\)#', + '#:s#', + '#:S#', + '#xD#', + '#\^\^#', + '#\*pirate\*#', + '#\*nerd\*#' + ); + $replace = array('', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '' + ); + return preg_replace($search,$replace,$msg); +} + +function checkImageUrl($url){ + // Das muster nachdem die Bilderlinks bearbeitet werden + $search = array('#.*[ ]([a-z]+?://){1}(.*?)#','#<#','#>#') ; + $replace = array('\1\2','<','≶') ; + $url = preg_replace($search,$replace,$url); + + if(substr($url,0,4) != 'http' && substr($url,0,3) != 'ftp'){ // Gueltige Links beginnen mit http oder ftp + return 'Kein gültiger Link!'; + } + $info = @getimagesize($url); + if($info[0] == NULL || $info[1] == NULL){ + return 'Bild existiert nicht??'; + } else if($info[0] > 75 || $info[1] > 75){ + echo 'Das Bild '.htmlspecialchars($url).' ist zu gross!!->'.$info[0].'x'.$info[1]; + } else{ + return ''; + } +} + + +function bbcode($messagetext) { + $search = array('/\[AMP\]/', + '/\[ADD\]/', + '#\[url]([a-z]+?://){1}(.*?)\[/url]#', + '#\[url](.*?)\[/url\]#', + '#\[url=([a-z]+?://){1}(.*?)\](.*?)\[/url]#', + '#\[b](.*?)\[/b\]#', + '#\[i](.*?)\[/i\]#', + '#\[u](.*?)\[/u\]#', + '#\[s](.*?)\[/s\]#', + '#\[sub](.*?)\[/sub\]#', + '#\[sup](.*?)\[/sup\]#', + '#\[color=\#?([0-9a-fA-F]{6})\](.*?)\[/color]#', + '#\[color=([a-zA-Z]+?)\](.*?)\[/color]#', + '#\[text=(.*?)\](.*?)\[/text]#', + '#\n#' + //'#\[img]([a-z]+?://){1}(.*?)\[/img]#', + //'#\[img](.*?)\[/img\]#' + ) ; + + $replace = array('&', + '+', + '$1$2', + '\1', + '\3', + '\1', + '\1', + '\1', + '\1', + '\1', + '\1', + '\2', + '\2', + '\2', + '
    ' + //'', + //'' + ) ; + $messagetext = preg_replace($search, $replace, $messagetext); + return $messagetext; +} + +function debbcode($messagetext){ + $search = array('/&/', + '/\+/', + '#\(.*?)\#', + '#\(.*?)\#', + '#\(.*?)\#', + '#\(.*?)\#', + '#\(.*?)\#', + '#\(.*?)\#', + '#\(.*?)\#', + '#\(.*?)#', + '#\(.*?)#', + '#
    #' + //'', + //'' + ) ; + + + $replace = array('[AMP]', + '[ADD]', + '[url=\1\2]\3[/url]', + '[b]\1[/b]', + '[i]\1[/i]', + '[s]\1[/s]', + '[u]\1[/u]', + '[sub]\1[/sub]', + '[sup]\1[/sup]', + '[color=#\1]\2[/color]', + '[color=\1]\2[/color]', + "\n" + //'#\[img]([a-z]+?://){1}(.*?)\[/img]#', + //'#\[img](.*?)\[/img\]#' + ) ; + + $messagetext = preg_replace($search, $replace, $messagetext); + return $messagetext; +} + +function validateInteger($value, $default){ + return is_numeric($value)?$value:$default; +} + +function validateIntegerArray($value, $default){ + for($i=0,$n=count($value);$i<$n;$i++){ + $value[$i] = validateInteger($value[$i], $default); + } + return $value; +} + +function validateUnsignedInteger($value, $default){ + return !is_numeric($value)||$value<0?$default:$value; +} + +function validateUnsignedIntegerArray($value, $default){ + for($i=0,$n=count($value);$i<$n;$i++){ + $value[$i] = validateUnsignedInteger($value[$i], $default); + } + return $value; +} + +function validateString($value){ + return $value != null?encodeNoHTMLNoBB($value):null; +} + +function validateStringArray($value){ + for($i=0,$n=count($value);$i<$n;$i++){ + $value[$i] = validateString($value[$i]); + } + return $value; +} + +function validateEmailAddress($mail){ + return validateString($mail); +} + +function validateName($name){ + $allowed = "/[^a-z0-9\\040\\-\\_äöü]/i"; + // Beschraenke die Eingabezeichen + $da_name = trim(addslashes(preg_replace($allowed,'',$name))); + if(strlen($da_name) < 2){ + return NULL; + } + return $da_name; +} + +function validateURL($url){ + $str = validateString($url); + $pos = strpos($str, 'http://'); + if($str != 'design/bilder/avatare/noavart.gif' && ($pos === false || $pos != 0)){ + return ''; + } else{ + return $str; + } +} + +?> diff --git a/ag/include/pollfunctions.inc.php b/ag/include/pollfunctions.inc.php new file mode 100644 index 0000000..3d4a504 --- /dev/null +++ b/ag/include/pollfunctions.inc.php @@ -0,0 +1,101 @@ +'; + } else{ + mysql_query('UPDATE poll_votes SET polloptionid='.$polloptionid.', comment = \''.encodeNoHTMLNoBB($kommentar).'\' WHERE pollid='.$pollid.' and userid = '.$userid); + } +} + +// Liefert den Datensatz der Stimme (Nr und eigener Kommentar) +function getStimme($pollid, $userid){ + $qry = mysql_query('SELECT * FROM poll_votes WHERE pollid = '.$pollid.' and userid = '.$userid); + $result = mysql_fetch_assoc($qry); + return $result; +} + +function getUmfrage($pollid){ + $umfrage = array(); + $qry = mysql_query('SELECT p.thema, p.pollid, p.text, u.nickname FROM poll as p inner join user as u on p.ersteller = u.id WHERE pollid='.$pollid); + $umfrage['poll'] = mysql_fetch_assoc($qry); + $qry = mysql_query('SELECT * FROM poll_options WHERE pollid ='.$pollid); + while($result = mysql_fetch_assoc($qry)){ + $umfrage['options'][$result['polloptionid']] = $result; + } + return $umfrage; +} + +function getUmfragen($entries, $page){ + $returnArray = array(); + $qry = mysql_query('SELECT p.thema, p.pollid, u.nickname FROM poll as p inner join user as u on p.ersteller = u.id LIMIT '.$entries*$page.','.$entries); + $i=0; + while($result=mysql_fetch_assoc($qry)){ + $returnArray[$i++] = $result; + } + return $returnArray; +} + +function getUmfragenCount(){ + $temp = mysql_fetch_assoc(mysql_query('SELECT count(*) as anzahl FROM poll')); + return $temp[anzahl]; +} + +function getComments($pollid, $entries, $page){ + $returnArray = array(); + $sql = 'SELECT polloptionid, comment FROM poll_votes where comment != \'\' and pollid= '.$pollid.' LIMIT '.$entries*$page.','.$entries; + $qry = mysql_query($sql); +// echo '
    '.$sql.'
    '; + for($i=0;($result = mysql_fetch_assoc($qry)) != null && $i<$entries;$i++){ + $returnArray[$i] = $result; + } + return $returnArray; +} + +function getCommentCount($pollid){ + $temp = mysql_fetch_assoc(mysql_query('Select count(*) as anzahl from poll_votes where comment != \'\' and pollid= '.$pollid)); + return $temp[anzahl]; +} + +function getResult($pollid){ + $returnArray = array(); + $sql = 'SELECT text, pv.polloptionid, count(pv.polloptionid) as anzahl FROM poll_votes as pv inner join poll_options as po on pv.polloptionid = po.polloptionid and pv.pollid = po.pollid where pv.pollid = '.$pollid.' group by polloptionid'; + $qry = mysql_query($sql); +// echo '
    '.$sql.'
    '; + while($result = mysql_fetch_assoc($qry)){ + $returnArray[$result[polloptionid]] = $result[anzahl]; + } + return $returnArray; +} + +function isOpen($pollid){ + $sql = 'SELECT count(*) as anzahl from poll where pollid ='.$pollid.' AND (close is null OR close > now())'; + + $qry = mysql_query($sql); + $row = mysql_fetch_assoc($qry); + if($row['anzahl'] > 0){ + return true; + } + return false; +} +?> \ No newline at end of file diff --git a/ag/include/races.inc.php b/ag/include/races.inc.php new file mode 100644 index 0000000..0e82ef8 --- /dev/null +++ b/ag/include/races.inc.php @@ -0,0 +1,190 @@ + diff --git a/ag/include/schatz.inc.php b/ag/include/schatz.inc.php new file mode 100644 index 0000000..84c71bd --- /dev/null +++ b/ag/include/schatz.inc.php @@ -0,0 +1,342 @@ +'; + // Excel-Formel = RUNDEN(1/WURZEL(PI()*2) * EXP(-1/(($D141-$C141)*2,5) *POTENZ((H$1 -ABRUNDEN(($C141 +MIN($D141; $E141))/2));2))*250) + // SQL-Formel ROUND( 1/SQRT( PI()*2) * EXP(-1/(($top-$bottom)*2.5)*POW ((level- floor(($bottom+MIN($top ,levl+20))/2)),2) *250) + $rechnung = 'ROUND(1/SQRT(PI()*2) * EXP(-1/(('.$top.'-'.$bottom.')*2.5)*POW((level-floor(('.$bottom.'+'.$min_l.')/2)),2))*250) as guete'; + $sql = 'select *, '.$rechnung.' from quest_monster as qm inner join quest_monster_orte as qmo on qm.id = qmo.monsterid where ortid = '.$city_id.' and level <= 20 + '.$char_level.' order by rand()'; +// echo $sql.'
    '; + $qry = mysql_query($sql); // Lade alle Monster +// while($monster[] = mysql_fetch_assoc($qry)); // Lade alle monster in einen Array + $gesamtguete = 0; + while($row = mysql_fetch_assoc($qry)){ + if($row['guete'] == 0){ + $row['guete'] += 1; + } + $gesamtguete+=$row['guete']; + $monster[] = $row; + } + $count_monster = 0; + for($i=0;$monster[$i];$i++){ + $count_monster+= $monster[$i]['anzahl']; + } + $max = min($count_monster,$max); + if($max == 0){ + return NULL; + } + $sight = mt_rand($min,$max); + $all_monster = array(); + for($i=0;$i<$sight;$i++){ + $index = mt_rand(0, $gesamtguete-1); + for($t=0;$t'; + $char1_buffs = mysql_fetch_assoc(mysql_query('SELECT sum(i.hp) as hp, sum(i.mp) as mp, sum(i.starke) as starke, sum(i.verteidigung) as verteidigung, sum(i.speed) as speed FROM ware w LEFT JOIN item i ON(i.id=w.item_id) WHERE w.id IN (' . $chara_1['kampf_item'] . ')')); + } + + $in_hp_max = explode(',', $chara_1['hp']); + $in_mp_max = explode(',', $chara_1['mp']); + $k_hp[0] = $in_hp_max[0]; + $k_mp[0] = $in_mp_max[0]; + $in_hp_max = $in_hp_max[1] + $char1_buffs['hp']; + $in_mp_max = $in_mp_max[1] + $char1_buffs['mp']; + + $in_starke = $chara_1['starke'] + $char1_buffs['starke']; + $in_speed = $chara_1['speed'] + $char1_buffs['speed']; + $in_ver = $chara_1['verteidigung'] + $char1_buffs['verteidigung']; + $in_glueck = $chara_1['glueck']; + $k_attacke1 = explode(',', $chara_1['attacken']); + + $k_aufgabe_a_1 = $in_hp_max / 100; + $k_aufgabe[0] = $k_aufgabe_a_1 * $chara_1['aufgeben']; + // Ausdauer wird im Laufe des Kampfes nicht aufgefrischt! + $k_ausdauer[0] = $chara_1['ausdauer']; + $k_hp1[1] = $in_hp_max; // Fuer Heal wichtig!! + $k_mp1[1] = $in_mp_max; // Fuer Heal wichtig!! + // Hinzufuegen Quest + $sql = 'Insert into quests(charid, dauer, ortid, st, sp, ver, gl, aus, hp, mp)' . + ' values('.$chara_1['id'].', ' . + 'TIMESTAMPADD(HOUR, '.$std.', now()), ' . + $ort.', '. + $in_starke.', '. + $in_speed.', '. + $in_ver.', '. + $in_glueck.', '. + $chara_1['ausdauer'].', '. + $in_hp_max.', '. + $in_mp_max.')'; +// echo 'Debug-Message: '.$sql.'
    '; + mysql_query($sql); + + $Dead1 = 0; +// while ($chara_2 = mysql_fetch_assoc($fight_monster)) { // Schleife in monsterfight.inc.php rein!!! + for($i=0;$i'; + mysql_query($sql); + // Werte uebernehmen + $k_starke[0] = $in_starke; + $k_speed[0] = $in_speed; + $k_ver[0] = $in_ver; + $k_glueck[0] = $in_glueck; + if($i != 0){ // Die erste Runde keine Heilung!! + $k_hp[0] = min($in_hp_max*0.2+$k_hp[0],$in_hp_max); + $k_mp[0] = min($in_mp_max*0.4+$k_mp[0],$in_mp_max); + } + $chara_2 = $fight_monster[$i]; + if ($Dead1 != 1) { + ################## Kaempfer 2 + $k_starke[1] = $chara_2['starke']; + $k_speed[1] = $chara_2['speed']; + $k_ver[1] = $chara_2['verteidigung']; + $k_hp[1] = $chara_2['hp']; + $k_mp[1] = $chara_2['mp']; + $k_ausdauer[1] = $chara_2['ausdauer']; + $k_glueck[1] = $chara_2['glueck']; + + $uzze = 0; + while ($uzze < 10) { + $aktion_AV1[$uzze] = ''; + $aktion_AV2[$uzze] = ''; + $uzze++; + } + + $ssj_tech_1 = ''; + $ssj_tech_2 = ''; + $play1_ausweich = ''; + $play2_ausweich = ''; + $k_exp[0] = ''; + $X23 = ''; + $X13 = ''; + $schaden_1 = ''; + $schaden_2 = ''; + + $x = 0; + $sql = 'Insert into quest_rounds(charid, fightnr, roundnr, c_st, c_sp, c_ver, c_hp, c_mp, c_aus, c_gl, m_st, m_sp, m_ver, m_hp, m_mp, m_aus, m_gl) values(' . + $chara_1['id'].', '.$i . ','.$x.','. + $k_starke[0].','.$k_speed[0].','.$k_ver[0].','.$k_hp[0].','.$k_mp[0].','.$k_ausdauer[0].','.$k_glueck[0].','. + $k_starke[1].','.$k_speed[1].','.$k_ver[1].','.$k_hp[1].','.$k_mp[1].','.$k_ausdauer[1].','.$k_glueck[1]. + ')'; +// echo 'Debug Message: '.$sql.'
    '; + mysql_query($sql); + while ($k_hp[0] > $k_aufgabe[0] AND $k_hp[1] > 0 AND $x < 10) { + + $technick1 = mysql_fetch_assoc(mysql_query("SELECT at_id, aktiv FROM lernen WHERE id='$k_attacke1[$x]' LIMIT 10")); + $prozent_technik1 = (20 * $technick1['aktiv']) - 20; + $technick1 = mysql_fetch_assoc(mysql_query("SELECT * FROM attacken WHERE id='$technick1[at_id]' LIMIT 10")); + + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/andere_technik.php'); + + $technick1['speed'] = $technick1['speed'] + (($technick1['speed'] / 100) * $prozent_technik1); + $technick1['verteidigung'] = $technick1['verteidigung'] + (($technick1['verteidigung'] / 100) * $prozent_technik1); + $technick1['starke'] = $technick1['starke'] + (($technick1['starke'] / 100) * $prozent_technik1); + + $speeds_char1 = $k_speed[0] + $technick1['speed']; + $speeds_char2 = $k_speed[1]; + + $aussetzten_runde = ""; ////// MUSS SO BLEIBEN WICHTIG + ##################################MP, SSJ Verwandlungen, HP, Koerper Tausch Technicken + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/majin.php'); + + if (!$aussetzten_runde) { /////DAS FueR MAJIN ATTACKEN + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/atk_wert.php'); + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/tausch2.php'); + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/gift.php'); + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/frucht.php'); + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/runde.php'); + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/mp.php'); + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/hp.php'); + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/hp2.php'); + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/SSJ.php'); + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/kaioken.php'); + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/kaioken2.php'); + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/copy.php'); + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/lose.php'); + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/lose2.php'); + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/ausdauer.php'); + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/mpv.php'); + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/tausch.php'); + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/hpmp.php'); + } + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/atk_wert.php'); + if (!$aussetzten_runde) { /////DAS FueR MAJIN ATTACKEN + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/schatten.php'); + } + + #####################################KAMPF SYSTEM + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf/kampf_rechnung.php'); +// schaden1='$db_query[schaden1],$schaden_1', schaden2='$db_query[schaden2],$schaden_2', attacke1='$db_query[attacke1],$technick1[name]', attacke2='$db_query[attacke2],$technick2[name]' + $x++; + $sql = 'Insert into quest_rounds(charid, fightnr, roundnr, c_attack, c_dmg, m_attack, m_dmg, c_st, c_sp, c_ver, c_hp, c_mp, c_aus, c_gl, m_st, m_sp, m_ver, m_hp, m_mp, m_aus, m_gl) values(' . + $chara_1['id'].', '.$i . ','.$x.',\''.$technick1['name'].'\',\''.$schaden_1.'\',\''.$technick2['name'].'\',\''.$schaden_2.'\','. + $k_starke[0].','.$k_speed[0].','.$k_ver[0].','.$k_hp[0].','.$k_mp[0].','.$k_ausdauer[0].','.$k_glueck[0].','. + $k_starke[1].','.$k_speed[1].','.$k_ver[1].','.$k_hp[1].','.$k_mp[1].','.$k_ausdauer[1].','.$k_glueck[1]. + ')'; +// echo $sql.'
    '; + mysql_query($sql); + } + ###########################EXP VERTEILUNG + + if ($k_hp[0] > $k_hp[1] && $k_hp[0] > $k_aufgabe[0]) { + $sieger = $chara_1['id']; + $verlierer = $chara_2['id']; + // Hier ist die neue Expberechnung!! + // Berechnen der MonsterPL (Alle Stats summiert)+HP/10 + //$exp = ($chara_2['starke']+$chara_2['speed']+$chara_2['verteidigung']+$chara_2['glueck']+$chara_2['ausdauer'])+$chara_2['hp']/10; + //$exp = getPowerLevel($chara_1['id']) + ($chara_2['starke']+$chara_2['speed']+$chara_2['verteidigung']+$chara_2['glueck']+$chara_2['ausdauer']) + ($chara_2['hp']/10); + $exp = getPowerLevelWithBuffs($chara_1['id']) + getMonsterPowerLevel($chara_2); + $exp *= 9; // Mal Faktor + //$exp *= 30; // Mal Faktor + // Hier ist sie auch schon zu Ende +// $geld = ($exp / 15) * 2; + $geld = 0; + } else { +// echo 'Debug Message: Verloren Hp war '.$k_hp[0].'. Aufgabe war '.$k_aufgabe[0].'. HP des Gegners '.$k_hp[1].'
    '; + $Dead1 = 1; + $sieger = $chara_2['id']; + $verlierer = $chara_1['id']; + $exp = 0; + $geld = 0; + } +// With money on SS +// mysql_query('Update quest_fights set exp = '.$exp.', geld = '.$geld.', sieger = '.$sieger.' where charid = '.$chara_1['id'].' and fightnr = '.$i); +// No money + mysql_query('Update quest_fights set exp = '.$exp.', geld = 0, sieger = '.$sieger.' where charid = '.$chara_1['id'].' and fightnr = '.$i); + } + } + // Just wait (so users can not determinate the success of the SS by calculation time) + for(;$i'; + $qry = mysql_query($sql); + while($items[] = mysql_fetch_assoc($qry)); + return $items; +} + +function submitCharChanges($charid, $items, $exp, $geld, $ort, $hp, $mp, $attacken){ + if($ort == null){ + echo 'Dein Char sieht ein blaues Portal und ist Neugierig. Er geht hindurch und findet sich aufeinmal in Gyasta wieder! Was für ein seltsames Ereignis!'; + $ort = 13; + } + $char = getChar($charid); + $tmp = preg_split('#,#',$char['hp']); + $hp[1] = $tmp[1]; + $tmp = preg_split('#,#',$char['mp']); + $mp[1] = $tmp[1]; + $hp[0] = max($hp[0], 0); + $mp[0] = max($mp[0], 0); + // Erstmal aufräumen + mysql_query('Delete from quests where charid = '.$charid); + mysql_query('Delete from quest_fights where charid = '.$charid); + mysql_query('Delete from quest_rounds where charid = '.$charid); + + // Das leveln :) + // Erfahrung + addExpToChar($charid, $exp); + // Attacken + addAttackUsageToChar($charid, $attacken); + + // Schaden und den neuen Ort eintragen (und den Status nicht vergessen :) + $sql = 'Update chars set hp=\''.$hp[0].','.$hp[1].'\', mp=\''.$mp[0].','.$mp[1].'\', ort = '.$ort.', status = \'Frei\' where id = '.$charid; +// echo $sql.'
    '; + mysql_query($sql); + + +// // Kohle gibts ja nichmehr :) +// $sql = 'Update user set geld = geld + '.$geld.' where id = '.$char['besitzer']; +//// echo $sql.'
    '; +// mysql_query($sql); + + + // Nun gehts zum auffinden der Items :) + for($i=0;$items[$i];$i++){ + // Ermittle ob es eine Teufelsfrucht ist! + $sql = 'Select name, type from sp_item where id = '.$items[$i]['id']; + $row = mysql_fetch_assoc(mysql_query($sql)); + if($row['type'] == 'Teufels Frucht'){ + $sql = 'Select id from wochen_markt where item = \''.$row['name'].'\''; + $row2 = mysql_fetch_assoc(mysql_query($sql)); + $sql = 'INSERT INTO wochen_ware(item, user) values('.$row2['id'].','.$char['besitzer'].')'; + mysql_query($sql); + } else{ + $sql = 'Insert into sp_ware(item, user) values('.$items[$i]['id'].','.$char['besitzer'].')'; +// echo $sql.'
    '; + mysql_query($sql); + } + } +} + +function getMonsterPowerLevel($monster, $buffer_enabled = true){ + if($monster == null){ + return null; + } + return $monster['starke']+$monster['verteidigung']+$monster['speed']+$monster['ausdauer']+$monster['glueck']+($monster['hp']/10); +} +?> \ No newline at end of file diff --git a/ag/include/schnell_start.inc.php b/ag/include/schnell_start.inc.php new file mode 100644 index 0000000..a09e0a7 --- /dev/null +++ b/ag/include/schnell_start.inc.php @@ -0,0 +1,128 @@ +".$my_charz[name].""; + $CHARAKTER_LERNPUNKTE[] = "Lernp.:
    ".$my_charz[lernpunkte].""; + if($user[schnelllink] == 1) { + $CHARAKTER_VERWALTUNG[] = "Level: $my_charz[level]"; + $CHARAKTER_TRAINING[] = "Powerlevel: $POWERLEVEL5"; + $CHARAKTER_SCHATZ[] = "Trainingsp.: $my_charz[training_points]"; + } + + if($user[schnelllink] == 2) { + $CHARAKTER_VERWALTUNG[] = "Verwaltung: Hier"; + $CHARAKTER_TRAINING[] = "Training: Hier"; + $CHARAKTER_SCHATZ[] = "Schatzsuche: Hier"; + } + + if($my_charz[status] != "Frei") { + $CHARAKTER_STATUS[] = "".$my_charz[status].""; + } else { + $CHARAKTER_STATUS[] = "Frei"; + } + + $char_zahl++; + } + $visiblechars = 8; + + for($i=$char_zahl;$i<$visiblechars;$i++){ + $CHARAKTER_NAME[$i] = "Kein Charakter"; + $CHARAKTER_VERWALTUNG[$i] = "none"; + $CHARAKTER_LERNPUNKTE[$i] = "none"; + $CHARAKTER_TRAINING[$i] = "none"; + $CHARAKTER_STATUS[$i] = "none"; + $CHARAKTER_SCHATZ[$i] = "none"; + } + +?> + +
    + + + + +
    Charakter + Schnellleiste (>>>>)

    +
    + +
    + + + + + + \ No newline at end of file diff --git a/ag/include/semaphore.inc.php b/ag/include/semaphore.inc.php new file mode 100644 index 0000000..ca0c6c4 --- /dev/null +++ b/ag/include/semaphore.inc.php @@ -0,0 +1,96 @@ +'; + } + // Loesche alte Ressourcen + mysql_query('DELETE FROM semaphore WHERE TIMESTAMPDIFF(MINUTE, zeit, now()) > 5 and ressource = \''.$ressource.'\''); + + $sql = 'INSERT INTO semaphore(ressource) values(\''.$ressource.'\')'; + mysql_query($sql); + if(mysql_affected_rows() > 0){ +// echo 'DEBUG: Semaphore fuer '.$ressource.' belegt!('.mysql_affected_rows().')
    '; + $GLOBALS['semaphorecount']++; + return true; + } +// echo 'DEBUG:Semaphore fuer '.$ressource.' NICHT belegt!
    '; + if($GLOBALS['semaphorecount'] == 0){ +// echo 'DEBUG: Verlassen des kritischen Bereichs
    '; + ignore_user_abort(false); // Verarbeitung darf wieder abgebrochen werden!! + } + return false; +} + +// @Returns TRUE if ok, FALSE on Semaphore error, NULL on MYQL Error +function semaphoreDown($ressource){ + $sql = 'DELETE FROM semaphore where ressource = \''.$ressource.'\''; + mysql_query($sql); + if(mysql_affected_rows() == 0){ +// echo 'DEBUG: Semaphore '.$ressource.' war schon freigegeben
    '; + return false; + } +// echo 'DEBUG: Semaphore '.$ressource.' freigegeben
    '; + $GLOBALS['semaphorecount']--; + if($GLOBALS['semaphorecount'] == 0){ +// echo 'DEBUG: kritischer Bereich verlassen
    '; + ignore_user_abort(false); // Verarbeitung darf nun wieder abgebrochen werden!! + } + return true; +} + +/** + * Diese Funktion ist nur dazu da um zu pruefen ob ueberhaupt ein Lock besteht, + * ohne die Intension die Ressource selbst zu belegen! + * returns true, wenn Semaphore belegt ist, false wenn nicht + */ +function isSemaphoreUP($ressource){ + return mysql_fetch_assoc(mysql_query('Select * from semaphore where WHERE TIMESTAMPDIFF(MINUTE, zeit, now()) > 5 and ressource = \''.$ressource.'\'')) != false; +} + +function installSemaphoreDatabase(){ + $sql1 = 'DROP TABLE `semaphore`'; + $sql2 = 'CREATE TABLE `semaphore` (' . + '`ressource` varchar(20) NOT NULL,' . + '`zeit` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,' . + 'PRIMARY KEY(`ressource`),' . + 'INDEX `Zeitindex`(`zeit`)' . + ')' . + 'ENGINE = MYISAM ' . + 'COMMENT = \'Die Tabelle, die hoffentlich alle Zugriffsprobleme loesen wird\''; + mysql_query($sql1); + mysql_query($sql2); +} + +?> \ No newline at end of file diff --git a/ag/include/speed_config.inc.php b/ag/include/speed_config.inc.php new file mode 100644 index 0000000..6321673 --- /dev/null +++ b/ag/include/speed_config.inc.php @@ -0,0 +1,9 @@ +Zurück'; +?> \ No newline at end of file diff --git a/ag/include/user.inc.php b/ag/include/user.inc.php new file mode 100644 index 0000000..b37d287 --- /dev/null +++ b/ag/include/user.inc.php @@ -0,0 +1,71 @@ +'; + $row = mysql_fetch_assoc(mysql_query($sql)); + if($row){ + if($row['encrypt_password'] != $row['passwort'] && md5($password) == $row['passwort']){ + setPassword($username, $password); + return true; + } else{ + return $row['encrypt_password'] == $row['passwort']; + } + } else{ + return false; + } +} + +function setCookies($nick_name, $password){ + checkCookies($nick_name, $_COOKIE['yps']); + $row = mysql_fetch_assoc(mysql_query('select SHA1(AES_ENCRYPT(\''.$password.'\',\''.$GLOBALS['PW_AES_KEY'].'\')) as pw')); + setcookie('name',$nick_name,time()+864000); + setcookie('passwort',$row['pw'],time()+864000); + setcookie('yps',$nick_name.','.md5($nick_name),time()+864000); +} + +function setPassword($username, $password){ + $sql = 'UPDATE user set passwort = SHA1(AES_ENCRYPT(\''.$password.'\',\''.$GLOBALS['PW_AES_KEY'].'\')) where nickname = \''.$username.'\''; +// echo $sql.'
    '; + mysql_query($sql); +} + +function encryptPassword($password){ + $sql = 'SELECT SHA1(AES_ENCRYPT(\''.$password.'\',\''.$GLOBALS['PW_AES_KEY'].'\')) as pw'; + $result = mysql_fetch_assoc(mysql_query($sql)); + return $result['pw']; +} + +?> \ No newline at end of file diff --git a/ag/index.php b/ag/index.php new file mode 100644 index 0000000..87b3b5b --- /dev/null +++ b/ag/index.php @@ -0,0 +1,437 @@ + + + + +<?php echo $GLOBALS['server_url_short']; ?> | <?php echo $GLOBALS['server_game_title']; ?> + + + + + + + + +//if (top != self) { +// if (window.opera) { +// window.onload = opera_befreien; +// } else { +// top.location = self.location; +// } +//} +// +?> + + + + + + + +
    + + + + + + + + +
    + + + + + + +
    + + + + + + +
    +
    +
    + +
    +
    + +
    +
    + + +
    +
    +
    + + + + + + + +
    + + + + + +
      + + + + + + + + + + +
      + + + + + + + + + + + + + +
    Charakter
    + + + + + + + + + + +
    Allgemein
    + + + + + + + + + + +
    Turnier
    + + + + + + + + + + +
    Clan
    + + + + + + + + + + +
    Info
    + + + + + + + + +
    Nicht Eingeloggt
    + +
     
      + + + + + + + +
    Info
    +
    + + + + + + + + + +
      + Affiliates
    +
      + + + + + +
    +
    +
    +
    + + + + + + + + + + +
    +
    + + 1){ + echo " + + + + + + + + + + + +
    "; + echo "**Du hast $nnn_nn ungelesene Nachrichten. Klicke hier um zu deinem Postfach zu gelangen.**"; + } + else{ + echo ""; + echo "**Du hast $nnn_nn ungelesene Nachricht. Klicke hier um zu deinem Postfach zu gelangen.**"; + } + ?> +
     
    + + + + + + +
    + + "; + } + else if($as == ""){ + ?> + + + + + + + +
    + Willkommen beim AnimeGame! +
    + Das Animegame ist ein Browsergame. Um es zu spielen ist also keine Installation von Software notwendig.
    + Schlüpfe in die Rolle deiner One Piece oder Dragonball Helden und nehme an Turnieren, Liga und Kopfgeld-kämpfen teil. Du kannst aber auch Schätze und die Teufelsfrüchte suchen oder dich mit deinen Freunden in Kämpfen messen.
    + Melde dich noch heute an und zeige, dass ein Held in dir steckt! +
    + +
    +
    +
    + + + + + + +
    + + 0) { + //echo "

    Sie Sind mit Doppel Account drin sollten sie mit ihren Bruder Spielen bitte eine E-mail an vegeta0015@hotmail.com mit Namen beider Charakter"; + //exit; + //} + + if($user_ida['bann'] == "ja") { + echo "

    BANN melden sie sich beim Administrator"; + exit; + } + + //if($_GET[agb]) { mysql_query("UPDATE user SET agb='ja' WHERE id='$user_ida[id]' LIMIT 1"); echo "Ok sie koennen jetzt weiter Spielen"; exit; } + + if($user_ida['agb'] == "nein" && $as != "info/agb") { + if($agb == 'ok'){ + mysql_query("UPDATE user SET agb='ja' WHERE id='$user_ida[id]' LIMIT 1"); + } + echo '

    Die Regeln haben sich verändert. Bist du mit den neuen Regeln einverstanden? Hier Klicken um die neuen Regeln zu lesen
    '; + exit; + } + include($_SERVER['DOCUMENT_ROOT'].'ag/'.$as.'.php'); +} + } + else + { + echo 'Error 404: Datei ist nicht vorhanden'; + } + } + else + { + include($_SERVER['DOCUMENT_ROOT'].'ag/news.php'); + } + + ?> +
    +
    +
    +
    + +
    + + + + + + + + +
    + Partner
    + + + + + + + +
    +
    + + + + + + + + + +
    + Awards
    +
    + + + + + + + +
    +
    + + +
    + + + + + + + + +
    + Werbung
    + + ?> + + + + + +
    + +
    + +
    +
    + + + + diff --git a/ag/info.php b/ag/info.php new file mode 100644 index 0000000..67dbef9 --- /dev/null +++ b/ag/info.php @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + Dead List +
    Siege 
    Liga Siege 
    Niederlagen +  
    Liga Niederlagen 
    Rasse 
    Fusion Rasse 
    Teufels Frucht 
    Level 
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Homepage +  
    Clan
    Geschlecht +  
    Nick-History',$nick_history) ?>
    +  
    Nachricht schreiben
    + + + + + + + + + + + + + +
    +
    + \ No newline at end of file diff --git a/ag/info/agb.php b/ag/info/agb.php new file mode 100644 index 0000000..3f065bb --- /dev/null +++ b/ag/info/agb.php @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + +
    Regeln / AGB
    + 1 Teilnahmebedingungen +
    +1.1 Um an dem Spiel Animegame teilnehmen zu können ist es notwendig die Regeln zu akzeptieren. +
    +1.2 Da das Animegame ein kostenloses Browsergame ist besteht für die Nutzer kein Anspruch auf stetige Verfügbarkeit. +
    +1.3 Das Versteigern oder Verkaufen von Accounts, Gegenständen und anderer im Spiel vorkommenden Dinge ausserhalb des im Animegame verfügbaren Auktionsmarktes ist strikt untersagt! +
    +1.4 Der Administrator behält sich das Recht die Regeln jederzeit zu ändern oder zu erweitern. +
    +2 Accounts +
    +2.1 Jeder Spieler darf nur einen Account besitzen. +
    +2.2 Account-Sharing, das heißt das Nutzen eines Accounts durch mehrere Spieler, ist grundsätzlich erlaubt, muss jedoch bei den Gamemastern gemeldet werden! +
    +2.3 Account-Sitting, das heißt das Einloggen durch andere Mitspieler in einen Account, ist nicht erlaubt. +
    +2.4 Falls Spieler über den selben Internetzugang spielen, so müssen sie dies den Gamemastern angeben! +
    +2.5 Weitergabe eines Accounts ist strikt untersagt. +
    +3 Bugusing, Bots und andere Zugriffe. +
    +3.1 Es ist verboten, die Seiten des Animegame mit anderen Programmen mit Aussnahme von Browsern (Microsoft Internet Explorer, Mozilla Firefox, Opera, Safari, Konqueror,...) abzurufen. +
    +3.2 Jegliches Automatisieren des Spielablaufs durch Bots, Skripten, Macros, Plugins etc. ist strikt untersagt und wird geahndet
    +3.3 Jegliche Kenntnis über einen Bug (Ausnutzen von Fehlern) muss beim den Gamemastern gemeldet werden. Bei Nicht-Meldung oder Ausnutzung eines Bugs führt dies zur Sperrung des Accounts. +
    +3.4 Der Versuch einen Bug zu provozieren gilt auch als Bugusing! +
    +4 Netiquette, Äusserungen und Inhalte +
    +4.1 Das Beleidigen oder Diskriminieren anderer Spieler ist nicht erlaubt. +
    +4.2 Erpressungen und Drohungen, die das reale Leben betreffen, sind strengstens untersagt. +
    +4.3 Anstößige, pornographische, rassistische, beleidigende oder gegen geltendes Recht verstoßende Inhalte sind untersagt und liegen nicht in der Verantwortung des Administrators und führen zur sofortingen Sperrung. +
    +4.4 Gegen die Regeln verstossende Inhalte, können einem zuständigen Gamemaster im IRC, oder im Forum als Gruppen-Nachricht gemeldet werden. +
    +4.5 Werbung für Produkte, Dienstleistungen, andere Browsergames oder sonstige Inhalte anderer Unternehmen oder Personen ist untersagt. +
    +4.6 Das Verlinken von Avataren aus nicht eigenen Quellen, sowie das Nutzen von Avataren aus nicht eingenen Quellen ist ohne Absprache mit dem Quelleigentümer verboten und liegt in der Verantwortung des Spielers und nicht in der Verantwortung des Administrators und führen im Extremfall zur sofortingen Sperrung des Accounts. +
    +5 Missachtung der Regeln +
    +5.1 Die Missachtung der Regeln kann zur Sperrung des/der betroffenen Accounts führen. +
    +5.2 Der Administrator behält sich das Recht vor, verdächtige Accounts zu sperren oder zu löschen. +
    +6 Abgrenzungen +
    +6.1 Die Inhalte der Links, welche auf externe Quellen verweisen, sowie extern gespeicherte Bilder, unterliegen nicht dem Verantwortungsbereich von Animegame und damit auch nicht yabgwn.de. Falls die vorgenannten Inhalte bzw. Bildern gegen die guten Sitten oder gegen Gesetze verstoßen, distanziert sich das Animegame, und somit auch yabgwn.de, von diesen Inhalten.
    +7 Salvatorische Klausel +
    +7.1 Sollte eine Regel seine Gültigkeit ganz oder teilweise verlieren, so wird die Wirksamkeit der anderen Regeln dadurch nicht beeinträchtigt. +
    + + + + \ No newline at end of file diff --git a/ag/info/agchat.php b/ag/info/agchat.php new file mode 100644 index 0000000..4a02c8e --- /dev/null +++ b/ag/info/agchat.php @@ -0,0 +1,31 @@ + +

    + + + +

    +Hier klicken zum mitreden!! +

    diff --git a/ag/info/arena.php b/ag/info/arena.php new file mode 100644 index 0000000..b09aa2b --- /dev/null +++ b/ag/info/arena.php @@ -0,0 +1,44 @@ + + + + +
    + Plätze
    + Ring
    + Preis
    + Besucher
    +
    + + diff --git a/ag/info/attacken.php b/ag/info/attacken.php new file mode 100644 index 0000000..c225c92 --- /dev/null +++ b/ag/info/attacken.php @@ -0,0 +1,490 @@ + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0) { + $req_x++; + } + if ($req_atk[1] > 0) { + $req_x++; + } + if ($req_atk[2] > 0) { + $req_x++; + } + if ($req_atk[3] > 0) { + $req_x++; + } + if ($req_atk[4] > 0) { + $req_x++; + } + while ($x < $req_x) { + if ($x == 0) { + $req_attack1 = $req_attack[b_name]; + } + if ($x == 1) { + $req_attack1 = $req_attack[c_name]; + } + if ($x == 2) { + $req_attack1 = $req_attack[d_name]; + } + if ($x == 3) { + $req_attack1 = $req_attack[e_name]; + } + if ($x == 4) { + $req_attack1 = $req_attack[f_name]; + } + + echo " + + + + + "; + $x++; + } + ?> + +
    +

    +

    Name

     
    +

    Stärke

     
    +

    Verteidigung

     
    +

    Geschwindigkeit

     
    +

    HP

     
    +

    MP

     
    +

    Level

     
    +

    Geld

     
    +

    Type

     
    +

    Info

     
    +

    Rassen

     
    +

    Req Technik

      $req_attack1 $at_info[geld] mal nutzen.
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + $i) { + + $seiten .= ' $z '; + $z++; + $i++; + } + if (!empty($search)) { + $url = '###LABEL###'; + } else { + $url = '###LABEL###'; + } + + ?> + + + + */ + echo ''; + ?> + +
    ID NameStärkeVer.Geschw.InfoLvL:
          Info
    Seiten +  
    '.displayPagelinksNew(20, $total, $pagenum, $url).'
    + +
    + + + + + + +
    + Suchen: + + + + +
    +
    + + + + + Alle Attacken | + Dragon-Ball | + One Piece | + Teufelsfrüchte + + + + + + +   + + Pirat + - Schwert Kämpfer + - Grandline Maschine + - Shichibukai
    + + Mensch + - Saiyajin + - Dämon + - Mutant + - Cyborg + - Namekianer + - Kaioshin
    + + Parameciafrüchte + - Zoanfrüchte + - Logiafrüchte + '.$tf_array['item'].''; + } + } elseif ($fruchttyp == 'zoan') { + $tf_query= mysql_query('SELECT * FROM wochen_markt WHERE (id!=25 AND id!=41 AND id!=42) AND (id=29 OR id=31 OR id=34 OR id=35 OR id=30 OR id=33 OR id=16 OR id=32 OR id=401 OR id=403 OR id=405 OR id=407) ORDER BY item ASC'); + while ($tf_array= mysql_fetch_assoc($tf_query)) { + echo ' - '.$tf_array['item'].''; + } + } elseif ($fruchttyp == 'logia') { + $tf_query= mysql_query('SELECT * FROM wochen_markt WHERE (id!=25 AND id!=41 AND id!=42) AND (id=8 OR id=23 OR id=24 OR id=6 OR id=15 OR id=413 OR id=414) ORDER BY item ASC'); + while ($tf_array= mysql_fetch_assoc($tf_query)) { + echo ' - '.$tf_array['item'].''; + } + } + } + ?> +
    + + + + + +
    + + + + +
    diff --git a/ag/info/items.php b/ag/info/items.php new file mode 100644 index 0000000..0ac06b9 --- /dev/null +++ b/ag/info/items.php @@ -0,0 +1,157 @@ + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    +

    Name

     
    +

    Stärke

     
    +

    Verteidigung

     
    +

    Geschwindigkeit

     
    +

    HP

     
    +

    MP

     
    +

    Level

     
    +

    Geld

     
    +

    Type

     
    +

    Info

     
    +

    Rassen

     
    +
    +
    + + + + + + + +
    +
    + + + + + + + + + + + + + $i){ + + $seiten .= " $z "; + $z++; + $i++; +} +?> + + + + + +
    +

    Alle Attacken

    +

    Name

     $row[name]"; ?>
    +

    Seiten

     
    +
    +
    + + + + \ No newline at end of file diff --git a/ag/info/lern.php b/ag/info/lern.php new file mode 100644 index 0000000..1e2631f --- /dev/null +++ b/ag/info/lern.php @@ -0,0 +1,45 @@ + + + + + + + + + + + +
    +

    Technik System

        mal im Kampf + eingesetzt.
    + \ No newline at end of file diff --git a/ag/item.php b/ag/item.php new file mode 100644 index 0000000..79dd018 --- /dev/null +++ b/ag/item.php @@ -0,0 +1,294 @@ + + + + $hp1[1]) { + $new_hp = $hp1[1]; + } + if ($new_mp > $mp1[1]) { + $new_mp = $mp1[1]; + } + + mysql_Query("UPDATE chars SET starke='$new_starke', verteidigung='$new_ver', speed='$new_speed', hp='$new_hp,$new_hp2', mp='$new_mp,$new_mp2' WHERE id='$char_id2' LIMIT 1"); + mysql_query("DELETE FROM ware WHERE id='$item_info1[id]' LIMIT 1"); + + displayErrorMessage(NULL,'Trank erfolgreich Benutzt', 'weiter...'); + exit; +} + +if ($charm == 2) { + if (!$ak_no) { + displayErrorMessage(NULL,'Wollen sie das item wirklich Verkaufen? PS: Sie bekommen nur 50%', displayHistoryBackLink().' | Ja'); + exit; + } + + $item_info = mysql_fetch_array(mysql_query("SELECT item_id, id, user, ru_mal FROM ware WHERE id='$item_id' LIMIT 1")); + $item_info2 = mysql_fetch_array(mysql_query("SELECT preis, anzahl FROM item WHERE id='$item_info[item_id]' LIMIT 1")); + + if ($item_info['user'] != $user_ida['id']) { + displayErrorMessage(NULL,'Dieses Item gehört nicht dir', displayHistoryBackLink()); + exit; + } + if ($item_info['ru_mal'] == 0) { + $new_geld = $user['geld'] + ($item_info2['preis'] / 2); + } else { + $new_geld = $user['geld'] + (($item_info2['preis'] / 2) * $item_info['ru_mal']); + } + $new_zahl = $item_info2['anzahl'] + 1; + + $sql = "UPDATE user SET geld='$new_geld' WHERE id='$user[id]'"; +// echo $sql.'
    '; + mysql_query($sql); + mysql_query("UPDATE item SET anzahl='$new_zahl' WHERE id='$item_info[item_id]'"); + mysql_Query("DELETE FROM ware WHERE id='$item_info[id]'"); + displayErrorMessage(NULL,'Item erfolgreich verkauft', 'weiter...'); + exit; +} + +if ($charm == 6) { + $item_info = mysql_fetch_array(mysql_query("SELECT w.user, i.item, i.starke, i.ver, i.speed, i.ausdauer, i.hp, i.mp, i.glueck FROM wochen_ware w LEFT JOIN wochen_markt i ON(i.id=w.item) WHERE w.id='$sp_item' LIMIT 1")); + $char_id1 = getChar($char_id2); + + if ($item_info[user] != $user[id]) { + displayErrorMessage(NULL,'Dieses Item gehört nicht dir', displayHistoryBackLink()); + exit; + } + + if ($char_id1[besitzer] != $user[id]) { + displayErrorMessage(NULL,'Dieser Charakter gehört nicht dir!', displayHistoryBackLink()); + exit; + } + + $hp1 = explode(",", $char_id1[hp]); + $mp1 = explode(",", $char_id1[mp]); + + $new_hp2 = $hp1[1] + $item_info[hp]; + $new_mp2 = $mp1[1] + $item_info[mp]; + + $new_starke = $item_info[starke] + $char_id1[starke]; + $new_ver = $item_info[ver] + $char_id1[verteidigung]; + $new_speed = $item_info[speed] + $char_id1[speed]; + $new_ausdauer = $item_info[ausdauer] + $char_id1[ausdauer]; + $new_glueck = $item_info[glueck] + $char_id1[glueck]; + + mysql_Query("UPDATE chars SET frucht='$item_info[item]', ausdauer='$new_ausdauer', glueck='$new_glueck', starke='$new_starke', verteidigung='$new_ver', speed='$new_speed', hp='$hp1[0],$new_hp2', mp='$mp1[0],$new_mp2' WHERE id='$char_id2' LIMIT 1"); + mysql_query("DELETE FROM wochen_ware WHERE id='$sp_item' LIMIT 1"); + + displayErrorMessage(NULL,$item_info['item'].' erfolgreich benutzt', 'weiter...'); + exit; +} + +$chars = getCharsOfUser($user_ida['id']); +$sql = "SELECT item_id, count(item_id) as anzahl, user, id, ru_mal FROM ware WHERE user='$user[id]' group by item_id"; +//echo $sql; +$item2 = mysql_query($sql); +$item1 = mysql_query("SELECT item_id, id, ru_mal FROM ware WHERE user='$user[id]' group by item_id"); +?> + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Item nutzen
    +
    + + + +

    + +

    + name='submit' value='Benutzen'> +
    +

    Spezialitems nutzen
    + '; + $qry = mysql_query($sql); + while($row = mysql_fetch_assoc($qry)){ + // 7 DBs, 1 Potara und 1 Bohne gibts derzeit + if($row['id'] == 11 && $row['anzahl'] >= 7){ + echo ''.$row['name'].' einsetzen ('.$row['anzahl'].')'; + } else if(($row['id'] == 1 || $row['id'] == 2) && $row['anzahl'] > 0){ + // Potaras und Bohnen + echo ''.$row['name'].' einsetzen ('.$row['anzahl'].')
    '; + } else if($row['id'] == 404 || $row['id'] == 415){ + if($row['anzahl'] > 0){ + echo ''.$row['name'].' öffnen ('.$row['anzahl'].')
    '; + } + } else{ + echo $row['name'].' ('.$row['anzahl'].')
    '."\n"; + } + } + ?> +

    Teufelsfrucht benutzen
    +
    + + + +

    + +

    + +
    +

    Item verkaufen
    +
    + + + +

    + +
    +
    +
    +
    + diff --git a/ag/java/adblock.js b/ag/java/adblock.js new file mode 100644 index 0000000..6e09ce4 --- /dev/null +++ b/ag/java/adblock.js @@ -0,0 +1,74 @@ +// File: adblock.js +// Version: 1.2 +// Update 9/1/04: fixed spelling errors in text +// Update 9/7/04: Added deny feature, allowing no access to users with AdBlock software. +// Distributed by: AdBlock.org +// This file is provided AS-IS and without warranty and is distributed under the GPL. +// This code may be freely used as long as it remains intact. + +var chip = document.cookie; +var deny = 0; //set this to 1 to deny access with no access. + // A denied user will go to page sorry.html. + // if you enable this feature you must create a page called /sorry.html + +function getCookie(name) { + var index = chip.indexOf(name + "="); + if (index == -1) return null; + index = chip.indexOf("=", index) + 1; // first character + var endstr = chip.indexOf(";", index); + if (endstr == -1) endstr = chip.length; // last character + return unescape(chip.substring(index, endstr)); +} + +function hidediv() { + if (document.getElementById) { + document.getElementById('warning').style.visibility = 'hidden'; + document.cookie = "warned=true; PATH=/"; + } +} + +function clear_cookie(){ + document.cookie = "warned=; PATH=/"; +} + + +if (document.getElementById) { + if (!getCookie("warned")) { + document.write("
    "); + document.write("

    Wichtig: Es scheint, dass du eine Adblock Software nutzt.

    "); + document.write("

    Der Server dieses Spiels wird aus Werbung finanziert. "); + document.write("Wenn du also Werbung blockst, führt das evtl. dazu, dass die Kosten des Servers nicht gedeckt werden können. Die Spielleitung wird keine nervigen Werbungen einfügen, wodurch der Einsatz eines Adblockers nicht gerechtfertigt ist.

    "); + document.write("

    Fuer mehr Informationen, visit AdBlock.org.

    "); + document.write("

    Hier klicken um Info zu verbergen.
    "); + document.write("Du wirst diese Nachricht in dieser Sitzung nicht mehr empfangen (Cookies muessen aktiviert sein.)

    "); + } +} + +function checkVisible(variable){ + if(variable == 1){ + document.getElementById('warning').style.visibility = 'visible'; + } +} +/* +if (document.images) { + var currImg; + var ImgFound = 0; + var LinkFound = 0; + //alert("checking images.."); + for (var d=0; d < document.images.length; ++d) { + currImg = document.images[d]; + if (currImg.src.indexOf("banner_ad") > -1) { + ImgFound = 1; + } + } + + if (!ImgFound || AdBlockTest) { + if(deny) { + location = "/sorry.html"; + window.location(location); + } else { + document.getElementById('warning').style.visibility = 'visible'; + } + } + +}*/ diff --git a/ag/java/ag_chat.js b/ag/java/ag_chat.js new file mode 100644 index 0000000..6f37b46 --- /dev/null +++ b/ag/java/ag_chat.js @@ -0,0 +1,66 @@ +/* + * + * @copyright (c) 2010 animegame.eu + * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence + * + */ +// Quelle: http://www.devblog.de +// "Shoutbox als AJAX-Anwendung" +// Code darf frei verwendet werden + +// globale Instanz von XMLHttpRequest +var xmlHttp = false; + +// XMLHttpRequest-Instanz erstellen +// ... f�r Internet Explorer + +try { + xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); +} catch(e) { + try { + xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); + } catch(e) { + xmlHttp = false; + } +} +// ... f�r Mozilla, Opera und Safari +if (!xmlHttp && typeof XMLHttpRequest != 'undefined') { + xmlHttp = new XMLHttpRequest(); +} + + + + loadData(); + setInterval("loadData()",6500); + + + +function loadData() +{ + + if (xmlHttp) { + xmlHttp.open('GET', 'info/agchat.php?action=load', true); + xmlHttp.onreadystatechange = function () { + if (xmlHttp.readyState == 4) { ////4 f�r fertig + document.getElementById("text_inhalt").innerHTML = xmlHttp.responseText; + } + }; + + xmlHttp.send(null); + } +} + +function saveData() +{ + +if (xmlHttp) { + var url = 'text='+document.kampfchat2.textfeld.value.replace(/&/g, '[AMP]').replace(/\+/g, '[ADD]').replace(/\\/g, '\\\\'); + xmlHttp.open('POST', 'info/agchat.php?action=save'); + xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); + xmlHttp.send(url); +} + +// Message-Eingabefelder leeren und Focus setzen +document.kampfchat2.textfeld.value = ''; +document.kampfchat2.textfeld.focus(); +} \ No newline at end of file diff --git a/ag/java/arena.js b/ag/java/arena.js new file mode 100644 index 0000000..a5feb35 --- /dev/null +++ b/ag/java/arena.js @@ -0,0 +1,85 @@ +/* + * + * @copyright (c) 2010 animegame.eu + * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence + * + */ + + + diff --git a/ag/java/arena_skill.js b/ag/java/arena_skill.js new file mode 100644 index 0000000..0db3392 --- /dev/null +++ b/ag/java/arena_skill.js @@ -0,0 +1,107 @@ +/* + * + * @copyright (c) 2010 animegame.eu + * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence + * + */ + + + diff --git a/ag/java/auktion.js b/ag/java/auktion.js new file mode 100644 index 0000000..117fa27 --- /dev/null +++ b/ag/java/auktion.js @@ -0,0 +1,43 @@ +/* + * + * @copyright (c) 2010 animegame.eu + * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence + * + */ + diff --git a/ag/java/banner_ad.js b/ag/java/banner_ad.js new file mode 100644 index 0000000..e6437b4 --- /dev/null +++ b/ag/java/banner_ad.js @@ -0,0 +1,10 @@ +/* + * + * @copyright (c) 2010 animegame.eu + * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence + * + */ + +function startBanner(){ + return true; +} \ No newline at end of file diff --git a/ag/java/char.js b/ag/java/char.js new file mode 100644 index 0000000..03954f9 --- /dev/null +++ b/ag/java/char.js @@ -0,0 +1,57 @@ +/* + * + * @copyright (c) 2010 animegame.eu + * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence + * + */ + + \ No newline at end of file diff --git a/ag/java/markt.js b/ag/java/markt.js new file mode 100644 index 0000000..522c9ac --- /dev/null +++ b/ag/java/markt.js @@ -0,0 +1,205 @@ +/* + * + * @copyright (c) 2010 animegame.eu + * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence + * + */ + + +var DHTML = 0, DOM = 0, MS = 0, NS = 0, OP = 0; + +function showText(textid) { +Textbox.style.visible=true; +} + +function DHTML_init() { + + if (window.opera) { + OP = 1; + } + if(document.getElementById) { + DHTML = 1; + DOM = 1; + } + if(document.all && !OP) { + DHTML = 1; + MS = 1; + } +if(document.layers && !OP) { + DHTML = 1; + NS = 1; + } +} + +function getElem(p1,p2,p3) { + var Elem; + if(DOM) { + if(p1.toLowerCase()=="id") { + if (typeof document.getElementById(p2) == "object") + Elem = document.getElementById(p2); + else Elem = void(0); + return(Elem); + } + else if(p1.toLowerCase()=="name") { + if (typeof document.getElementsByName(p2) == "object") + Elem = document.getElementsByName(p2)[p3]; + else Elem = void(0); + return(Elem); + } + else if(p1.toLowerCase()=="tagname") { + if (typeof document.getElementsByTagName(p2) == "object" || + (OP && typeof document.getElementsByTagName(p2) == "function")) + Elem = document.getElementsByTagName(p2)[p3]; + else Elem = void(0); + return(Elem); + } + else return void(0); + } + else if(MS) { + if(p1.toLowerCase()=="id") { + if (typeof document.all[p2] == "object") + Elem = document.all[p2]; + else Elem = void(0); + return(Elem); + } + else if(p1.toLowerCase()=="tagname") { + if (typeof document.all.tags(p2) == "object") + Elem = document.all.tags(p2)[p3]; + else Elem = void(0); + return(Elem); + } + else if(p1.toLowerCase()=="name") { + if (typeof document[p2] == "object") + Elem = document[p2]; + else Elem = void(0); + return(Elem); + } + else return void(0); + } + else if(NS) { + if(p1.toLowerCase()=="id" || p1.toLowerCase()=="name") { + if (typeof document[p2] == "object") + Elem = document[p2]; + else Elem = void(0); + return(Elem); + } + else if(p1.toLowerCase()=="index") { + if (typeof document.layers[p2] == "object") + Elem = document.layers[p2]; + else Elem = void(0); + return(Elem); + } + else return void(0); + } +} + +function getCont(p1,p2,p3) { + var Cont; + if(DOM && getElem(p1,p2,p3) && getElem(p1,p2,p3).firstChild) { + if(getElem(p1,p2,p3).firstChild.nodeType == 3) + Cont = getElem(p1,p2,p3).firstChild.nodeValue; + else + Cont = ""; + return(Cont); + } + else if(MS && getElem(p1,p2,p3)) { + Cont = getElem(p1,p2,p3).innerText; + return(Cont); + } + else return void(0); +} + +function getAttr(p1,p2,p3,p4) { + var Attr; + if((DOM || MS) && getElem(p1,p2,p3)) { + Attr = getElem(p1,p2,p3).getAttribute(p4); + return(Attr); + } + else if (NS && getElem(p1,p2)) { + if (typeof getElem(p1,p2)[p3] == "object") + Attr=getElem(p1,p2)[p3][p4] + else + Attr=getElem(p1,p2)[p4] + return Attr; + } + else return void(0); +} + +function setCont(p1,p2,p3,p4) { + if(DOM && getElem(p1,p2,p3) && getElem(p1,p2,p3).firstChild) + getElem(p1,p2,p3).firstChild.nodeValue = p4; + else if(MS && getElem(p1,p2,p3)) + getElem(p1,p2,p3).innerText = p4; + else if(NS && getElem(p1,p2,p3)) { + getElem(p1,p2,p3).document.open(); + getElem(p1,p2,p3).document.write(p4); + getElem(p1,p2,p3).document.close(); + } +} + +DHTML_init(); + + +function Menue() { + if(DOM) { + if(MS) +//getElem("id","Nav",null).style.top = window.event.clientY; +getElem("id","Nav",null).style.left = window.event.clientX; + else +getElem("id","Nav",null).style.top = window.event.clientY; + + } + if(DOM || MS) { + if (!DOM) getElem("id","Nav",null).style.top = document.body.scrollTop + 50; + if (OP) getElem("id","NavLinks",null).style.pixelTop = NavLinksPos; + getElem("id","Nav",null).style.visibility = "visible"; + } + else if(NS) { + getElem("id","Nav",null).top = window.pageYOffset + 50; + getElem("id","Nav",null).visibility = "show"; + } + +} + +function noMenue() { + if(DOM || MS) + getElem("id","Nav",null).style.visibility = "hidden"; + if(NS) + getElem("id","Nav",null).visibility = "hide"; +} +function handleMove(ev) { + if(!MS) { + Event = ev; + if(window.event.shiftKey) + Menue(); + else + noMenue(); + } +} + +function MShandleMove() { + if(MS) { + if(window.event.shiftKey) + Menue(); + else + noMenue(); + } + +} + + +function Event_init() { + if(DOM && !MS && !OP) { + getElem("tagname","body",0).addEventListener("mousemove", handleMove, true); + } + if(NS) { + document.captureEvents(Event.MOUSEMOVE); + document.onmousemove=handleMove; + } + if (DOM && OP) { + document.onmousemove=handleMove; + NavLinksPos=42; //Position des Bereiches NavLinks + getElem("id","NavLinks",null).style.pixelTop=NavLinksPos; + } + if (MS) getElem("tagname","body",0).onmousemove=MShandleMove; +} diff --git a/ag/java/new_clan.js b/ag/java/new_clan.js new file mode 100644 index 0000000..ccba91f --- /dev/null +++ b/ag/java/new_clan.js @@ -0,0 +1,68 @@ +/* + * + * @copyright (c) 2010 animegame.eu + * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence + * + */ + +} + +function button_minus(feld,schritt,min) +{ + + new_wert = parseInt(document.getElementById(feld).innerHTML)-schritt; + new_tick = parseInt(document.forms[0].elements['uhr1'].value) - 1; + + + new_tag = parseInt(document.forms[0].elements['tag'].value); + + if(new_wert < 0 && new_tag != 0) { + document.forms[0].elements['tag'].value = new_tag-1; + new_wert=16; + } + + if(min>new_wert && new_tag == 0) { + return; + } + +if(new_tag == 0 && new_wert<0) { + +} else { + document.getElementById(feld).innerHTML = new_wert; + document.forms[0].elements['uhr1'].value = new_tick; +} + + +} + +--> diff --git a/ag/java/new_markt.js b/ag/java/new_markt.js new file mode 100644 index 0000000..fa41536 --- /dev/null +++ b/ag/java/new_markt.js @@ -0,0 +1,71 @@ +/* + * + * @copyright (c) 2010 animegame.eu + * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence + * + */ + diff --git a/ag/java/prototype-1.6.0.2.js b/ag/java/prototype-1.6.0.2.js new file mode 100644 index 0000000..6385503 --- /dev/null +++ b/ag/java/prototype-1.6.0.2.js @@ -0,0 +1,4221 @@ +/* Prototype JavaScript framework, version 1.6.0.2 + * (c) 2005-2008 Sam Stephenson + * + * Prototype is freely distributable under the terms of an MIT-style license. + * For details, see the Prototype web site: http://www.prototypejs.org/ + * + *--------------------------------------------------------------------------*/ + +var Prototype = { + Version: '1.6.0.2', + + Browser: { + IE: !!(window.attachEvent && !window.opera), + Opera: !!window.opera, + WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1, + Gecko: navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1, + MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/) + }, + + BrowserFeatures: { + XPath: !!document.evaluate, + ElementExtensions: !!window.HTMLElement, + SpecificElementExtensions: + document.createElement('div').__proto__ && + document.createElement('div').__proto__ !== + document.createElement('form').__proto__ + }, + + ScriptFragment: ']*>([\\S\\s]*?)<\/script>', + JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/, + + emptyFunction: function() { }, + K: function(x) { return x } +}; + +if (Prototype.Browser.MobileSafari) + Prototype.BrowserFeatures.SpecificElementExtensions = false; + + +/* Based on Alex Arnell's inheritance implementation. */ +var Class = { + create: function() { + var parent = null, properties = $A(arguments); + if (Object.isFunction(properties[0])) + parent = properties.shift(); + + function klass() { + this.initialize.apply(this, arguments); + } + + Object.extend(klass, Class.Methods); + klass.superclass = parent; + klass.subclasses = []; + + if (parent) { + var subclass = function() { }; + subclass.prototype = parent.prototype; + klass.prototype = new subclass; + parent.subclasses.push(klass); + } + + for (var i = 0; i < properties.length; i++) + klass.addMethods(properties[i]); + + if (!klass.prototype.initialize) + klass.prototype.initialize = Prototype.emptyFunction; + + klass.prototype.constructor = klass; + + return klass; + } +}; + +Class.Methods = { + addMethods: function(source) { + var ancestor = this.superclass && this.superclass.prototype; + var properties = Object.keys(source); + + if (!Object.keys({ toString: true }).length) + properties.push("toString", "valueOf"); + + for (var i = 0, length = properties.length; i < length; i++) { + var property = properties[i], value = source[property]; + if (ancestor && Object.isFunction(value) && + value.argumentNames().first() == "$super") { + var method = value, value = Object.extend((function(m) { + return function() { return ancestor[m].apply(this, arguments) }; + })(property).wrap(method), { + valueOf: function() { return method }, + toString: function() { return method.toString() } + }); + } + this.prototype[property] = value; + } + + return this; + } +}; + +var Abstract = { }; + +Object.extend = function(destination, source) { + for (var property in source) + destination[property] = source[property]; + return destination; +}; + +Object.extend(Object, { + inspect: function(object) { + try { + if (Object.isUndefined(object)) return 'undefined'; + if (object === null) return 'null'; + return object.inspect ? object.inspect() : String(object); + } catch (e) { + if (e instanceof RangeError) return '...'; + throw e; + } + }, + + toJSON: function(object) { + var type = typeof object; + switch (type) { + case 'undefined': + case 'function': + case 'unknown': return; + case 'boolean': return object.toString(); + } + + if (object === null) return 'null'; + if (object.toJSON) return object.toJSON(); + if (Object.isElement(object)) return; + + var results = []; + for (var property in object) { + var value = Object.toJSON(object[property]); + if (!Object.isUndefined(value)) + results.push(property.toJSON() + ': ' + value); + } + + return '{' + results.join(', ') + '}'; + }, + + toQueryString: function(object) { + return $H(object).toQueryString(); + }, + + toHTML: function(object) { + return object && object.toHTML ? object.toHTML() : String.interpret(object); + }, + + keys: function(object) { + var keys = []; + for (var property in object) + keys.push(property); + return keys; + }, + + values: function(object) { + var values = []; + for (var property in object) + values.push(object[property]); + return values; + }, + + clone: function(object) { + return Object.extend({ }, object); + }, + + isElement: function(object) { + return object && object.nodeType == 1; + }, + + isArray: function(object) { + return object != null && typeof object == "object" && + 'splice' in object && 'join' in object; + }, + + isHash: function(object) { + return object instanceof Hash; + }, + + isFunction: function(object) { + return typeof object == "function"; + }, + + isString: function(object) { + return typeof object == "string"; + }, + + isNumber: function(object) { + return typeof object == "number"; + }, + + isUndefined: function(object) { + return typeof object == "undefined"; + } +}); + +Object.extend(Function.prototype, { + argumentNames: function() { + var names = this.toString().match(/^[\s\(]*function[^(]*\((.*?)\)/)[1].split(",").invoke("strip"); + return names.length == 1 && !names[0] ? [] : names; + }, + + bind: function() { + if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this; + var __method = this, args = $A(arguments), object = args.shift(); + return function() { + return __method.apply(object, args.concat($A(arguments))); + } + }, + + bindAsEventListener: function() { + var __method = this, args = $A(arguments), object = args.shift(); + return function(event) { + return __method.apply(object, [event || window.event].concat(args)); + } + }, + + curry: function() { + if (!arguments.length) return this; + var __method = this, args = $A(arguments); + return function() { + return __method.apply(this, args.concat($A(arguments))); + } + }, + + delay: function() { + var __method = this, args = $A(arguments), timeout = args.shift() * 1000; + return window.setTimeout(function() { + return __method.apply(__method, args); + }, timeout); + }, + + wrap: function(wrapper) { + var __method = this; + return function() { + return wrapper.apply(this, [__method.bind(this)].concat($A(arguments))); + } + }, + + methodize: function() { + if (this._methodized) return this._methodized; + var __method = this; + return this._methodized = function() { + return __method.apply(null, [this].concat($A(arguments))); + }; + } +}); + +Function.prototype.defer = Function.prototype.delay.curry(0.01); + +Date.prototype.toJSON = function() { + return '"' + this.getUTCFullYear() + '-' + + (this.getUTCMonth() + 1).toPaddedString(2) + '-' + + this.getUTCDate().toPaddedString(2) + 'T' + + this.getUTCHours().toPaddedString(2) + ':' + + this.getUTCMinutes().toPaddedString(2) + ':' + + this.getUTCSeconds().toPaddedString(2) + 'Z"'; +}; + +var Try = { + these: function() { + var returnValue; + + for (var i = 0, length = arguments.length; i < length; i++) { + var lambda = arguments[i]; + try { + returnValue = lambda(); + break; + } catch (e) { } + } + + return returnValue; + } +}; + +RegExp.prototype.match = RegExp.prototype.test; + +RegExp.escape = function(str) { + return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); +}; + +/*--------------------------------------------------------------------------*/ + +var PeriodicalExecuter = Class.create({ + initialize: function(callback, frequency) { + this.callback = callback; + this.frequency = frequency; + this.currentlyExecuting = false; + + this.registerCallback(); + }, + + registerCallback: function() { + this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); + }, + + execute: function() { + this.callback(this); + }, + + stop: function() { + if (!this.timer) return; + clearInterval(this.timer); + this.timer = null; + }, + + onTimerEvent: function() { + if (!this.currentlyExecuting) { + try { + this.currentlyExecuting = true; + this.execute(); + } finally { + this.currentlyExecuting = false; + } + } + } +}); +Object.extend(String, { + interpret: function(value) { + return value == null ? '' : String(value); + }, + specialChar: { + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '\\': '\\\\' + } +}); + +Object.extend(String.prototype, { + gsub: function(pattern, replacement) { + var result = '', source = this, match; + replacement = arguments.callee.prepareReplacement(replacement); + + while (source.length > 0) { + if (match = source.match(pattern)) { + result += source.slice(0, match.index); + result += String.interpret(replacement(match)); + source = source.slice(match.index + match[0].length); + } else { + result += source, source = ''; + } + } + return result; + }, + + sub: function(pattern, replacement, count) { + replacement = this.gsub.prepareReplacement(replacement); + count = Object.isUndefined(count) ? 1 : count; + + return this.gsub(pattern, function(match) { + if (--count < 0) return match[0]; + return replacement(match); + }); + }, + + scan: function(pattern, iterator) { + this.gsub(pattern, iterator); + return String(this); + }, + + truncate: function(length, truncation) { + length = length || 30; + truncation = Object.isUndefined(truncation) ? '...' : truncation; + return this.length > length ? + this.slice(0, length - truncation.length) + truncation : String(this); + }, + + strip: function() { + return this.replace(/^\s+/, '').replace(/\s+$/, ''); + }, + + stripTags: function() { + return this.replace(/<\/?[^>]+>/gi, ''); + }, + + stripScripts: function() { + return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), ''); + }, + + extractScripts: function() { + var matchAll = new RegExp(Prototype.ScriptFragment, 'img'); + var matchOne = new RegExp(Prototype.ScriptFragment, 'im'); + return (this.match(matchAll) || []).map(function(scriptTag) { + return (scriptTag.match(matchOne) || ['', ''])[1]; + }); + }, + + evalScripts: function() { + return this.extractScripts().map(function(script) { return eval(script) }); + }, + + escapeHTML: function() { + var self = arguments.callee; + self.text.data = this; + return self.div.innerHTML; + }, + + unescapeHTML: function() { + var div = new Element('div'); + div.innerHTML = this.stripTags(); + return div.childNodes[0] ? (div.childNodes.length > 1 ? + $A(div.childNodes).inject('', function(memo, node) { return memo+node.nodeValue }) : + div.childNodes[0].nodeValue) : ''; + }, + + toQueryParams: function(separator) { + var match = this.strip().match(/([^?#]*)(#.*)?$/); + if (!match) return { }; + + return match[1].split(separator || '&').inject({ }, function(hash, pair) { + if ((pair = pair.split('='))[0]) { + var key = decodeURIComponent(pair.shift()); + var value = pair.length > 1 ? pair.join('=') : pair[0]; + if (value != undefined) value = decodeURIComponent(value); + + if (key in hash) { + if (!Object.isArray(hash[key])) hash[key] = [hash[key]]; + hash[key].push(value); + } + else hash[key] = value; + } + return hash; + }); + }, + + toArray: function() { + return this.split(''); + }, + + succ: function() { + return this.slice(0, this.length - 1) + + String.fromCharCode(this.charCodeAt(this.length - 1) + 1); + }, + + times: function(count) { + return count < 1 ? '' : new Array(count + 1).join(this); + }, + + camelize: function() { + var parts = this.split('-'), len = parts.length; + if (len == 1) return parts[0]; + + var camelized = this.charAt(0) == '-' + ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1) + : parts[0]; + + for (var i = 1; i < len; i++) + camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1); + + return camelized; + }, + + capitalize: function() { + return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase(); + }, + + underscore: function() { + return this.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase(); + }, + + dasherize: function() { + return this.gsub(/_/,'-'); + }, + + inspect: function(useDoubleQuotes) { + var escapedString = this.gsub(/[\x00-\x1f\\]/, function(match) { + var character = String.specialChar[match[0]]; + return character ? character : '\\u00' + match[0].charCodeAt().toPaddedString(2, 16); + }); + if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"'; + return "'" + escapedString.replace(/'/g, '\\\'') + "'"; + }, + + toJSON: function() { + return this.inspect(true); + }, + + unfilterJSON: function(filter) { + return this.sub(filter || Prototype.JSONFilter, '#{1}'); + }, + + isJSON: function() { + var str = this; + if (str.blank()) return false; + str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''); + return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str); + }, + + evalJSON: function(sanitize) { + var json = this.unfilterJSON(); + try { + if (!sanitize || json.isJSON()) return eval('(' + json + ')'); + } catch (e) { } + throw new SyntaxError('Badly formed JSON string: ' + this.inspect()); + }, + + include: function(pattern) { + return this.indexOf(pattern) > -1; + }, + + startsWith: function(pattern) { + return this.indexOf(pattern) === 0; + }, + + endsWith: function(pattern) { + var d = this.length - pattern.length; + return d >= 0 && this.lastIndexOf(pattern) === d; + }, + + empty: function() { + return this == ''; + }, + + blank: function() { + return /^\s*$/.test(this); + }, + + interpolate: function(object, pattern) { + return new Template(this, pattern).evaluate(object); + } +}); + +if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.prototype, { + escapeHTML: function() { + return this.replace(/&/g,'&').replace(//g,'>'); + }, + unescapeHTML: function() { + return this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); + } +}); + +String.prototype.gsub.prepareReplacement = function(replacement) { + if (Object.isFunction(replacement)) return replacement; + var template = new Template(replacement); + return function(match) { return template.evaluate(match) }; +}; + +String.prototype.parseQuery = String.prototype.toQueryParams; + +Object.extend(String.prototype.escapeHTML, { + div: document.createElement('div'), + text: document.createTextNode('') +}); + +with (String.prototype.escapeHTML) div.appendChild(text); + +var Template = Class.create({ + initialize: function(template, pattern) { + this.template = template.toString(); + this.pattern = pattern || Template.Pattern; + }, + + evaluate: function(object) { + if (Object.isFunction(object.toTemplateReplacements)) + object = object.toTemplateReplacements(); + + return this.template.gsub(this.pattern, function(match) { + if (object == null) return ''; + + var before = match[1] || ''; + if (before == '\\') return match[2]; + + var ctx = object, expr = match[3]; + var pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/; + match = pattern.exec(expr); + if (match == null) return before; + + while (match != null) { + var comp = match[1].startsWith('[') ? match[2].gsub('\\\\]', ']') : match[1]; + ctx = ctx[comp]; + if (null == ctx || '' == match[3]) break; + expr = expr.substring('[' == match[3] ? match[1].length : match[0].length); + match = pattern.exec(expr); + } + + return before + String.interpret(ctx); + }); + } +}); +Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/; + +var $break = { }; + +var Enumerable = { + each: function(iterator, context) { + var index = 0; + iterator = iterator.bind(context); + try { + this._each(function(value) { + iterator(value, index++); + }); + } catch (e) { + if (e != $break) throw e; + } + return this; + }, + + eachSlice: function(number, iterator, context) { + iterator = iterator ? iterator.bind(context) : Prototype.K; + var index = -number, slices = [], array = this.toArray(); + while ((index += number) < array.length) + slices.push(array.slice(index, index+number)); + return slices.collect(iterator, context); + }, + + all: function(iterator, context) { + iterator = iterator ? iterator.bind(context) : Prototype.K; + var result = true; + this.each(function(value, index) { + result = result && !!iterator(value, index); + if (!result) throw $break; + }); + return result; + }, + + any: function(iterator, context) { + iterator = iterator ? iterator.bind(context) : Prototype.K; + var result = false; + this.each(function(value, index) { + if (result = !!iterator(value, index)) + throw $break; + }); + return result; + }, + + collect: function(iterator, context) { + iterator = iterator ? iterator.bind(context) : Prototype.K; + var results = []; + this.each(function(value, index) { + results.push(iterator(value, index)); + }); + return results; + }, + + detect: function(iterator, context) { + iterator = iterator.bind(context); + var result; + this.each(function(value, index) { + if (iterator(value, index)) { + result = value; + throw $break; + } + }); + return result; + }, + + findAll: function(iterator, context) { + iterator = iterator.bind(context); + var results = []; + this.each(function(value, index) { + if (iterator(value, index)) + results.push(value); + }); + return results; + }, + + grep: function(filter, iterator, context) { + iterator = iterator ? iterator.bind(context) : Prototype.K; + var results = []; + + if (Object.isString(filter)) + filter = new RegExp(filter); + + this.each(function(value, index) { + if (filter.match(value)) + results.push(iterator(value, index)); + }); + return results; + }, + + include: function(object) { + if (Object.isFunction(this.indexOf)) + if (this.indexOf(object) != -1) return true; + + var found = false; + this.each(function(value) { + if (value == object) { + found = true; + throw $break; + } + }); + return found; + }, + + inGroupsOf: function(number, fillWith) { + fillWith = Object.isUndefined(fillWith) ? null : fillWith; + return this.eachSlice(number, function(slice) { + while(slice.length < number) slice.push(fillWith); + return slice; + }); + }, + + inject: function(memo, iterator, context) { + iterator = iterator.bind(context); + this.each(function(value, index) { + memo = iterator(memo, value, index); + }); + return memo; + }, + + invoke: function(method) { + var args = $A(arguments).slice(1); + return this.map(function(value) { + return value[method].apply(value, args); + }); + }, + + max: function(iterator, context) { + iterator = iterator ? iterator.bind(context) : Prototype.K; + var result; + this.each(function(value, index) { + value = iterator(value, index); + if (result == null || value >= result) + result = value; + }); + return result; + }, + + min: function(iterator, context) { + iterator = iterator ? iterator.bind(context) : Prototype.K; + var result; + this.each(function(value, index) { + value = iterator(value, index); + if (result == null || value < result) + result = value; + }); + return result; + }, + + partition: function(iterator, context) { + iterator = iterator ? iterator.bind(context) : Prototype.K; + var trues = [], falses = []; + this.each(function(value, index) { + (iterator(value, index) ? + trues : falses).push(value); + }); + return [trues, falses]; + }, + + pluck: function(property) { + var results = []; + this.each(function(value) { + results.push(value[property]); + }); + return results; + }, + + reject: function(iterator, context) { + iterator = iterator.bind(context); + var results = []; + this.each(function(value, index) { + if (!iterator(value, index)) + results.push(value); + }); + return results; + }, + + sortBy: function(iterator, context) { + iterator = iterator.bind(context); + return this.map(function(value, index) { + return {value: value, criteria: iterator(value, index)}; + }).sort(function(left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : 0; + }).pluck('value'); + }, + + toArray: function() { + return this.map(); + }, + + zip: function() { + var iterator = Prototype.K, args = $A(arguments); + if (Object.isFunction(args.last())) + iterator = args.pop(); + + var collections = [this].concat(args).map($A); + return this.map(function(value, index) { + return iterator(collections.pluck(index)); + }); + }, + + size: function() { + return this.toArray().length; + }, + + inspect: function() { + return '#'; + } +}; + +Object.extend(Enumerable, { + map: Enumerable.collect, + find: Enumerable.detect, + select: Enumerable.findAll, + filter: Enumerable.findAll, + member: Enumerable.include, + entries: Enumerable.toArray, + every: Enumerable.all, + some: Enumerable.any +}); +function $A(iterable) { + if (!iterable) return []; + if (iterable.toArray) return iterable.toArray(); + var length = iterable.length || 0, results = new Array(length); + while (length--) results[length] = iterable[length]; + return results; +} + +if (Prototype.Browser.WebKit) { + $A = function(iterable) { + if (!iterable) return []; + if (!(Object.isFunction(iterable) && iterable == '[object NodeList]') && + iterable.toArray) return iterable.toArray(); + var length = iterable.length || 0, results = new Array(length); + while (length--) results[length] = iterable[length]; + return results; + }; +} + +Array.from = $A; + +Object.extend(Array.prototype, Enumerable); + +if (!Array.prototype._reverse) Array.prototype._reverse = Array.prototype.reverse; + +Object.extend(Array.prototype, { + _each: function(iterator) { + for (var i = 0, length = this.length; i < length; i++) + iterator(this[i]); + }, + + clear: function() { + this.length = 0; + return this; + }, + + first: function() { + return this[0]; + }, + + last: function() { + return this[this.length - 1]; + }, + + compact: function() { + return this.select(function(value) { + return value != null; + }); + }, + + flatten: function() { + return this.inject([], function(array, value) { + return array.concat(Object.isArray(value) ? + value.flatten() : [value]); + }); + }, + + without: function() { + var values = $A(arguments); + return this.select(function(value) { + return !values.include(value); + }); + }, + + reverse: function(inline) { + return (inline !== false ? this : this.toArray())._reverse(); + }, + + reduce: function() { + return this.length > 1 ? this : this[0]; + }, + + uniq: function(sorted) { + return this.inject([], function(array, value, index) { + if (0 == index || (sorted ? array.last() != value : !array.include(value))) + array.push(value); + return array; + }); + }, + + intersect: function(array) { + return this.uniq().findAll(function(item) { + return array.detect(function(value) { return item === value }); + }); + }, + + clone: function() { + return [].concat(this); + }, + + size: function() { + return this.length; + }, + + inspect: function() { + return '[' + this.map(Object.inspect).join(', ') + ']'; + }, + + toJSON: function() { + var results = []; + this.each(function(object) { + var value = Object.toJSON(object); + if (!Object.isUndefined(value)) results.push(value); + }); + return '[' + results.join(', ') + ']'; + } +}); + +// use native browser JS 1.6 implementation if available +if (Object.isFunction(Array.prototype.forEach)) + Array.prototype._each = Array.prototype.forEach; + +if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) { + i || (i = 0); + var length = this.length; + if (i < 0) i = length + i; + for (; i < length; i++) + if (this[i] === item) return i; + return -1; +}; + +if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf = function(item, i) { + i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1; + var n = this.slice(0, i).reverse().indexOf(item); + return (n < 0) ? n : i - n - 1; +}; + +Array.prototype.toArray = Array.prototype.clone; + +function $w(string) { + if (!Object.isString(string)) return []; + string = string.strip(); + return string ? string.split(/\s+/) : []; +} + +if (Prototype.Browser.Opera){ + Array.prototype.concat = function() { + var array = []; + for (var i = 0, length = this.length; i < length; i++) array.push(this[i]); + for (var i = 0, length = arguments.length; i < length; i++) { + if (Object.isArray(arguments[i])) { + for (var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++) + array.push(arguments[i][j]); + } else { + array.push(arguments[i]); + } + } + return array; + }; +} +Object.extend(Number.prototype, { + toColorPart: function() { + return this.toPaddedString(2, 16); + }, + + succ: function() { + return this + 1; + }, + + times: function(iterator) { + $R(0, this, true).each(iterator); + return this; + }, + + toPaddedString: function(length, radix) { + var string = this.toString(radix || 10); + return '0'.times(length - string.length) + string; + }, + + toJSON: function() { + return isFinite(this) ? this.toString() : 'null'; + } +}); + +$w('abs round ceil floor').each(function(method){ + Number.prototype[method] = Math[method].methodize(); +}); +function $H(object) { + return new Hash(object); +}; + +var Hash = Class.create(Enumerable, (function() { + + function toQueryPair(key, value) { + if (Object.isUndefined(value)) return key; + return key + '=' + encodeURIComponent(String.interpret(value)); + } + + return { + initialize: function(object) { + this._object = Object.isHash(object) ? object.toObject() : Object.clone(object); + }, + + _each: function(iterator) { + for (var key in this._object) { + var value = this._object[key], pair = [key, value]; + pair.key = key; + pair.value = value; + iterator(pair); + } + }, + + set: function(key, value) { + return this._object[key] = value; + }, + + get: function(key) { + return this._object[key]; + }, + + unset: function(key) { + var value = this._object[key]; + delete this._object[key]; + return value; + }, + + toObject: function() { + return Object.clone(this._object); + }, + + keys: function() { + return this.pluck('key'); + }, + + values: function() { + return this.pluck('value'); + }, + + index: function(value) { + var match = this.detect(function(pair) { + return pair.value === value; + }); + return match && match.key; + }, + + merge: function(object) { + return this.clone().update(object); + }, + + update: function(object) { + return new Hash(object).inject(this, function(result, pair) { + result.set(pair.key, pair.value); + return result; + }); + }, + + toQueryString: function() { + return this.map(function(pair) { + var key = encodeURIComponent(pair.key), values = pair.value; + + if (values && typeof values == 'object') { + if (Object.isArray(values)) + return values.map(toQueryPair.curry(key)).join('&'); + } + return toQueryPair(key, values); + }).join('&'); + }, + + inspect: function() { + return '#'; + }, + + toJSON: function() { + return Object.toJSON(this.toObject()); + }, + + clone: function() { + return new Hash(this); + } + } +})()); + +Hash.prototype.toTemplateReplacements = Hash.prototype.toObject; +Hash.from = $H; +var ObjectRange = Class.create(Enumerable, { + initialize: function(start, end, exclusive) { + this.start = start; + this.end = end; + this.exclusive = exclusive; + }, + + _each: function(iterator) { + var value = this.start; + while (this.include(value)) { + iterator(value); + value = value.succ(); + } + }, + + include: function(value) { + if (value < this.start) + return false; + if (this.exclusive) + return value < this.end; + return value <= this.end; + } +}); + +var $R = function(start, end, exclusive) { + return new ObjectRange(start, end, exclusive); +}; + +var Ajax = { + getTransport: function() { + return Try.these( + function() {return new XMLHttpRequest()}, + function() {return new ActiveXObject('Msxml2.XMLHTTP')}, + function() {return new ActiveXObject('Microsoft.XMLHTTP')} + ) || false; + }, + + activeRequestCount: 0 +}; + +Ajax.Responders = { + responders: [], + + _each: function(iterator) { + this.responders._each(iterator); + }, + + register: function(responder) { + if (!this.include(responder)) + this.responders.push(responder); + }, + + unregister: function(responder) { + this.responders = this.responders.without(responder); + }, + + dispatch: function(callback, request, transport, json) { + this.each(function(responder) { + if (Object.isFunction(responder[callback])) { + try { + responder[callback].apply(responder, [request, transport, json]); + } catch (e) { } + } + }); + } +}; + +Object.extend(Ajax.Responders, Enumerable); + +Ajax.Responders.register({ + onCreate: function() { Ajax.activeRequestCount++ }, + onComplete: function() { Ajax.activeRequestCount-- } +}); + +Ajax.Base = Class.create({ + initialize: function(options) { + this.options = { + method: 'post', + asynchronous: true, + contentType: 'application/x-www-form-urlencoded', + encoding: 'UTF-8', + parameters: '', + evalJSON: true, + evalJS: true + }; + Object.extend(this.options, options || { }); + + this.options.method = this.options.method.toLowerCase(); + + if (Object.isString(this.options.parameters)) + this.options.parameters = this.options.parameters.toQueryParams(); + else if (Object.isHash(this.options.parameters)) + this.options.parameters = this.options.parameters.toObject(); + } +}); + +Ajax.Request = Class.create(Ajax.Base, { + _complete: false, + + initialize: function($super, url, options) { + $super(options); + this.transport = Ajax.getTransport(); + this.request(url); + }, + + request: function(url) { + this.url = url; + this.method = this.options.method; + var params = Object.clone(this.options.parameters); + + if (!['get', 'post'].include(this.method)) { + // simulate other verbs over post + params['_method'] = this.method; + this.method = 'post'; + } + + this.parameters = params; + + if (params = Object.toQueryString(params)) { + // when GET, append parameters to URL + if (this.method == 'get') + this.url += (this.url.include('?') ? '&' : '?') + params; + else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) + params += '&_='; + } + + try { + var response = new Ajax.Response(this); + if (this.options.onCreate) this.options.onCreate(response); + Ajax.Responders.dispatch('onCreate', this, response); + + this.transport.open(this.method.toUpperCase(), this.url, + this.options.asynchronous); + + if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1); + + this.transport.onreadystatechange = this.onStateChange.bind(this); + this.setRequestHeaders(); + + this.body = this.method == 'post' ? (this.options.postBody || params) : null; + this.transport.send(this.body); + + /* Force Firefox to handle ready state 4 for synchronous requests */ + if (!this.options.asynchronous && this.transport.overrideMimeType) + this.onStateChange(); + + } + catch (e) { + this.dispatchException(e); + } + }, + + onStateChange: function() { + var readyState = this.transport.readyState; + if (readyState > 1 && !((readyState == 4) && this._complete)) + this.respondToReadyState(this.transport.readyState); + }, + + setRequestHeaders: function() { + var headers = { + 'X-Requested-With': 'XMLHttpRequest', + 'X-Prototype-Version': Prototype.Version, + 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*' + }; + + if (this.method == 'post') { + headers['Content-type'] = this.options.contentType + + (this.options.encoding ? '; charset=' + this.options.encoding : ''); + + /* Force "Connection: close" for older Mozilla browsers to work + * around a bug where XMLHttpRequest sends an incorrect + * Content-length header. See Mozilla Bugzilla #246651. + */ + if (this.transport.overrideMimeType && + (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005) + headers['Connection'] = 'close'; + } + + // user-defined headers + if (typeof this.options.requestHeaders == 'object') { + var extras = this.options.requestHeaders; + + if (Object.isFunction(extras.push)) + for (var i = 0, length = extras.length; i < length; i += 2) + headers[extras[i]] = extras[i+1]; + else + $H(extras).each(function(pair) { headers[pair.key] = pair.value }); + } + + for (var name in headers) + this.transport.setRequestHeader(name, headers[name]); + }, + + success: function() { + var status = this.getStatus(); + return !status || (status >= 200 && status < 300); + }, + + getStatus: function() { + try { + return this.transport.status || 0; + } catch (e) { return 0 } + }, + + respondToReadyState: function(readyState) { + var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this); + + if (state == 'Complete') { + try { + this._complete = true; + (this.options['on' + response.status] + || this.options['on' + (this.success() ? 'Success' : 'Failure')] + || Prototype.emptyFunction)(response, response.headerJSON); + } catch (e) { + this.dispatchException(e); + } + + var contentType = response.getHeader('Content-type'); + if (this.options.evalJS == 'force' + || (this.options.evalJS && this.isSameOrigin() && contentType + && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i))) + this.evalResponse(); + } + + try { + (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON); + Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON); + } catch (e) { + this.dispatchException(e); + } + + if (state == 'Complete') { + // avoid memory leak in MSIE: clean up + this.transport.onreadystatechange = Prototype.emptyFunction; + } + }, + + isSameOrigin: function() { + var m = this.url.match(/^\s*https?:\/\/[^\/]*/); + return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({ + protocol: location.protocol, + domain: document.domain, + port: location.port ? ':' + location.port : '' + })); + }, + + getHeader: function(name) { + try { + return this.transport.getResponseHeader(name) || null; + } catch (e) { return null } + }, + + evalResponse: function() { + try { + return eval((this.transport.responseText || '').unfilterJSON()); + } catch (e) { + this.dispatchException(e); + } + }, + + dispatchException: function(exception) { + (this.options.onException || Prototype.emptyFunction)(this, exception); + Ajax.Responders.dispatch('onException', this, exception); + } +}); + +Ajax.Request.Events = + ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; + +Ajax.Response = Class.create({ + initialize: function(request){ + this.request = request; + var transport = this.transport = request.transport, + readyState = this.readyState = transport.readyState; + + if((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) { + this.status = this.getStatus(); + this.statusText = this.getStatusText(); + this.responseText = String.interpret(transport.responseText); + this.headerJSON = this._getHeaderJSON(); + } + + if(readyState == 4) { + var xml = transport.responseXML; + this.responseXML = Object.isUndefined(xml) ? null : xml; + this.responseJSON = this._getResponseJSON(); + } + }, + + status: 0, + statusText: '', + + getStatus: Ajax.Request.prototype.getStatus, + + getStatusText: function() { + try { + return this.transport.statusText || ''; + } catch (e) { return '' } + }, + + getHeader: Ajax.Request.prototype.getHeader, + + getAllHeaders: function() { + try { + return this.getAllResponseHeaders(); + } catch (e) { return null } + }, + + getResponseHeader: function(name) { + return this.transport.getResponseHeader(name); + }, + + getAllResponseHeaders: function() { + return this.transport.getAllResponseHeaders(); + }, + + _getHeaderJSON: function() { + var json = this.getHeader('X-JSON'); + if (!json) return null; + json = decodeURIComponent(escape(json)); + try { + return json.evalJSON(this.request.options.sanitizeJSON || + !this.request.isSameOrigin()); + } catch (e) { + this.request.dispatchException(e); + } + }, + + _getResponseJSON: function() { + var options = this.request.options; + if (!options.evalJSON || (options.evalJSON != 'force' && + !(this.getHeader('Content-type') || '').include('application/json')) || + this.responseText.blank()) + return null; + try { + return this.responseText.evalJSON(options.sanitizeJSON || + !this.request.isSameOrigin()); + } catch (e) { + this.request.dispatchException(e); + } + } +}); + +Ajax.Updater = Class.create(Ajax.Request, { + initialize: function($super, container, url, options) { + this.container = { + success: (container.success || container), + failure: (container.failure || (container.success ? null : container)) + }; + + options = Object.clone(options); + var onComplete = options.onComplete; + options.onComplete = (function(response, json) { + this.updateContent(response.responseText); + if (Object.isFunction(onComplete)) onComplete(response, json); + }).bind(this); + + $super(url, options); + }, + + updateContent: function(responseText) { + var receiver = this.container[this.success() ? 'success' : 'failure'], + options = this.options; + + if (!options.evalScripts) responseText = responseText.stripScripts(); + + if (receiver = $(receiver)) { + if (options.insertion) { + if (Object.isString(options.insertion)) { + var insertion = { }; insertion[options.insertion] = responseText; + receiver.insert(insertion); + } + else options.insertion(receiver, responseText); + } + else receiver.update(responseText); + } + } +}); + +Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { + initialize: function($super, container, url, options) { + $super(options); + this.onComplete = this.options.onComplete; + + this.frequency = (this.options.frequency || 2); + this.decay = (this.options.decay || 1); + + this.updater = { }; + this.container = container; + this.url = url; + + this.start(); + }, + + start: function() { + this.options.onComplete = this.updateComplete.bind(this); + this.onTimerEvent(); + }, + + stop: function() { + this.updater.options.onComplete = undefined; + clearTimeout(this.timer); + (this.onComplete || Prototype.emptyFunction).apply(this, arguments); + }, + + updateComplete: function(response) { + if (this.options.decay) { + this.decay = (response.responseText == this.lastText ? + this.decay * this.options.decay : 1); + + this.lastText = response.responseText; + } + this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency); + }, + + onTimerEvent: function() { + this.updater = new Ajax.Updater(this.container, this.url, this.options); + } +}); +function $(element) { + if (arguments.length > 1) { + for (var i = 0, elements = [], length = arguments.length; i < length; i++) + elements.push($(arguments[i])); + return elements; + } + if (Object.isString(element)) + element = document.getElementById(element); + return Element.extend(element); +} + +if (Prototype.BrowserFeatures.XPath) { + document._getElementsByXPath = function(expression, parentElement) { + var results = []; + var query = document.evaluate(expression, $(parentElement) || document, + null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); + for (var i = 0, length = query.snapshotLength; i < length; i++) + results.push(Element.extend(query.snapshotItem(i))); + return results; + }; +} + +/*--------------------------------------------------------------------------*/ + +if (!window.Node) var Node = { }; + +if (!Node.ELEMENT_NODE) { + // DOM level 2 ECMAScript Language Binding + Object.extend(Node, { + ELEMENT_NODE: 1, + ATTRIBUTE_NODE: 2, + TEXT_NODE: 3, + CDATA_SECTION_NODE: 4, + ENTITY_REFERENCE_NODE: 5, + ENTITY_NODE: 6, + PROCESSING_INSTRUCTION_NODE: 7, + COMMENT_NODE: 8, + DOCUMENT_NODE: 9, + DOCUMENT_TYPE_NODE: 10, + DOCUMENT_FRAGMENT_NODE: 11, + NOTATION_NODE: 12 + }); +} + +(function() { + var element = this.Element; + this.Element = function(tagName, attributes) { + attributes = attributes || { }; + tagName = tagName.toLowerCase(); + var cache = Element.cache; + if (Prototype.Browser.IE && attributes.name) { + tagName = '<' + tagName + ' name="' + attributes.name + '">'; + delete attributes.name; + return Element.writeAttribute(document.createElement(tagName), attributes); + } + if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName)); + return Element.writeAttribute(cache[tagName].cloneNode(false), attributes); + }; + Object.extend(this.Element, element || { }); +}).call(window); + +Element.cache = { }; + +Element.Methods = { + visible: function(element) { + return $(element).style.display != 'none'; + }, + + toggle: function(element) { + element = $(element); + Element[Element.visible(element) ? 'hide' : 'show'](element); + return element; + }, + + hide: function(element) { + $(element).style.display = 'none'; + return element; + }, + + show: function(element) { + $(element).style.display = ''; + return element; + }, + + remove: function(element) { + element = $(element); + element.parentNode.removeChild(element); + return element; + }, + + update: function(element, content) { + element = $(element); + if (content && content.toElement) content = content.toElement(); + if (Object.isElement(content)) return element.update().insert(content); + content = Object.toHTML(content); + element.innerHTML = content.stripScripts(); + content.evalScripts.bind(content).defer(); + return element; + }, + + replace: function(element, content) { + element = $(element); + if (content && content.toElement) content = content.toElement(); + else if (!Object.isElement(content)) { + content = Object.toHTML(content); + var range = element.ownerDocument.createRange(); + range.selectNode(element); + content.evalScripts.bind(content).defer(); + content = range.createContextualFragment(content.stripScripts()); + } + element.parentNode.replaceChild(content, element); + return element; + }, + + insert: function(element, insertions) { + element = $(element); + + if (Object.isString(insertions) || Object.isNumber(insertions) || + Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML))) + insertions = {bottom:insertions}; + + var content, insert, tagName, childNodes; + + for (var position in insertions) { + content = insertions[position]; + position = position.toLowerCase(); + insert = Element._insertionTranslations[position]; + + if (content && content.toElement) content = content.toElement(); + if (Object.isElement(content)) { + insert(element, content); + continue; + } + + content = Object.toHTML(content); + + tagName = ((position == 'before' || position == 'after') + ? element.parentNode : element).tagName.toUpperCase(); + + childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); + + if (position == 'top' || position == 'after') childNodes.reverse(); + childNodes.each(insert.curry(element)); + + content.evalScripts.bind(content).defer(); + } + + return element; + }, + + wrap: function(element, wrapper, attributes) { + element = $(element); + if (Object.isElement(wrapper)) + $(wrapper).writeAttribute(attributes || { }); + else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes); + else wrapper = new Element('div', wrapper); + if (element.parentNode) + element.parentNode.replaceChild(wrapper, element); + wrapper.appendChild(element); + return wrapper; + }, + + inspect: function(element) { + element = $(element); + var result = '<' + element.tagName.toLowerCase(); + $H({'id': 'id', 'className': 'class'}).each(function(pair) { + var property = pair.first(), attribute = pair.last(); + var value = (element[property] || '').toString(); + if (value) result += ' ' + attribute + '=' + value.inspect(true); + }); + return result + '>'; + }, + + recursivelyCollect: function(element, property) { + element = $(element); + var elements = []; + while (element = element[property]) + if (element.nodeType == 1) + elements.push(Element.extend(element)); + return elements; + }, + + ancestors: function(element) { + return $(element).recursivelyCollect('parentNode'); + }, + + descendants: function(element) { + return $(element).select("*"); + }, + + firstDescendant: function(element) { + element = $(element).firstChild; + while (element && element.nodeType != 1) element = element.nextSibling; + return $(element); + }, + + immediateDescendants: function(element) { + if (!(element = $(element).firstChild)) return []; + while (element && element.nodeType != 1) element = element.nextSibling; + if (element) return [element].concat($(element).nextSiblings()); + return []; + }, + + previousSiblings: function(element) { + return $(element).recursivelyCollect('previousSibling'); + }, + + nextSiblings: function(element) { + return $(element).recursivelyCollect('nextSibling'); + }, + + siblings: function(element) { + element = $(element); + return element.previousSiblings().reverse().concat(element.nextSiblings()); + }, + + match: function(element, selector) { + if (Object.isString(selector)) + selector = new Selector(selector); + return selector.match($(element)); + }, + + up: function(element, expression, index) { + element = $(element); + if (arguments.length == 1) return $(element.parentNode); + var ancestors = element.ancestors(); + return Object.isNumber(expression) ? ancestors[expression] : + Selector.findElement(ancestors, expression, index); + }, + + down: function(element, expression, index) { + element = $(element); + if (arguments.length == 1) return element.firstDescendant(); + return Object.isNumber(expression) ? element.descendants()[expression] : + element.select(expression)[index || 0]; + }, + + previous: function(element, expression, index) { + element = $(element); + if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element)); + var previousSiblings = element.previousSiblings(); + return Object.isNumber(expression) ? previousSiblings[expression] : + Selector.findElement(previousSiblings, expression, index); + }, + + next: function(element, expression, index) { + element = $(element); + if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element)); + var nextSiblings = element.nextSiblings(); + return Object.isNumber(expression) ? nextSiblings[expression] : + Selector.findElement(nextSiblings, expression, index); + }, + + select: function() { + var args = $A(arguments), element = $(args.shift()); + return Selector.findChildElements(element, args); + }, + + adjacent: function() { + var args = $A(arguments), element = $(args.shift()); + return Selector.findChildElements(element.parentNode, args).without(element); + }, + + identify: function(element) { + element = $(element); + var id = element.readAttribute('id'), self = arguments.callee; + if (id) return id; + do { id = 'anonymous_element_' + self.counter++ } while ($(id)); + element.writeAttribute('id', id); + return id; + }, + + readAttribute: function(element, name) { + element = $(element); + if (Prototype.Browser.IE) { + var t = Element._attributeTranslations.read; + if (t.values[name]) return t.values[name](element, name); + if (t.names[name]) name = t.names[name]; + if (name.include(':')) { + return (!element.attributes || !element.attributes[name]) ? null : + element.attributes[name].value; + } + } + return element.getAttribute(name); + }, + + writeAttribute: function(element, name, value) { + element = $(element); + var attributes = { }, t = Element._attributeTranslations.write; + + if (typeof name == 'object') attributes = name; + else attributes[name] = Object.isUndefined(value) ? true : value; + + for (var attr in attributes) { + name = t.names[attr] || attr; + value = attributes[attr]; + if (t.values[attr]) name = t.values[attr](element, value); + if (value === false || value === null) + element.removeAttribute(name); + else if (value === true) + element.setAttribute(name, name); + else element.setAttribute(name, value); + } + return element; + }, + + getHeight: function(element) { + return $(element).getDimensions().height; + }, + + getWidth: function(element) { + return $(element).getDimensions().width; + }, + + classNames: function(element) { + return new Element.ClassNames(element); + }, + + hasClassName: function(element, className) { + if (!(element = $(element))) return; + var elementClassName = element.className; + return (elementClassName.length > 0 && (elementClassName == className || + new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName))); + }, + + addClassName: function(element, className) { + if (!(element = $(element))) return; + if (!element.hasClassName(className)) + element.className += (element.className ? ' ' : '') + className; + return element; + }, + + removeClassName: function(element, className) { + if (!(element = $(element))) return; + element.className = element.className.replace( + new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip(); + return element; + }, + + toggleClassName: function(element, className) { + if (!(element = $(element))) return; + return element[element.hasClassName(className) ? + 'removeClassName' : 'addClassName'](className); + }, + + // removes whitespace-only text node children + cleanWhitespace: function(element) { + element = $(element); + var node = element.firstChild; + while (node) { + var nextNode = node.nextSibling; + if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) + element.removeChild(node); + node = nextNode; + } + return element; + }, + + empty: function(element) { + return $(element).innerHTML.blank(); + }, + + descendantOf: function(element, ancestor) { + element = $(element), ancestor = $(ancestor); + var originalAncestor = ancestor; + + if (element.compareDocumentPosition) + return (element.compareDocumentPosition(ancestor) & 8) === 8; + + if (element.sourceIndex && !Prototype.Browser.Opera) { + var e = element.sourceIndex, a = ancestor.sourceIndex, + nextAncestor = ancestor.nextSibling; + if (!nextAncestor) { + do { ancestor = ancestor.parentNode; } + while (!(nextAncestor = ancestor.nextSibling) && ancestor.parentNode); + } + if (nextAncestor && nextAncestor.sourceIndex) + return (e > a && e < nextAncestor.sourceIndex); + } + + while (element = element.parentNode) + if (element == originalAncestor) return true; + return false; + }, + + scrollTo: function(element) { + element = $(element); + var pos = element.cumulativeOffset(); + window.scrollTo(pos[0], pos[1]); + return element; + }, + + getStyle: function(element, style) { + element = $(element); + style = style == 'float' ? 'cssFloat' : style.camelize(); + var value = element.style[style]; + if (!value) { + var css = document.defaultView.getComputedStyle(element, null); + value = css ? css[style] : null; + } + if (style == 'opacity') return value ? parseFloat(value) : 1.0; + return value == 'auto' ? null : value; + }, + + getOpacity: function(element) { + return $(element).getStyle('opacity'); + }, + + setStyle: function(element, styles) { + element = $(element); + var elementStyle = element.style, match; + if (Object.isString(styles)) { + element.style.cssText += ';' + styles; + return styles.include('opacity') ? + element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element; + } + for (var property in styles) + if (property == 'opacity') element.setOpacity(styles[property]); + else + elementStyle[(property == 'float' || property == 'cssFloat') ? + (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') : + property] = styles[property]; + + return element; + }, + + setOpacity: function(element, value) { + element = $(element); + element.style.opacity = (value == 1 || value === '') ? '' : + (value < 0.00001) ? 0 : value; + return element; + }, + + getDimensions: function(element) { + element = $(element); + var display = $(element).getStyle('display'); + if (display != 'none' && display != null) // Safari bug + return {width: element.offsetWidth, height: element.offsetHeight}; + + // All *Width and *Height properties give 0 on elements with display none, + // so enable the element temporarily + var els = element.style; + var originalVisibility = els.visibility; + var originalPosition = els.position; + var originalDisplay = els.display; + els.visibility = 'hidden'; + els.position = 'absolute'; + els.display = 'block'; + var originalWidth = element.clientWidth; + var originalHeight = element.clientHeight; + els.display = originalDisplay; + els.position = originalPosition; + els.visibility = originalVisibility; + return {width: originalWidth, height: originalHeight}; + }, + + makePositioned: function(element) { + element = $(element); + var pos = Element.getStyle(element, 'position'); + if (pos == 'static' || !pos) { + element._madePositioned = true; + element.style.position = 'relative'; + // Opera returns the offset relative to the positioning context, when an + // element is position relative but top and left have not been defined + if (window.opera) { + element.style.top = 0; + element.style.left = 0; + } + } + return element; + }, + + undoPositioned: function(element) { + element = $(element); + if (element._madePositioned) { + element._madePositioned = undefined; + element.style.position = + element.style.top = + element.style.left = + element.style.bottom = + element.style.right = ''; + } + return element; + }, + + makeClipping: function(element) { + element = $(element); + if (element._overflow) return element; + element._overflow = Element.getStyle(element, 'overflow') || 'auto'; + if (element._overflow !== 'hidden') + element.style.overflow = 'hidden'; + return element; + }, + + undoClipping: function(element) { + element = $(element); + if (!element._overflow) return element; + element.style.overflow = element._overflow == 'auto' ? '' : element._overflow; + element._overflow = null; + return element; + }, + + cumulativeOffset: function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + element = element.offsetParent; + } while (element); + return Element._returnOffset(valueL, valueT); + }, + + positionedOffset: function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + element = element.offsetParent; + if (element) { + if (element.tagName == 'BODY') break; + var p = Element.getStyle(element, 'position'); + if (p !== 'static') break; + } + } while (element); + return Element._returnOffset(valueL, valueT); + }, + + absolutize: function(element) { + element = $(element); + if (element.getStyle('position') == 'absolute') return; + // Position.prepare(); // To be done manually by Scripty when it needs it. + + var offsets = element.positionedOffset(); + var top = offsets[1]; + var left = offsets[0]; + var width = element.clientWidth; + var height = element.clientHeight; + + element._originalLeft = left - parseFloat(element.style.left || 0); + element._originalTop = top - parseFloat(element.style.top || 0); + element._originalWidth = element.style.width; + element._originalHeight = element.style.height; + + element.style.position = 'absolute'; + element.style.top = top + 'px'; + element.style.left = left + 'px'; + element.style.width = width + 'px'; + element.style.height = height + 'px'; + return element; + }, + + relativize: function(element) { + element = $(element); + if (element.getStyle('position') == 'relative') return; + // Position.prepare(); // To be done manually by Scripty when it needs it. + + element.style.position = 'relative'; + var top = parseFloat(element.style.top || 0) - (element._originalTop || 0); + var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0); + + element.style.top = top + 'px'; + element.style.left = left + 'px'; + element.style.height = element._originalHeight; + element.style.width = element._originalWidth; + return element; + }, + + cumulativeScrollOffset: function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.scrollTop || 0; + valueL += element.scrollLeft || 0; + element = element.parentNode; + } while (element); + return Element._returnOffset(valueL, valueT); + }, + + getOffsetParent: function(element) { + if (element.offsetParent) return $(element.offsetParent); + if (element == document.body) return $(element); + + while ((element = element.parentNode) && element != document.body) + if (Element.getStyle(element, 'position') != 'static') + return $(element); + + return $(document.body); + }, + + viewportOffset: function(forElement) { + var valueT = 0, valueL = 0; + + var element = forElement; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + + // Safari fix + if (element.offsetParent == document.body && + Element.getStyle(element, 'position') == 'absolute') break; + + } while (element = element.offsetParent); + + element = forElement; + do { + if (!Prototype.Browser.Opera || element.tagName == 'BODY') { + valueT -= element.scrollTop || 0; + valueL -= element.scrollLeft || 0; + } + } while (element = element.parentNode); + + return Element._returnOffset(valueL, valueT); + }, + + clonePosition: function(element, source) { + var options = Object.extend({ + setLeft: true, + setTop: true, + setWidth: true, + setHeight: true, + offsetTop: 0, + offsetLeft: 0 + }, arguments[2] || { }); + + // find page position of source + source = $(source); + var p = source.viewportOffset(); + + // find coordinate system to use + element = $(element); + var delta = [0, 0]; + var parent = null; + // delta [0,0] will do fine with position: fixed elements, + // position:absolute needs offsetParent deltas + if (Element.getStyle(element, 'position') == 'absolute') { + parent = element.getOffsetParent(); + delta = parent.viewportOffset(); + } + + // correct by body offsets (fixes Safari) + if (parent == document.body) { + delta[0] -= document.body.offsetLeft; + delta[1] -= document.body.offsetTop; + } + + // set position + if (options.setLeft) element.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px'; + if (options.setTop) element.style.top = (p[1] - delta[1] + options.offsetTop) + 'px'; + if (options.setWidth) element.style.width = source.offsetWidth + 'px'; + if (options.setHeight) element.style.height = source.offsetHeight + 'px'; + return element; + } +}; + +Element.Methods.identify.counter = 1; + +Object.extend(Element.Methods, { + getElementsBySelector: Element.Methods.select, + childElements: Element.Methods.immediateDescendants +}); + +Element._attributeTranslations = { + write: { + names: { + className: 'class', + htmlFor: 'for' + }, + values: { } + } +}; + +if (Prototype.Browser.Opera) { + Element.Methods.getStyle = Element.Methods.getStyle.wrap( + function(proceed, element, style) { + switch (style) { + case 'left': case 'top': case 'right': case 'bottom': + if (proceed(element, 'position') === 'static') return null; + case 'height': case 'width': + // returns '0px' for hidden elements; we want it to return null + if (!Element.visible(element)) return null; + + // returns the border-box dimensions rather than the content-box + // dimensions, so we subtract padding and borders from the value + var dim = parseInt(proceed(element, style), 10); + + if (dim !== element['offset' + style.capitalize()]) + return dim + 'px'; + + var properties; + if (style === 'height') { + properties = ['border-top-width', 'padding-top', + 'padding-bottom', 'border-bottom-width']; + } + else { + properties = ['border-left-width', 'padding-left', + 'padding-right', 'border-right-width']; + } + return properties.inject(dim, function(memo, property) { + var val = proceed(element, property); + return val === null ? memo : memo - parseInt(val, 10); + }) + 'px'; + default: return proceed(element, style); + } + } + ); + + Element.Methods.readAttribute = Element.Methods.readAttribute.wrap( + function(proceed, element, attribute) { + if (attribute === 'title') return element.title; + return proceed(element, attribute); + } + ); +} + +else if (Prototype.Browser.IE) { + // IE doesn't report offsets correctly for static elements, so we change them + // to "relative" to get the values, then change them back. + Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap( + function(proceed, element) { + element = $(element); + var position = element.getStyle('position'); + if (position !== 'static') return proceed(element); + element.setStyle({ position: 'relative' }); + var value = proceed(element); + element.setStyle({ position: position }); + return value; + } + ); + + $w('positionedOffset viewportOffset').each(function(method) { + Element.Methods[method] = Element.Methods[method].wrap( + function(proceed, element) { + element = $(element); + var position = element.getStyle('position'); + if (position !== 'static') return proceed(element); + // Trigger hasLayout on the offset parent so that IE6 reports + // accurate offsetTop and offsetLeft values for position: fixed. + var offsetParent = element.getOffsetParent(); + if (offsetParent && offsetParent.getStyle('position') === 'fixed') + offsetParent.setStyle({ zoom: 1 }); + element.setStyle({ position: 'relative' }); + var value = proceed(element); + element.setStyle({ position: position }); + return value; + } + ); + }); + + Element.Methods.getStyle = function(element, style) { + element = $(element); + style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize(); + var value = element.style[style]; + if (!value && element.currentStyle) value = element.currentStyle[style]; + + if (style == 'opacity') { + if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/)) + if (value[1]) return parseFloat(value[1]) / 100; + return 1.0; + } + + if (value == 'auto') { + if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none')) + return element['offset' + style.capitalize()] + 'px'; + return null; + } + return value; + }; + + Element.Methods.setOpacity = function(element, value) { + function stripAlpha(filter){ + return filter.replace(/alpha\([^\)]*\)/gi,''); + } + element = $(element); + var currentStyle = element.currentStyle; + if ((currentStyle && !currentStyle.hasLayout) || + (!currentStyle && element.style.zoom == 'normal')) + element.style.zoom = 1; + + var filter = element.getStyle('filter'), style = element.style; + if (value == 1 || value === '') { + (filter = stripAlpha(filter)) ? + style.filter = filter : style.removeAttribute('filter'); + return element; + } else if (value < 0.00001) value = 0; + style.filter = stripAlpha(filter) + + 'alpha(opacity=' + (value * 100) + ')'; + return element; + }; + + Element._attributeTranslations = { + read: { + names: { + 'class': 'className', + 'for': 'htmlFor' + }, + values: { + _getAttr: function(element, attribute) { + return element.getAttribute(attribute, 2); + }, + _getAttrNode: function(element, attribute) { + var node = element.getAttributeNode(attribute); + return node ? node.value : ""; + }, + _getEv: function(element, attribute) { + attribute = element.getAttribute(attribute); + return attribute ? attribute.toString().slice(23, -2) : null; + }, + _flag: function(element, attribute) { + return $(element).hasAttribute(attribute) ? attribute : null; + }, + style: function(element) { + return element.style.cssText.toLowerCase(); + }, + title: function(element) { + return element.title; + } + } + } + }; + + Element._attributeTranslations.write = { + names: Object.extend({ + cellpadding: 'cellPadding', + cellspacing: 'cellSpacing' + }, Element._attributeTranslations.read.names), + values: { + checked: function(element, value) { + element.checked = !!value; + }, + + style: function(element, value) { + element.style.cssText = value ? value : ''; + } + } + }; + + Element._attributeTranslations.has = {}; + + $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' + + 'encType maxLength readOnly longDesc').each(function(attr) { + Element._attributeTranslations.write.names[attr.toLowerCase()] = attr; + Element._attributeTranslations.has[attr.toLowerCase()] = attr; + }); + + (function(v) { + Object.extend(v, { + href: v._getAttr, + src: v._getAttr, + type: v._getAttr, + action: v._getAttrNode, + disabled: v._flag, + checked: v._flag, + readonly: v._flag, + multiple: v._flag, + onload: v._getEv, + onunload: v._getEv, + onclick: v._getEv, + ondblclick: v._getEv, + onmousedown: v._getEv, + onmouseup: v._getEv, + onmouseover: v._getEv, + onmousemove: v._getEv, + onmouseout: v._getEv, + onfocus: v._getEv, + onblur: v._getEv, + onkeypress: v._getEv, + onkeydown: v._getEv, + onkeyup: v._getEv, + onsubmit: v._getEv, + onreset: v._getEv, + onselect: v._getEv, + onchange: v._getEv + }); + })(Element._attributeTranslations.read.values); +} + +else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) { + Element.Methods.setOpacity = function(element, value) { + element = $(element); + element.style.opacity = (value == 1) ? 0.999999 : + (value === '') ? '' : (value < 0.00001) ? 0 : value; + return element; + }; +} + +else if (Prototype.Browser.WebKit) { + Element.Methods.setOpacity = function(element, value) { + element = $(element); + element.style.opacity = (value == 1 || value === '') ? '' : + (value < 0.00001) ? 0 : value; + + if (value == 1) + if(element.tagName == 'IMG' && element.width) { + element.width++; element.width--; + } else try { + var n = document.createTextNode(' '); + element.appendChild(n); + element.removeChild(n); + } catch (e) { } + + return element; + }; + + // Safari returns margins on body which is incorrect if the child is absolutely + // positioned. For performance reasons, redefine Element#cumulativeOffset for + // KHTML/WebKit only. + Element.Methods.cumulativeOffset = function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + if (element.offsetParent == document.body) + if (Element.getStyle(element, 'position') == 'absolute') break; + + element = element.offsetParent; + } while (element); + + return Element._returnOffset(valueL, valueT); + }; +} + +if (Prototype.Browser.IE || Prototype.Browser.Opera) { + // IE and Opera are missing .innerHTML support for TABLE-related and SELECT elements + Element.Methods.update = function(element, content) { + element = $(element); + + if (content && content.toElement) content = content.toElement(); + if (Object.isElement(content)) return element.update().insert(content); + + content = Object.toHTML(content); + var tagName = element.tagName.toUpperCase(); + + if (tagName in Element._insertionTranslations.tags) { + $A(element.childNodes).each(function(node) { element.removeChild(node) }); + Element._getContentFromAnonymousElement(tagName, content.stripScripts()) + .each(function(node) { element.appendChild(node) }); + } + else element.innerHTML = content.stripScripts(); + + content.evalScripts.bind(content).defer(); + return element; + }; +} + +if ('outerHTML' in document.createElement('div')) { + Element.Methods.replace = function(element, content) { + element = $(element); + + if (content && content.toElement) content = content.toElement(); + if (Object.isElement(content)) { + element.parentNode.replaceChild(content, element); + return element; + } + + content = Object.toHTML(content); + var parent = element.parentNode, tagName = parent.tagName.toUpperCase(); + + if (Element._insertionTranslations.tags[tagName]) { + var nextSibling = element.next(); + var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); + parent.removeChild(element); + if (nextSibling) + fragments.each(function(node) { parent.insertBefore(node, nextSibling) }); + else + fragments.each(function(node) { parent.appendChild(node) }); + } + else element.outerHTML = content.stripScripts(); + + content.evalScripts.bind(content).defer(); + return element; + }; +} + +Element._returnOffset = function(l, t) { + var result = [l, t]; + result.left = l; + result.top = t; + return result; +}; + +Element._getContentFromAnonymousElement = function(tagName, html) { + var div = new Element('div'), t = Element._insertionTranslations.tags[tagName]; + if (t) { + div.innerHTML = t[0] + html + t[1]; + t[2].times(function() { div = div.firstChild }); + } else div.innerHTML = html; + return $A(div.childNodes); +}; + +Element._insertionTranslations = { + before: function(element, node) { + element.parentNode.insertBefore(node, element); + }, + top: function(element, node) { + element.insertBefore(node, element.firstChild); + }, + bottom: function(element, node) { + element.appendChild(node); + }, + after: function(element, node) { + element.parentNode.insertBefore(node, element.nextSibling); + }, + tags: { + TABLE: ['', '
    ', 1], + TBODY: ['', '
    ', 2], + TR: ['', '
    ', 3], + TD: ['
    ', '
    ', 4], + SELECT: ['', 1] + } +}; + +(function() { + Object.extend(this.tags, { + THEAD: this.tags.TBODY, + TFOOT: this.tags.TBODY, + TH: this.tags.TD + }); +}).call(Element._insertionTranslations); + +Element.Methods.Simulated = { + hasAttribute: function(element, attribute) { + attribute = Element._attributeTranslations.has[attribute] || attribute; + var node = $(element).getAttributeNode(attribute); + return node && node.specified; + } +}; + +Element.Methods.ByTag = { }; + +Object.extend(Element, Element.Methods); + +if (!Prototype.BrowserFeatures.ElementExtensions && + document.createElement('div').__proto__) { + window.HTMLElement = { }; + window.HTMLElement.prototype = document.createElement('div').__proto__; + Prototype.BrowserFeatures.ElementExtensions = true; +} + +Element.extend = (function() { + if (Prototype.BrowserFeatures.SpecificElementExtensions) + return Prototype.K; + + var Methods = { }, ByTag = Element.Methods.ByTag; + + var extend = Object.extend(function(element) { + if (!element || element._extendedByPrototype || + element.nodeType != 1 || element == window) return element; + + var methods = Object.clone(Methods), + tagName = element.tagName, property, value; + + // extend methods for specific tags + if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]); + + for (property in methods) { + value = methods[property]; + if (Object.isFunction(value) && !(property in element)) + element[property] = value.methodize(); + } + + element._extendedByPrototype = Prototype.emptyFunction; + return element; + + }, { + refresh: function() { + // extend methods for all tags (Safari doesn't need this) + if (!Prototype.BrowserFeatures.ElementExtensions) { + Object.extend(Methods, Element.Methods); + Object.extend(Methods, Element.Methods.Simulated); + } + } + }); + + extend.refresh(); + return extend; +})(); + +Element.hasAttribute = function(element, attribute) { + if (element.hasAttribute) return element.hasAttribute(attribute); + return Element.Methods.Simulated.hasAttribute(element, attribute); +}; + +Element.addMethods = function(methods) { + var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag; + + if (!methods) { + Object.extend(Form, Form.Methods); + Object.extend(Form.Element, Form.Element.Methods); + Object.extend(Element.Methods.ByTag, { + "FORM": Object.clone(Form.Methods), + "INPUT": Object.clone(Form.Element.Methods), + "SELECT": Object.clone(Form.Element.Methods), + "TEXTAREA": Object.clone(Form.Element.Methods) + }); + } + + if (arguments.length == 2) { + var tagName = methods; + methods = arguments[1]; + } + + if (!tagName) Object.extend(Element.Methods, methods || { }); + else { + if (Object.isArray(tagName)) tagName.each(extend); + else extend(tagName); + } + + function extend(tagName) { + tagName = tagName.toUpperCase(); + if (!Element.Methods.ByTag[tagName]) + Element.Methods.ByTag[tagName] = { }; + Object.extend(Element.Methods.ByTag[tagName], methods); + } + + function copy(methods, destination, onlyIfAbsent) { + onlyIfAbsent = onlyIfAbsent || false; + for (var property in methods) { + var value = methods[property]; + if (!Object.isFunction(value)) continue; + if (!onlyIfAbsent || !(property in destination)) + destination[property] = value.methodize(); + } + } + + function findDOMClass(tagName) { + var klass; + var trans = { + "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph", + "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList", + "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading", + "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote", + "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION": + "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD": + "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR": + "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET": + "FrameSet", "IFRAME": "IFrame" + }; + if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element'; + if (window[klass]) return window[klass]; + klass = 'HTML' + tagName + 'Element'; + if (window[klass]) return window[klass]; + klass = 'HTML' + tagName.capitalize() + 'Element'; + if (window[klass]) return window[klass]; + + window[klass] = { }; + window[klass].prototype = document.createElement(tagName).__proto__; + return window[klass]; + } + + if (F.ElementExtensions) { + copy(Element.Methods, HTMLElement.prototype); + copy(Element.Methods.Simulated, HTMLElement.prototype, true); + } + + if (F.SpecificElementExtensions) { + for (var tag in Element.Methods.ByTag) { + var klass = findDOMClass(tag); + if (Object.isUndefined(klass)) continue; + copy(T[tag], klass.prototype); + } + } + + Object.extend(Element, Element.Methods); + delete Element.ByTag; + + if (Element.extend.refresh) Element.extend.refresh(); + Element.cache = { }; +}; + +document.viewport = { + getDimensions: function() { + var dimensions = { }; + var B = Prototype.Browser; + $w('width height').each(function(d) { + var D = d.capitalize(); + dimensions[d] = (B.WebKit && !document.evaluate) ? self['inner' + D] : + (B.Opera) ? document.body['client' + D] : document.documentElement['client' + D]; + }); + return dimensions; + }, + + getWidth: function() { + return this.getDimensions().width; + }, + + getHeight: function() { + return this.getDimensions().height; + }, + + getScrollOffsets: function() { + return Element._returnOffset( + window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft, + window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop); + } +}; +/* Portions of the Selector class are derived from Jack Slocum’s DomQuery, + * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style + * license. Please see http://www.yui-ext.com/ for more information. */ + +var Selector = Class.create({ + initialize: function(expression) { + this.expression = expression.strip(); + this.compileMatcher(); + }, + + shouldUseXPath: function() { + if (!Prototype.BrowserFeatures.XPath) return false; + + var e = this.expression; + + // Safari 3 chokes on :*-of-type and :empty + if (Prototype.Browser.WebKit && + (e.include("-of-type") || e.include(":empty"))) + return false; + + // XPath can't do namespaced attributes, nor can it read + // the "checked" property from DOM nodes + if ((/(\[[\w-]*?:|:checked)/).test(this.expression)) + return false; + + return true; + }, + + compileMatcher: function() { + if (this.shouldUseXPath()) + return this.compileXPathMatcher(); + + var e = this.expression, ps = Selector.patterns, h = Selector.handlers, + c = Selector.criteria, le, p, m; + + if (Selector._cache[e]) { + this.matcher = Selector._cache[e]; + return; + } + + this.matcher = ["this.matcher = function(root) {", + "var r = root, h = Selector.handlers, c = false, n;"]; + + while (e && le != e && (/\S/).test(e)) { + le = e; + for (var i in ps) { + p = ps[i]; + if (m = e.match(p)) { + this.matcher.push(Object.isFunction(c[i]) ? c[i](m) : + new Template(c[i]).evaluate(m)); + e = e.replace(m[0], ''); + break; + } + } + } + + this.matcher.push("return h.unique(n);\n}"); + eval(this.matcher.join('\n')); + Selector._cache[this.expression] = this.matcher; + }, + + compileXPathMatcher: function() { + var e = this.expression, ps = Selector.patterns, + x = Selector.xpath, le, m; + + if (Selector._cache[e]) { + this.xpath = Selector._cache[e]; return; + } + + this.matcher = ['.//*']; + while (e && le != e && (/\S/).test(e)) { + le = e; + for (var i in ps) { + if (m = e.match(ps[i])) { + this.matcher.push(Object.isFunction(x[i]) ? x[i](m) : + new Template(x[i]).evaluate(m)); + e = e.replace(m[0], ''); + break; + } + } + } + + this.xpath = this.matcher.join(''); + Selector._cache[this.expression] = this.xpath; + }, + + findElements: function(root) { + root = root || document; + if (this.xpath) return document._getElementsByXPath(this.xpath, root); + return this.matcher(root); + }, + + match: function(element) { + this.tokens = []; + + var e = this.expression, ps = Selector.patterns, as = Selector.assertions; + var le, p, m; + + while (e && le !== e && (/\S/).test(e)) { + le = e; + for (var i in ps) { + p = ps[i]; + if (m = e.match(p)) { + // use the Selector.assertions methods unless the selector + // is too complex. + if (as[i]) { + this.tokens.push([i, Object.clone(m)]); + e = e.replace(m[0], ''); + } else { + // reluctantly do a document-wide search + // and look for a match in the array + return this.findElements(document).include(element); + } + } + } + } + + var match = true, name, matches; + for (var i = 0, token; token = this.tokens[i]; i++) { + name = token[0], matches = token[1]; + if (!Selector.assertions[name](element, matches)) { + match = false; break; + } + } + + return match; + }, + + toString: function() { + return this.expression; + }, + + inspect: function() { + return "#"; + } +}); + +Object.extend(Selector, { + _cache: { }, + + xpath: { + descendant: "//*", + child: "/*", + adjacent: "/following-sibling::*[1]", + laterSibling: '/following-sibling::*', + tagName: function(m) { + if (m[1] == '*') return ''; + return "[local-name()='" + m[1].toLowerCase() + + "' or local-name()='" + m[1].toUpperCase() + "']"; + }, + className: "[contains(concat(' ', @class, ' '), ' #{1} ')]", + id: "[@id='#{1}']", + attrPresence: function(m) { + m[1] = m[1].toLowerCase(); + return new Template("[@#{1}]").evaluate(m); + }, + attr: function(m) { + m[1] = m[1].toLowerCase(); + m[3] = m[5] || m[6]; + return new Template(Selector.xpath.operators[m[2]]).evaluate(m); + }, + pseudo: function(m) { + var h = Selector.xpath.pseudos[m[1]]; + if (!h) return ''; + if (Object.isFunction(h)) return h(m); + return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m); + }, + operators: { + '=': "[@#{1}='#{3}']", + '!=': "[@#{1}!='#{3}']", + '^=': "[starts-with(@#{1}, '#{3}')]", + '$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']", + '*=': "[contains(@#{1}, '#{3}')]", + '~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]", + '|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]" + }, + pseudos: { + 'first-child': '[not(preceding-sibling::*)]', + 'last-child': '[not(following-sibling::*)]', + 'only-child': '[not(preceding-sibling::* or following-sibling::*)]', + 'empty': "[count(*) = 0 and (count(text()) = 0 or translate(text(), ' \t\r\n', '') = '')]", + 'checked': "[@checked]", + 'disabled': "[@disabled]", + 'enabled': "[not(@disabled)]", + 'not': function(m) { + var e = m[6], p = Selector.patterns, + x = Selector.xpath, le, v; + + var exclusion = []; + while (e && le != e && (/\S/).test(e)) { + le = e; + for (var i in p) { + if (m = e.match(p[i])) { + v = Object.isFunction(x[i]) ? x[i](m) : new Template(x[i]).evaluate(m); + exclusion.push("(" + v.substring(1, v.length - 1) + ")"); + e = e.replace(m[0], ''); + break; + } + } + } + return "[not(" + exclusion.join(" and ") + ")]"; + }, + 'nth-child': function(m) { + return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m); + }, + 'nth-last-child': function(m) { + return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m); + }, + 'nth-of-type': function(m) { + return Selector.xpath.pseudos.nth("position() ", m); + }, + 'nth-last-of-type': function(m) { + return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", m); + }, + 'first-of-type': function(m) { + m[6] = "1"; return Selector.xpath.pseudos['nth-of-type'](m); + }, + 'last-of-type': function(m) { + m[6] = "1"; return Selector.xpath.pseudos['nth-last-of-type'](m); + }, + 'only-of-type': function(m) { + var p = Selector.xpath.pseudos; return p['first-of-type'](m) + p['last-of-type'](m); + }, + nth: function(fragment, m) { + var mm, formula = m[6], predicate; + if (formula == 'even') formula = '2n+0'; + if (formula == 'odd') formula = '2n+1'; + if (mm = formula.match(/^(\d+)$/)) // digit only + return '[' + fragment + "= " + mm[1] + ']'; + if (mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b + if (mm[1] == "-") mm[1] = -1; + var a = mm[1] ? Number(mm[1]) : 1; + var b = mm[2] ? Number(mm[2]) : 0; + predicate = "[((#{fragment} - #{b}) mod #{a} = 0) and " + + "((#{fragment} - #{b}) div #{a} >= 0)]"; + return new Template(predicate).evaluate({ + fragment: fragment, a: a, b: b }); + } + } + } + }, + + criteria: { + tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;', + className: 'n = h.className(n, r, "#{1}", c); c = false;', + id: 'n = h.id(n, r, "#{1}", c); c = false;', + attrPresence: 'n = h.attrPresence(n, r, "#{1}", c); c = false;', + attr: function(m) { + m[3] = (m[5] || m[6]); + return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m); + }, + pseudo: function(m) { + if (m[6]) m[6] = m[6].replace(/"/g, '\\"'); + return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m); + }, + descendant: 'c = "descendant";', + child: 'c = "child";', + adjacent: 'c = "adjacent";', + laterSibling: 'c = "laterSibling";' + }, + + patterns: { + // combinators must be listed first + // (and descendant needs to be last combinator) + laterSibling: /^\s*~\s*/, + child: /^\s*>\s*/, + adjacent: /^\s*\+\s*/, + descendant: /^\s/, + + // selectors follow + tagName: /^\s*(\*|[\w\-]+)(\b|$)?/, + id: /^#([\w\-\*]+)(\b|$)/, + className: /^\.([\w\-\*]+)(\b|$)/, + pseudo: +/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/, + attrPresence: /^\[([\w]+)\]/, + attr: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/ + }, + + // for Selector.match and Element#match + assertions: { + tagName: function(element, matches) { + return matches[1].toUpperCase() == element.tagName.toUpperCase(); + }, + + className: function(element, matches) { + return Element.hasClassName(element, matches[1]); + }, + + id: function(element, matches) { + return element.id === matches[1]; + }, + + attrPresence: function(element, matches) { + return Element.hasAttribute(element, matches[1]); + }, + + attr: function(element, matches) { + var nodeValue = Element.readAttribute(element, matches[1]); + return nodeValue && Selector.operators[matches[2]](nodeValue, matches[5] || matches[6]); + } + }, + + handlers: { + // UTILITY FUNCTIONS + // joins two collections + concat: function(a, b) { + for (var i = 0, node; node = b[i]; i++) + a.push(node); + return a; + }, + + // marks an array of nodes for counting + mark: function(nodes) { + var _true = Prototype.emptyFunction; + for (var i = 0, node; node = nodes[i]; i++) + node._countedByPrototype = _true; + return nodes; + }, + + unmark: function(nodes) { + for (var i = 0, node; node = nodes[i]; i++) + node._countedByPrototype = undefined; + return nodes; + }, + + // mark each child node with its position (for nth calls) + // "ofType" flag indicates whether we're indexing for nth-of-type + // rather than nth-child + index: function(parentNode, reverse, ofType) { + parentNode._countedByPrototype = Prototype.emptyFunction; + if (reverse) { + for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) { + var node = nodes[i]; + if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++; + } + } else { + for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++) + if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++; + } + }, + + // filters out duplicates and extends all nodes + unique: function(nodes) { + if (nodes.length == 0) return nodes; + var results = [], n; + for (var i = 0, l = nodes.length; i < l; i++) + if (!(n = nodes[i])._countedByPrototype) { + n._countedByPrototype = Prototype.emptyFunction; + results.push(Element.extend(n)); + } + return Selector.handlers.unmark(results); + }, + + // COMBINATOR FUNCTIONS + descendant: function(nodes) { + var h = Selector.handlers; + for (var i = 0, results = [], node; node = nodes[i]; i++) + h.concat(results, node.getElementsByTagName('*')); + return results; + }, + + child: function(nodes) { + var h = Selector.handlers; + for (var i = 0, results = [], node; node = nodes[i]; i++) { + for (var j = 0, child; child = node.childNodes[j]; j++) + if (child.nodeType == 1 && child.tagName != '!') results.push(child); + } + return results; + }, + + adjacent: function(nodes) { + for (var i = 0, results = [], node; node = nodes[i]; i++) { + var next = this.nextElementSibling(node); + if (next) results.push(next); + } + return results; + }, + + laterSibling: function(nodes) { + var h = Selector.handlers; + for (var i = 0, results = [], node; node = nodes[i]; i++) + h.concat(results, Element.nextSiblings(node)); + return results; + }, + + nextElementSibling: function(node) { + while (node = node.nextSibling) + if (node.nodeType == 1) return node; + return null; + }, + + previousElementSibling: function(node) { + while (node = node.previousSibling) + if (node.nodeType == 1) return node; + return null; + }, + + // TOKEN FUNCTIONS + tagName: function(nodes, root, tagName, combinator) { + var uTagName = tagName.toUpperCase(); + var results = [], h = Selector.handlers; + if (nodes) { + if (combinator) { + // fastlane for ordinary descendant combinators + if (combinator == "descendant") { + for (var i = 0, node; node = nodes[i]; i++) + h.concat(results, node.getElementsByTagName(tagName)); + return results; + } else nodes = this[combinator](nodes); + if (tagName == "*") return nodes; + } + for (var i = 0, node; node = nodes[i]; i++) + if (node.tagName.toUpperCase() === uTagName) results.push(node); + return results; + } else return root.getElementsByTagName(tagName); + }, + + id: function(nodes, root, id, combinator) { + var targetNode = $(id), h = Selector.handlers; + if (!targetNode) return []; + if (!nodes && root == document) return [targetNode]; + if (nodes) { + if (combinator) { + if (combinator == 'child') { + for (var i = 0, node; node = nodes[i]; i++) + if (targetNode.parentNode == node) return [targetNode]; + } else if (combinator == 'descendant') { + for (var i = 0, node; node = nodes[i]; i++) + if (Element.descendantOf(targetNode, node)) return [targetNode]; + } else if (combinator == 'adjacent') { + for (var i = 0, node; node = nodes[i]; i++) + if (Selector.handlers.previousElementSibling(targetNode) == node) + return [targetNode]; + } else nodes = h[combinator](nodes); + } + for (var i = 0, node; node = nodes[i]; i++) + if (node == targetNode) return [targetNode]; + return []; + } + return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : []; + }, + + className: function(nodes, root, className, combinator) { + if (nodes && combinator) nodes = this[combinator](nodes); + return Selector.handlers.byClassName(nodes, root, className); + }, + + byClassName: function(nodes, root, className) { + if (!nodes) nodes = Selector.handlers.descendant([root]); + var needle = ' ' + className + ' '; + for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) { + nodeClassName = node.className; + if (nodeClassName.length == 0) continue; + if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle)) + results.push(node); + } + return results; + }, + + attrPresence: function(nodes, root, attr, combinator) { + if (!nodes) nodes = root.getElementsByTagName("*"); + if (nodes && combinator) nodes = this[combinator](nodes); + var results = []; + for (var i = 0, node; node = nodes[i]; i++) + if (Element.hasAttribute(node, attr)) results.push(node); + return results; + }, + + attr: function(nodes, root, attr, value, operator, combinator) { + if (!nodes) nodes = root.getElementsByTagName("*"); + if (nodes && combinator) nodes = this[combinator](nodes); + var handler = Selector.operators[operator], results = []; + for (var i = 0, node; node = nodes[i]; i++) { + var nodeValue = Element.readAttribute(node, attr); + if (nodeValue === null) continue; + if (handler(nodeValue, value)) results.push(node); + } + return results; + }, + + pseudo: function(nodes, name, value, root, combinator) { + if (nodes && combinator) nodes = this[combinator](nodes); + if (!nodes) nodes = root.getElementsByTagName("*"); + return Selector.pseudos[name](nodes, value, root); + } + }, + + pseudos: { + 'first-child': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) { + if (Selector.handlers.previousElementSibling(node)) continue; + results.push(node); + } + return results; + }, + 'last-child': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) { + if (Selector.handlers.nextElementSibling(node)) continue; + results.push(node); + } + return results; + }, + 'only-child': function(nodes, value, root) { + var h = Selector.handlers; + for (var i = 0, results = [], node; node = nodes[i]; i++) + if (!h.previousElementSibling(node) && !h.nextElementSibling(node)) + results.push(node); + return results; + }, + 'nth-child': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, formula, root); + }, + 'nth-last-child': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, formula, root, true); + }, + 'nth-of-type': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, formula, root, false, true); + }, + 'nth-last-of-type': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, formula, root, true, true); + }, + 'first-of-type': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, "1", root, false, true); + }, + 'last-of-type': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, "1", root, true, true); + }, + 'only-of-type': function(nodes, formula, root) { + var p = Selector.pseudos; + return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root); + }, + + // handles the an+b logic + getIndices: function(a, b, total) { + if (a == 0) return b > 0 ? [b] : []; + return $R(1, total).inject([], function(memo, i) { + if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i); + return memo; + }); + }, + + // handles nth(-last)-child, nth(-last)-of-type, and (first|last)-of-type + nth: function(nodes, formula, root, reverse, ofType) { + if (nodes.length == 0) return []; + if (formula == 'even') formula = '2n+0'; + if (formula == 'odd') formula = '2n+1'; + var h = Selector.handlers, results = [], indexed = [], m; + h.mark(nodes); + for (var i = 0, node; node = nodes[i]; i++) { + if (!node.parentNode._countedByPrototype) { + h.index(node.parentNode, reverse, ofType); + indexed.push(node.parentNode); + } + } + if (formula.match(/^\d+$/)) { // just a number + formula = Number(formula); + for (var i = 0, node; node = nodes[i]; i++) + if (node.nodeIndex == formula) results.push(node); + } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b + if (m[1] == "-") m[1] = -1; + var a = m[1] ? Number(m[1]) : 1; + var b = m[2] ? Number(m[2]) : 0; + var indices = Selector.pseudos.getIndices(a, b, nodes.length); + for (var i = 0, node, l = indices.length; node = nodes[i]; i++) { + for (var j = 0; j < l; j++) + if (node.nodeIndex == indices[j]) results.push(node); + } + } + h.unmark(nodes); + h.unmark(indexed); + return results; + }, + + 'empty': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) { + // IE treats comments as element nodes + if (node.tagName == '!' || (node.firstChild && !node.innerHTML.match(/^\s*$/))) continue; + results.push(node); + } + return results; + }, + + 'not': function(nodes, selector, root) { + var h = Selector.handlers, selectorType, m; + var exclusions = new Selector(selector).findElements(root); + h.mark(exclusions); + for (var i = 0, results = [], node; node = nodes[i]; i++) + if (!node._countedByPrototype) results.push(node); + h.unmark(exclusions); + return results; + }, + + 'enabled': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) + if (!node.disabled) results.push(node); + return results; + }, + + 'disabled': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) + if (node.disabled) results.push(node); + return results; + }, + + 'checked': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) + if (node.checked) results.push(node); + return results; + } + }, + + operators: { + '=': function(nv, v) { return nv == v; }, + '!=': function(nv, v) { return nv != v; }, + '^=': function(nv, v) { return nv.startsWith(v); }, + '$=': function(nv, v) { return nv.endsWith(v); }, + '*=': function(nv, v) { return nv.include(v); }, + '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); }, + '|=': function(nv, v) { return ('-' + nv.toUpperCase() + '-').include('-' + v.toUpperCase() + '-'); } + }, + + split: function(expression) { + var expressions = []; + expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) { + expressions.push(m[1].strip()); + }); + return expressions; + }, + + matchElements: function(elements, expression) { + var matches = $$(expression), h = Selector.handlers; + h.mark(matches); + for (var i = 0, results = [], element; element = elements[i]; i++) + if (element._countedByPrototype) results.push(element); + h.unmark(matches); + return results; + }, + + findElement: function(elements, expression, index) { + if (Object.isNumber(expression)) { + index = expression; expression = false; + } + return Selector.matchElements(elements, expression || '*')[index || 0]; + }, + + findChildElements: function(element, expressions) { + expressions = Selector.split(expressions.join(',')); + var results = [], h = Selector.handlers; + for (var i = 0, l = expressions.length, selector; i < l; i++) { + selector = new Selector(expressions[i].strip()); + h.concat(results, selector.findElements(element)); + } + return (l > 1) ? h.unique(results) : results; + } +}); + +if (Prototype.Browser.IE) { + Object.extend(Selector.handlers, { + // IE returns comment nodes on getElementsByTagName("*"). + // Filter them out. + concat: function(a, b) { + for (var i = 0, node; node = b[i]; i++) + if (node.tagName !== "!") a.push(node); + return a; + }, + + // IE improperly serializes _countedByPrototype in (inner|outer)HTML. + unmark: function(nodes) { + for (var i = 0, node; node = nodes[i]; i++) + node.removeAttribute('_countedByPrototype'); + return nodes; + } + }); +} + +function $$() { + return Selector.findChildElements(document, $A(arguments)); +} +var Form = { + reset: function(form) { + $(form).reset(); + return form; + }, + + serializeElements: function(elements, options) { + if (typeof options != 'object') options = { hash: !!options }; + else if (Object.isUndefined(options.hash)) options.hash = true; + var key, value, submitted = false, submit = options.submit; + + var data = elements.inject({ }, function(result, element) { + if (!element.disabled && element.name) { + key = element.name; value = $(element).getValue(); + if (value != null && (element.type != 'submit' || (!submitted && + submit !== false && (!submit || key == submit) && (submitted = true)))) { + if (key in result) { + // a key is already present; construct an array of values + if (!Object.isArray(result[key])) result[key] = [result[key]]; + result[key].push(value); + } + else result[key] = value; + } + } + return result; + }); + + return options.hash ? data : Object.toQueryString(data); + } +}; + +Form.Methods = { + serialize: function(form, options) { + return Form.serializeElements(Form.getElements(form), options); + }, + + getElements: function(form) { + return $A($(form).getElementsByTagName('*')).inject([], + function(elements, child) { + if (Form.Element.Serializers[child.tagName.toLowerCase()]) + elements.push(Element.extend(child)); + return elements; + } + ); + }, + + getInputs: function(form, typeName, name) { + form = $(form); + var inputs = form.getElementsByTagName('input'); + + if (!typeName && !name) return $A(inputs).map(Element.extend); + + for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) { + var input = inputs[i]; + if ((typeName && input.type != typeName) || (name && input.name != name)) + continue; + matchingInputs.push(Element.extend(input)); + } + + return matchingInputs; + }, + + disable: function(form) { + form = $(form); + Form.getElements(form).invoke('disable'); + return form; + }, + + enable: function(form) { + form = $(form); + Form.getElements(form).invoke('enable'); + return form; + }, + + findFirstElement: function(form) { + var elements = $(form).getElements().findAll(function(element) { + return 'hidden' != element.type && !element.disabled; + }); + var firstByIndex = elements.findAll(function(element) { + return element.hasAttribute('tabIndex') && element.tabIndex >= 0; + }).sortBy(function(element) { return element.tabIndex }).first(); + + return firstByIndex ? firstByIndex : elements.find(function(element) { + return ['input', 'select', 'textarea'].include(element.tagName.toLowerCase()); + }); + }, + + focusFirstElement: function(form) { + form = $(form); + form.findFirstElement().activate(); + return form; + }, + + request: function(form, options) { + form = $(form), options = Object.clone(options || { }); + + var params = options.parameters, action = form.readAttribute('action') || ''; + if (action.blank()) action = window.location.href; + options.parameters = form.serialize(true); + + if (params) { + if (Object.isString(params)) params = params.toQueryParams(); + Object.extend(options.parameters, params); + } + + if (form.hasAttribute('method') && !options.method) + options.method = form.method; + + return new Ajax.Request(action, options); + } +}; + +/*--------------------------------------------------------------------------*/ + +Form.Element = { + focus: function(element) { + $(element).focus(); + return element; + }, + + select: function(element) { + $(element).select(); + return element; + } +}; + +Form.Element.Methods = { + serialize: function(element) { + element = $(element); + if (!element.disabled && element.name) { + var value = element.getValue(); + if (value != undefined) { + var pair = { }; + pair[element.name] = value; + return Object.toQueryString(pair); + } + } + return ''; + }, + + getValue: function(element) { + element = $(element); + var method = element.tagName.toLowerCase(); + return Form.Element.Serializers[method](element); + }, + + setValue: function(element, value) { + element = $(element); + var method = element.tagName.toLowerCase(); + Form.Element.Serializers[method](element, value); + return element; + }, + + clear: function(element) { + $(element).value = ''; + return element; + }, + + present: function(element) { + return $(element).value != ''; + }, + + activate: function(element) { + element = $(element); + try { + element.focus(); + if (element.select && (element.tagName.toLowerCase() != 'input' || + !['button', 'reset', 'submit'].include(element.type))) + element.select(); + } catch (e) { } + return element; + }, + + disable: function(element) { + element = $(element); + element.blur(); + element.disabled = true; + return element; + }, + + enable: function(element) { + element = $(element); + element.disabled = false; + return element; + } +}; + +/*--------------------------------------------------------------------------*/ + +var Field = Form.Element; +var $F = Form.Element.Methods.getValue; + +/*--------------------------------------------------------------------------*/ + +Form.Element.Serializers = { + input: function(element, value) { + switch (element.type.toLowerCase()) { + case 'checkbox': + case 'radio': + return Form.Element.Serializers.inputSelector(element, value); + default: + return Form.Element.Serializers.textarea(element, value); + } + }, + + inputSelector: function(element, value) { + if (Object.isUndefined(value)) return element.checked ? element.value : null; + else element.checked = !!value; + }, + + textarea: function(element, value) { + if (Object.isUndefined(value)) return element.value; + else element.value = value; + }, + + select: function(element, index) { + if (Object.isUndefined(index)) + return this[element.type == 'select-one' ? + 'selectOne' : 'selectMany'](element); + else { + var opt, value, single = !Object.isArray(index); + for (var i = 0, length = element.length; i < length; i++) { + opt = element.options[i]; + value = this.optionValue(opt); + if (single) { + if (value == index) { + opt.selected = true; + return; + } + } + else opt.selected = index.include(value); + } + } + }, + + selectOne: function(element) { + var index = element.selectedIndex; + return index >= 0 ? this.optionValue(element.options[index]) : null; + }, + + selectMany: function(element) { + var values, length = element.length; + if (!length) return null; + + for (var i = 0, values = []; i < length; i++) { + var opt = element.options[i]; + if (opt.selected) values.push(this.optionValue(opt)); + } + return values; + }, + + optionValue: function(opt) { + // extend element because hasAttribute may not be native + return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text; + } +}; + +/*--------------------------------------------------------------------------*/ + +Abstract.TimedObserver = Class.create(PeriodicalExecuter, { + initialize: function($super, element, frequency, callback) { + $super(callback, frequency); + this.element = $(element); + this.lastValue = this.getValue(); + }, + + execute: function() { + var value = this.getValue(); + if (Object.isString(this.lastValue) && Object.isString(value) ? + this.lastValue != value : String(this.lastValue) != String(value)) { + this.callback(this.element, value); + this.lastValue = value; + } + } +}); + +Form.Element.Observer = Class.create(Abstract.TimedObserver, { + getValue: function() { + return Form.Element.getValue(this.element); + } +}); + +Form.Observer = Class.create(Abstract.TimedObserver, { + getValue: function() { + return Form.serialize(this.element); + } +}); + +/*--------------------------------------------------------------------------*/ + +Abstract.EventObserver = Class.create({ + initialize: function(element, callback) { + this.element = $(element); + this.callback = callback; + + this.lastValue = this.getValue(); + if (this.element.tagName.toLowerCase() == 'form') + this.registerFormCallbacks(); + else + this.registerCallback(this.element); + }, + + onElementEvent: function() { + var value = this.getValue(); + if (this.lastValue != value) { + this.callback(this.element, value); + this.lastValue = value; + } + }, + + registerFormCallbacks: function() { + Form.getElements(this.element).each(this.registerCallback, this); + }, + + registerCallback: function(element) { + if (element.type) { + switch (element.type.toLowerCase()) { + case 'checkbox': + case 'radio': + Event.observe(element, 'click', this.onElementEvent.bind(this)); + break; + default: + Event.observe(element, 'change', this.onElementEvent.bind(this)); + break; + } + } + } +}); + +Form.Element.EventObserver = Class.create(Abstract.EventObserver, { + getValue: function() { + return Form.Element.getValue(this.element); + } +}); + +Form.EventObserver = Class.create(Abstract.EventObserver, { + getValue: function() { + return Form.serialize(this.element); + } +}); +if (!window.Event) var Event = { }; + +Object.extend(Event, { + KEY_BACKSPACE: 8, + KEY_TAB: 9, + KEY_RETURN: 13, + KEY_ESC: 27, + KEY_LEFT: 37, + KEY_UP: 38, + KEY_RIGHT: 39, + KEY_DOWN: 40, + KEY_DELETE: 46, + KEY_HOME: 36, + KEY_END: 35, + KEY_PAGEUP: 33, + KEY_PAGEDOWN: 34, + KEY_INSERT: 45, + + cache: { }, + + relatedTarget: function(event) { + var element; + switch(event.type) { + case 'mouseover': element = event.fromElement; break; + case 'mouseout': element = event.toElement; break; + default: return null; + } + return Element.extend(element); + } +}); + +Event.Methods = (function() { + var isButton; + + if (Prototype.Browser.IE) { + var buttonMap = { 0: 1, 1: 4, 2: 2 }; + isButton = function(event, code) { + return event.button == buttonMap[code]; + }; + + } else if (Prototype.Browser.WebKit) { + isButton = function(event, code) { + switch (code) { + case 0: return event.which == 1 && !event.metaKey; + case 1: return event.which == 1 && event.metaKey; + default: return false; + } + }; + + } else { + isButton = function(event, code) { + return event.which ? (event.which === code + 1) : (event.button === code); + }; + } + + return { + isLeftClick: function(event) { return isButton(event, 0) }, + isMiddleClick: function(event) { return isButton(event, 1) }, + isRightClick: function(event) { return isButton(event, 2) }, + + element: function(event) { + var node = Event.extend(event).target; + return Element.extend(node.nodeType == Node.TEXT_NODE ? node.parentNode : node); + }, + + findElement: function(event, expression) { + var element = Event.element(event); + if (!expression) return element; + var elements = [element].concat(element.ancestors()); + return Selector.findElement(elements, expression, 0); + }, + + pointer: function(event) { + return { + x: event.pageX || (event.clientX + + (document.documentElement.scrollLeft || document.body.scrollLeft)), + y: event.pageY || (event.clientY + + (document.documentElement.scrollTop || document.body.scrollTop)) + }; + }, + + pointerX: function(event) { return Event.pointer(event).x }, + pointerY: function(event) { return Event.pointer(event).y }, + + stop: function(event) { + Event.extend(event); + event.preventDefault(); + event.stopPropagation(); + event.stopped = true; + } + }; +})(); + +Event.extend = (function() { + var methods = Object.keys(Event.Methods).inject({ }, function(m, name) { + m[name] = Event.Methods[name].methodize(); + return m; + }); + + if (Prototype.Browser.IE) { + Object.extend(methods, { + stopPropagation: function() { this.cancelBubble = true }, + preventDefault: function() { this.returnValue = false }, + inspect: function() { return "[object Event]" } + }); + + return function(event) { + if (!event) return false; + if (event._extendedByPrototype) return event; + + event._extendedByPrototype = Prototype.emptyFunction; + var pointer = Event.pointer(event); + Object.extend(event, { + target: event.srcElement, + relatedTarget: Event.relatedTarget(event), + pageX: pointer.x, + pageY: pointer.y + }); + return Object.extend(event, methods); + }; + + } else { + Event.prototype = Event.prototype || document.createEvent("HTMLEvents").__proto__; + Object.extend(Event.prototype, methods); + return Prototype.K; + } +})(); + +Object.extend(Event, (function() { + var cache = Event.cache; + + function getEventID(element) { + if (element._prototypeEventID) return element._prototypeEventID[0]; + arguments.callee.id = arguments.callee.id || 1; + return element._prototypeEventID = [++arguments.callee.id]; + } + + function getDOMEventName(eventName) { + if (eventName && eventName.include(':')) return "dataavailable"; + return eventName; + } + + function getCacheForID(id) { + return cache[id] = cache[id] || { }; + } + + function getWrappersForEventName(id, eventName) { + var c = getCacheForID(id); + return c[eventName] = c[eventName] || []; + } + + function createWrapper(element, eventName, handler) { + var id = getEventID(element); + var c = getWrappersForEventName(id, eventName); + if (c.pluck("handler").include(handler)) return false; + + var wrapper = function(event) { + if (!Event || !Event.extend || + (event.eventName && event.eventName != eventName)) + return false; + + Event.extend(event); + handler.call(element, event); + }; + + wrapper.handler = handler; + c.push(wrapper); + return wrapper; + } + + function findWrapper(id, eventName, handler) { + var c = getWrappersForEventName(id, eventName); + return c.find(function(wrapper) { return wrapper.handler == handler }); + } + + function destroyWrapper(id, eventName, handler) { + var c = getCacheForID(id); + if (!c[eventName]) return false; + c[eventName] = c[eventName].without(findWrapper(id, eventName, handler)); + } + + function destroyCache() { + for (var id in cache) + for (var eventName in cache[id]) + cache[id][eventName] = null; + } + + if (window.attachEvent) { + window.attachEvent("onunload", destroyCache); + } + + return { + observe: function(element, eventName, handler) { + element = $(element); + var name = getDOMEventName(eventName); + + var wrapper = createWrapper(element, eventName, handler); + if (!wrapper) return element; + + if (element.addEventListener) { + element.addEventListener(name, wrapper, false); + } else { + element.attachEvent("on" + name, wrapper); + } + + return element; + }, + + stopObserving: function(element, eventName, handler) { + element = $(element); + var id = getEventID(element), name = getDOMEventName(eventName); + + if (!handler && eventName) { + getWrappersForEventName(id, eventName).each(function(wrapper) { + element.stopObserving(eventName, wrapper.handler); + }); + return element; + + } else if (!eventName) { + Object.keys(getCacheForID(id)).each(function(eventName) { + element.stopObserving(eventName); + }); + return element; + } + + var wrapper = findWrapper(id, eventName, handler); + if (!wrapper) return element; + + if (element.removeEventListener) { + element.removeEventListener(name, wrapper, false); + } else { + element.detachEvent("on" + name, wrapper); + } + + destroyWrapper(id, eventName, handler); + + return element; + }, + + fire: function(element, eventName, memo) { + element = $(element); + if (element == document && document.createEvent && !element.dispatchEvent) + element = document.documentElement; + + var event; + if (document.createEvent) { + event = document.createEvent("HTMLEvents"); + event.initEvent("dataavailable", true, true); + } else { + event = document.createEventObject(); + event.eventType = "ondataavailable"; + } + + event.eventName = eventName; + event.memo = memo || { }; + + if (document.createEvent) { + element.dispatchEvent(event); + } else { + element.fireEvent(event.eventType, event); + } + + return Event.extend(event); + } + }; +})()); + +Object.extend(Event, Event.Methods); + +Element.addMethods({ + fire: Event.fire, + observe: Event.observe, + stopObserving: Event.stopObserving +}); + +Object.extend(document, { + fire: Element.Methods.fire.methodize(), + observe: Element.Methods.observe.methodize(), + stopObserving: Element.Methods.stopObserving.methodize(), + loaded: false +}); + +(function() { + /* Support for the DOMContentLoaded event is based on work by Dan Webb, + Matthias Miller, Dean Edwards and John Resig. */ + + var timer; + + function fireContentLoadedEvent() { + if (document.loaded) return; + if (timer) window.clearInterval(timer); + document.fire("dom:loaded"); + document.loaded = true; + } + + if (document.addEventListener) { + if (Prototype.Browser.WebKit) { + timer = window.setInterval(function() { + if (/loaded|complete/.test(document.readyState)) + fireContentLoadedEvent(); + }, 0); + + Event.observe(window, "load", fireContentLoadedEvent); + + } else { + document.addEventListener("DOMContentLoaded", + fireContentLoadedEvent, false); + } + + } else { + document.write(""; + $new_preis = 0; + mysql_query("UPDATE chars SET status='Tod' WHERE id='$char_id'"); + + } else { + + $new_dead_list = "$my_charakter[dead_list]"; + + $new_preis = $my_charakter[preis]; + + } + + mysql_query("UPDATE chars SET niederlagen='$new_niederlagen', liga_niederlagen='$new_liga_niederlagen', preis='$new_preis', dead_list='$new_dead_list' WHERE id='$char_id'"); + + } + + + if($user['id'] == $char_2['besitzer']){ +// $arenas_new = round($arenas_exps[0] + (50* ($char_1['level']+$char_2['level'] ))); + // Leveln der Arena :) (Um Rundungsfehler zu vermeiden diese umstaendliche Rechnung) + addExpToArena($char_2['besitzer'], $kampf1['arena_exp']-round($kampf1['arena_exp']*0.25)); +// Umsatz wird schon vorher ermittelt :) +// mysql_query('UPDATE arena SET einnahmen = einnahmen + '.$kampf1['arena_geld'].' WHERE besitzer='.$char_2['besitzer']); +// include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/arena_exp.php'); + } else{ + addExpToArena($char_1['besitzer'], round($kampf1['arena_exp']*0.25)); + } + + + $row = mysql_fetch_assoc(mysql_query('Select mietlasten FROM arena WHERE besitzer='.$user['id'])); + + if($row['mietlasten'] > 2){ + // Steuerschulden + $tilgung = ceil($new_geld_offset * 0.75); + $restgeld = $new_geld_offset - $tilgung; + mysql_query('UPDATE user SET geld=geld+'.$restgeld.' WHERE id= '.$user['id']); + echo ''; + mysql_query('UPDATE arena SET steuerlasten = steuerlasten - '.$tilgung. ' WHERE besitzer ='.$user['id']); + } else{ + mysql_query('UPDATE user SET geld=' . $new_geld . ' WHERE id=' . $user['id'] . ' LIMIT 1'); + } +// mysql_query("DELETE FROM kampf_nachricht WHERE charakter='$char_id'"); + +// include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/exp.php'); + + // Hinzufuegen der Exp und der Attacken :) + addExpToChar($char_id, $new_exp); // That was easy :) + + // Nun die Attacken ins richtige Format setzen :) + // Momentan ist es so (1D Array) + // Schlag,Schlag,Kick,Schlag,Block,Schlag + // Gewollt ist ein 2D Array + // [0] => (['a_name'] => 'Schlag', ['anzahl'] => 4), [1] => (['a_name'] => 'Kick', ['anzahl'] => 1), [2] => (['a_name'] => 'Block', ['anzahl'] => 1) + $l_attacken = array(); + $l_attacken = array(); + for($i=0;$i $attacken[$i], 'anzahl' => 1); + } + } + + // Rufe nun die Funktion zum req'en der attacken auf :) + addAttackUsageToChar($char_id, $l_attacken); + + if ($itemname) { + $item_names = mysql_query("SELECT name FROM $new_item WHERE id IN(" . $itemname . ")"); + $x2 = 0; + + while ($new_row = @ mysql_fetch_array($item_names)) { + print " "; + $x2++; + } + + } + elseif ($punkte_block) { + print " "; + } +} +semaphoreDown($ressource); +?> \ No newline at end of file diff --git a/ag/kampf_clan.php b/ag/kampf_clan.php new file mode 100644 index 0000000..28c5c04 --- /dev/null +++ b/ag/kampf_clan.php @@ -0,0 +1,211 @@ + $k_aufgabe[0] AND $k_hp[1] > $k_aufgabe[1] AND $x < 10) { + $sql = "INSERT clan_fights SET hp1='$k_hp[0]', hp2='$k_hp[1]', mp1='$k_mp[0]', mp2='$k_mp[1]', schaden1='$schaden_1', schaden2='$schaden_2', attacke1='$technick1[name]', attacke2='$technick2[name]', char1='$chara_1[id]', char2='$chara_2[id]', starke1='$k_starke[0]', starke2='$k_starke[1]', ver1='$k_ver[0]', ver2='$k_ver[1]', speed1='$k_speed[0]', speed2='$k_speed[1]', ausdauer1='$k_ausdauer[0]', ausdauer2='$k_ausdauer[1]', clanfight_id='$clanfight_id', runde='$runde', kampf='$kampf'"; + mysql_query($sql); +// echo $sql . '
    '; + if (mysql_affected_rows() == 0) { + echo '"' . $sql . '" konnte nicht ausgefürt werden!
    '; + } +} else { + displayErrorMessage(NULL, 'Unbekannter B.U.G!', displayHistoryBackLink()); + exit; +} + +while ($k_hp[0] > $k_aufgabe[0] AND $k_hp[1] > $k_aufgabe[1] AND $x < 10) { + + $technick1 = mysql_fetch_array(mysql_query("SELECT at_id, aktiv FROM lernen WHERE id='$k_attacke1[$x]' LIMIT 10")); + $prozent_technik1 = (20 * $technick1[aktiv]) - 20; + $technick1 = mysql_fetch_array(mysql_query("SELECT * FROM attacken WHERE id='$technick1[at_id]' LIMIT 10")); + + $technick2 = mysql_fetch_array(mysql_query("SELECT at_id, aktiv FROM lernen WHERE id='$k_attacke2[$x]' LIMIT 10")); + $prozent_technik2 = (20 * $technick2[aktiv]) - 20; + $technick2 = mysql_fetch_array(mysql_query("SELECT * FROM attacken WHERE id='$technick2[at_id]' LIMIT 10")); + + ///////////////////Hier laedt er den RELOAD der technik wenn die zusammen setzung nicht stimmen sollte + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/andere_technik.php'); /////////////////// Wenn man ne andere technik sich aussuchen will... + + $technick1[speed] = $technick1[speed] + (($technick1[speed] / 100) * $prozent_technik1); + $technick2[speed] = $technick2[speed] + (($technick2[speed] / 100) * $prozent_technik2); + + $technick1[verteidigung] = $technick1[verteidigung] + (($technick1[verteidigung] / 100) * $prozent_technik1); + $technick2[verteidigung] = $technick2[verteidigung] + (($technick2[verteidigung] / 100) * $prozent_technik2); + + $technick1[starke] = $technick1[starke] + (($technick1[starke] / 100) * $prozent_technik1); + $technick2[starke] = $technick2[starke] + (($technick2[starke] / 100) * $prozent_technik2); + + $speeds_char1 = ($k_speed[0] + $technick1[speed]); + $speeds_char2 = ($k_speed[1] + $technick2[speed]); + + // Speedbug + // $speeds_char1_4 = ($k_speed[0] + $technick1[speed]) / 1.5; + // $speeds_char2_4 = ($k_speed[1] + $technick2[speed]) / 1.5; + // + // if ($speeds_char1_4 < 1) { + // $speeds_char1_4 = 1; + // } + // if ($speeds_char2_4 < 1) { + // $speeds_char2_4 = 1; + // } + // + // $speed_char1 = mt_rand($speeds_char1_4, $speeds_char1); + // $speed_char2 = mt_rand($speeds_char2_4, $speeds_char2); + + $aussetzten_runde = ""; ////// MUSS SO BLEIBEN WICHTIG + ##################################MP, SSJ Verwandlungen, HP, Koerper Tausch Technicken + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/majin.php'); + + if (!$aussetzten_runde) { /////DAS FUER MAJIN ATTACKEN + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/atk_wert.php'); + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/tausch2.php'); //////////////////Muss ganz oben sein wegen technik Tauschen + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/gift.php'); + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/frucht.php'); + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/mp.php'); + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/hp.php'); + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/hp2.php'); + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/SSJ.php'); + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/kaioken.php'); + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/kaioken2.php'); + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/copy.php'); + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/lose.php'); + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/lose2.php'); + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/ausdauer.php'); + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/mpv.php'); + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/tausch.php'); + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/hpmp.php'); + //include "kampf/summon.php"; + } + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/atk_wert.php'); + if (!$aussetzten_runde) { /////DAS FUER MAJIN ATTACKEN + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/schatten.php'); + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/runde.php'); + } + + #####################################KAMPF SYSTEM + include ($_SERVER['DOCUMENT_ROOT'] . '/ag/include/kampf/kampf_rechnung.php'); + + #$db_query = mysql_fetch_array(mysql_query("SELECT * FROM clan_fights WHERE (char1='$chara_1[id]' OR char1='$chara_2[id]') AND dauer='0' order by id DESC LIMIT 1")); + $db_query = mysql_fetch_array(mysql_query("SELECT * FROM clan_fights WHERE (char1='$chara_1[id]' OR char1='$chara_2[id]') order by id DESC LIMIT 1")); + + mysql_query("UPDATE clan_fights SET hp1='$db_query[hp1],$k_hp7[0]', hp2='$db_query[hp2],$k_hp7[1]', mp1='$db_query[mp1],$k_mp7[0]', mp2='$db_query[mp2],$k_mp7[1]', schaden1='$db_query[schaden1],$schaden_1', schaden2='$db_query[schaden2],$schaden_2', attacke1='$db_query[attacke1],$technick1[name]', attacke2='$db_query[attacke2],$technick2[name]', starke1='$db_query[starke1],$k_starke[0]', starke2='$db_query[starke2],$k_starke[1]', ver1='$db_query[ver1],$k_ver[0]', ver2='$db_query[ver2],$k_ver[1]', speed1='$db_query[speed1],$k_speed[0]', speed2='$db_query[speed2],$k_speed[1]', ausdauer1='$db_query[ausdauer1],$k_ausdauer[0]', ausdauer2='$db_query[ausdauer2],$k_ausdauer[1]' WHERE id='$db_query[id]'"); + + $x++; +} + +if ($k_hp[0] <= 0 AND $k_hp[1] <= 0) { + if ($k_hp[0] > $k_hp[1]) { + $k_hp[0] = $k_hp1[1]; + } else { + $k_hp[1] = $k_hp2[1]; + } +} + +if ($k_hp[1] < $k_aufgabe[1] OR $k_hp[1] < $k_hp[0]) { + $sieger = $chara_1['id']; + $verlierer = $chara_2['id']; +} + +if ($k_hp[0] < $k_aufgabe[0] OR $k_hp[0] < $k_hp[1]) { + $sieger = $chara_2['id']; + $verlierer = $chara_1['id']; +} + +mysql_query("UPDATE clan_fights SET win='$sieger', lose='$verlierer' WHERE id='$db_query[id]'"); + +?> \ No newline at end of file diff --git a/ag/kampf_list.php b/ag/kampf_list.php new file mode 100644 index 0000000..b4c0110 --- /dev/null +++ b/ag/kampf_list.php @@ -0,0 +1,755 @@ + + + + AnimeGame.eu + + + + + + 6){ + displayErrorMessage('Kampf erstellen nicht Möglich!', 'Ihre Arena ist geschlossen', displayHistoryBackLink()); + return; + } else if($arena['zustand'] <= 0.5){ + displayErrorMessage('Kampf erstellen nicht Möglich!', 'Ihre Arena ist in einem mieserablen Zustand', displayHistoryBackLink()); + return; + } + + + $char_a = getChar($charid); + if(!isUserOwnerOf($user['id'],$charid)){ + return $char_a['name'].': Der Char gehört dir nicht.'; + } + if($char_a['status'] != 'Frei') { + return $char_a['name'].': Der Char ist nicht frei!'; + } + if(($kampf_pw != '' && !is_null($kampf_pw)) && $user['pw_fight'] < 1) { + return $char_a['name'].': Sie dürfen nur 4 Passwortkämpfe pro Tag machen!'; + } + + $char_hp = explode(',', $char_a['hp']); + + if($char_hp['0'] < 50) { + return $char_a['name'].': Die HP des Chars ist unter 50.'; + } + + if($char_hp[0] <= ($char_hp[1] / 100) * $char_a['aufgeben']) { + return $char_a['name'].': Die HP des Chars ist unter seiner Aufgabegrenze.'; + } + + $w_zeit = time() + 43200; + mysql_query('UPDATE chars SET status=\'Kampf Erstellt\' WHERE id='.$charid); + if($lvl != 0){ + $sql = 'INSERT INTO kampf_list(lvlmin, lvlmax, kampfname, charakter, passwort, besitzer, zeit, zeit_rec, ip) values ('.($char_a['level']-$lvl).', '.($char_a['level']+$lvl).', \''.$kampf_name.'\', '.$charid.', \''.$kampf_pw.'\', \''.$user['nickname'].'\', '.$w_zeit.', '.$kampf_zeit.', \''.$_SERVER['REMOTE_ADDR'].'\')'; + } else{ + $sql = 'INSERT INTO kampf_list(lvlmin, lvlmax, kampfname, charakter, passwort, besitzer, zeit, zeit_rec, ip) values (0, 0, \''.$kampf_name.'\', '.$charid.', \''.$kampf_pw.'\', \''.$user['nickname'].'\', '.$w_zeit.', '.$kampf_zeit.', \''.$_SERVER['REMOTE_ADDR'].'\')'; + } +// echo $sql.''; + $fight_row = mysql_fetch_assoc(mysql_query($sql)); + + if(!$fight_row){ + $fight_row = mysql_fetch_assoc(mysql_query('SELECT * FROM kampf_list where id = '.$kampf_id)); + if(!$fight_row){ + displayErrorMessage(NULL,'Kampf existiert nicht mehr!', displayHistoryBackLink()); + } else if($_SERVER['REMOTE_ADDR'] == $fight_row['ip']){ + displayErrorMessage(NULL,'Kampf kann nicht angenommen werden, da die IP gleich ist!', displayHistoryBackLink()); + } else if($fight_row['lvlmax'] != 0 && $fight_row['lvlmin'] > $char_a['level']){ + displayErrorMessage(NULL,'Level zu niedring!', displayHistoryBackLink()); + } else if($fight_row['lvlmax'] != 0 && $fight_row['lvlmax'] < $char_a['level']){ + displayErrorMessage(NULL,'Level zu hoch!', displayHistoryBackLink()); + } else if($fight_row['passwort'] != $kampf_pw){ + displayErrorMessage(NULL,'Passwort falsch!', displayHistoryBackLink()); + } else{ + displayErrorMessage(NULL,'Kampf konnte nicht angenommen werden, warum auch immer!', displayHistoryBackLink()); + } + semaphoreDown($ressource2); + semaphoreDown($ressource1); + return; + } + + $char_b = getChar($fight_row['charakter']); + if(isUserOwnerOf($user['id'], $fight_row['charakter'])){ + displayErrorMessage(NULL,'Annehmen von eigenen Fights ist nicht möglich!', displayHistoryBackLink()); + semaphoreDown($ressource2); + semaphoreDown($ressource1); + return; + } + + createAbholcode($char_a['id']); + createAbholcode($char_b['id']); + + // Ein Kampf kostet 1 Aktionspunkt! + hasDoneAction($user, 1); + + // So nun kann der Fight in aller Ruhe starten! + starteFight($char_a, $char_b, $fight_row); + + displayErrorMessage(NULL,'Kampf angenommen...', ''); + + semaphoreDown($ressource2); + semaphoreDown($ressource1); +} + +function nehmeAutofightAn($user, $charid, $kampf_name, $kampf_zeit, $lvl){ + + $char_a = getChar($charid); + if(!isUserOwnerOf($user['id'],$charid)){ + return $char_a['name'].': Der Char gehört dir nicht.'; + } + if($char_a['status'] != 'Frei') { + return $char_a['name'].': Der Char ist nicht frei!'; + } + $char_hp = explode(',', $char_a['hp']); + + if($char_hp['0'] < 50) { + return $char_a['name'].': Die HP des Chars ist unter 50.'; + } + + if($char_hp[0] <= ($char_hp[1] / 100) * $char_a['aufgeben']) { + return $char_a['name'].': Die HP des Chars ist unter seiner Aufgabegrenze.'; + } + // Char ist ok! Suche Fight ^^ + if($kampf_name !== '' && !is_null($kampf_name)){ + $whereclause = ' kampfname like \''.$kampf_name.'\' AND '; + } + if($lvl > 0 && $lvl < 10){ + $sql = 'SELECT kl.id FROM kampf_list kl inner join chars c on kl.charakter = c.id WHERE c.level between '.($char_a['level'] - $lvl).' and '.($char_a['level'] + $lvl).' AND '.$whereclause.' kl.besitzer != \''.$user['nickname'].'\' AND ('.$char_a['level'].' between kl.lvlmin and kl.lvlmax OR kl.lvlmax = 0) AND kl.IP != \''.$_SERVER['REMOTE_ADDR'].'\' AND kl.rasse != \'NPC\' AND kl.zeit_rec = '.$kampf_zeit.' AND passwort = \'\' ORDER BY id ASC'; + } else { + $sql = 'SELECT id FROM kampf_list WHERE '.$whereclause.' besitzer != \''.$user['nickname'].'\' AND ('.$char_a['level'].' between lvlmin and lvlmax OR lvlmax = 0) AND IP != \''.$_SERVER['REMOTE_ADDR'].'\' AND rasse != \'NPC\' AND zeit_rec = '.$kampf_zeit.' AND passwort = \'\' ORDER BY id ASC'; + } + + // Nur mal die ID-Liste ausgeben +// echo $sql.'
    '; + $qry = mysql_query($sql); + $fight_row = NULL; + while($row = mysql_fetch_assoc($qry)){ + $ressource = 'Kampf:'.$row['id']; + // Wichtig, die Semaphore!! + if(semaphoreUP($ressource)){ // TRUE, diese Anfrage darf bearbeitet werden + $fight_row = mysql_fetch_assoc(mysql_query('SELECT * FROM kampf_list where id = '.$row['id'])); + if($fight_row){ + break; + } + } + semaphoreDown($ressource); // kein Break?? Dann gebe Ressource frei!! + } + if(!$fight_row){ + return $char_a['name'].': Es konnte kein Fight gefunden werden!'; + } + // Nur noch Informationen ueber den anderen Char holen!! + $chara_2 = getChar($fight_row['charakter']); + + createAbholcode($char_a['id']); + createAbholcode($chara_2['id']); + + // Pro Char kostet das annehmen 1 Aktionspunkt + hasDoneAction($user,1); + + // So nun kann der Fight in aller Ruhe starten! + starteFight($char_a, $chara_2, $fight_row); + + semaphoreDown($ressource); + return $char_a['name'].': Kampf wurde erfolgreich angenommen!'; +} + +function autokampf($user, $kampf_name, $char_id, $kampf_zeit, $lvl){ + if(!is_numeric($lvl) || !is_numeric($kampf_zeit) || $kampf_zeit < 0 || c > 4){ + displayErrorMessage(NULL,'Fehlerhafte Eingabe!',displayHistoryBackLink()); + return; + } + + $kampf_zeit *= 300; + // User darf erstmal nix mehr machen! + $ressource = 'User:'.$user['id']; + // Wichtig, die Semaphore!! + if(!semaphoreUP($ressource)){ // TRUE, diese Anfrage darf bearbeitet werden + displayErrorMessage(NULL,'Verarbeitung gerade in Gange, bitte warten...', displayHistoryBackLink()); + return; + } + if(is_array($char_id)){ + for($i=0;$i\n"; + } + } + } else { + $tmp = 'Kein Char ausgewählt!'; + } + + displayErrorMessage(NULL,$tmp, ''); + + semaphoreDown($ressource); +} + +function erstelleFights($user, $kampf_name, $kampf_pw, $char_id, $kampf_zeit, $lvl){ + if(!is_numeric($lvl) || !is_numeric($kampf_zeit) || $kampf_zeit < 0 || c > 4){ + displayErrorMessage(NULL,'Fehlerhafte Eingabe!',displayHistoryBackLink()); + return; + } + $kampf_zeit *= 300; + + if($kampf_name === NULL || $kampf_name == '') { // Kampfname ist fuer alle gleich einzugeben! + displayErrorMessage(NULL,'Geben sie bitte den Kampfnamen ein.',displayHistoryBackLink()); + return; + } + + // User darf erstmal nix mehr machen! + $ressource = 'User:'.$user['id']; + // Wichtig, die Semaphore!! + if(!semaphoreUP($ressource)){ // TRUE, diese Anfrage darf bearbeitet werden + displayErrorMessage(NULL,'Verarbeitung gerade in Gange, bitte warten...', displayHistoryBackLink()); + return; + } + + if(is_array($char_id)){ + for($i=0;$i\n"; + } + } + // Pro erstellter Fight kostet es einen Aktionspunkt! + hasDoneAction($user,count($char_id)); + } else { + $tmp = 'Kein Char ausgewählt!'; + } + + displayErrorMessage(NULL,$tmp, ''); + + semaphoreDown($ressource); +} + +function displayAutoFights($user, $portal, $pagenum){ + ?> +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Autofight!
    Kampfname
    Charakter +'.$row['name'].'
    '."\n"; + } +?> +
    Kampf Zeit + +
    Level Begrenzung + +
      + +
    +
    + 7){ + displayErrorMessage('Kampf erstellen nicht Möglich!', 'Ihre Arena ist geschlossen', displayHistoryBackLink()); + return; + } else if($arena['zustand'] <= 0.5){ + displayErrorMessage('Kampf erstellen nicht Möglich!', 'Ihre Arena ist in einem mieserablen Zustand', displayHistoryBackLink()); + return; + } + ?> +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Kampf Erstellen
    Kampfname
    Charakter +'.$row['name'].'
    '."\n"; + } +?> +
    Kampf Zeit + +
    Level Begrenzung + +
    Passwort + +
      + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Auto Kampf + / + NPC Kampf + + Begrenzt + / + Free 4 All + + Kampf Erstellen +
    GegnerInfoKampf ZeitArenaPasswortKämpfen
    +
    +
    +
    + +
    + LVL Begrenzung: '.$char_min.' - '.$char_max; + } + echo 'Level: '.$char['level'].'
    '.$ca_pls.': '.$ca_pl.$lvlbegr; + ?> +
    + Min + + '.$row['a_name'].' ('.$row['besitzer'].')
    '; + echo 'Stehplätze: '.$row['steh'].'
    '; + echo 'Sitzplätze: '.$row['sitz'].'
    '; + echo 'Logenplätze: '.$row['loge'].'
    '; + echo 'Luxus: '.$row['luxus'].'
    '; + ?> +
    +
    Voraussetzung:
    '; + if($req_charakter['name']) { + echo $req_charakter['name']; + } else { + echo 'keine'; + } + } else { + ?> + + +
    + + + zurückziehen + + annehmen + + +
    + ###LABEL###'); ?> +
    + +
    + + + + + + + + + + + + + + + + + + + + +
    Kampf annehmen
    Charakter + +
    Passwort + +
      + +
    +
    + '; + while (list($key, $val) = each($_GET)) { + echo ''; + } + echo '
    Bitte Code eingeben
    '; + $auth = false; + } +} +if($auth == false){ + // Do nothing anymore +} else if($charm == 1){ + displayKampfErstellen($user_ida, $portal, $pagenum); + display($user_ida, $portal, $pagenum); +} else if($charm == 2){ +// function charm2($user, $kampf_name, $kampf_pw, $char_id, $kampf_zeit, $lvl){ + erstelleFights($user_ida, $kampf_name, $kampf_pw, $char_id, $kampf_zeit, $lvl); + display($user_ida, $portal, $pagenum); +} else if($charm == 3){ + autokampf($user_ida, $kampf_name, $char_id, $kampf_zeit, $lvl); + display($user_ida, $portal, $pagenum); +} else if($charm == 4){ + displayKampfAnnehmen($user_ida, $kampf_id,$portal, $pagenum); + display($user_ida, $portal, $pagenum); +} else if($charm == 5){ + displayAutoFights($user_ida, $portal, $pagenum); + display($user_ida, $portal, $pagenum); +} else if($charm == 6){ + nehmeKampfAn($user_ida, $char_id, $kampf_id, $kampf_pw); + display($user_ida, $portal, $pagenum); +} else if($charm == 7){ + zieheKampfZurueck($user_ida, $kampf_id); + display($user_ida, $portal, $pagenum); +} else{ + display($user_ida, $portal, $pagenum); +} +?> + + diff --git a/ag/last_fight.php b/ag/last_fight.php new file mode 100644 index 0000000..cd2cc2a --- /dev/null +++ b/ag/last_fight.php @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + +
    + +

    + Letzte 20 Kämpfe

    +

    + + +
    +

    +

    + + + + vs.
     
    Angucken"; ?>

    +

    + + +
    +

    + + + + + + diff --git a/ag/last_fight1.php b/ag/last_fight1.php new file mode 100644 index 0000000..ca9e97b --- /dev/null +++ b/ag/last_fight1.php @@ -0,0 +1,71 @@ + + + +$back
     
    "; +$kampf1 = mysql_Fetch_array(mysql_query("SELECT * FROM $spleoic WHERE id='$kampf_id' LIMIT 1")); +if(($kampf_id * 300) + $kampf1[dauer] > time()) { +echo "Fehler Sie können diesen Kampf nicht anschauen bevor er vorbei ist"; +exit; +} +} + +$kampf1 = mysql_Fetch_array(mysql_query("SELECT * FROM $spleoic WHERE id='$kampf_id' LIMIT 1")); +$char_1 = getChar($kampf1['char1']); +$char_2 = getChar($kampf1['char2']); +$arena = mysql_Fetch_array(mysql_query("SELECT name, besitzer FROM arena WHERE id='$kampf1[arena_name]' LIMIT 1")); + +if($kampf1['dauer'] > time()) { + displayErrorMessage(NULL,'Der Kampf ist noch nicht vorbei!', displayHistoryBackLink()); + exit; +} + + +$starke1 = explode(",", $kampf1[starke1]); +$starke2 = explode(",", $kampf1[starke2]); +$ver1 = explode(",", $kampf1[ver1]); +$ver2 = explode(",", $kampf1[ver2]); +$speed1 = explode(",", $kampf1[speed1]); +$speed2 = explode(",", $kampf1[speed2]); +$ausdauer1 = explode(",", $kampf1[ausdauer1]); +$ausdauer2 = explode(",", $kampf1[ausdauer2]); +$glueck1 = explode(',', $kampf1['glueck1']); +$glueck2 = explode(',', $kampf1['glueck2']); + +$schaden1 = explode(",", $kampf1[schaden1]); +$schaden2 = explode(",", $kampf1[schaden2]); +$attacke1 = explode(",", $kampf1[attacke1]); +$attacke2 = explode(",", $kampf1[attacke2]); + +$hp1 = explode(",", $kampf1[hp1]); +$hp2 = explode(",", $kampf1[hp2]); +$mp1 = explode(",", $kampf1[mp1]); +$mp2 = explode(",", $kampf1[mp2]); + +$a_hp1 = explode(",", $char_1[hp]); +$a_hp2 = explode(",", $char_2[hp]); +$a_mp1 = explode(",", $char_1[mp]); +$a_mp2 = explode(",", $char_2[mp]); +$runde = 1; + +include($_SERVER['DOCUMENT_ROOT'].'ag/include/kampf_anzeige.php'); diff --git a/ag/last_fight2.php b/ag/last_fight2.php new file mode 100644 index 0000000..d68cac2 --- /dev/null +++ b/ag/last_fight2.php @@ -0,0 +1,76 @@ + + +$back
     
    "; +$kampf2 = mysql_Fetch_array(mysql_query("SELECT id FROM $spleoic ORDER BY id ASC LIMIT 1")); +$kampf1 = mysql_Fetch_array(mysql_query("SELECT * FROM $spleoic WHERE id='$kampf_id' LIMIT 1")); +$turnier_uids = mysql_fetch_array(mysql_query("SELECT id FROM $spleoic WHERE art='$art' ORDER BY id ASC")); + + + +if((($kampf_id-$turnier_uids[id]+1) * 300) + $kampf1[dauer] > time()) { +echo "Fehler Sie können diesen Kampf nicht anschauen bevor er vorbei ist"; +exit; +} +} + +$kampf1 = mysql_Fetch_array(mysql_query("SELECT * FROM turnier_kampf WHERE id='$kampf_id' LIMIT 1")); +$char1 = getChar($kampf1['char1']); +$char2 = getChar($kampf1['char2']); + +$char_1 = $char1; +$char_2 = $char2; + +$arena = mysql_Fetch_array(mysql_query("SELECT name, besitzer FROM arena WHERE id='$kampf1[arena_name]' LIMIT 1")); + + +$starke1 = explode(",", $kampf1[starke1]); +$starke2 = explode(",", $kampf1[starke2]); +$ver1 = explode(",", $kampf1[ver1]); +$ver2 = explode(",", $kampf1[ver2]); +$speed1 = explode(",", $kampf1[speed1]); +$speed2 = explode(",", $kampf1[speed2]); +$ausdauer1 = explode(",", $kampf1[ausdauer1]); +$ausdauer2 = explode(",", $kampf1[ausdauer2]); +$glueck1 = explode(',', $kampf1['glueck1']); +$glueck2 = explode(',', $kampf1['glueck2']); + +$schaden1 = explode(",", $kampf1[schaden1]); +$schaden2 = explode(",", $kampf1[schaden2]); +$attacke1 = explode(",", $kampf1[attacke1]); +$attacke2 = explode(",", $kampf1[attacke2]); + +$hp1 = explode(",", $kampf1[hp1]); +$hp2 = explode(",", $kampf1[hp2]); +$mp1 = explode(",", $kampf1[mp1]); +$mp2 = explode(",", $kampf1[mp2]); + +$a_hp1 = explode(",", $char_1[hp]); +$a_hp2 = explode(",", $char_2[hp]); +$a_mp1 = explode(",", $char_1[mp]); +$a_mp2 = explode(",", $char_2[mp]); +$runde = 1; + +include($_SERVER['DOCUMENT_ROOT'].'ag/include/kampf_anzeige.php'); +?> diff --git a/ag/last_fight3.php b/ag/last_fight3.php new file mode 100644 index 0000000..5125693 --- /dev/null +++ b/ag/last_fight3.php @@ -0,0 +1,70 @@ + + + +Schließen
     
    '; +$kampf1 = mysql_Fetch_array(mysql_query("SELECT * FROM $spleoic WHERE id='$kampf_id' LIMIT 1")); +/*if(($kampf_id * 300) + $kampf1[dauer] > time()) { +echo "Fehler Sie können diesen Kampf nicht anschauen bevor er vorbei ist"; +exit; +}*/ +} + +$kampf1 = mysql_Fetch_array(mysql_query("SELECT * FROM $spleoic WHERE id='$kampf_id' LIMIT 1")); +$char_1 = getChar2($kampf1['char1']); +$char_2 = getChar2($kampf1['char2']); + +if($kampf1['dauer'] > time()) { + displayErrorMessage(NULL,'Der Kampf ist noch nicht vorbei!', displayHistoryBackLink()); + exit; +} + + +$starke1 = explode(",", $kampf1[starke1]); +$starke2 = explode(",", $kampf1[starke2]); +$ver1 = explode(",", $kampf1[ver1]); +$ver2 = explode(",", $kampf1[ver2]); +$speed1 = explode(",", $kampf1[speed1]); +$speed2 = explode(",", $kampf1[speed2]); +$ausdauer1 = explode(",", $kampf1[ausdauer1]); +$ausdauer2 = explode(",", $kampf1[ausdauer2]); + +$schaden1 = explode(",", $kampf1[schaden1]); +$schaden2 = explode(",", $kampf1[schaden2]); +$attacke1 = explode(",", $kampf1[attacke1]); +$attacke2 = explode(",", $kampf1[attacke2]); + +$hp1 = explode(",", $kampf1[hp1]); +$hp2 = explode(",", $kampf1[hp2]); +$mp1 = explode(",", $kampf1[mp1]); +$mp2 = explode(",", $kampf1[mp2]); + +$a_hp1 = explode(",", $char_1[hp]); +$a_hp2 = explode(",", $char_2[hp]); +$a_mp1 = explode(",", $char_1[mp]); +$a_mp2 = explode(",", $char_2[mp]); +$runde = 1; + +include($_SERVER['DOCUMENT_ROOT'].'/ag/include/kampf_anzeige.php'); diff --git a/ag/lernpunkte.php b/ag/lernpunkte.php new file mode 100644 index 0000000..5577758 --- /dev/null +++ b/ag/lernpunkte.php @@ -0,0 +1,199 @@ + $char['lernpunkte']) { + displayErrorMessage(NULL,'Du hast keine Lernpunkte mehr zur Verfügung!', displayHistoryBackLink()); + exit; +} + +$char_hp = explode(",", $char['hp']); +$char_mp = explode(",", $char['mp']); +if ($charm) { + + $new_st = $char['starke'] + $staerke; + $new_ver = $char['verteidigung'] + $verteidigung; + $new_speed = $char['speed'] + $speed; + $new_ausdauer = $char['ausdauer'] + $ausdauer; + $new_glueck = $char['glueck'] + $glueck; + $new_hp = $char_hp[1] + $hp * 10; + $new_mp = $char_mp[1] + $mp * 5; + $new_lern = $char['lernpunkte'] - $speed - $staerke - $verteidigung - $glueck - $ausdauer - $hp - $mp; + + mysql_query("UPDATE chars SET lernpunkte='$new_lern', starke='$new_st', verteidigung='$new_ver', speed='$new_speed', ausdauer='$new_ausdauer', + glueck='$new_glueck', hp='$char_hp[0],$new_hp', mp='$char_mp[0],$new_mp' WHERE id='$char_id'"); + + $fehler_m = " + Stärke: old($char[starke]) new($new_st)
    + Verteidigung: old($char[verteidigung]) new($new_ver)
    + Geschwindigkeit: old($char[speed]) new($new_speed)
    + Ausdauer: old($char[ausdauer]) new($new_ausdauer)
    + Glück: old($char[glueck]) new($new_glueck)
    + HP: old($char_hp[1]) new($new_hp)
    + MP: old($char_mp[1]) new($new_mp)
    + "; + + insertUserTickerMessage($user_ida['id'], 'Es wurden Lernpunkte des Chars '.$char['name'].'(ID:'.$char['id'].') eingesetzt. Neue Werte sind: Str: '.$new_st.',Def: '.$new_ver.',Lck: '.$new_glueck.',Spd: '.$new_speed.', Aus: '.$new_ausdauer.', HP: '.$new_hp.', MP: '.$new_mp.', LP: '.$new_lern); + displayErrorMessage(NULL,$fehler_m, 'weiter...'); + exit; +} +?> + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Restliche Lernpunkte
    Stärke + +
    Verteidigung + +
    Geschwindigkeit + +
    Ausdauer + +
    Glück + +
    HP ( 1 = 10) + +
    MP (1 = 5) + +
    +
    + + diff --git a/ag/liga1.php b/ag/liga1.php new file mode 100644 index 0000000..1e08563 --- /dev/null +++ b/ag/liga1.php @@ -0,0 +1,42 @@ +"; + + +//$row[liga_punkte] = $row[liga_siege] * 3; +if($x <= 5) { +$CHARAKTER = "".$row[name]."
    $PIC"; +} else { +$CHARAKTER = "".$row[name].""; +} +$WIN = $row[liga_siege]; +$LOSE = $row[liga_niederlagen]; +$PUNKTE = number_format($row['liga_punkte'],0,"","."); + +eval("\$IN_LIGA1.=\"".gettemplate("gfx/in_liga")."\";"); + +$x++; +} + + +eval("\$soutput=\"".gettemplate("gfx/liga1")."\";"); +echo $soutput; + +?> \ No newline at end of file diff --git a/ag/liga_kampf_anzeige.php b/ag/liga_kampf_anzeige.php new file mode 100644 index 0000000..4e715b0 --- /dev/null +++ b/ag/liga_kampf_anzeige.php @@ -0,0 +1,137 @@ + + + + + + + + + +$back
     
    "; + + $kampf1 = mysql_Fetch_array(mysql_query("SELECT * FROM liga_kampf WHERE id='$kampf_id' LIMIT 1")); + $char_1 = getChar($kampf1['char1']); + $char_2 = getChar($kampf1['char2']); + + $spleoic = "liga"; + + $starke1 = explode(",", $kampf1[starke1]); + $starke2 = explode(",", $kampf1[starke2]); + $ver1 = explode(",", $kampf1[ver1]); + $ver2 = explode(",", $kampf1[ver2]); + $speed1 = explode(",", $kampf1[speed1]); + $speed2 = explode(",", $kampf1[speed2]); + $ausdauer1 = explode(",", $kampf1[ausdauer1]); + $ausdauer2 = explode(",", $kampf1[ausdauer2]); + $glueck1 = explode(',', $kampf1['glueck1']); + $glueck2 = explode(',', $kampf1['glueck2']); + + $schaden1 = explode(",", $kampf1[schaden1]); + $schaden2 = explode(",", $kampf1[schaden2]); + $attacke1 = explode(",", $kampf1[attacke1]); + $attacke2 = explode(",", $kampf1[attacke2]); + + $hp1 = explode(",", $kampf1[hp1]); + $hp2 = explode(",", $kampf1[hp2]); + $mp1 = explode(",", $kampf1[mp1]); + $mp2 = explode(",", $kampf1[mp2]); + + $a_hp1 = explode(",", $char_1[hp]); + $a_hp2 = explode(",", $char_2[hp]); + $a_mp1 = explode(",", $char_1[mp]); + $a_mp2 = explode(",", $char_2[mp]); + $runde = 1; + + include ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf_anzeige.php'); + + exit; +} else { + $kampf_search = mysql_query("SELECT c1.name AS c1_name, c2.name AS c2_name, k.id FROM liga_kampf k + LEFT JOIN chars c1 ON(c1.id=k.char1) LEFT JOIN chars c2 ON(c2.id=k.char2) LEFT JOIN user u ON(u.id=c1.besitzer OR u.id=c2.besitzer) WHERE u.id='$user_ida[id]'"); +?> + + + + + + + + + + + + + + + + + + +
    +

    Meine Ligakämpfe

    +

    vs.  Angucken
    +

    Ligakampf suche?

      +
    + + + + +
    +
    + + diff --git a/ag/login.php b/ag/login.php new file mode 100644 index 0000000..4eafe7c --- /dev/null +++ b/ag/login.php @@ -0,0 +1,60 @@ + +
    +
    + + + + + + + + + + + + + + + + +
    +

    Login System

    +

    Nickname

     
    +

    Passwort

     
     
    + Username oder Passwort falsch!

    '; + } + } + ?> +
    \ No newline at end of file diff --git a/ag/login2.php b/ag/login2.php new file mode 100644 index 0000000..ea41ca1 --- /dev/null +++ b/ag/login2.php @@ -0,0 +1,33 @@ + \ No newline at end of file diff --git a/ag/logout.php b/ag/logout.php new file mode 100644 index 0000000..adadcb6 --- /dev/null +++ b/ag/logout.php @@ -0,0 +1,12 @@ + \ No newline at end of file diff --git a/ag/markt.php b/ag/markt.php new file mode 100644 index 0000000..7f70143 --- /dev/null +++ b/ag/markt.php @@ -0,0 +1,259 @@ +"; + $text .= "Verteidigung: $item[verteidigung]
    "; + $text .= "Geschwindigkeit: $item[speed]
    "; + $text .= "HP: $item[hp]
    "; + $text .= "MP: $item[mp]
    "; + $text .= "Type: $item[s_type]
    "; + $text .= 'Preis: '.displayMoney($item['preis']).'
    '; + $text .= "Anzahl?: $item[anzahl]
    "; + $text .= "ab welchen Level?: $item[level]

    "; + $text .= "Info?: $item[info]"; + + eval("\$infos.=\"".gettemplate("gfx/info")."\";"); + echo $infos; + exit; +} + +/////////////////////////auf Kauf Button Klicken +if($id == 1) { + +if($user_ida['cheater'] == 0) { + if(false && !checkref()) { + displayErrorMessage(NULL,'Nicht schummeln!', displayHistoryBackLink()); + exit; + } +} + + +//FIXME move to bottom! +if($anzahl_1) { $anzahl .= ",".$anzahl_1.""; $item .= ",".$item_1.""; } +if($anzahl_2) { $anzahl .= ",".$anzahl_2.""; $item .= ",".$item_2.""; } +if($anzahl_3) { $anzahl .= ",".$anzahl_3.""; $item .= ",".$item_3.""; } +if($anzahl_4) { $anzahl .= ",".$anzahl_4.""; $item .= ",".$item_4.""; } +if($anzahl_5) { $anzahl .= ",".$anzahl_5.""; $item .= ",".$item_5.""; } +if($anzahl_6) { $anzahl .= ",".$anzahl_6.""; $item .= ",".$item_6.""; } +if($anzahl_7) { $anzahl .= ",".$anzahl_7.""; $item .= ",".$item_7.""; } +if($anzahl_8) { $anzahl .= ",".$anzahl_8.""; $item .= ",".$item_8.""; } +if($anzahl_9) { $anzahl .= ",".$anzahl_9.""; $item .= ",".$item_9.""; } +if($anzahl_10) { $anzahl .= ",".$anzahl_10.""; $item .= ",".$item_10.""; } + + +$w_item_anzahl = explode(",",$anzahl); +$w_item_id = explode(",",$item); +$u=1; + +while($u < count($w_item_anzahl)) { + +if($w_item_anzahl[$u]) { +$item = mysql_fetch_array(mysql_query("SELECT preis, anzahl, name FROM item WHERE id='$w_item_id[$u]' LIMIT 1")); +$item_preis = $item_preis + ($item[preis] * $w_item_anzahl[$u]); + + if($item[anzahl] < $w_item_anzahl[$u]) { + $fehler = "Fehler! $item[name] Ausverkauft."; + $link = $back; + eval("\$fehler1.=\"".gettemplate("gfx/markt_fehler")."\";"); + echo $fehler1; + exit; + } + if($w_item_anzahl[$u] < 0){ + mysql_query("INSERT INTO cheater values('$user_ida[id]','Versuchte negative Werte in den Markt einzufuegen!',now())"); + $fehler = "NICHT CHEATEN, VERDAMMT NOCHMAL!!!!!"; + $link = $back; + eval("\$fehler1.=\"".gettemplate("gfx/markt_fehler")."\";"); + echo $fehler1; + exit; + } +} + +$u++; +} + + + + +$user = mysql_fetch_array(mysql_query("SELECT geld, item_res FROM user WHERE id='$user_ida[id]'")); + + $item_preis = ($item_preis / 100) * (100 - $user[item_res]); + +$auktionensumme = mysql_fetch_assoc(mysql_query('SELECT SUM(aktuellesgebot) as summe FROM auktion WHERE bieter = '.$user_ida[id].' GROUP BY bieter')); +$auktionensumme = $auktionensumme[summe]; + +if($user[geld]<$item_preis+$auktionensumme) { + + $fehler = "Sie haben nicht genug Geld!"; + $link = $back; + eval("\$fehler1.=\"".gettemplate("gfx/markt_fehler")."\";"); + echo $fehler1; +exit; +} + +$u=1; +while($u < count($w_item_anzahl)) { + + if($w_item_anzahl[$u]) { + + $item = mysql_fetch_array(mysql_query("SELECT anzahl, name, s_type FROM item WHERE id='$w_item_id[$u]' LIMIT 1")); + $t=0; + while($t < $w_item_anzahl[$u]) { + if($item[s_type] != "Trank") { $ru_malss = 1; } + mysql_query("INSERT ware SET ru_mal='$ru_malss', item_id='$w_item_id[$u]', user='$user_ida[id]'"); + $t++; + } + + mysql_query("UPDATE item SET anzahl=anzahl-'$w_item_anzahl[$u]' WHERE id='$w_item_id[$u]' LIMIT 1"); + $fehler .= "Sie haben $item[name] x $w_item_anzahl[$u] gekauft!
    "; + } +$u++; +} +mysql_query("UPDATE user SET geld=geld-'$item_preis' WHERE id='$user_ida[id]' LIMIT 1"); +$fehler .= "

    für $item_preis ¥"; + +$link = "weiter..."; + + eval("\$fehler1.=\"".gettemplate("gfx/markt_fehler")."\";"); + echo $fehler1; +exit; +} + +////ITEMS in der navi + + + + if($pagenum == "" or $pagenum == 1) + { + $pagenum = 0; + } + if($pagenum != "" and $pagenum != 1) + { + $pagenum = ($pagenum - 1) * 10; + } + + if(!$oder) { $oder = 'level,preis'; } + if(!$ords) { $ords = "Trank"; } + $item_name = mysql_query("SELECT * FROM item WHERE (type='$charm' OR type='ALL') AND s_type='$ords' order by $oder ASC LIMIT $pagenum, 10"); + $user = mysql_Fetch_array(mysql_query("SELECT id, geld, item_res FROM user WHERE id='$user_ida[id]' LIMIT 1")); + $user_item = mysql_query("SELECT name, id FROM item "); + + $GELD = $user[geld]; + + if ($ords == 'Trank') { + $MAXLENGTH= 2; + $MAXNUMBER= 98; + } else { + $MAXLENGTH= 1; + $MAXNUMBER= 8; + } + + $x=0; + $y=1; + while($row = mysql_fetch_array($item_name)) + { + + + + $ITEM = $row[name]; + $TYPE = $row[type]; + $ANZAHL = $row[anzahl]; + $row[preis] = $row[preis] / 100; + $row[preis] = $row[preis] * (100 - $user[item_res]); + $PREIS = $row['preis']; + $PREIS1 = 'preis_'.$y; + $ANZAHL1 = "anzahl_".$y.""; + $ITEM_ID1 = "item_".$y.""; + $ITEM_ID = $row[id]; + $info_id = $row[id]; + + if($x==1) { + $FARBE = "#A5B197"; + $x=0; + } else { + $x=1; + $FARBE = ""; + } + $y++; + + eval("\$ITEMS.=\"".gettemplate("gfx/markt_inhalt")."\";"); + } + + +////////////STORE + + while($row2 = mysql_fetch_array($user_item)) { + + $user_items = mysql_num_rows(mysql_query("SELECT id FROM ware WHERE item_id='$row2[id]' AND user='$user_ida[id]' LIMIT 100")); + if($user_items) { + $STORE_ITEMS .= "".$row2[name]." x ".$user_items."
    "; + } + + } + + $Total = mysql_num_rows(mysql_query("SELECT id FROM item WHERE (type='$charm' OR type='ALL') AND s_type='$ords'")); + $pages = ceil($Total/10); + + $z = 1; + $i = 0; + while($pages > $i) + { + $seiten .= " $z "; + $z++; + $i++; + } + + + + + +eval("\$output=\"".gettemplate("gfx/markt")."\";"); +echo $output; +?> diff --git a/ag/nachricht.php b/ag/nachricht.php new file mode 100644 index 0000000..c2e08d9 --- /dev/null +++ b/ag/nachricht.php @@ -0,0 +1,319 @@ +weiter...'; + + displayErrorMessage('Änderungen übernommen',$fehler_m,$weiter_an); +} +function insertInIgnorelist($userid, $ignorename){ /// if($charm == 6) { + $ignore_user = mysql_fetch_array(mysql_query('SELECT id FROM user WHERE nickname=\''.$ignorename.'\'')); + $bereits_ignoriert = mysql_num_rows(mysql_query('SELECT id FROM ignolist WHERE besitzer='.$userid.' AND user='.$ignore_user[id])); + $fehler_m = ''; + $weiter_an = 'weiter...'; + if($bereits_ignoriert) { + $fehler_m = 'Nachrichten von '.$ignorename.' werden schon ignoriert.'; + } else{ + mysql_query('INSERT ignolist SET user='.$ignore_user[id].', besitzer='.$userid); + $fehler_m = 'Die Nachrichten von '.$ignorename.' werden ab jetzt ignoriert.'; + } + displayErrorMessage('Änderungen übernommen',$fehler_m,$weiter_an); + } + +function showIngorelist($userid){//if($charm == 5) { + +?> +

    + + + + + + + + + + + + + + + + + + + + + + +
    Ignorierlist
    Name
    Ignorierte Nutzer
    ".$row[nickname].""; ?>
    +
    + + + + + + + + + + + + + + + + + + + + + + +
      
    User '.$nachricht[von].''; ?>
    Betreff
    Text + + + + +
    +
     Antwort
    + + +weiter...'; +// echo implode(',', $nachrichten); + mysql_query('DELETE FROM nachricht WHERE besitzer='.$userid.' AND id IN ('.implode(',',$nachrichten).')'); + displayErrorMessage('Änderungen übernommen','Nachrichten Erfolgreich gelöscht',$weiter_an); + } else{ + displayErrorMessage(NULL, 'Nachrichten konnten nicht gelöscht werden',displayHistoryBackLink()); + } +} + + +function sendMessageForumlar($userid,$username,$besitzer,$betreff,$text){// if($charm == 1) { + $weiter_an = 'weiter...'; + if(isset($besitzer) && isset($text)) { + $user_erf = mysql_fetch_assoc(mysql_query('SELECT id FROM user WHERE nickname=\''.$besitzer.'\'')); + $igno_user = mysql_num_rows(mysql_query('SELECT id FROM ignolist WHERE besitzer='.$user_erf[id].' AND user='.$userid)); + + if($igno_user) { + displayErrorMessage(NULL,'Fehler, der Nutzer '.$besitzer.' hat dich auf seiner Ignorierliste',$weiter_an); + return; + } + + if(!$user_erf[id]) { + displayErrorMessage(NULL,'Fehler, Nutzer '.$besitzer.' existiert nicht...',$weiter_an); + return; + } + sendMessage($username, $user_erf[id], $betreff, $text); + displayErrorMessage('Änderungen übernommen','Nachricht erfolgreich verschickt',$weiter_an); + return; + } + + +?> + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    User
    Betreff
    Text
     
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Nachrichten Schreiben | Ignoreliste
     BetreffVonDatum
    ('.$row[ag].')'; ?>'.$row[von].''; ?>
    + + + + + + + +
    +###LABEL###'); +?> +
    +
    + diff --git a/ag/news.php b/ag/news.php new file mode 100644 index 0000000..2e458ee --- /dev/null +++ b/ag/news.php @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Von:

    Datum: um Uhr
    Betreff:



    Name:



    +
    +
    + + + + +

    + +
    +
    + + + + + + + + + + + + + + + + + + + + +###LABEL###'; +?> + + + +
     
    Von: am um Uhr
    Betreff:


    +

    antworten: ()


    + diff --git a/ag/online.php b/ag/online.php new file mode 100644 index 0000000..c4106a2 --- /dev/null +++ b/ag/online.php @@ -0,0 +1,30 @@ + + + + + + + + + + + + + +
    Wer ist Online?
    User + Letze Aktivität +
    vor min
    \ No newline at end of file diff --git a/ag/pictures/komment.jpg b/ag/pictures/komment.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bfabb23e6a2ba80ee21c5e6382cc2f6319fd11cc GIT binary patch literal 8198 zcmeHMYiwIr9si$u{f^_fDNpq z8+dFH`~$Kc%&ZNNBA=|c?;tnTbU4%r0hZ8tF7Vvz`%0DqL|{b?G&QLgUSag?vO?Nkwy zh48i5ERFG#>(=5Y8ye&1h~a~5;p)D*CEXp&V2w!Vwbq0o@=&T>04E#E{)sqn+MmG1 zD99Y9mfGuZ1e`XT&2Dqr?M_dJqr=nJ<#cxSt?TLO>*-nNak5mabmGdAbar%fx;ou1 zm%G>Ha`n=})vKF${v8L}kHKRDJ2-gK51fba9-{pghfTDTWDKJ;6P7Swns}TbCbPwA zvpYI)8Z-+DaJ(UO12GYvGjV3C#b)N611R+Hrj6Yp^Z2dFp8f-Ohb_JLAA4&1jhp)B zUq}r^j<%PGzKRZ%d201;`yJR`NLm4z;PI@ ziN$2Kn4>I&jiGK6MsT3N#~i-<{$3iv3-d2s9N3gPC*SkH#O}Vd5_xa4g$7{V58aR2@rw7L1?Pp#u{`EW0e*g5sSHxnasKCLQlkdNF zdiAd5mATyI&&!A2?A!m;84b$c*5JV(?mz$TNB5ok+nG!IFWzu@{V@%m9Q$bX(D_%+ zZhAs{Rl8u@v$i+}aB&Q6pN*R~voGXkWkW$_`~_WBTV|Y5GrKKJ=2|luI}EzVPR654 zwaPR@p%Y~s-x`Pcyo@wJ8JFEP6MvqHuPM_08yOojb&X>K!YI1w0oyusL~M+v zNFXZQXY^ddcmr}9b=Omp{~Q+jXekM}J^?7M9k2i;NP&oD5_1Vu@IeSAbR)VlHS(x+ z{Yx2&jS2>@7A7T2l|lh4Ivh(%s+2Oy&eR=gq-u8aX_a|}#)YfhFb0XycsPO}+1AJfu656;;|HmP9$JiWy`;;?A;IQ+DXeltU%6#hifE$31?&A{P=< z`x4ky4O|L-GbgU(#3qg z22x%6;AadrT3Rz=Hd!gC*t8!MW%U~Bdkl87dPgcZAr&OK0bGynfBTNQ08QW)sYJ21 zt5SJqMO8#&Vo;f*fD`E|t}`X6IH9iMci<;pyi%R5Ne^`fq_#)VpCtOkH8ZJ`lH4j5 z6f9${2uNba1AiT!hwTHteZar-;s4@**H4X&K+^(doV5U5Fb)}z*yb<5E?C62idkVT zJocdHUuXz02!04shk6hC31db7_*;(PPyX(iMO7`w0)dj^PtqUZ{ls9reEZgCBW?d}h?UHyRJd%M;>aer81$cdy)%NUtoVhcn)>n;j!# z%#{z___FzeD$0r=D(TVwiTQpiuEtPO6xF0qEfz{jtUBst1~F_?cEBqz6?JLUyDz>= zP;pCJ%Bw=yKjaVl1_rhYSvgr0mnC^g2>GL4bSY=DvH8jAnnR>Uy|sZYFE9I-2mF$p z3xtM;hXcWIARP9ghEKV(q$aDrl5!*V#{$XktD809k>AJQz>XXO>uM5*Bj?L%UMdMm zJSf#sZ>5sY#0I0uR5ml5^kt%A*cS?AhI~Vzbi^kHlOZt^iEJAj%6c7wG45nJ9=~>v z#uq3S1K6t|j36T(k4;MHN>MDSvy(ULh-IWSc3U?7aWVqf_Rj(sq2IUJ84fEzA#4~I zj#cL&tO#(R{?TYSAAf3h(h|mPxY}^Fgg{Hm?b+3at0e?lQf|+#He4+s(2{a{cD3PZ z34xZB+q0_;S4#-Aq}-leZMa%Ope5!1bavtWj&Um_mhdWQ8Si}XsdM8vy+5iwb@Jfm zIll2h1O885KTll!`gsy${l*P1%8X>P5PApKl-$U|_q~RM@14EV`0R+Uj@C5+$CDlt z45TCOTe~NYzj!3ty(X&}>raIQUr6aS^+PuWx{zZd_?~2jL#&ApuSS!;yTTi%oah5SdZLLWNa=p*ZKK=N*t+T0d_uf!`Zn|)GG;#RTPk!&0r+)s8$M%-)`oe9u P-M(Sui)YW?puPHcqZ8B3 literal 0 HcmV?d00001 diff --git a/ag/pictures/news.jpg b/ag/pictures/news.jpg new file mode 100644 index 0000000000000000000000000000000000000000..32088298289dc03094f2418426803538f92fa2e1 GIT binary patch literal 8371 zcmeHMdu&tJ8UN0`e#dz@4+@>iobYfp;dh=EX_gmB)|iAOKvvNrKW-d1j<2z=iAnz` zX}hvbTPJ8)w+eMoV4XIp2-Y&Tsw!k@=^vX^=!14EbhH~~R4FhTHnj-vJLlSt4ea4f zmHLN|bgd=1HSpkqd%b)B_1V;eeZulAiXh2QM zfyWlXACTKY$=U#3@|8^cesX6@heI7ZU=5XcMTsNReso(96e-(Xcz+Ewu}9{W-CO;l zS1|UEijo)`6(hz5iwzt$Tdm91;Ih{m9ZpxR&E<5U3Glm#++Q*Yu$#;HE#A#%+ND$x zi;D26*i_l^lLhnflf~Kbb0qD9Eax)5xqY%b=*BxDA>WfZ7$Og)$yv~|v21L21DE^+ zN*D$Ht<*C4M|cGE8jVJ)(QCDOLy@k?P*tkemsTyTsHm!_SZL6*lDf&njWsDQDk?51 zE-NW1t1Kxgsiaj&rEFsOZyY3#f@o8Zh5C!2m1*cT2G)i9YM4^FKRF~V8t!q3LHJhd!s> zS~YOY>#U7FbfR6oY{%fGvzL9bx&_Z1dU$!q<3s+=>Ah0@Z70`$ApGr@kNozH_=i_k znV#79t><^ny!q!(_rLJUTYs5bH?sNBAO7_4t8bsX+R(K=FtP2)XMc74)JK0e0LNjp z3Ko-ErL1EiRNKoH7{R8R3Z-LednJwF*uaTP&ZXY7(T8@l4_5hNwU?KvXaMTvb<-y? zh`qP@JJ;4r!UvfU{&fVV`4EzS06ow8G(ZcS`RmK;T#MJg`Ci+Zo!<%H*VX&8ZJ*WE zAHV0?=FhLcaqzI?)H@eHda3W(i{DgVn00^l>X}^^qQ~8bo)k{4zVMRw?WUdgPF?-M z3l9t*Ki&251J_TSZ#j8=`}O{N``&tQ>-)cGuHJLNKJ{I#eoGSgjSsKA`?;@PIbgVy zg!7Bq>Rk^$eeBxl7k3OM-%ZYH9-CiPPFz)uZ9Q(qGWKZ8Se;c-89yt_QtOjT-@*U0DT%ouolAL1p#Xh zUSW{H3{I5L9qh)E&7;=o9W!lYz49tz=&4oBq`<6(cS&wIZQsg&J-PqHJ$ zMn8lbd`JujkY=S<7?HB+Hc1>$(JYLCz-U@dLsP{-qqm90Ekb3W9Jfw>~aY^hF!a~#|34Ub2(3XghQr5}J zltU#w;{hYyzUcAu@n~qMb9e~5N`Xtk&*ivd0U?K@@`R)zPaua^;uFwLNJu@g?jd)t zR}@3kp(f4FQPz%%(aF|OFpx&7R33bHnvIrfzcAv7ha_xjHw#he7V7KL>|FICZ=hWa ziP0=@4YL2Xu8aUpV6_;gSZgIQ(ifLvLV99QnJ$DA=_an;D@r(_ZsHf=BObj`ovld& zbp|B0N6~K?dE&DDNTH`BcN8lMR(h@6iM(OF_Q67YkruuT3SS22u70V%4A@Ms#u*Iw zo?x?`Zu+g@2a&xrjL;9G*p~2$u@=5Aq2fPi7@+|yV51J@_nG`=QsZjEk4J+4G0M9~ zB`M;vTEj7mhko^2eB!t@;fYx77Mm4Twj?4R-->JR-R^HR zH`;x*X2IsM3;x>L`i904lg^kPw26Br-2Vy{NyN@Td*t`5-`9~Z(>Psd#{ zVt&zw-A2;?)Y1Vs{#^ho>GREXhQqQ_2(!k8W0iRbD*|lIJTw~47hejUTu zon3golRgy^!gv%kfoDFLTdi)T=SQjBDi38m$7d%(;7gKjoxVBUIs+5zL=4Z#GDWFS zk<@v9h6k8b#f%n zCO_XK1i9bd`%1^=4UgIPw;y`_$m(62PW^iK2DN+o;)c18k6xbn-SZ!A@b5qTd-r{7 zIMvfrM@|Q!;YXjxKUs0dfhC{XXLQ=<`fHx~IXN)>e(Oy8YuB_rJC#3~EIs_x!Q{LD E1WYV2uIATzn6LG1R1u4b z@YUE%_3@LH%kh&n_3?8=_dzyrHQ!uCa|ct{A`)7wHeiT6l&a^z!RGSOu^4dbtKei5 zr0$`X>hItHI4l;6)#9*P9WJ}g?&@0MaIEO+cDuXW?rxWZm1?6ASJ$M?Zf|q8wL6{d zold8-lUB}7&BXQZI8c8AE(_Se%99@8T!eQK_4hb!qMjnd7^RW0f&tUQV}clrCbPwA zvtt@G3JGw$E^G&4AUtQ_jAoO?$UDL)bn%9@9YN#BhvM#@z57F^&Vxt3Kf3Pbu9>G3 z;YjJ;XUELzAKZEV?1iMv11Fy=|M9g+&!Mk> z`mxWQ`sJTq|Hk7#{nei@?oQuz-{+4#ar)OUUFzR_TW0b8hmZg8%=0h5;R24sXbmhT zv&q=YLRcH@Fkl3Gd)&s*{)3$~f~RMmJs-X~akg~tgJV0pl5*t2dJ_%6yrK8R5(aT} zRcc~apCZ0k3*qe}@GOU*{uUfO8`A~D@Z9lNzPja^zaLpDoIZ2<FghJGtY@#Qoz-;}mGS2^S#`~EdduuK zFqw1NWcVJ?Jhm|&UAGmcc|(m}!@R!6Xe+C+BAS)9_HdO@9gh}|jjbB0$T7={%w`Jw z=`>1mSmXM{LaLl2U;I*y6Jq?^vDS5Z8OOWKVLmS-4N$~2c-_MPg^I5$QvVwn9h*Xg zg#*GUx&s2+M>Iq%jHXB+D%=OOr;70!;`4)yj0pZlFMdvq*iE?pVHZAX-p35Xad`$0>#>@NX6}CMHcnMpfXzy6X_bRBOxi6P}lJ7_=@MRR%dI{MV$eu z?ossjiI%u*KQcHd$sNLqf~BvO)ktSq1~F zfDuT6#0~-hcECLL6?|mY!y^#f|3X86e(*tnI@Hc6?X)rD3c(+F1pgQ4n3`9VV$|<1 z$i6uJb?!?_d4DBd^ap(bKWrMV6ywPSQ4ta%?zBUmzyA0skC06bd2Z{C1!Bc9aXve> zuO#l=w{14LZy`CD@(kZ<+ceBvdC`qGoy{p?NftyoIn*;Y(?i9TC`$685*I4@TtSXj zhCIw5ihauVdjzJUEDU+(Vmkx{x3`6?B7}SczK}N@-YBF?@w~Vwl@^4cuh)YvOR02p zW_+^h5UC+gbz+N)i@wFMPby{n!NI{ne<0)!g}kWYmG3Sn@rt(~ufy?JAlbQ^Spy!~ zIR*y~WE0p><2apCwy0#Kf)K|;QyKD<%h^=4FBuH<^`?^ER4)z?45kLW1Hoj(D+c00 zF%^mQ^$(;yHbI|vycmmJe?Qx z|DuwE;h@+{14zA10GsIhZFGjy@>2-w=7n?BcnB*3?618v8qPakT7xu&aSN^%TumX+ zlyWP(T5vUmKvT-C>}tW)6aq~tx3a4RS5pWyrQFJ{7FcSejIjfSYJT_X~_J*8i*kA38X z^OMN35WHV9!Z7RNt*qXqm$EQ= TIMESTAMPADD(MONTH, -6, now())'; + $row = mysql_fetch_assoc(mysql_query($sql)); + return $row['anzahl'] != 0; +} + + +function changeProfil($user, $new_pw, $new_nick, $new_nick2, $alt_pw, $homepage, $icq, $chat, $ads){ + if(!is_numeric($chat)){ + displayErrorMessage(NULL,'Chat-Feld inkorrekt ausgefuellt!',''); + return; + } + if(!is_numeric($ads)){ + displayErrorMessage(NULL,'Werbung-Feld inkorrekt ausgefuellt!',''); + return; + } + if($new_nick == $new_nick2 && $new_nick !== ''){ + $raw_nick = $new_nick; + if(!isNickChanged($user) && $new_nick != $user['nickname'] && $raw_nick == $new_nick) { + $sql = 'Update user set nickname = \''.$new_nick.'\' where id = '.$user['id']; + mysql_query($sql); + if(mysql_affected_rows() > 0){ + $sql = 'Insert into user_rename(pre_name, post_name, datum, userid) values(\''.$user['nickname'].'\', \''.$new_nick.'\', now(), '.$user['id'].')'; +// echo $sql; + mysql_query($sql); + displayErrorMessage('Nickname erfolgreich geändert','Ein neuer Login wird jedoch nun benötigt.',''); + } else{ + displayErrorMessage('Fehler','Nickname konnte nicht geändert werden.',''); + } + } else if($new_nick != $raw_nick){ + displayErrorMessage('Neuer Nickname ungültig!','Es sind Sonderzeichen erlaubt!',''); + } + } else if($new_nick !== ''){ + displayErrorMessage('Neuer Nickname ungültig!','Es sind Sonderzeichen erlaubt!',''); + } + + if($new_pw) { + if($new_pw == "") { + displayErrorMessage(NULL,'Neues Passwort nicht angegeben!',''); + return; + } + $alt_pw = encryptPassword($alt_pw); + if($alt_pw != $user['passwort']) { + displayErrorMessage(NULL,'Passwort falsch!',''); + return; + } + setPassword($user['nickname'], $new_pw); + } + mysql_query('UPDATE user SET homepage=\''.$homepage.'\', icq=\''.$icq.'\', chat = '.$chat.', ads = '.$ads.' WHERE id=\''.$user['id'].'\''); + displayErrorMessage('Profil erfolgreich geändert','Sollte das Passwort geändert worden sein, ist ein erneuter Login erforderlich.',''); + return mysql_fetch_assoc(mysql_query('Select * from user where id = '.$user['id'])); + +} + +function display($user){ + if($user['post']){ + $post_check = 'checked'; + } + if($user['schnelllink'] == 2){ + $char_schnell = 'selected'; + } + ?> +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Ihr Profil
    Nickname
    Neuer Nickname
    Neuer Nickname
    Altes Passwort + +
    Neues Passwort + +
    Homepage + +
    ICQ: + +
    Werbegrad: + + moderat: /> + '; + } + ?> +
    Chat: + + an: /> + aus: /> +
      + +
    +
    + \ No newline at end of file diff --git a/ag/pw.php b/ag/pw.php new file mode 100644 index 0000000..4c461a0 --- /dev/null +++ b/ag/pw.php @@ -0,0 +1,55 @@ + +
    +
    + + + + + + + + + + + + +
    Passwort vergessen?
    + +
    + +
    +
    diff --git a/ag/ranglist.php b/ag/ranglist.php new file mode 100644 index 0000000..80a0843 --- /dev/null +++ b/ag/ranglist.php @@ -0,0 +1,190 @@ += 2 ORDER BY geld DESC LIMIT 50'); + } else { + $sql = 'SELECT cl.clanzeichen, u.nickname, u.id as userid, c.name, c.level, c.besitzer, c.starke, c.preis, c.speed, c.glueck, c.bild, c.verteidigung, c.ausdauer, c.siege, c.niederlagen, c.id as charid, starke+verteidigung+speed+ausdauer+glueck as powerlevel' . + ' FROM chars as c INNER JOIN user as u on c.besitzer = u.id' . + ' LEFT JOIN clan as cl on u.clan = cl.id ' . + 'WHERE rasse != \'NPC\' ORDER BY ('.$wahl.') DESC LIMIT 50'; + +// Uncomment for hp/mp in PL +// $sql = 'SELECT cl.clanzeichen, u.nickname, u.id as userid, c.name, c.level, c.besitzer, c.starke, c.preis, c.speed, c.glueck, c.bild, c.verteidigung, c.ausdauer, c.siege, c.niederlagen, c.id as charid, starke+verteidigung+speed+ausdauer+glueck+substring_index(hp,\',\',-1)/10+substring_index(mp,\',\',-1)/5 as powerlevel' . +// ' FROM chars as c INNER JOIN user as u on c.besitzer = u.id' . +// ' LEFT JOIN clan as cl on u.clan = cl.id ' . +// 'WHERE rasse != \'NPC\' ORDER BY ('.$wahl.') DESC LIMIT 50'; +// echo $sql.'
    '; + $choice_s = mysql_query($sql); + } + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + +
    + + + + Charakter Suchen: + + +
    +
    PlatzUserGeld
    PlatzCharakterTrainerSiege / NiederlagenPreis
    align="center"> align="center"> align="center">???
    align="center"> align="center"> align="center"> align="center"> align="center"> align="center">
    + diff --git a/ag/runde.php b/ag/runde.php new file mode 100644 index 0000000..46de6d1 --- /dev/null +++ b/ag/runde.php @@ -0,0 +1,49 @@ + \ No newline at end of file diff --git a/ag/schatz.php b/ag/schatz.php new file mode 100644 index 0000000..b7450d8 --- /dev/null +++ b/ag/schatz.php @@ -0,0 +1,200 @@ +'; + while (list($key, $val) = each($_GET)) { + echo ''; + } + echo '
    Bitte Code eingeben
    '; + $auth = false; + } +} +if($auth == false){ + exit; +} + +$char_ort = mysql_fetch_assoc(mysql_query('Select * from quest_ort where id = '.$char['ort'])); +$coords[0] = $char_ort['x_coord']; +$coords[1] = $char_ort['y_coord']; + +if ($charm == 1) { + + if (!semaphoreUP($ressource)) { // Blockiere alle Aktionen die der User gleichzeitig ausfuehren will (Ausgaben, Chars etc.) um Problemen vorzubeugen!! + displayErrorMessage(NULL, 'Verarbeitung gerade in Gange, bitte warten...', displayHistoryBackLink()); + exit; + } + + $city = mysql_fetch_assoc(mysql_query('SELECT * FROM quest_ort WHERE stadt=\'' . $stadt_name . '\'')); + $auktionensumme = mysql_fetch_assoc(mysql_query('SELECT SUM(aktuellesgebot) as summe FROM auktion WHERE bieter = ' . $user_ida['id'] . ' GROUP BY bieter')); + $auktionensumme = $auktionensumme['summe']; + + $coords2[0] = $city['x_coord']; + $coords2[1] = $city['y_coord']; + + $std = max(round(sqrt(pow($coords[0]-$coords2[0],2) + pow($coords[1] - $coords2[1],2))/35),1); + $kosten = $city['kosten']+round(log($std*0.1+1.25)*$city['kosten'],0); + + + if ($user_ida['geld'] < $kosten + $auktionensumme) { + displayErrorMessage(NULL, 'Du hast nicht genug Geld!!', displayHistoryBackLink()); + semaphoreDown($ressource); // Gebe die Useraktionen wieder frei :) + exit; + } + if ($city['reisende'] >= 750) { + displayErrorMessage(NULL, $stadt_name . ' kann keine Besucher aufnehmen. Maximum von 750 erreicht!!', displayHistoryBackLink()); + semaphoreDown($ressource); // Gebe die Useraktionen wieder frei :) + exit; + } + if ($city['id'] == $char['ort']) { + displayErrorMessage(NULL, 'Du kannst nicht nach ' . $stadt_name . ' reisen, da du dort schon bist.!!', displayHistoryBackLink()); + semaphoreDown($ressource); // Gebe die Useraktionen wieder frei :) + exit; + } + if ($char['status'] != 'Frei') { + displayErrorMessage(NULL, 'Dein Char ist grad mit was anderem beschäftigt (' . $char['status'] . ')!!', displayHistoryBackLink()); + semaphoreDown($ressource); // Gebe die Useraktionen wieder frei :) + exit; + } + +// transferMonster(); + + $load_monster = getMonster($char['level'], $city['id'], $std, $std*2+2); + if($load_monster == NULL){ + displayErrorMessage(NULL, 'Dein Char traut sich nicht dorthin zu gehen, versuchs später nochmal!!', displayHistoryBackLink()); + semaphoreDown($ressource); // Gebe die Useraktionen wieder frei :) + exit; + } + + // Change: Ort wird jetzt beim abholen Eingetragen + mysql_query('UPDATE chars SET status=\'Schatz Suche\' WHERE id=' . $char_id); + + createAbholcode($char['id']); + + // Eine Schatzsuche kostet 6 Aktionspunkte + hasDoneAction($user_ida, 6); + monsterfight_neu($char, $load_monster, $std, $city['id']); + mysql_query('UPDATE user SET geld=geld-' . $kosten . ' WHERE id=' . $user_ida['id']); + displayErrorMessage(NULL, 'Die Reise nach ' . $city['stadt'] . ' kann beginnen sie endet in ' . $std . ' Stunden!!', 'Weiter..'); + + semaphoreDown($ressource); // Gebe die Useraktionen wieder frei :) + exit; +} +?> + + + + + + + + + + + + +
    + + + +
    + +
    + + '."\n"; + } + echo '
    + +
    + '; + } +?> +
    + diff --git a/ag/schatz3.php b/ag/schatz3.php new file mode 100644 index 0000000..fded802 --- /dev/null +++ b/ag/schatz3.php @@ -0,0 +1,72 @@ +Schatz Suche wirklich abbrechen?

    '; + echo '

    Ja | Nein

    '; + } +} else{ + if(($text = displaySchatzSuche($char)) !== null){ + displayErrorMessage(NULL,$text, displayHistoryBackLink()); + } +} + + +semaphoreDown($ressource); // Gebe die Useraktionen wieder frei :) + +?> \ No newline at end of file diff --git a/ag/schatz_suche.php b/ag/schatz_suche.php new file mode 100644 index 0000000..541b2d3 --- /dev/null +++ b/ag/schatz_suche.php @@ -0,0 +1,14 @@ + \ No newline at end of file diff --git a/ag/sp_item.php b/ag/sp_item.php new file mode 100644 index 0000000..c9f0ba5 --- /dev/null +++ b/ag/sp_item.php @@ -0,0 +1,253 @@ + failed + $nothin_msg = array('Da war wohl jemand vor dir da!', 'Die Schatztruhe ist voller Steine!', 'Naja, dabei sein is alles, ne??!', 'Diese Schatztruhe war leer, vielleicht klappts ja das nächte Mal'); + displayErrorMessage('Schatztruhe geöffnet','Niete!! ' . $nothin_msg[mt_rand(0, count($nothin_msg)-1)],'zurück...'); + return; + } else { + displayErrorMessage('Schatztruhe geöffnet','GOLD!! Du findest ganze '.$treasure.' Â¥','zurück...'); + mysql_query('UPDATE user SET geld = geld + '.$treasure.' WHERE id = '.$user['id']); + return; + } + } else{ + displayErrorMessage('Item nicht genutzt','Du hast garkeine Schatztruhe mehr!!','zurück...'); + return; + } +} + +function useBohne($item_id, $user){ + $chars = getCharsOfUser($user['id']); + $required = false; + foreach($chars as $row){ + $hp = explode(',', $row['hp']); + $mp = explode(',', $row['mp']); + if($hp[0] != $hp[1] || $mp[0] != $mp[1]){ + $required = true; + } + } + + if(!$required){ + displayErrorMessage('Item nicht genutzt','All deine Chars sind voll geheilt!!','zurück...'); + return; + } + // So nun nutzen + mysql_query('DELETE from sp_ware WHERE item='.$item_id.' and user = '.$user['id'].' LIMIT 1'); + + foreach($chars as $row){ + $hp = explode(',', $row['hp']); + $mp = explode(',', $row['mp']); + mysql_query('UPDATE chars SET hp=\''.$hp[1].','.$hp[1].'\', mp=\''.$mp[1].','.$mp[1].'\' WHERE id='.$row['id']); + } + + displayErrorMessage('Änderungen übernommen','Item erfolgreich benutzt. Die HP und MP all deiner Chars sind wieder voll hergestellt!!','weiter...'); +} + +// Die Funktion die die Fusion wirklich durchfuehrt!! +function usePotaraReally($user, $item_id, $char1, $char2, $new_name = ''){ + if($new_name === NULL || $new_name == ''){ + displayErrorMessage(NULL,'Name nicht angegeben',displayHistoryBackLink()); + } + + $char_v_1 = getChar($char1); + $char_v_2 = getChar($char2); + + if($char_v_1['name'] != $new_name && $char_v_2['name'] != $new_name){ // Der Name der Fusion darf auch der Name eines der Chars sein + $char_v_3 = mysql_Fetch_array(mysql_query('SELECT id FROM chars WHERE name=\''.$new_name.'\' LIMIT 1')); + } + + if($char_v_1['besitzer'] != $user['id'] || $char_v_2['besitzer'] != $user['id']) { + displayErrorMessage(NULL,$char_v_1['name'].' oder '.$char_v_2['name'].' gehört dir nicht!!',displayHistoryBackLink()); + return; + }else if($char_v_1['name'] == $char_v_2['name']) { + displayErrorMessage(NULL,'2x den gleichen Char zu fusioniern ist nicht möglich!!',displayHistoryBackLink()); + return; + }else if($new_name === NULL OR $char_v_3['id'] !== NULL) { + displayErrorMessage(NULL,'Der Name '.$new_name.' ist schon vorhanden!!',displayHistoryBackLink()); + return; + }else if($char_v_1['fusion'] != 'nein' || $char_v_2['fusion'] != 'nein') { + displayErrorMessage(NULL,$char_v_1['name'].' oder '.$char_v_2['name'].' ist schon Fusioniert!!',displayHistoryBackLink()); + return; + }else if($char_v_1['status'] != 'Frei' || $char_v_2['status'] != 'Frei'){ + displayErrorMessage(NULL,$char_v_1['name'].' oder '.$char_v_2['name'].' ist nicht frei!!',displayHistoryBackLink()); + return; + } + + + $hp1 = explode(',', $char_v_1['hp']); + $mp1 = explode(',', $char_v_1['mp']); + $hp2 = explode(',', $char_v_2['hp']); + $mp2 = explode(',', $char_v_2['mp']); + $new_hp = ($hp1[1] + $hp2[1]) ; + $new_mp = ($mp1[1] + $mp2[1]); + + + $sql = 'UPDATE chars SET fusion_rasse = \''.$char_v_2['rasse'].'\',' . + 'fusion=\'ja\',' . +// 'name=\''.$new_name.'\',' . + 'starke=starke+'.$char_v_2['starke'].',' . + 'verteidigung=verteidigung+'.$char_v_2['verteidigung'].',' . + 'speed=speed+'.$char_v_2['speed'].',' . + 'ausdauer=ausdauer+'.$char_v_2['ausdauer'].',' . + 'glueck=glueck+'.$char_v_2['glueck'].',' . + 'training_points=training_points+'.$char_v_2['training_points'].',' . + 'lernpunkte=lernpunkte+'.$char_v_2['lernpunkte'].',' . + 'hp=\''.$new_hp.','.$new_hp.'\',' . + 'mp=\''.$new_mp.','.$new_mp.'\',' . + 'dead_list = \'\',' . + 'preis = 0,' . + 'siege = 0,' . + 'niederlagen = 0,' . + 'liga_punkte = 0,' . +// 'frucht = \'Keine\',' . // frucht is NULL now!! + 'frucht = NULL,' . + 'liga_siege = 0,' . + 'liga_niederlagen = 0,' . + 'clan_train = 0 ' . + 'where id = '.$char1; +// echo $sql.'
    '; + $qry = mysql_query($sql); +// Umkopieren der Techniken + + // Hat das Update geklappt? Wenn nein abbrechen + if(mysql_affected_rows() <= 0){ + displayErrorMessage('Schwerwiegender Fehler','Fusion konnte nicht durchgeführt werden, melden sie sich bei einem GM!!',displayHistoryBackLink()); + return; + } + mysql_query('DELETE from sp_ware WHERE item='.$item_id.' and user = '.$user['id'].' LIMIT 1'); // Potara loeschen!! + +// 1. Ermitteln der Attacken die beide chars gemeinsam hatten + $qry = mysql_query('select l1.at_id,l1.benutzt + l2.benutzt as benutzt from lernen l1 inner join lernen l2' . + ' on l1.at_id = l2.at_id ' . + ' where (l1.besitzer = '.$char1.' and l2.besitzer = '.$char2.')'); +// 2. Addieren der Ausfuehrungsanzahl + while($row = mysql_fetch_assoc($qry)){ + $attarray[] = $row['at_id']; + mysql_query('Update lernen set benutzt = '.$row['benutzt'].' where at_id = '.$row['at_id'].' and besitzer = '.$char1); + } +// 3. Ermitteln und Umschreiben der Attacken die char2 hat die char1 jedoch nicht besaß + mysql_query('Update lernen set besitzer = '.$char1.' where besitzer = '.$char2.' and at_id NOT IN('.join($attarray,',').')'); +// 4. Loeschen der Eintraege von char2 + mysql_query('Delete from lernen where besitzer = '.$char2); + + mysql_query('DELETE FROM chars WHERE id='.$char2.' LIMIT 1'); // Char kann erst jetzt gelöscht werden + + mysql_query('Update chars set name=\''.$new_name.'\' WHERE id = '.$char1); + + displayErrorMessage('Änderungen übernommen','Charakter: '.$new_name.' erfolgreich fusioniert!!','weiter...'); + return; +} + +function confirmPotaraUse($item_id, $char1, $char2, $new_name){ + $char_v_1 = getChar($char1); + $char_v_2 = getChar($char2); + + $weiter_an = 'Ja' . + ' | abbrechen'; + displayErrorMessage('Frage','Wollen sie echt die Chars '.$char_v_1['name'].' + '.$char_v_2['name'].' fusionieren??',$weiter_an); +} + +function askForPotaraUse($user, $item_id){ + // Spezielle abfrage in der Char-Tabelle (Koenne aber durch Puffern schneller sein, als diese SQL-Anfrage) + $all_charakter = mysql_query('SELECT id, name FROM chars WHERE besitzer='.$user[id].' and fusion != \'ja\''); + $options = ''; + while($row = mysql_fetch_array($all_charakter)) { + $options.= ''; + } + ?> +
    + + + + + + + + + + + + + + + + + + +
    Char1:
    Char2:
    + +
    + +
    +
    + benutzen | '.displayHistoryBackLink()); +} + +if(is_numeric($item_id)){ // Die Seite kann nur mit gültiger Itemid aufgerufen werden!! + useItem($user_ida, $item_id, $ab, $ak, $char1, $char2, $new_name); +} else{ + displayErrorMessage(NULL, 'Itemid ist nicht numerisch!!',displayHistoryBackLink()); +} + +?> \ No newline at end of file diff --git a/ag/support.php b/ag/support.php new file mode 100644 index 0000000..a53cf9e --- /dev/null +++ b/ag/support.php @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Supporting AG
    Das Animegame ist zu 100% kostenlos. Es gibt keine versteckten Kosten und auch keine Premium Accounts, die bestimmten Spielern Vorteile bringen. + Jedoch kostet der Server auf dem das Spiel läuft monatlich Geld. Hier sind alle Kosten im Überblick:
    + - Aktueller Server 59 Euro/Monat
    + - Domains 3 Euro/Monat
    +
    Serverkostenbarometer
    Natürlich kannst du AG unterstützen, indem du keinen Werbeblocker nutzt und den Werbegrad auf Hardcore stellst. Es ist aber auch möglich zu Spenden. Alle Einnahmen, also durch Werbung und Spenden werden zu 100% dafür genutzt um die Kosten, die durch AG entstehen zu decken.
    Empfangene Spenden
    + +
    +
    + + + + +
    +
    diff --git a/ag/ticker.php b/ag/ticker.php new file mode 100644 index 0000000..79a2f8d --- /dev/null +++ b/ag/ticker.php @@ -0,0 +1,27 @@ + +
    + + + + + + + + +'; + } +?> +
    User Ticker
    DatumNachricht
    '.$tick['date'].''.$tick['text'].'
    +
    \ No newline at end of file diff --git a/ag/training.php b/ag/training.php new file mode 100644 index 0000000..a0ee5da --- /dev/null +++ b/ag/training.php @@ -0,0 +1,150 @@ +'; + mysql_query($sql); + displayTraining($user, $char_id); // Ueberspringe die Besitzerueberpruefung +} + +function displayTraining($user, $char_id) { + $char_1 = getChar($char_id, false); + if ($char_1['besitzer'] != $user['id']) { + displayErrorMessage(NULL, 'Charakter gehört nicht dir!!', displayHistoryBackLink()); + return; + } else + if (!is_numeric($char_id)) { + displayErrorMessage(NULL, 'Charakter-ID ist keine Zahl!!', displayHistoryBackLink()); + return; + } + $x = 0; +?> +
    + + + + + + + + + + + + + + + + + + + + +
    + Charaktertraining +
    + + +'; + if ($trains[$ui] == 'ausruhen') { + $auswah0[$ui] = 'selected'; + } + elseif ($trains[$ui] == 'starke') { + $auswah1[$ui] = 'selected'; + } + elseif ($trains[$ui] == 'verteidigung') { + $auswah2[$ui] = 'selected'; + } + elseif ($trains[$ui] == 'speed') { + $auswah3[$ui] = 'selected'; + } + elseif ($trains[$ui] == 'hp') { + $auswah4[$ui] = 'selected'; + } + elseif ($trains[$ui] == 'mp') { + $auswah5[$ui] = 'selected'; + } + elseif ($trains[$ui] == 'ausdauer') { + $auswah6[$ui] = 'selected'; + } + elseif ($trains[$ui] == 'glueck') { + $auswah7[$ui] = 'selected'; + } + echo '' . + '' . + '' . + '' . + '' . + '' . + '' . + ''; + $ui++; + $lo = $lo +2; +?> + +
    +   +
    +   + + +
    + \ No newline at end of file diff --git a/ag/turnier.php b/ag/turnier.php new file mode 100644 index 0000000..269ac66 --- /dev/null +++ b/ag/turnier.php @@ -0,0 +1,184 @@ +weiter...'); + return; + } + if(!is_numeric($charid)){ // Ist Charid wirklich eine Zahl???? + displayErrorMessage(NULL,'Charid ist nicht numerisch!!','weiter...'); + return; + } + // Es wird angenommen, dass $user schon sicher ist, weil das in der config.inc.php ausgelesen wird + + if($art == 'klein' && getHallOfFame('Anfängerturnier', $user['id']) >= 2) { + displayErrorMessage(NULL,'Du hast das Anfängerturnier schon zu oft gewonnen!!!','weiter...'); + } + + + if($art == 'klein'){ + // Char darf max lvl 25 haben und keine Fusion sein + $special_clue = 'AND level<=25 AND fusion =\'nein\' AND char_type = \'\' '; + $anzahl = 32; + } else{ + $anzahl = 64; + } + // sehr speziell und deswegen nicht getChar(); + $PRUEF = mysql_num_rows(mysql_query('SELECT id FROM chars WHERE id=\''.$charid.'\' '.$special_clue.' AND besitzer=\''.$user['id'].'\' LIMIT 1')); + if(!$PRUEF) { + displayErrorMessage(NULL,'Charakter erfüllt die Bestimungen nicht!','weiter...'); + return; + } + + $sear_a = mysql_num_rows(mysql_query('SELECT id FROM turnier1 WHERE art=\''.$art.'\'')); + if($sear_a >= $anzahl) { + displayErrorMessage(NULL,'Turnier voll! Es künnen maximal nur '.$anzahl.' Chars am Turnier teilnehmen','weiter...'); + return; + } + + $sear = mysql_fetch_assoc(mysql_query('SELECT id FROM turnier1 WHERE besitzer=\''.$user['id'].'\' and art = \''.$art.'\' LIMIT 1')); + if($sear['id']) { + displayErrorMessage(NULL,'Es darf nur einer deiner Chars am Turnier teilnehmen','weiter...'); + return; + } + + $sql = 'INSERT turnier1 SET charakter='.$charid.', besitzer='.$user['id'].', art = \''.$art.'\''; +// echo $sql; + mysql_query($sql); + mysql_query('UPDATE chars SET status=\'Turnier\' WHERE id='.$charid); + + displayErrorMessage('Änderungen übernommen','Charakter erfolgreich beim Turnier angemeldet','weiter...'); + return; +} + +function abmelden($user_ida, $char_id, $art){ + mysql_query('DELETE FROM turnier1 WHERE charakter=\''.$char_id.'\' AND besitzer=\''.$user_ida['id'].'\''); + mysql_query('UPDATE chars SET status=\'Frei\' WHERE id=\''.$char_id.'\' AND besitzer=\''.$user_ida['id'].'\' AND status=\'Turnier\' LIMIT 1'); + displayErrorMessage('Änderungen übernommen','Charakter erfolgreich beim Turnier abgemeldet','weiter...'); + return; +} + + +function displayDefault($user, $art){ + if($art == 'klein'){ + $turniername = 'Anfänger'; + $special_clue = ' AND level<=25 AND fusion =\'nein\' AND char_type = \'\' '; + } else if($art == 'wochen'){ + $turniername = 'Wochen'; + } else { + displayErrorMessage(NULL,'Anzeigefehler!!','weiter...'); + return; + } + // sehr speziell und deswegen nicht getChar(); + $sql = 'SELECT id, name, status FROM chars WHERE status=\'Frei\' AND besitzer='.$user['id'].$special_clue; +// echo $sql; + $char = mysql_query($sql); + + +?> + + + + + + + + + + + + + + + + + + +
    -Turnier Anmeldung
    Charakter + +
     

    + + + + + + + + + + +Abmelden'; + } else { + $alo = ' '; + } +?> + + + + + + +
    +

    Turnier Member

    CharakterTrainerAktion +
    + diff --git a/ag/turnier2.php b/ag/turnier2.php new file mode 100644 index 0000000..9493589 --- /dev/null +++ b/ag/turnier2.php @@ -0,0 +1,176 @@ + + + + + + + + '; +$turnier_date = date('d.m.Y'); +$turnier_info = mysql_query('SELECT win, char1, char2, id, round, dauer FROM turnier_kampf WHERE art=\''.$art.'\' ORDER BY id ASC'); + $u=0; + $pl = 300; + + while($row=mysql_Fetch_array($turnier_info)) { + $char_info1 = getChar($row['char1']); + $char_info2 = getChar($row['char2']); + + $dauer[] = $row['dauer']; + if(($pl * $u) + $dauer[0] < time()) { + $char_nic1[]='
    '.$char_info1[name]; + $char_nic2[]='
    '.$char_info2[name]; + } else { + $char_nic1[]='
    ???'; + $char_nic2[]='
    ???'; + } + $char_nick1[]=$char_info1['name']; + $char_nick2[]=$char_info2['name']; + $char1[]=$row['char1']; + $char2[]=$row['char2']; + + + $win[]=$row['win']; + $id[]=$row['id']; + $round[]=$row['round']; +$u++; +} +$maxs = $max_turnier-1; +$win_char = getChar($win[$maxs]); + +?> + + + + + + + + + + + + + + + + + + + + '; + $new_max_turnier = $max_turnier-1; + displaySomething($id, $new_max_turnier, $art, $char_nic1, $char_nic2, 4); + echo ''; + $new_max_turnier = $max_turnier-3; + displaySomething($id, $new_max_turnier, $art, $char_nic1, $char_nic2, 2); + $new_max_turnier = $max_turnier-2; + displaySomething($id, $new_max_turnier, $art, $char_nic1, $char_nic2, 2); + echo ''; + $new_max_turnier = $max_turnier-7; + displaySomething($id, $new_max_turnier, $art, $char_nic1, $char_nic2); + $new_max_turnier = $max_turnier-6; + displaySomething($id, $new_max_turnier, $art, $char_nic1, $char_nic2); + $new_max_turnier = $max_turnier-5; + displaySomething($id, $new_max_turnier, $art, $char_nic1, $char_nic2); + $new_max_turnier = $max_turnier-4; + displaySomething($id, $new_max_turnier, $art, $char_nic1, $char_nic2); + echo ''; +?> +
    Das Turnier am
    + +
    +
    + +
    + + + + + + +'; +} +?> + +
    Vorrunde
    '; + + if(($x * 300) + $dauer[0] < time()) { + if($char1[$z] == $win[$z]) { + echo ''.$char_nick1[$z].' vs. '.$char_nick2[$z].' -> Runde: '.$round[$z].''; + } else { + echo ''.$char_nick1[$z].' vs. '.$char_nick2[$z].' -> Runde: '.$round[$z].''; + } + } else { + if($k8 == 0) { + echo $char_nick1[$z].' vs. '.$char_nick2[$z].' -> Runde: '.$round[$z]; + $k8++; + } + } + $z++; + $x++; + echo '
    + + + + + diff --git a/ag/turnier_auswahl.php b/ag/turnier_auswahl.php new file mode 100644 index 0000000..97e2a88 --- /dev/null +++ b/ag/turnier_auswahl.php @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + +
    Turnier Auswahl
    + + + +   + + + +
    + + + +
    + diff --git a/ag/umfrage.php b/ag/umfrage.php new file mode 100644 index 0000000..3fea11b --- /dev/null +++ b/ag/umfrage.php @@ -0,0 +1,177 @@ +###LABEL###'; + ?> + + + + + + + + + + '; + } + ?> + + + +
    Umfragen
    ErstellerThemaAktion'.$results[$i]['nickname'].''.$results[$i]['thema'].'abstimmen
    + +
    +
    + ###LABEL###'; + + // Hat man selbst schon gewaehlt?? + $choice = getStimme($pollid, $userid); + $umfrage = getUmfrage($pollid); + + // Ist die Umfrage noch offen?? + $open = isOpen($pollid); + + + if($choice || !$open){ // Ja, dann einfach nur Ergebnis anzeigen + $ergebnisse = getResult($pollid); + ?> + + + + + + + + '; + } + ?> + + + + '; + $i++; + } + ?> + + + + +
    + + +
    '.$umfrage['options'][$i]['text'].''.$ergebnisse[$i].'
    Kommentare
    User hat für "'.$umfrage['options'][$results[$i]['polloptionid']]['text'].'" gestimmt'.$results[$i]['comment'].'
    + +
    + +
    + + + + + + + + + + + '; + $i++; + } + ?> + + + + + + + + + +
    '.$umfrage['options'][$i]['text'].'
    Kommentar
    + +
    + +
    +
    + Das Thema ist geschlossen'; + return; + } + $choice = getStimme($pollid, $userid); + if($choice){ + echo '
    Sie haben schon fuer dieses Thema gestimmt
    '; + return; + } + stimme($pollid, $selected, $userid, $kommentar); + echo ' + + + + + + + + + + + + + + + + +
    + +
    TOP 10 WANTED
    CharakterTrainerPreisTodes List
    '.$row['name']; ?>">
    Todes List
    + \ No newline at end of file diff --git a/ag/wanted_kampf_anzeige.php b/ag/wanted_kampf_anzeige.php new file mode 100644 index 0000000..aa9142e --- /dev/null +++ b/ag/wanted_kampf_anzeige.php @@ -0,0 +1,121 @@ + + + + + +$back
     
    "; + + $kampf1 = mysql_Fetch_array(mysql_query("SELECT * FROM wanted_kampf WHERE id='$kampf_id' LIMIT 1")); + $char_1 = getChar($kampf1['char1']); + $char_2 = getChar($kampf1['char2']); + + $spleoic = "wanted"; + $starke1 = explode(",", $kampf1[starke1]); + $starke2 = explode(",", $kampf1[starke2]); + $ver1 = explode(",", $kampf1[ver1]); + $ver2 = explode(",", $kampf1[ver2]); + $speed1 = explode(",", $kampf1[speed1]); + $speed2 = explode(",", $kampf1[speed2]); + $ausdauer1 = explode(",", $kampf1[ausdauer1]); + $ausdauer2 = explode(",", $kampf1[ausdauer2]); + $glueck1 = explode(',', $kampf1['glueck1']); + $glueck2 = explode(',', $kampf1['glueck2']); + + $schaden1 = explode(",", $kampf1[schaden1]); + $schaden2 = explode(",", $kampf1[schaden2]); + $attacke1 = explode(",", $kampf1[attacke1]); + $attacke2 = explode(",", $kampf1[attacke2]); + + $hp1 = explode(",", $kampf1[hp1]); + $hp2 = explode(",", $kampf1[hp2]); + $mp1 = explode(",", $kampf1[mp1]); + $mp2 = explode(",", $kampf1[mp2]); + + $a_hp1 = explode(",", $char_1[hp]); + $a_hp2 = explode(",", $char_2[hp]); + $a_mp1 = explode(",", $char_1[mp]); + $a_mp2 = explode(",", $char_2[mp]); + $runde = 1; + + // das muss noch umgestellt werden!! + include "include/kampf_anzeige.php"; + +} else { + $kampf_search = mysql_query('SELECT c1.name AS c1_name, c2.name AS c2_name, k.id FROM wanted_kampf k LEFT JOIN chars c1 ON(c1.id=k.char1) LEFT JOIN chars c2 ON(c2.id=k.char2) LEFT JOIN user u ON(u.id=c1.besitzer OR u.id=c2.besitzer) WHERE u.id=' . $user_ida[id]); +?> + + + + + + + + + + + + + + + + + + +
    Meine Wantedkämpfe
    vs.Anzeigen +
    Wantedkampf suche +
    + + + + +
    +